Deepslate Studios
SlateChat

Permissions

Every permission node SlateChat checks, in one place.


The canonical list — every other page links back here instead of repeating it. Grouped by what they gate, not by which command/tag happens to check them.

Chat color & formatting

PermissionGrants
chat.coloredColors, HEX, gradient, rainbow, shadow, transition, pride, and <reset> — both MineDown args and raw MiniMessage tags typed directly in chat. Without it, all of the above are stripped from what a player types. <reset> is included because it can wipe the channel's own established color, not just the player's.
chat.cosmeticThe key, insert, font, lang/lang_or, head, and sprite advanced tags — no server-state risk, just not everyday syntax. head/sprite also need Paper 1.21.10+ regardless of permission — see the note on that page.
chat.advancedThe selector, score, and nbt advanced tags — these read live server state, so this node is OP-only by default (not declared in plugin.yml, same as chat.reload/chat.update below). Grant deliberately. Resolving to actual values (not just the raw pattern) also needs Paper 1.21.4+ — see the note on that page.
chat.hover.bypassCustom hover text on MineDown links/commands. Without it, hover shows the link/command itself automatically.
chat.setcolorUsing /chatcolor at all, including clearing. Still needs chat.colored to set an actual color, not just clear one.

Commands

PermissionGrants
chat.reloadRunning /slatechat reload. Not declared in plugin.yml — OP-only by default.
chat.updateGetting notified in chat on join if a newer version is out (console is always notified regardless). Not declared in plugin.yml — OP-only by default.

Tell & socialspy

PermissionGrants
chat.tellUsing /tell//msg//w//r at all — only checked if restrict: true in tell.yml (open to everyone by default).
chat.tell.spyUsing /socialspy to watch other players' tells.
chat.tell.spy.bypassThis player's tells never show up to anyone with /socialspy on — full invisibility, not just a redacted line. Still always logged to console/log regardless.
chat.tell.vanish.bypassCan /tell (and see in tab-complete) a player they can't otherwise see (vanished by another plugin). Without it, a vanished target is indistinguishable from offline.

Join & quit

PermissionGrants
chat.join.bypassNo join/quit/first-join message at all for this player, in either direction. Meant for staff — covers vanished admins too, without needing to detect any particular vanish plugin's own state.

Channels & misc

PermissionGrants
chat.localSpeaking in the default local channel (only enforced if it's restrict: true)
chat.globalSpeaking in the default global channel (only enforced if it's restrict: true)
customWhatever permission node you set on a custom restrict: true channel
chat.count.bypassExcluded from the actionbar read-receipt count — useful for vanished admins

OP-only by default, on purpose

SlateChat's plugin.yml doesn't declare a permissions: block. On Bukkit, an undeclared permission node falls back to OP-only until a permission plugin (LuckPerms, etc.) explicitly grants it — that's every node above except the channel ones, which channel authors opt into via restrict + permission in channels.yml.

On this page