netfox icon indicating copy to clipboard operation
netfox copied to clipboard

Issues with RollbackSynchronizer taking input from multiple Nodes with different authorities

Open Bryce-Dixon opened this issue 6 months ago • 3 comments

If a RollbackSynchronizer has input paths from multiple Nodes with different authorities, a "Invalid assignment on read-only value" error in _submit_input (rollback-synchronizer.gd:248) will be produced as the Dictionaries contained within _inputs are made read-only. Using Dictionary.merged may solve this?

There's also an issue where _latest_state gets way ahead of the client if they don't have authority over all of their RollbackSynchronizer input Nodes. For example, if I have an "Input" Node with the client as the authority and an "Events" Node with the server as the authority which both are used by the "Player" Node for _rollback_tick, the "Events" Node's inputs coming from the server cause the Player's state to be assumed as fully server-determined even though their local inputs should still be considered.

Bryce-Dixon avatar Aug 19 '24 12:08 Bryce-Dixon