A tiny NeoForge 1.21.1 mod for Sable that keeps you moving with a contraption while you jump, so you land where you took off — including on rotating platforms.
| What | Side | How |
|---|---|---|
| You (jumping, walking) | Client | Carry through jump arcs + frame-rotate velocity |
| Non-player entities (item drops, XP orbs, mobs, boats…) | Server | Same carry state machine, plus tracking is seeded when an entity spawns over a contraption (dropped items pop upward and would otherwise never catch a fast deck). Projectiles are excluded — Sable already gives them launch velocity, and frame-locking would bend their flight. |
| Particles (smoke, flames, block breaking…) | Client | Sable frame-locks particles but releases them after 0.5 blocks of drift with a one-shot linear velocity — rising smoke gets flung tangentially. We re-anchor tracked particles every tick while they stay near the contraption. |
On a server without the mod, the player and particle fixes still work for clients that have it; the entity fix needs the mod on the server.
Config (config/surefooting-client.toml)
| Option | Default | Meaning |
|---|---|---|
enabled | true | Toggle the fix |
rotate_jump_velocity | true | Rotate your airborne velocity with the sub-level's frame, so a jump aimed across a spinning platform lands where you aimed |
rotate_ground_velocity | true | Rotate your walking momentum with the frame too, cancelling most of the sideways (Coriolis-like) pull when moving on a fast spinner |
jump_rotation_strength | 1.16 | Multiplier on the airborne rotation; 1.0 aligns to the frame but trails it slightly while your velocity is applied, values above add lead so cross-jumps stay accurate at any constant spin rate (default tuned in-game) |
ground_rotation_strength | 2.25 | Multiplier on the grounded rotation; higher values also compensate per-step lag on fast spinners (tuned in-game — 2.2–2.3 walks straight), lower toward 1.0 if you curl into the spin |
carry_timeout_ticks | 60 | Max airborne ticks to stay in the contraption's frame |
exit_distance_blocks | 4.0 | Stop carrying once this far outside the sub-level's bounds |
anchor_particles | true | Keep particles anchored to the contraption they spawned on while they stay near it |
debug_logging | false | Log carry transitions and per-jump landing offsets |


