sculk-ban
SculkBan. (seemingly) the first of its kind
Introduction
If your anything like me you hate the existence of sculk blocks and since Mojang hasn't realized what a terrible idea it was to add, I have decided to take matters into my own hands, so that is why I created this data pack that bans sculk (In many ways) to ensure you won't have to deal with it again. And can still get advancements that would normally be made impossible
Disclaimer
I don't take any responsibility for any damage caused to any worlds, servers, or more by this data pack, always make a backup when installing data packs on worlds you care about. Also my pack is not intended to be used in modded environments such as modded servers (Like spigot or paper), other data packs, and mods, while not specifically intended it does work with certain performance mods like Sodium, Lithium, etc.
How it works
It starts by removing any sculk related blocks (Sculk, Sculk sensor, Sculk catalyst, Sculk Shrieker, Sculk Vein, Calibrated Sculk Sensor) within a 100x100 area at all y-levels around every player. It checks every tick (20 times per second).
It also clears all Sculk related blocks from every players inventories
How it accounts for impossible advancements
There are 3 advancements that would normally be made impossible be these changes:
- Sneak 100
- It Spreads
- How Did We Get Here
To account for the first 2 (Sneak 100 and It Spreads) I just have it give the 2 advancements to players when they first join (It shows up in chat but other than that it is mostly silent when it happens) To account for How Did We Get Here I wanted to keep the challenge of getting it, so instead of giving to players for free I instead added a way to get the darkness effect: a potion. To make the potion you need 5 echo shards, place the echo shards in a plus shape on a crafting table.
I know this is a terrible solution to the problem but until Mojang allows making brewing recipes (or better yet, custom commands) with data packs this is the best I can do right now
A note about maintaining
When new Minecraft updates come out I will try to make new version of my data pack for the new version, but this means that revisions of my data pack will only be released for the latest version. If you want (and know what you are doing) you can modify the pack.mcmeta file to make it work in older versions but newer updates to data pack format may make it incompatible with older versions (e.g. 1.21 changed a few folder names and therefore it is incompatible and the pack won't work in versions prior without further modification). I won't make any list of incompatible versions nor will I make the pack for older versions
One more technical detail in case you want to make a data pack work with this one
IF YOU DON'T KNOW A LOT ABOUT DATA PACKS THIS WILL MAKE NO SENSE The way in which I filter for Sculk blocks is though a block and item tag: #minecraft:sculk That means that if you add more Sculk blocks in your data pack you can add your own "sculk" tag with your new Sculk block and item IDs and and its Sculk blocks will get removed by this one. I won't verify for you if your implementation works, you will have to test your pack
