
Unloaded Activity
Simulates blocks and entities to catch up after being unloaded for a period of time.
- Загрузки
- 294K
- Подписчики
- 415
- Обновлён
- 22 июня 2026 г.
- Лицензия
- LGPL-3.0-only
Опубликован 13 января 2023 г.
What does this mod do?
In Minecraft, when you go far away from chunks, they'll stop being simulated. Later when you return, stuff like crops will not have grown at all, baby animals will still be babies, and the items you were cooking will still be cooking.
This mod changes that by simulating blocks and entities once they get within simulation distance to catch up after being unloaded for a period of time. It'll be as if they've always been simulated!
This also works when you're skipping the night. Instead of waiting for your iron to cook, or for your crops to grow, you can skip the night to speed up the process!
How exactly does it work?
Every time a chunk, entity, or block entity gets ticked, it will save the current time, and also check how long it's been since it was last ticked. If the difference is large enough, my mod will start simulating it to make it catch up.
But wont that lag the game if it has to simulate all that missed time?
Not if you're smart! Instead of repeatedly running the tick function for every tick that was missed, Unloaded Activity will instead directly calculate the state of the block given the amount of ticks missed. So if a block missed 24000 ticks (1 Minecraft day), instead of trying to tick it 24000 times, it will do a little bit of math and be done.
This is way faster, but comes at the cost of needing to re-implement the tick logic in this new way. This is why some modded crops may grow incorrectly, or not at all. If you find a modded block that simulates incorrectly, you can blacklist that block from the mod, but also please create a bug report!
What about blocks with random/precipitation ticks? Those have randomness to them.
To simulate these blocks, the mod will sample a random number from a binomial distribution and then use that to update the state of the block. However, sometimes the probability of success changes. Then we need to sample random numbers from a negative binomial distribution to simulate the duration of each success.
Unsupported blocks and entities
Not everything in vanilla Minecraft is supported. Here's which ones are unsupported and the reason for it:
Every redstone related block
Redstone logic is too complicated for me, and even if I were to try to support it, I would most likely break a lot of existing redstone contraptions.Brewing stands
Brewing stands only has 1 ingredient slot. Because of this, Unloaded Activity would only be able to simulate 1 ingredient before having to stop, and I think brewing stands are quick enough to not need to be supported. Unless you immediately fly away with an elytra or sleep after turning on a brewing stand, you wouldn't really notice the lack of support.Campfires
Same reason as brewing stands.Dropped items despawning
I feel like this would ruin the game. If you die far away from your base you'd have no way of retrieving your items, even if you knew exactly where they were.Beehives
This block is unlike any other blocks that's supported, since this block requires entities (bees) to do their own stuff to work. I also haven't looked into it too much yet, so it might get supported in the future.
For any other blocks or entities that aren't supported and that aren't listed here, I've simply just forgotten about. So please let me know if I've forgotten anything!
Inspiration
I got this idea from a video by DigiDigger where he talks about how Terraria handles all of its tiles. Even though the video isn't really accurate to how Terraria actually works, he did bring up an optimization which I feel like could be implemented in Minecraft. The timestamp where he talks about this optimization is at 5:11.
Feedback / Suggestions
If you got any feedback or suggestions for this mod, feel free to join my discord server!
Ченджлог
0.7.0-SNAPSHOT.3+mc26.2.xАльфа26.2 · 22 июня 2026 г.
- Updated to 26.2.x
- Rework the datapack stuff to (hopefully) make it more easier to add mod support in the future
- Rename the package from
lol.zanspace.unloadedactivitytodev.moono.unloadedactivity
0.7.0-SNAPSHOT.2+mc26.1.xАльфа26.1, 26.1.1, 26.1.2 · 19 мая 2026 г.
Fixed a crash that would happen when cauldrons gets filled by dripstone.
0.7.0-SNAPSHOT.1+mc26.1.xАльфа26.1, 26.1.1, 26.1.2 · 17 мая 2026 г.
Additions:
- Added grouped simulations Ability for certain blocks to be simulated together instead of individually. This fixes stuff like ice being simulated incorrectly, where now it only forms the ice around the edges of the body of water and growing inwards. This also comes with a few config options:
maxGroupUpdatesPerTick -> How many groups to simulate per tick.
groupTickDifferenceThreshold -> The time difference between now and its last tick needed to simulate a group.
maxGroupTickDeviationScale -> How different the time difference can be between chunks to be simulated together.
maxForcedChunkLoads -> If a group of blocks are reaching into unloaded chunks, this is how many chunks are allowed to be loaded.
maxGroupTickIterations -> How many iterations group simulations can do per group.
minGroupTickIterations -> Minimum amount of iterations to perform per group. This can improve simulation accuracy a little bit.
groupTickUpdateStrength -> How big the iteration steps should be. Smaller steps are more accurate but can reduce performance.
maxGroupTickSize -> How big (in blocks) a simulation group can be.
Grouped simulations are pretty performance intensive, so if there's lag, consider reducing maxGroupTickSize or maxGroupTickIterations using /unloadedactivity config or in config/unloadedactivity.json.
Support for dirt growing grass/mycelium
Support for nether warts growing
Support for sheep eating grass and growing wool
Support for the golden dandelion stopping ageing
Support for growing cactus flowers on cactuses
Optimized chunk indexing
Add
blacklistedBlocksconfig option to prevent certain blocks from being simulated It can be changed ingame using the/unloadedactivity configor inconfig/unloadedactivity.json.
Changes:
Made most things data-driven You can now use datapacks to change the simulation behavior of blocks, such as probabilities, conditions, what's being simulated, etc. The API is still not final though and will be changed for the full release of v0.7.0 along with the docs.
Index chunks over time instead of on demand Previously when it was time for a chunk to be simulated, it would check if the chunk was indexed and had all the simulateable blocks positions saved. If not, it would loop through the whole chunk. But now, chunks gets indexed over time while they're loaded in the world.
Remove options menu Because this mods functionality is entirely server-sided, it felt a bit weird to have a client-sided config menu. You can still change the options through
/unloadedactivity configin game if you are in a single-player world.Renamed config file from
unloaded-activity.jsontounloadedactivity.jsonRenamed/removed a bunch of settings Removed all settings related to enabling/disabling certain blocks. This is replaced by the
blacklistedBlockssetting.
Renamed:
maxChunkUpdates -> maxChunksIndexedPerTick
maxKnownChunkUpdates -> maxChunkUpdatesPerTick
enableRandomTicks -> enableSimulatingRandomTicks
enablePrecipitationTicks -> enableSimulatingPrecipitationTicks
enableBlockEntities -> enableSimulatingBlockEntities
enableEntities -> enableSimulatingEntities
updateFurnace -> simulateFurnaceSmelting
ageEntities -> simulateEntitiesAgeing
Improved accuracy of copper oxidizing
Improved accuracy of water freezing
v0.6.10+1.21.11Бета1.21.11 · 11 декабря 2025 г.
- Support for 1.21.11
v0.6.9+1.21.9-1.21.10Бета1.21.9, 1.21.10 · 13 октября 2025 г.
- Support for 1.21.9-1.21.10 and all of the new copper blocks
v0.6.8+1.21.6-1.21.8Бета1.21.6, 1.21.7, 1.21.8 · 23 сентября 2025 г.
- Support for 1.21.6-1.21.8
v0.6.7+1.21.5Бета1.21.5 · 16 июня 2025 г.
- Fixed Lithium incompatibility on NeoForge that caused furnaces to smelt stuff instantly.
v0.6.7+1.21.4Бета1.21.4 · 16 июня 2025 г.
- Fixed Lithium incompatibility on NeoForge that caused furnaces to smelt stuff instantly.
Комментарии
Загружаем…