-
-
Notifications
You must be signed in to change notification settings - Fork 60
Fortify against tickrate mismatches #372
Description
✨ 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