Skip to content
Luke100000 edited this page May 5, 2025 · 4 revisions

For the configuration, please check the comments in the Config file.

You can modify the most relevant fields with the /io config command.

How does it work?

It only ticks entities every nth tick, and by smartly deciding on that slowdown factor n it can easily cut down entity ticks to 20% without being noticeable at all. Far away entities basically move in slow motion.

How does it calculate the slowdown factor?

First, it is checked whether the entity is rendered (singleplayer only), within tracking distance, and within viewport (singleplayer only) to determine the blocksPerLevel.

image

Then, the entity is only updated every ceil(distance / blocksPerLevel) tick, slowing down entities not visible or far away from the closest player.

In addition

  • The server may move entity updates to the next tick if the current one already used all the budget. This smooths out lag spikes.
  • The server may globally slow down all entities if the server is under a consistent heavy load (stress).

Debug

Press F3 to see your current dimensions stats (On integrated servers only), or /io report to print a full report.

Rate 19.7%, 254 entities, 2 stress, 27 stressed, 76 budgeted | culled 56.7% distance, 2.8% tracking, 22.2% viewport

  • Rate: Entity ticks have been reduced to 19.7%, or "entities are now ~5x faster)
  • Stress: The server is at stress level 2 (of 600). High stress will slow down entities even more to stabilize TPS. In an optimal server, this should rest at 0.
  • Stressed: A lifetime counter of stressed ticks.
  • Budgeted: 76 ticks have been moved over to the next tick to smooth lag spikes. In an optimal server, this should increase only very slowly, e.g.: when players load in.
  • Culled: How many % of entities have been culled by the respective filters (no duplicates, tracking does not also contain distance).

Blacklist

Most entities don't mind being updated at a slower pace, but some may experience wrong behavior. The config has a blacklist, accepting individual entity types (e.g.: minecraft:player) and mod namespaces (e.g.: create).

Clone this wiki locally