Skip to content

fix: synchronize modern movement input and rotation#3949

Open
iiroak wants to merge 12 commits into
PrismarineJS:masterfrom
iiroak:fix/grim-movement-sync
Open

fix: synchronize modern movement input and rotation#3949
iiroak wants to merge 12 commits into
PrismarineJS:masterfrom
iiroak:fix/grim-movement-sync

Conversation

@iiroak

@iiroak iiroak commented Jul 21, 2026

Copy link
Copy Markdown

Summary

  • Send the complete player_input control state when it changes on supported versions instead of sending a partial shift-only packet.
  • Advance network rotation before physics and simulate with the same yaw/pitch sent in the movement packet.
  • Add integration coverage for movement input and synchronized rotation.

This complements #3948. Modern prediction servers use player_input and packet rotation to simulate each movement tick; using a target yaw that differs from the sent yaw creates a persistent movement offset.

Verification

  • npm run lint
  • Live Folia 1.21.4 + GrimAC 2.3.74 test: a bot walked roughly 82 blocks and placed 13 blocks with no Grim alerts after the movement synchronization change (with sprint disabled by the caller). Before the change, the same path produced continuous Simulation offsets around .0131.

@iiroak
iiroak marked this pull request as draft July 21, 2026 17:06
@iiroak
iiroak force-pushed the fix/grim-movement-sync branch from 4e54c84 to ba569d8 Compare July 22, 2026 02:23
@iiroak
iiroak marked this pull request as ready for review July 22, 2026 05:55
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant