
Unloaded Activity
Achieves "infinite simulation distance" by keeping track of how long things have not simulated for, and then updating them like they've always been simulating.
Обновлён 22 июня 2026 г. · опубликован 13 января 2023 г.
Unloaded Activity
When things such as crops get out of simulation distance, normally they wouldn't grow. This mod changes that by doing a calculation once they get within simulation distance and update them so it's like they never left the simulation distance. So now you can explore while waiting for crops to grow or furnaces to cook.
This also works similarly when skipping the night, crops will have grown and furnaces will have cooked as if you were awake the entire time waiting for the day.
Here is a video showcasing the mod.
Currently supported blocks/entities (if you use the latest version):
- All crops
- Furnaces
- Saplings
- Bushes
- Cocoa beans
- Sugar canes
- Baby animals
- Copper blocks
- Cactus
- Leaves
- Amethyst
- Kelp
- Glow berries
- Bamboo
- Turtle eggs
- Snow
- Water freezing
- Cauldrons
- Dripstone
Currently planned:
- Updating blocks in account of each other
- Support for other mods (probably once this mod is out of beta)
Inspiration
I got this idea from a video by DigiDigger where he talks about how Terraria can handle all of its tiles. Even though the video isn't really accurate to how Terraria actually works, he did bring up an optimisation which I feel like could also be implemented to Minecraft. The timestamp where he talks about this optimisation is at 5:11.
Simulation accuracy:
Instead of using bruteforce and repeatedly ticking blocks/entities for the amount it was unloaded, the mod instead has a simulation function for every supported block/entity which will calculate the state of a block/entity after a certain amount of time. The most complicated things to simulate are blocks which use randomness in their ticks. To be able to simulate these we randomly sample from a binomial distribution and sometimes also a negative binomial distribution to get what state the blocks should be in after a certain amount of time. By doing this, you will get pretty accurate results without bruteforce.
However, some blocks do stuff that I am not able to find a good way to simulate.
Because of this, certain blocks will not be accurately simulated.
Here's a list of those blocks:
Copper blocks
The copper oxidation speed and max oxidation depends on how many blocks of copper are nearby and the state of those copper blocks. Right now my mod simulates one block at a time which means that I won't be able to accurately simulate blocks that are dependent on other blocks. This results in copper blocks being very inaccurate. However, when spaced optimally the simulation will be pretty accurate. Except that the first oxidation step has a lower chance of happening compared to the rest. To not have to deal with that as well I just made all steps have that lower chance.Water freezing
This has pretty much the same problem as copper blocks. Normally ice only generates if one of the surrounding blocks also is not water. The way my mod handles it is that it doesn't. I was too lazy to come up with any decent alternative, so I just used the original logic if a position is valid for ice to generate. This will definitely be fixed in the future once I come up with a good way to simulate multiple blocks together.Turtle eggs
The turtle eggs doesn't really have any issues regarding accuracy. The biggest issue I had was what age the turtles should have once hatched, but I managed to solve it. I just wanted to mention that the accurate simulation can be a slight bit more expensive. So there's an option to turn it off.
Anything that didn't get mentioned here most likely has a pretty accurate simulation function with no issues at all.
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 | fabric, neoforge, quilt | 22 июня 2026 г. | .jar (630 КБ) |
| 0.7.0-SNAPSHOT.2+mc26.1.x | Альфа | 26.1, 26.1.1, 26.1.2 | fabric, neoforge, quilt | 19 мая 2026 г. | .jar (574 КБ) |
| 0.7.0-SNAPSHOT.1+mc26.1.x | Альфа | 26.1, 26.1.1, 26.1.2 | fabric, neoforge, quilt | 17 мая 2026 г. | .jar (576 КБ) |
| v0.6.10+1.21.11 | Бета | 1.21.11 | fabric, neoforge, quilt | 11 декабря 2025 г. | .jar (355 КБ) |
| v0.6.9+1.21.9-1.21.10 | Бета | 1.21.9, 1.21.10 | fabric, neoforge, quilt | 13 октября 2025 г. | .jar (359 КБ) |
| v0.6.8+1.21.6-1.21.8 | Бета | 1.21.6, 1.21.7, 1.21.8 | fabric, neoforge, quilt | 23 сентября 2025 г. | .jar (324 КБ) |
| v0.6.7+1.21.5 | Бета | 1.21.5 | fabric, neoforge, quilt | 16 июня 2025 г. | .jar (324 КБ) |
| v0.6.7+1.21.4 | Бета | 1.21.4 | fabric, neoforge, quilt | 16 июня 2025 г. | .jar (321 КБ) |
| v0.6.7+1.21.2-1.21.3 | Бета | 1.21.2, 1.21.3 | fabric, neoforge, quilt | 16 июня 2025 г. | .jar (321 КБ) |
| v0.6.7+1.21-1.21.1 | Бета | 1.21, 1.21.1 | fabric, neoforge, quilt | 16 июня 2025 г. | .jar (319 КБ) |
| v0.6.6+1.21.5 | Бета | 1.21.5 | fabric, neoforge, quilt | 30 марта 2025 г. | .jar (320 КБ) |
| v0.6.6+1.21.4 | Бета | 1.21.4 | fabric, neoforge, quilt | 30 марта 2025 г. | .jar (318 КБ) |
| v0.6.6+1.21.2-1.21.3 | Бета | 1.21.2, 1.21.3 | fabric, neoforge, quilt | 30 марта 2025 г. | .jar (318 КБ) |
| v0.6.5+1.21.4 | Бета | 1.21.4 | fabric, neoforge, quilt | 26 декабря 2024 г. | .jar (317 КБ) |
| v0.6.5+1.21.2-1.21.3 | Бета | 1.21.2, 1.21.3 | fabric, neoforge, quilt | 26 декабря 2024 г. | .jar (317 КБ) |
Показаны последние 15 из 68 версий. Все версии — на Modrinth.
Ченджлог
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.
Полная история изменений — на Modrinth.
Комментарии
Загружаем…