Skip to content

Fortify against tickrate mismatches #372

@elementbound

Description

@elementbound

✨ Description

When running host and clients, they may end up running at different tickrates. Either because of misconfiguration, or because of an exploiting attempt.

To avoid this, a handshake and a filter should be implemented.

The handshake consists of connecting clients announcing their configured tickrate on join. From there, based on project configuration, three things could happen:

  • Host responds with expected tickrate, client adjusts
  • Host drops the connection
  • A signal is emitted on both sides, so game code can react

The filter runs on the host, and should monitor peers. If their input has been in the future for too long, the connection is dropped due to ( forced ) tickrate mismatch. This can happen if exploiters manage to disable the handshake mechanism.

Use case

This feature would serve as a safety check for users in case they misconfigure their tickrates.

In addition, it would serve as a layer of protection against exploits.

As it affects tick timing, it serves all games built with netfox.

Distribution

netfox core

Notes

Credits to @gk98s for raising this

Metadata

Metadata

Assignees

No one assigned

    Labels

    featureNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions