The SyncLoadout
packet is restricted to the same conditions as player-initiated loadout switches, causing potential desync
#12
Labels
bug
Something isn't working
impossible to patch serverside
It's something that can't really be patched due to some inherent limitation of what it is.
Is there an existing issue for this?
Tested platforms
Reproduction steps (if known)
SyncLoadout
to a player, designated for themselves.Additional information
The preconditions for switching loadout indexes normally within the game are:
Player.itemTime
andPlayer.itemAnimation
are less than or equal to0
)Player.CCed
is false)Player.dead
is false)(The following three conditions are part of the normal checks, however they are not needed to be changed)
0
3
since1.4.4
)Issues arise when a server wishes to send a
SyncLoadout
to a player, switching their own loadout index. In transit of the packet, is is possible that the player's state changes (they use an item, they die, or become CC'd). In this scenario, the loadout sync would be rejected, leaving the server with no way to enforce a loadout index, which will cause desync.This is important, as the loadout index should be treated a part of the SSC ecosystem -- and with the potential for the loadout sync to be rejected, the encapsulation of SSC, and control of the server of the player's character, is not upheld.
The solution would seem to be to not restrict the packet based on the initial three checks shown above, and allow it regardless -- only restricting player-initiated loadout switches to those.
The text was updated successfully, but these errors were encountered: