[Question/Request] why is scaffoldingDistance limited to 7?
supersaiyansubtlety opened this issue ยท 7 comments
I'd love to increase scaffolding's distance beyond 7.
Why is this setting currently so limited?
FWIW:
I just released a server side mod that lets you extend scaffolding up to 63 blocks out.
It uses a library to make modifying block states safe and serverside though, so prob not a solution that would be incorporated into carpet (extra) [but feel free to if you like].
Mod:
IIRC, because it caused issues with vanilla clients, and Carpet servers are compatible with them (it started being unlimited, but had to be changed).
Found it, commit c1db008
I agree, it doesn't really make much sense to make it lower, but it allowed to at least keep the rule and prevent it being completely lost.
Hm, ok, thanks for the explanation.
I remember hearing about a carpet-client mod that was in development. Would that allow this rule to have values greater than 7 again?
If not I think I'll release a tiny mod that just adds the old functionality back but is required on client and server.
I'd keep it open, the problem was probably due to the implementation that was used, not really because it being impossible to make it compatible with vanilla clients.
The commit actually says "for now", so it probably could be resurrected at some point, or maybe at a PR (though it doesn't seem a priority right now).
By a quick look at it, I'd say the problem was that since the code in that moment basically changed the block states of scaffolding to have many more (and block states are, IIRC, like an enum in essence), when sending those to a vanilla client, well, it would not be able to handle it. And if you put a world with one of those scaffoldings in a vanilla server, well, I guess then the whole server would crash due to invalid data, since it would expect it to be <= 7. Probably could be made compatible by instead rechecking the actual distance while keeping the blockstates up to the limit of 7 or something similar.
It wouldn't have crashed Carpet (extra) clients, since Carpet has a protocol to sync the rules with them (Carpet client is a bit obsolete, most useful things are already in base Carpet (the sync protocol basically), only thing that's missing is, I guess, the rule GUI), so they would know what's going on, but the nature of Carpet is to at least not crash vanilla clients, something not fully working is actually accepted (e.g. shulker boxes always stack requires Carpet extra or Tweakeroo's equivalent tweak to work on clients, accurate block placement needs Tweakeroo).
Mk, reopening.
For now I've made a simple mod (mostly complete) that does what carpet does now but allows values up to 64 and is required on the client.
I'm in the process of making a PR for carpet-extra that will make its scaffolding mixins not required so that it won't crash the game when my mod's present.
Created PR 189
changing the vanilla block property will cause clients to freekout as well as world to be potentially corrupted when loading in vanilla, therefore violating carpet ethos, for a really not that big of a deal. These are the cases where what should really happen is mod X should iplement a new block, modx:scaffolding which is a copy of the vanilla, just with different properties.