Open
Conversation
Mid-game teleports with relative flags (e.g. /tp ~ ~10 ~, portal corrections) were being dropped: the handler only applied the first PlayerPosition at login and silently ignored the rest. Relative flags were also not honoured, so an echo of p.change.pos would be wrong whenever any flag was set. Move the PlayerPosition handling to the main thread where the player state lives, apply relative flags for position, rotation, and velocity, then echo MovePlayerPosRot with the computed absolute values.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
The
PlayerPositionhandler echoed the rawp.change.pos. That is correct for the first login teleport (fully absolute), but wrong for any subsequent teleport that sets relative-move flags. The client would echo unadjusted deltas instead of the resulting absolute position.PlayerPositionthroughNetworkEventso the main thread has access to player state.