This repository has been archived on 2023-11-26. You can view files and clone it, but cannot push or open issues or pull requests.

1.4 KiB


Difficulty Stages

Each player has a "personal" difficulty stage of an area, the highest online player's difficulty stage in an area will be the "effective" difficulty stage of that area.

Stage 1

  • Normal Gameplay

Stage 2

  • Hostile Mobs Attack Passive Mobs

Stage 3

  • Mobs Are Guaranteed To Have At Least One Piece Of Armor

Stage 4

  • Villages Kick You Out (Using Iron Golems)
  • Creepers Target Artificial Blocks

Stage 5

  • Neutral Mobs Are Always Hostile
  • Mobs No Longer Have Knockback

Stage 6

  • Mobs No Longer Burn In Sunlight

Technical Details

Each player has a 6-element long list in their NBT data. Each element in the list has a chunk position and time value. Every tick, the player will first find which stage element's area its current position is in, and then increase the time value of that stage element. If the time value when increased is over 24,000 ticks the next stage element will have its chunk set to the players current position, have its time value reset, the old stage element will have the next stage element's old chunk, and have its time value reset. To determine if a player is in a stage element, it checks if the player is within 16 chunks of the stage element's chunk, it starts searching at the last element, ending at the first. The "effective" stage element of a chunk can be found by searching every online player for their stage element for the chunk and then picking the highest value.