Content generated with AI — it may contain mistakes.

Reference

Commands

Every command the plugin registers: the player command, the four shortcuts, the admin command and the chat module's own.

Commands are registered with Lamp, so every argument is tab-completed and a wrong one is refused before anything runs. Two conventions hold everywhere:

  • <key> is always a cosmetic written as type:id — tag:mvp, chat_color:aurora, customtag:42. It is tab-completed against what the player asking can actually see.
  • <player> on an admin command accepts somebody offline, as long as they have played on this server before. A name nobody has ever joined with is refused rather than turned into a fresh offline uuid nobody will ever read.

The player command

/chatcosmetics, /cosmetics and /cc are the same command. All of it is behind exyliachatcosmetics.command.cosmetics, which is declared default: true, so everybody has it on a fresh install.

Everything here is also a click in a menu. The commands exist for players who would rather type, and for the servers that put them on a sign or a button.

Screens

CommandOpens
/ccthe main menu
/cc tagsthe tag browser
/cc customtagsthe browser of tags players wrote for themselves
/cc nicknick colours
/cc rankrank colours
/cc colorschat colours
/cc shadowsshadow colours
/cc customcolorsthe browser of custom chat colours
/cc fontsfonts
/cc modifiersmodifiers
/cc favoriteseverything they starred, across every type
/cc loadoutsthe loadout menu

Wearing

CommandDoes
/cc equip <key>wears it. A modifier already worn comes off instead — modifiers stack, so equipping one twice toggles it. Every other type holds one thing at a time, so a new one replaces the old.
/cc unequip <type>takes off everything of that type
/cc favorite <key>stars it, or unstars it if it was starred
/cc preview [message]draws the player's own chat line in chat. Without a message it uses menu.sample-message.
/cc tokenswhat they have left to make and to change, per type

Loadouts

CommandDoes
/cc loadout save <name>saves what is worn now; a loadout of that name is overwritten
/cc loadout load <name>wears it again; anything no longer owned is skipped
/cc loadout delete <name>
/cc loadout listevery loadout with what it holds

Making things

CommandDoes
/cc customtag create <text> [color]writes a custom tag; spends a create token and obeys the text rules in custom-tags
/cc customtag deletedeletes every custom tag that player made
/cc customcolor create <spec>mixes a chat colour: #hex, or #a:#b and #a:#b:#c for a gradient
/cc customnick create <spec>the same, for the name
/cc customrank create <spec>the same, for the rank prefix and suffix
/cc customcolor delete <id> · customnick delete <id> · customrank delete <id>deletes one by its id; no token comes back
Deleting gives nothing back

A create token is spent when the cosmetic is written, not held against it. Deleting one frees the slot in the menu and nothing else, which is what stops a player making and unmaking for ever on a single purchase. See Tokens.

The four shortcuts

Four top-level commands open a screen directly, one word each, because a player who knows what they want should not have to remember which plugin owns it. They carry the same exyliachatcosmetics.command.cosmetics permission as /cc.

CommandOpens
/tagsthe tag browser — the same screen as /cc tags
/nickcolorsnick colours
/rankcolorsrank colours
/chatcolorsthe message screen, not a browser: chat colour is one of several things it holds, alongside the shadow, the font and the modifiers

The admin command

/chatcosmeticsadmin, /exyliachat and /cca are the same command, behind exyliachatcosmetics.admin (default: op).

Grants

CommandDoes
/cca give <player> <key> [duration] [--source <name>] [--ref <id>] [--note <text>]adds a grant. No duration means permanent. The default source is ADMIN; --source accepts PURCHASE, REWARD, EVENT, ACHIEVEMENT and EXTERNAL, and anything it does not recognise is stored as EXTERNAL rather than refused.
/cca remove <player> <key> [source]revokes every active grant of that cosmetic, or only the ones from that source
/cca revoke <id>revokes one grant by the row id list prints
/cca list <player>every active grant, with its id, its source and the time left
/cca check <player> <key>whether they own it, and until when

Durations are ExyliaLib's: 30m, 2h, 14d, 1w, decimals allowed.

What a player wears

