For Minecraft 1.16.1 stronghold measurements: boats, horses, and minecarts can all reset accumulated player yaw, but only the boat reset appears useful for recovering extra F3+C precision.

What yaw means

yaw is the player’s horizontal rotation: turning left and right around the vertical axis.

pitch is the up/down rotation.

For an entity Rotation value:

[yaw, pitch]

For example:

[35.4422114f, 0.0f]

means a yaw of roughly 35.4422114°.

Minecraft can keep accumulating yaw past the normal -180°..180° or 0°..360° range. A player can end up with something like:

8531.05°

even though that still points in an ordinary compass direction modulo 360.

That large accumulated number is important because floating-point precision gets worse as the magnitude grows.

“Mouse drift”

Mouse drift here is a floating-point precision problem. Minecraft keeps adding mouse rotation directly onto the player’s existing yaw:

newYaw = oldYaw + mouseDelta

Because yaw is not periodically normalized, repeated spinning leaves you with values like 8531.05°. Floating-point numbers lose precision as magnitude grows, causing the stored yaw to drift slightly away from the exact angle grid implied by your mouse sensitivity:

ideal sensitivity steps

large accumulated yaw

floating-point rounding

imperfect angle grid

Entering a vehicle resets the large accumulated yaw back into a normal range, eliminating this floating-point drift:

Boat
├── resets large accumulated yaw
└── resets onto a known yaw lattice

Horse
├── resets large accumulated yaw
└── resets to the horse's stored yaw

Minecart
├── resets large accumulated yaw
└── preserves facing while normalizing to 0°..360°

There is also a separate movement/client-server desync issue where player velocity has not settled before an eye throw. That can mess with a measurement too, but it is different from numerical mouse drift.

Boat Eye specifics

You can place a boat facing different directions and enter it from different sides.

What makes it unique is that entering the boat resets the player’s yaw to one of a specific set of known possible values.

The Ninjabrain Bot Boat measurements documentation uses the term boat angle to refer to the yaw angle you have directly after entering the boat.

The reset happens when you enter the boat. Whether you can move your mouse at this point depends on your sensitivity and Ninjabrain Bot setup (detailed in the later god sens section).

Conceptually (for non-god-sens setup):

arbitrary accumulated yaw

enter boat

boat angle is established

exit without moving mouse

f3+c calibrate for green boat

measure eye normally

The boat angle lives on a lattice

In this context, a lattice is just a regularly spaced set of allowed values.

For example:

0.000000°
0.140625°
0.281250°
0.421875°
...

is a one-dimensional angle lattice with spacing 0.140625°.

The important point is that the post-boat yaw is not treated as an arbitrary float. Ninjabrain bot knows the set of values it is allowed to be near.

SetBoatAngleAction reconstructs a candidate angle using:

positive angle: multiples of 1.40625°
negative angle: multiples of 0.140625°

and verifies that the two-decimal input is sufficiently close to the reconstructed candidate.

For example, Ninjabrain’s API documentation uses a valid boat angle of:

-77.34375°

If F3+C gives -77.34°, the known lattice can tell the bot that the underlying value was -77.34375° rather than merely “some value that rounds to -77.34”.

Why that helps stronghold calculation

F3+C only exposes a rounded yaw value.

Without a known reset state, F3+C: -77.34° could correspond to a range of nearby underlying angles.

With Boat Eye:

F3+C: -77.34°
        +
known boat lattice

underlying reset angle: -77.34375°

Ninjabrain Bot can then combine that known starting angle with the mouse movement and eye measurement to infer more angular precision than the copied command contains by itself.

So Boat Eye solves two separate problems:

  • Accumulated yaw: entering the boat brings a huge yaw value back into a normal-sized range.
  • F3+C rounding: the known lattice lets Ninjabrain Bot reconstruct decimals that were lost in the copied two-decimal angle.

The second part is seemingly unique to boats.

God sens

The idea behind “god sens” is making every valid boat-reset angle mathematically equivalent to starting from . This lets Ninjabrain Bot assume boat angle 0 automatically, removing the need for an F3+C check after entering a boat.

Normally, Boat Eye requires F3+C to learn which lattice angle you landed on:

Normal Boat Eye
enter boat -> lands on unknown lattice angle -> F3+C identifies angle -> green boat

God sens
enter boat -> angle is an exact multiple of mouse steps -> Ninjabrain Bot assumes 0° -> green boat

How the math works

Every Minecraft mouse sensitivity value produces a fixed angular increment per mouse count. Call this minimum increment g.

For the popular god sens of 0.02291165, that increment is roughly:

g = 0.01171875°

A settled boat’s yaw is quantized in steps of 1.40625° (360° / 256). With 0.02291165, the settled yaw value (from the lattice) divides evenly into an integer number of mouse increments:

1.40625° / 0.01171875° = 120

Because 1.40625° is exactly 120 × g, every settled boat angle is already on the same mouse-step grid as :

  0.00000° =   0 × g
  1.40625° = 120 × g
  2.81250° = 240 × g
 47.81250° = 4080 × g

When you move your mouse n increments from a boat angle of m × g, your total angle is simply (m + n) × g. Because all valid boat angles share the same grid as , Ninjabrain Bot can treat as your default starting reference. You place a boat, enter, exit, and measure without pressing F3+C.

Because world spawn yaw also references , a runner who never touches a boat or disrupts their angle grid can sometimes measure eyes directly with Ninjabrain Bot already green.

Mouse movement inside the boat

