Description
In MovementTraverse, the god bridge fallback mechanism (godSneakFallbackTicks) activates when a block placement is detected to have failed (sneak emergency). However, the fallback only runs for a fixed number of ticks, and if the underlying bridge block was never placed, the bot remains sneaking in place until the movement times out.
Root Cause
In MovementTraverse.reset():
wasTheBridgeBlockAlwaysThere = true;
godSneakFallbackTicks = 0;
godVerifyTicks = 0;
stopGodBridge();
The wasTheBridgeBlockAlwaysThere flag is initialized to true, meaning the code assumes the bridge block was placed unless proven otherwise. If block placement (right-click) fires but the server rejects it (lag, anticheat, invulnerable area), the flag stays true and the bot walks off expecting a block that doesn't exist, falling into the void/lava.
Additionally, after godSneakFallbackTicks expire, there's no fallback to abort — the movement waits for the full timeout before the path executor cancels it.
Expected Behavior
- Verify block placement before advancing: check
canWalkOn(bsi, destOn) AFTER placement attempt
- After god bridge sneak fallback expires, abort the movement immediately rather than waiting for timeout
- Track consecutive failed bridge placements and escalate to path recalculation
Suggested Fix
- Add placement verification: after right-click, wait 2-3 ticks and check if the block appeared in the world
- If verification fails N times consecutively, mark position as unplaceable and recalculate path
- Abort god bridge after fallback expires instead of waiting for movement timeout
Related
shredder/src/main/java/baritone/pathing/movement/movements/MovementTraverse.java
- God bridge logic in
MovementHelper or GodBridgeClickHelper
Description
In
MovementTraverse, the god bridge fallback mechanism (godSneakFallbackTicks) activates when a block placement is detected to have failed (sneak emergency). However, the fallback only runs for a fixed number of ticks, and if the underlying bridge block was never placed, the bot remains sneaking in place until the movement times out.Root Cause
In
MovementTraverse.reset():The
wasTheBridgeBlockAlwaysThereflag is initialized totrue, meaning the code assumes the bridge block was placed unless proven otherwise. If block placement (right-click) fires but the server rejects it (lag, anticheat, invulnerable area), the flag staystrueand the bot walks off expecting a block that doesn't exist, falling into the void/lava.Additionally, after
godSneakFallbackTicksexpire, there's no fallback to abort — the movement waits for the full timeout before the path executor cancels it.Expected Behavior
canWalkOn(bsi, destOn)AFTER placement attemptSuggested Fix
Related
shredder/src/main/java/baritone/pathing/movement/movements/MovementTraverse.javaMovementHelperorGodBridgeClickHelper