Bots Getting Twice The Gravity
A bitmask protocol bug hiding every remote crouch, split Y offsets for crouch models, and a double simulate() giving bots 2x gravity.
The Bot Gravity Bug
When the input queue held more than one command, simulate() ran twice per tick:
entities got 2x gravity
bots ~2-3x gravity (vy delta ~-17.6/tick vs ~-8/tick)Also fixed: a 50-unit stop threshold that friction was using to stop bots dead, and a missing yaw rotation on the bot's direction in _sendInput().
Then the bots got *NavGraph A\ pathfinding, 3-ray feelers, strafe-jump button flags, and a jump probability cut from 2% to 0.3-0.4%**.
The Protocol Bug
BinaryProtocol.decode placed movementState on the velocity component instead of the movementState field — so RemotePlayerRenderer never saw a crouch, slide or walljump flag. One property name, and every remote player stood up straight.
Movement state is now sent without delta compression: 1 byte per entity per snapshot.
Remote Models, Detail By Detail
- Crouchslide model anchor lowered 20 units to match the shorter hitbox, because
the Mixamo slide does not lower the skeleton.
- Crouch walk uses directional animations with speed-proportional playback;
backward uses a negative speedRatio to reverse the clip.
- Crouch idle is the frozen first frame of
crouch_walk_forwardat
speedRatio 0.
- Split Y offsets: -10 for crouch walk and idle, -20 for crouchslide.
- Hitbox wireframes shrink from the head down, keeping the bottom at feet level
— previously from the bottom, which slid the whole box into the floor.
Remote weapons attach to mixamorig:RightHand with scale compensation for MODEL_SCALE, and plasmagun dual barrels got Z offsets of -4 and 0 — Z being left/right in GLB.
Plasmagun recoilScale 1.0 → 0.4. Riotgun pellet impact lights collapsed into one light at the impact centroid.
Known Issues: none stated.