The rules for moving your mouse while mounted depend on your sensitivity setup, and is described in ExeRSolver’s comment thread on the sensitivty documentation:

  • Without god sens: Do not move the mouse after entering the boat until after pressing F3+C. Moving beforehand adds mouse increments to the raw reset angle, scuffing the exact lattice point Ninjabrain Bot needs for its initial snap.
  • God sens (that doesn’t divide 105): Normal mouse look is safe, but looking past 105° is risky. Hitting the boat camera limit clamps your yaw to boatYaw +/- 105°, which kicks you off the grid if 105 is not an exact multiple of your sensitivity increment.
  • God sens (that divides 105): You can move your mouse freely in the boat and push against the 105° clamp repeatedly without breaking the lattice.

What breaks it

Even on a sensitivity that divides 105, steering the boat by turning while inside of it breaks this relationship. Player steering rotates the boat through a continuous mechanic rather than using the same incremental steps, knocking the boat angle off the n × g grid.

To fix a desynced angle state, enter a fresh, unsteered boat and exit without turning. Entering a boat you previously steered will not reliably fix the grid.

Fast entry and portals

A placed boat rotates slightly after being placed, stepping through a finer 0.140625° (360° / 2560) lattice.

Certain sensitivities, like 0.02291165, documented in ExeRSolver’s sensitivity list, also divide 0.140625° evenly:

0.140625° / 0.01171875° = 12

This allows instant entry and exit: you can right-click the boat before it finishes rotating and still land on the correct lattice.

0.02291165 has a few other benefits:

  • Portals: Nether portal transitions normalize yaw modulo 360° (just like they do for horses, minecarts, and boats). Because 360° / g = 30720 is an exact integer, portal travel preserves the grid.
  • Camera clamps: The boat’s ±105° head-rotation clamp also divides evenly (105° / g = 8960), which is why pushing against the clamp does not break the lattice.
  • Sensitivity scaling: You can use tools like Waywall or ToolScreen (or any of the other community programs really) to change your sensitivity in minecraft but have your out-of-minecraft-level sens be different, and have the two cancel each other out. So this lets you keep the cm/360 you’re used to while enabling you to have god sens.

Horse Eye viability

Mounting resets accumulated yaw

From my 1.16.1 testing, mounting a horse clears accumulated yaw, setting the player’s angle after dismounting to the horse’s Rotation[0]:

Test 1: 8531.05° → 35.88° (horse yaw:  35.881126°)
Test 2: 5807.87° → 35.16° (horse yaw:  35.15625°)
Test 3: 4345.35° → -64.69° (horse yaw: -64.6875°)

You can read the nearest horse’s stored yaw directly:

/data get entity @e[type=minecraft:horse,sort=nearest,limit=1] Rotation[0]

Why horse resets cannot recover F3+C precision

While the horse reset solves large-yaw float drift, the horse’s stored yaw does not live on a sparse, predictable lattice.

Collected horse Rotation[0] values show seemingly arbitrary float distributions:

43.964752°
43.989105°  # Δ = 0.024353°
...
223.30524°
223.34671°  # Δ = 0.041470°

If F3+C reports 43.98°, there is no discrete lattice to identify the exact pre-rounded float. The horse resets accumulated yaw, but only to its current stored angle, which behaves arbitrarily from the runner’s perspective.

Visual rotation vs. stored yaw

In testing, Rotation[0] only changed when the horse physically moved. A horse can visibly turn its head or fidget in place while its stored primary yaw stays static:

329.33423 → 329.33423 → 329.33423 (idle fidgets)
329.33423 → 241.63480 (after physical step)

The copied yaw reflects the horse’s stored body/movement orientation rather than every visual head turn.

Reproducing the horse test

  1. Have a horse nearby (that you can ride)
  2. Spin to accumulate several thousand degrees of yaw.
  3. Check /data get entity @e[type=minecraft:horse,sort=nearest,limit=1] Rotation[0].
  4. Mount the horse without moving the mouse, then dismount.
  5. Press F3+C and compare the copied angle to the horse’s data.

Minecart Eye viability

Minecarts provide another yaw reset mechanism, but unlike boats, they appear to preserve the player’s existing facing direction rather than snapping onto a discrete lattice.

In testing:

before minecart: 2900.93°
after minecart:    20.93° (2900.93° mod 360 = 20.93°)

The minecart resets accumulated yaw, while leaving the player pointing in the same physical direction.

A minecart solves the large-yaw floating-point drift, the same as horses; however, because it does not map onto a discrete set of angles, it cannot recover hidden decimals from F3+C.

Summary (TLDR)

Results:

Boat - Valid option
├── resets accumulated yaw
└── result lies on a known lattice -> can recover hidden decimals

Horse - Invalid
├── resets accumulated yaw
└── result becomes the horse's stored yaw (seemingly arbitrary) -> no recovery of hidden decimals

Minecart - Invalid
├── resets accumulated yaw
└── appears to preserve the player's facing direction (seemingly arbitrary) -> no recovery of hidden decimals

Mouse movement in measuring split:

  • No God sens: Do not move the mouse after entering the boat until after pressing F3+C. Moving beforehand adds mouse increments to the raw reset angle, scuffing the exact lattice point Ninjabrain Bot needs for its initial snap.
  • God sens (that doesn’t divide 105): Normal mouse look is safe, but looking past 105° is risky. Hitting the boat camera limit clamps your yaw to boatYaw +/- 105°, which kicks you off the grid if 105 is not an exact multiple of your sensitivity increment.
  • God sens (that divides 105): You can move your mouse freely in the boat and push against the 105° clamp repeatedly without breaking the lattice.

Only boats provide the discrete angle lattice needed by Ninjabrain Bot to reconstruct F3+C decimals. Horses and minecarts clear accumulated yaw drift, but their post-reset angles I believe are effectively arbitrary.

Sources

Original testing

The horse and minecart behavior described here came from my own Minecraft 1.16.1 testing rather than the Boat Eye documentation above.