Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fortify against tickrate mismatches #372

Closed
elementbound opened this issue Jan 6, 2025 · 0 comments · Fixed by #380
Closed

Fortify against tickrate mismatches #372

elementbound opened this issue Jan 6, 2025 · 0 comments · Fixed by #380
Labels
feature New feature or request

Comments

@elementbound
Copy link
Contributor

✨ 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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
feature New feature or request
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant