feat: Configurable Intervals - #4114
Conversation
MrGadget1024
commented
Jun 20, 2026
Codecov Report❌ Patch coverage is
❌ Your patch check has failed because the patch coverage (81.08%) is below the target coverage (90.00%). You can increase the patch coverage or adjust the target coverage. Additional details and impacted files@@ Coverage Diff @@
## master #4114 +/- ##
==========================================
+ Coverage 42.18% 42.20% +0.01%
==========================================
Files 157 157
Lines 15132 15148 +16
==========================================
+ Hits 6384 6393 +9
- Misses 8748 8755 +7
Flags with carried forward coverage won't be shown. Click here to find out more.
🚀 New features to boost your workflow:
|
|
need more time on this, gonna test in a production game soon to make sure it doesnt break anything |
|
@copilot solve merge conflicts |
Merge conflicts resolved. Both |
|
@copilot review the changes. any timing related changes have a high chance of brekaing networktime, snapshotinterpolation, and any variant of networktransform.* - check all, give a risk assessment |
Here is the full risk assessment across the timing-sensitive areas: Changes SummaryThe PR introduces three independently-configurable rates on
Risk: NetworkTime
|
| Area | Risk | Root Cause |
|---|---|---|
| NetworkTime / RTT | pingRate=0 silently disables all RTT with no warning |
|
| SnapshotInterpolation | lastTickTime vs lastSendTime can drift; NetworkClient.tickRate never set from ApplyConfiguration |
|
| NetworkTransform.* | 🟢 Low | Reads sendRate/sendInterval only, unaffected |
| PredictedRigidbody | 🟢 Low | Same as above |
The two items I'd fix before merging:
NetworkClient.tickRateshould be set inApplyConfiguration()(same asNetworkServer.tickRate), otherwise client→server time snapshots always send at 30 Hz regardless of the configured send rate.- Add a validator warning (or just clamp
pingRate >= 1) sopingRate = 0can't silently break RTT/prediction.
|
@MrGadget1024 significant risk, might be good idea but need to wait longer for me to test this in a production game |
Default lowered to 2Hz
PingRate has a Range[0.01f, 10f] on it. We only allow, and check for, zero for unit tests to work. User would have to work at forcing it to zero intentionally.
By design, because only games with NetworkTransform / Predicted components need TimeSnapshotMessage. Being able to disable that for games that don't use those is a bandwidth / CPU saving feature. Otherwise TickRate and SendRate have to match for them to work properly. This will be documented after the PR is merged.
Now it is.
Ask copilot to suggest a fix...my budget is spent for the month. |