[Feature] Ability to configure spread distance from source for decay blocks
Linguardium opened this issue · 7 comments
similar to the distance check of leaves, or the distance of water flow, it would be nice to enable a spread distance of decay blocks for servers so that you can set ruin, for example, to only spread 15 blocks from source. I know this would increase blockstate generation significantly...
effectively move FailingBlock's AGE to DecayBlock and provide a config lookup in canSpread?
Could you describe how 'accidental server world destruction' happens or happened, please? I'd like to get some insight in that.
Like, there are multiple warnings and teaching lessons with the previous decay variants beforehand and on the bottle itself. Plus, stuff only spreading when players are around or like placed directly below a 24/7 chunkloaded base. Even in the case of the latter, the only chunks being affected would be the chunkloaded ones while noone was online for multiple hours.
I've added a setting for decay blocks to not spread in claims protected via https://github.com/Patbox/common-protection-api
I appreciate this change, but the underlying issue is not one of claims but of accidental server world destruction. out of control Ruin can effectively ruin a server. I would like a way to be able to limit the possible fallout of those disasters without outright breaking mod progression
Reading is Hard ™️
The issue is a server administration issue rather than a user issue. failing to read documentation for a mod shouldnt create undue headaches for server admins. If the fight is between a mod and a server admin/server health, the mod would just be removed. Ideally, there is configurations to alleviate those server issues when users try to learn mods.
Chunk ticking is processed when a player is "nearby" only in a general sense. It is completely possible to have chunks random ticking far enough away that some players "nearby" may not see it until its too late.
Use-case:
PlayerA and PlayerB are friends and have set up nearby bases in a forest because they like the look of trees.
PlayerA is doing spectrum and trying to rush bedrock armor. Reading is Hard so they have no idea that Ruin will spread indefinitely. PlayerA places ruin on bedrock at the bottom of the world, breaks the bedrock but misses one. PlayerA then goes up to the surface to their base. Ruin continues to random tick deep underground both out and up. As the ruin spreads, it speeds up (more blocks = more chance to random tick a spreader). Eventually PlayerA logs off without realizing they made a problem.
PlayerB is not working on Spectrum and has not reached the point where they can make the bottle that turns ruin to dirt. PlayerB is 6 chunks away from PlayerA's base working on some structure. Due to random rates, PlayerB doesnt see the ruin in their range until it has already nearly consumed a significant underground amount. As the ruin spreads to the surface, it has completely taken over several chunks. Administrators are not available nor is PlayerA. Due to the significant spread, ruin has completely taken over all chunks surrounding the claimed chunk that PlayerB's structure in.
In this situation, you have at least 1 player locked to their claim, the world is basically either broken or dirt in roughly a 5 chunk radius around a player (assuming default random tick range) that wasnt even involved in Spectrum. This gets worse if someone is AFK and nobody notices the issue.
Fallout: server admin either restores from backup, undoing all of PlayerB's work on their structure, or uses decay away and leaves the world with effectively a 11 chunk square/diamond of dirt trees
Reading is Hard™️
Fair argument, ngl. I don't really feel it yet, but leaving this open in case I come up with something that inspires me.
Not a problem, I appreciate you hearing me out. do you mind if i create a companion mod for server owners (or players that dont like having their world destroyed)?