Dimension Ticks

Minecraft assigns each dimension its own portion of every game tick. First the Overworld is processed, and then The End, and finally The Nether. In each of these dimension-specific ticks, various events happen that a data pack may wish to modify. However, data packs alone are limited to the very beginning of a game tick (#minecraft:tick or schedule), and therefore may not be able to perfectly detect events from a dimension tick before they influence the world.

Back when command blocks were used instead of data packs, this was hardly an issue to consider. Nearly all events happen in the Overworld, where the command blocks were, and command blocks actually run at the perfect time within the dimension-specific ticks. Unfortunately, it is impossible for data packs to replicate this once-ubiquitous timing without relying on a command block.

Therefore, Lantern includes a repeating command block in each forceloaded chunk, so that data packs may simply hook into the tag(s) for the dimensions in which they need to run functions in. The tags available are listed in this table:

TagDimension
#lantern.1:tick_overworldOverworld
#lantern.1:tick_the_netherThe Nether
#lantern.1:tick_the_endThe End

There is an additional tag--#lantern.1:tick_dimension. This tag runs each time one of the above tags runs, making it useful if your data pack has a single function that needs to run with the dimension-specific timing for every dimension.

Dimension ticks can be disabled, as they do cause a slight amount of runtime overhead, and serve a rather niche purpose. Read the Distributing Lantern page to learn how to disable this feature.