πŸ”₯Join our Discord for support, updates, and custom commissions.
Polaroid Studio Logo
PolaroidSTUDIO
DiscordLog In

🎨 Colours

A player has two things they can colour β€” their nick and their chat β€” and both are set the same way: /chat, pick which one, pick a palette, pick a colour.

The four palettes

PaletteWhat it offersFile
LegacyThe sixteen colours Minecraft has always hadmenus/color_legacy.yml
HEX100 solid colours, plus one they type themselvesmenus/color_hex.yml
Gradients100 blends, plus one they type themselvesmenus/color_gradient.yml
AnimatedEffects a shader pack draws β€” rainbows, pride flagsmenus/color_animate.yml

Adding a colour

Two lines, plus the item it should look like:

  midnight:
    material: BLUE_CONCRETE
    hex: '#191970'
    name: '{COLOR}ᴍΙͺα΄…Ι΄ΙͺΙ’Κœα΄›'
  • The key is the permission. This one answers to polaroidchat.colors.hex.midnight.
  • material is what the player sees on the shelf. Leave it out and the swatch is plain paper.
  • {COLOR} is the colour itself, so the name is written in the very colour it offers.
  • No slot needed. Swatches spread themselves across the menu and page automatically.

A gradient is the same with gradient: '#191970:#4b0082' β€” two stops at least, more if you like.

Deleting a swatch removes it and its permission. Both survive an upgrade: the palettes are yours, not the plugin's.

What a swatch shows

Hovering one shows the colour doing its job rather than its hex code β€” a player colouring chat sees a sample line in that colour, and a player colouring their nick sees their own nick in it. The sample wording is colors.preview.chat in the language file.

Colours players type themselves

The custom field in the HEX and gradient menus lets a player enter their own, gated by polaroidchat.customcolor.hex and .gradient. How many stops a custom gradient may have is a tier: polaroidchat.customcolor.gradient.slots.3 through .8.

Two things are refused:

  • A colour you blacklisted. colors.nick.blacklist_hex and colors.chat.blacklist_hex in config.yml β€” black-on-black chat, say.
  • A colour the menus already offer. Typing #8b0000 is refused because it is Blood, and Blood is reached through the palette, where it has a name, is kept in history, and shows as equipped. This holds whether or not they have Blood's permission.

That second rule is what protects the animated effects: their values look like ordinary colours, so without it a player could type one and walk off with an effect they were never granted.

The animated palette

These are not colours a player picks β€” each hex is a key a shader resource pack watches for, and the pack decides what happens. Eleven ship: two rainbows and nine pride flags.

It is off by default (colors.animate.enabled in config.yml), because without the pack a player picks an effect and sees a flat, almost-white colour. Turning it off hides the category everywhere.

Do not change the hex values. They are the contract with the pack. The names, items and slots are yours.

Formats

Bold, italic, underline and strikethrough sit at the bottom of every colour menu and stack with whatever colour is chosen. One permission each, under polaroidchat.colors.formats.

History

Every colour and nick a player wears is kept, so they can put it back on later. Left-click an entry to reapply, right-click to forget it.

How many they keep is a tier β€” history.nick, history.color_nick and history.color_chat in config.yml.

Nick rules

All in config.yml under nick:

SettingDecides
min_length / max_lengthHow long it may be
allowed_patternWhich characters are allowed, as a regular expression
blacklistNames nobody may wear, whatever the capitalisation
cooldownsSeconds between changes, per rank

cooldowns is a tier table where the lowest value a player holds wins β€” it is a wait, so holding more ranks should mean waiting less. polaroidchat.nick.cooldown.bypass skips it.