CommandDoes
/cca equip <player> <key>puts it on somebody online. They must already own it — this is not a grant.
/cca unequip <player> <type>takes off everything of that type
/cca clear <player>takes everything off

What a player made

CommandDoes
/cca customtag set <player> <text> [color]writes a custom tag for them. Spends no token, still obeys the text rules.
/cca customtag clear <player>deletes every custom tag of theirs
/cca customcolor clear <player> · customnick clear · customrank clearthe same, per kind of custom colour
/cca loadouts clear <player>deletes every loadout of theirs

Tokens

CommandDoes
/cca tokens give <player> <type> <create|edit> <amount>adds to a balance. The target may be offline: a balance is a row of its own and waits for them, the same way a grant does.
/cca tokens take <player> <type> <create|edit> <amount>takes from it, never below zero
/cca tokens set <player> <type> <create|edit> <amount>sets it outright
/cca tokens check <player>every balance they hold, by type

<type> here is one of the types a player can write for themselves — customtag, customcolor, customnick, customrank. Naming a catalogue type is refused: nothing is made there, so there is nothing a token could pay for. The kind is create or edit.

Looking at somebody

CommandDoes
/cca preview <player> [message]sends you the line that player's chat would draw
/cca render <player>sends you the pieces one at a time: the tag, the name in its colour, and a sample message in their font, modifiers and colour
/cca reloadfive ordered steps, each reported by name

/cca reload runs configs (config.yml and messages.yml), catalogs (cosmetics/*.yml), menus (menus/*.yml), chat (installs or uninstalls the hook, and starts or stops the module to match chat.module.enabled) and hooks, which retries the LuckPerms bridge. That last step is why a reload is the way to pick up a LuckPerms that finished loading after this plugin did: rank colours go from empty to working without a restart.

The menus step also runs on ExyliaLib's own reload. A menu holds the palette it was compiled with, so a recoloured server would otherwise keep the old colours until somebody read the files again.

Reload means this plugin only

/cca reload does not reload ExyliaLib. Recolouring every plugin on the server from colors.yml is what /exylialib reload is for.

The chat module

These answer only while the chat module is running. With it off they say so and change nothing.

CommandDoes
/cca chat line [message]prints your own chat line broken into the stretches that share a hover and a click, to the console and to you. A hover that runs one component too far is visible here instead of being guessed at from a screenshot.
/cca chat reloadre-reads the module's own files under chat/ without touching the cosmetics
/cca chat similar <a> <b>how alike two lines are, as the number the similarity filter compares against its threshold
/cca chat regex <word>the pattern a rule word compiles to, ready to paste into an advanced rule
/cca chat points <player> [set]reads a player's infraction points, or writes a new total
/cca chat announce <id>sends that announcement now; next sends whichever is due

The chat module's own commands

These belong to the module, not to the cosmetics, and each one is registered only while its switch in chat/config.yml → commands is on. All nine ship on. Turning one off does not hide the command behind a permission — it is never registered at all, which is how you keep the /msg your existing plugin owns.

plugins/ExyliaChatCosmetics/chat/config.yml
commands:
  msg: true
  reply: true
  ignore: true
  ignoreall: true
  spymsg: true
  mutechat: true
  clearchat: true
  broadcast: true
  channel: true
CommandPermissionDoes
/msg /tell /w /whisper <player> <message>exyliachatcosmetics.chat.command.msgwhispers
/reply /r <message>…chat.command.replyanswers the last whisper
/ignore <player>…chat.command.ignoretoggles ignoring them; staff cannot be ignored
/ignoreall /msgtoggle /togglemsg…chat.command.ignoreallcloses or opens the inbox
/spymsg /socialspy…chat.command.spymsgreads everybody's whispers
/mutechat…chat.command.mutechatmutes and unmutes the chat
/clearchat…chat.command.clearchatpushes the chat off everybody's screen
/broadcast /bc <message>…chat.command.broadcastone line from the server
/channel /ch <id>…chat.command.channelmoves the player's plain messages to that channel

One more is always registered, with no switch and no permission: /chatcosmeticsrender <id> is what a click on a shown [item] runs. It is not meant to be typed — the id is random, so there is nothing to guess.

Something missing on this page? Tell us on Discord