Deepslate Studios
SlateChat

Commands

Every command SlateChat registers, and which permission each one needs.


No built-in aliases

Server aliases are already configurable per-server, so SlateChat ships with just the plain command name — set your own alias on top if you want one.

/ch <channel>

Switches the sender's default channel to <channel>, matched against a channel's name or its command (so /ch g and /ch global both work if that's how global is set up). Tab-completes to the channels the sender is allowed to use.

Permission
The channel's own permission, only checked if that channel has restrict: true

/chatcolor [color\|clear]

Sets the sender's personal chat color, used to render %chat_color% in channel formats. Accepts a 6-digit hex code (#4DC3FF), a legacy color code (&c), or a MiniMessage color tag (<red>, <#4dc3ff>) — solid colors only, no gradients/rainbow. Either hex form only works while enable_rgb is on in color.yml. Passing one of the configured clear_keywords (clear, remove, reset by default) removes it instead.

With no argument, opens a GUI instead of printing a usage message: the 16 standard colors as dyed leather chestplates, a reset button, and a book that opens an anvil-based hex picker with a live color preview as you type. See color.yml for the menu's own text.

Permission
chat.setcolor to use the command at all, chat.colored to set an actual color

Console can't run this command — it's player-only.

/tell <player> <message> (aliases: /msg, /w)

Sends a private message straight to another player — not tied to any channel. The recipient sees a clickable [reply] next to it by default (configurable in tell.yml). Tab-completing the target filters out anyone the sender can't see (vanished by another plugin); typing a vanished player's exact name by hand is blocked the same way — indistinguishable from them being offline — unless the sender has chat.tell.vanish.bypass.

Permission
chat.tell, only checked if restrict: true in tell.yml (open by default)

Console can't run this command — it's player-only.

/r <message>

Replies to whoever the sender last exchanged a /tell with — either side of a conversation can /r back. Same permission and restrictions as /tell.

/socialspy

Toggles whether the sender sees other players' /tell traffic. Persists per-player across relogin/restart. Never shows a tell where either participant has chat.tell.spy.bypass — full invisibility, not a redacted line — though it's still always logged to console.

Permission
chat.tell.spy

Console can't run this command — it's player-only.

/slatechat

With no arguments, prints the running SlateChat version. /slatechat reload reloads the base config, channels, and every enabled module (chat color, focus, filter, DiscordSRV/ItemsAdder detection) without a server restart. /slatechat update checks GitLab for a newer release right now and reports straight back to whoever ran it — works from console too. /slatechat wiki links to this documentation (wiki_url in config.yml, editable) — open to everyone, no permission required.

SubcommandPermission
reloadchat.reload
updatechat.update
wiki(none)

Channel permissions

Channels only enforce a permission check when restrict: true is set on that channel in channels.yml — an unrestricted channel is open to everyone. The built-in channels ship as:

ChannelPermissionRestricted by default
localchat.localNo
globalchat.globalNo

Give a channel restrict: true and its permission node to gate it behind a rank.

Every permission node

The commands and channels above only cover a handful of permissions — see the dedicated Permissions page for the full list, including the ones formatting/color tags check.

On this page