|
| 1 | +## Stop blocks from random ticks or ticks |
| 2 | + |
| 3 | +#### Random ticks |
| 4 | +Most blocks in the game perform randomTicks and this part is quiet optimized in itself. Yet, the more blocks you have the bigger the strain on a server. Even stairs do randomTick() for some mysterious reason. |
| 5 | +Preventing randomTick() is a somewhat safe option. You just prevent some mechanics from running, like copper weathering, bamboo growing. At least in vanilla I haven't found any breaking blocks that crash the game if they are banned. I have randomly selected 50% of all the blocks in the game and banned them. No issues. |
| 6 | + |
| 7 | +Here is some data from profiler: |
| 8 | + Versions: Minecraft 1.20.1, Forge 4.30.0. |
| 9 | + Mods: NoRandomTicks and WorldEdit |
| 10 | + Blocks: 3800 bamboo, 5800 acacia stairs, 4200 birch leaves |
| 11 | + |
| 12 | +[How to understand this numbers](https://docs.minecraftforge.net/en/latest/misc/debugprofiler/) |
| 13 | + |
| 14 | +Vanilla: |
| 15 | +``` |
| 16 | +[08] | | | | | | | | tickBlocks(40401/201) - 64.88%/5.94% |
| 17 | +[09] | | | | | | | | | randomTick(53667/267) - 72.67%/4.32% |
| 18 | +[10] | | | | | | | | | | #getChunkCacheMiss 4309/21 |
| 19 | +[10] | | | | | | | | | | #getChunk 97830/486 |
| 20 | +[10] | | | | | | | | | | unspecified(53667/267) - 82.14%/3.55% |
| 21 | +[10] | | | | | | | | | | queueCheckLight(4755/24) - 8.67%/0.37% |
| 22 | +[10] | | | | | | | | | | updateSkyLightSources(4755/24) - 8.45%/0.37% |
| 23 | +[10] | | | | | | | | | | no_random_tick_check_blocks(6428/32) - 0.74%/0.03% |
| 24 | +``` |
| 25 | + |
| 26 | +Blacklisted: |
| 27 | +``` |
| 28 | +[08] | | | | | | | | tickBlocks(40401/201) - 40.26%/1.50% |
| 29 | +[09] | | | | | | | | | unspecified(40401/201) - 75.91%/1.14% |
| 30 | +[09] | | | | | | | | | randomTick(53064/264) - 24.09%/0.36% |
| 31 | +[10] | | | | | | | | | | #getChunkCacheMiss 43/0 |
| 32 | +[10] | | | | | | | | | | #getChunk 882/4 |
| 33 | +[10] | | | | | | | | | | unspecified(53064/264) - 92.69%/0.34% |
| 34 | +[10] | | | | | | | | | | no_random_tick_check_blocks(5231/26) - 7.31%/0.03% |
| 35 | +``` |
| 36 | + |
| 37 | +Consider +-1% as error |
| 38 | + |
| 39 | +| Vanilla | Mod | Difference | |
| 40 | +| ------------- |:-------------:| -----:| |
| 41 | +| tickBlocks(40401/201) - 64.88%/5.94% | tickBlocks(40401/201) - 40.26%/1.50% | +4.44% | |
| 42 | +| randomTick(53667/267) - 72.67%/4.32% | randomTick(53064/264) - 24.09%/0.36% | +3.96% | |
| 43 | +| no_random_tick_check_blocks(6428/32) - 0.74%/0.03% | no_random_tick_check_blocks(5231/26) - 7.31%/0.03% | no change | |
| 44 | + |
| 45 | +#### Ticks |
| 46 | +This territory is full of surprizes. Some blocks may be unaffected at all while others may stop working or only half of the functionality may be gone. E.g. minecraft:fire, if you ban it from ticking the only thing that will happen is it won't destroy block (if set on wood for example) and extinguish. So, basically behaves like on netherrack. |
| 47 | +Furnaces don't give a shit. So, unless you know how a block works or ready for a long process of trail & error, I recommend to avoid this feature. |
| 48 | + |
| 49 | +#### Fluids |
| 50 | +I couldn't prevent them from ticking because they have a very specific logic tied to this method which is unique to every liquid. So, if you prevent it from happening the game crashes. |
| 51 | +If you know how to do that, please tell me. |
| 52 | + |
| 53 | +## Usage |
| 54 | +The way I see it, this mod may help you: |
| 55 | +- Squeeze some performance if you are in a really tight spot. This is for a server, remember, this mod helps the server way more than to a client. |
| 56 | +- Prevent some mechanics from happening while leaving the block. |
| 57 | +- Debugging |
| 58 | + |
| 59 | + |
0 commit comments