mojira.dev
MC-306499

Excessive full camera rotations result in erratic in-game behavior and may lead to crashes

Rotating the perspective by approximately 23310 full rotations causes abnormal perspective values and player freezes. Further input will trigger floating-point precision loss and eventually floating-point overflow, leading to game crashes.

Actual Results

  • Due to floating-point precision issues, the camera does not rotate horizontally when moving slowly; only fast mouse movement produces any change.

  • Only vertical camera movement (pitch) works.

  • The player cannot move horizontally, only jump.

  • The player is unaffected by knockback; X and Z coordinates are completely frozen, even when attacked by mobs.

  • When breaking blocks, there is a visible offset between the block break position and the direction the camera is pointing.

  • In third-person view, the player model’s facing direction does not match the camera direction. (This is clearly visible in video proof.)

Further Testing

  • Continuing to rotate quickly in the same direction causes floating-point overflow and game crash. However, actual crashes are rare because float overflow does not occur easily.

  • Moving the mouse the same distance in the opposite direction resolves the issue. (This can be easily triggered and fixed using external tools.)

Potential Impact

  • Breaks multiplayer balance, as the bug can be easily reproduced with external programs.

  • May cause unexpected bugs, including accidental activation or game crashes.

  • May cause server-side calculation errors and potentially crash Minecraft servers.

Affected Environments Tested

  • Singleplayer

  • Multiplayer

  • Minecraft servers

This bug is fully reproducible with a near 100% success rate.

Reproduction Steps

  1. Use an external program to rotate the camera by 23310 full rotations.

  2. Set in-game mouse sensitivity to maximum.

  3. Move the mouse quickly and horizontally (you may also observe horizontal movement being forced into vertical movement).

  4. Observe: the player becomes unable to move or rotate horizontally.

Root Cause Analysis

23310 rotations × 360 degrees = 8391600

For comparison:

  • Maximum exact integer value for float: 8388608

  • Calculated result: 8391600

This value exceeds the maximum exact integer representable by float, causing severe floating-point precision loss, which leads to the issues described.

Expected Result

Camera rotation (yaw/pitch) and player movement should function correctly at all valid sensitivity levels, without numerical overflow, control lockups, or game crashes.

Environment

Minecraft: Java Edition - Version: (Fill in your version, e.g. 1.21.4) Singleplayer / Multiplayer (Server - Mods/Plugins: Vanilla (no mods)

Attachments

Comments 2

Thank you for helping us improve Minecraft! We saved your files:

[media]

I apologize, but the description in this report is not very clear. I would like to re-upload the attachments. Please close this report.

COM1919

(Unassigned)

Unconfirmed

(Unassigned)

1.21.11

Retrieved