diff --git a/addons/netfox/tick-interpolator.gd b/addons/netfox/tick-interpolator.gd index dfb5666e..9aa10e76 100644 --- a/addons/netfox/tick-interpolator.gd +++ b/addons/netfox/tick-interpolator.gd @@ -108,11 +108,20 @@ func _get_configuration_warnings() -> PackedStringArray: func _connect_signals() -> void: NetworkTime.before_tick_loop.connect(_before_tick_loop) - NetworkTime.after_tick_loop.connect(_after_tick_loop) + # Connect to after_loop instead of after_tick_loop to ensure state is recorded + # AFTER RollbackSynchronizer applies display state, fixing jittery remote + # player interpolation on the host. + if NetworkRollback.enabled: + NetworkRollback.after_loop.connect(_after_tick_loop) + else: + NetworkTime.after_tick_loop.connect(_after_tick_loop) func _disconnect_signals() -> void: NetworkTime.before_tick_loop.disconnect(_before_tick_loop) - NetworkTime.after_tick_loop.disconnect(_after_tick_loop) + if NetworkRollback.enabled: + NetworkRollback.after_loop.disconnect(_after_tick_loop) + else: + NetworkTime.after_tick_loop.disconnect(_after_tick_loop) func _enter_tree() -> void: if Engine.is_editor_hint():