Shroud
Premium
This is part of ScriptedEssentials Premium. See what's in each edition.
Shroud hides what your builds actually look like from players you don't trust. Turn it on and anyone untrusted sees the terrain around them masked out, for their whole render distance, while trusted players and ops see the real world as normal.
What it hides
Solid blocks get replaced with stone, including reshaping slabs, stairs and walls into their stone equivalents so the terrain still looks solid. Grass and ferns are hidden entirely. A long list of things are kept visible as themselves so builds stay functional and readable: rails, signs, doors, fences, carpets, candles, buttons, water, lava, glass, redstone components, storage blocks, lanterns and a handful of other functional or decorative blocks. The full keep and hide lists are in settings/shroud.yml if you want to tune them.
Untrusted players can still break and place blocks. If you don't want that, put them in adventure mode or use /build and /break. Hidden blocks still look like stone while they're mined, but softer blocks like dirt, sand and wood break at their real speed. Blocks harder than stone, like ores and deepslate, mine at stone speed and then take a moment longer to actually break. Nothing about the real block is shown, and it only works on the block they're looking at, so it can't be used to see through walls. They can't open or use anything that's hidden, so a masked chest or crafting table stays shut.
Commands
/shroud # open the menu
/shroud toggle [on|off]
/shroud trust <player>
/shroud untrust <player>
/shroud status [player]
/shroud reload/shroud toggle with no argument flips masking on or off. /shroud status with no player shows your own status when run by a player.
Managing Shroud needs the scriptedessentials.shroud permission (or whatever /seperm has that feature set to).
Who sees the real world
Ops, trusted players, and anyone with scriptedessentials.shroud.bypass (or the standalone plugin's old shroud.bypass node) always see the real world, whether masking is on or not.
Settings (settings/shroud.yml)
enabled: false
trusted: []
masking:
keep: []
hide: []enabled is the same thing /shroud toggle flips, kept here so it survives a restart. trusted is a list of player UUIDs managed by /shroud trust and /shroud untrust. masking.keep and masking.hide override the built-in block lists once you fill them in.
Moving from the standalone plugin
If the old standalone Shroud plugin is detected, the built-in one stays off entirely so they don't fight over the same packets. Remove Shroud.jar to use the one built into ScriptedEssentials, which imports the standalone plugin's enabled, trusted and masking settings from its config on first start.