mojira.dev
MC-279819

The mining speed factor of Mining Fatigue is inconsistent at level 3

The bug

For Mining Fatigue level 0 to 1, 1 to 2 and 3 to 4, the speed is reduced to 0.3x of the original speed. However, for level 2 to 3, the speed reduction behaves differently, slowing to 0.03x instead.

As an example, here's the table showing the breaking time of cobblestone by hand:

Mining Fatigue Level

0

1

2

3

4+

Breaking time (sec)

10

33.35

111.15

3703.75

12345.7

As seen in the table, the breaking times do not follow a geometric progression. For most levels, the breaking time increases by a factor of ~3.333 (1/0.3). At level 3, however, the increase is ~33.3 (1/0.03).

To reproduce

  1. Place any block with a hardness greater than 0

  2. Mine it with any tool which cannot instant break the block, and measure the time

  3. Run the command

    /effect give @s mining_fatigue infinite 0
  4. Repeat the above steps for the same block and tool, increasing the Mining Fatigue level in the command each time.

You can observe that the breaking time at level 3 deviates from the expected pattern.

Linked issues

Comments 3

Where are you getting these numbers from? Mining fatique has been 25% mining speed reduction per level since I can remember. Amplifier 3+ (Level 4+) making mining impossible.

The time calculation described in the ticket has been verified by both experiments and checking the source code. Additionally, the mechanic of Mining Fatigue should not have been changed since 1.8. So you may be misremembering.
By the way, MC-10755 is actually just playing as a placeholder now and its description has been outdated for a very long time.

Can confirm. This is the relevant piece of code from the getDestroySpeed method in net.minecraft.world.entity.player.Player.java

if (this.hasEffect(MobEffects.MINING_FATIGUE)) {
	float f2 = switch (this.getEffect(MobEffects.MINING_FATIGUE).getAmplifier()) {
		case 0 -> 0.3f;
		case 1 -> 0.09f;
		case 2 -> 0.0027f;
		default -> 8.1E-4f;
	};
	f *= f2;
}

If mining fatigue were to properly follow the 0.3^level formula (as it does for level 2 (case 1)), level 3 (case 2) should have been 0.027, and level 4 or more (default) should have been 0.0081. This can also be confirmed by actually trying to reproduce the issue in game, instead of going by memory.

This could be intentional or just a small mistake, but this is up to Mojang to decide.

Leo_768

(Unassigned)

Community Consensus

Platform

Low

Player

1.21.4, 25w04a, 25w05a, 25w06a, 1.21.5, ..., 25w20a, 25w21a, 1.21.6 Pre-Release 3, 1.21.8, 25w32a

Retrieved