Minecraft – Does the Lure III enchantment bias the fishing wait time towards zero

minecraft-java-edition

From the wiki:

The current algorithm:

  • Using a regular fishing rod, a random integer from 100 to 900 is selected. The game then counts down each tick to 0 at which time the fish's water particles appear. At 20 ticks per second, this amounts to a random wait time between 5–45 seconds.
    • Using the lure enchantment on a fishing rod decreases the random integer picked by 100 per level (thus, a wait-time reduction of 5 seconds per level).

Usually these algorithm descriptions are 1:1 with the code, but just to make sure…

With the Lure III enchantment, the wait time will be from 0 to 600 down from 100 to 900. But since it decreases the random integer by 300 (100×3), does it means that the 0 happens more often?

| Integer Picked   |  Lure III   |
|      100 ~ 200   |         0   |
|      200 ~ 300   |         0   |
|      300 ~ 400   |   0 ~ 100   |
|      400 ~ 500   | 100 ~ 200   |
|      500 ~ 600   | 200 ~ 300   |
|      600 ~ 700   | 300 ~ 400   |
|      700 ~ 800   | 400 ~ 500   |
|      800 ~ 900   | 500 ~ 600   |

The average wait time without enchantments is 500 ticks

But with Lure III it could be either 300 ticks if it does not bias, or 225 if it itroduces the bias shown in the table above.

So what is the average wait time for a fish bite with Lure III? 300 or 225 ticks?

Best Answer

The selected tick delay is indeed calculated as shown in the table (and the wiki). However if the calculated value is 0 or below, fish is not caught immediately but rather a new random value is chosen in the next tick.

So there is no bias in the randomness towards 0 - the random distribution is still flat, just the min and max change.

Source: The Source (Mod Coder Pack 9.18 for Minecraft 1.8.8. I believe the algorithm hasn't changed in 1.9)