Creates a movement simulator
The bot to move
The game the bot is in
The map's collision geometry
Whether the player is standing on something, or hanging off a ladder
Advances the player by one tick, using the inputs recorded for that tick
The index into Game.state's buffer to replay
Runs the game's movement physics locally, so the bot knows where it is between server syncs.
This is a tick-for-tick port of the server's own player update, collision included - it resolves the player's sphere against real map geometry out of a ColliderSet rather than guessing from the block the player happens to be standing in. Everything it needs comes from Game.state, so it runs whether or not anything is navigating.
The one deliberate omission is scope slowdown. The server halves your input while the scope bit is held, gated behind a delay field that it initialises to zero and never touches again, so the branch is permanently live there - yolkbot does not predict it.