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

πŸ“œ Permissions

Every node starts with polaroidchat.. Nothing is granted by default except the root command itself, so a fresh install gives players nothing until you say otherwise.

A sensible starting set

polaroidchat.menu
polaroidchat.msg
polaroidchat.block
polaroidchat.mention
polaroidchat.colors.hex
polaroidchat.colors.formats
polaroidchat.channel.global
polaroidchat.toggle.all

Wildcards

Every family has one, and there is one for the lot.

polaroidchat.all Β· polaroidchat.admin.all Β· polaroidchat.block.all Β· polaroidchat.colors.all Β· polaroidchat.customcolor.all Β· polaroidchat.history.all Β· polaroidchat.interactive.all Β· polaroidchat.mention.all Β· polaroidchat.msgspy.all Β· polaroidchat.nick.all Β· polaroidchat.tag.all Β· polaroidchat.channel.all Β· polaroidchat.toggle.all

Nicks

NodeGrants
nick.set / nick.resetChanging and clearing your own
nick.set.others / nick.reset.othersDoing it to someone else
nick.cooldown.bypassNever waiting between changes
realnameSeeing who is behind a nick

Colours

NodeGrants
colors.legacyAll sixteen classics
colors.legacy.<code>One of them β€” 0–9, a–f
colors.hexEvery HEX swatch
colors.hex.<key>One swatch, by its key in menus/color_hex.yml
colors.gradient / colors.gradient.<key>The same, for gradients
colors.animate / colors.animate.<key>The same, for animated effects
colors.formatsBold, italic, underline, strikethrough
colors.formats.<style>One of them
customcolor.hexTyping a HEX code of their own
customcolor.gradientTyping a gradient of their own
customcolor.gradient.slots.<n>How many stops it may have β€” 3 to 8
filterThe filter button in the colour menus

Adding a swatch adds its node. Write a new colour into menus/color_hex.yml and polaroidchat.colors.hex.<its key> exists on the next reload. Nothing else to register.

Channels

NodeGrants
channel.<id>Speaking there
channel.<id>.readReading it from another channel
channel.user / channel.user.readPlayer-made channels
channel.closeClosing someone else's channel
channel.spyReading every channel at once
channel.bypassIgnoring a channel's own limits

The four shipped ids are global, world, local and private.

Talking

NodeGrants
msgPrivate messages
msg.bypassReaching someone who turned them off
block / block.othersBlocking, and doing it for someone else
mentionPinging by name
mention.here / mention.everyonePinging a room, or the server
emoji.list Β· sprites Β· keywordsThe three list commands
tag.glyph Β· tag.sprite Β· tag.headWriting those tags in a message
interactive.<keyword>One keyword β€” item, inventory, ender, and yours
interactive.commandsMaking a command clickable
interactive.cooldown.bypassNo wait between keywords
vanish.bypassFinding a player another plugin is hiding

Staff

NodeGrants
admin / admin.reloadAdministration, and reloading
msgspy / msgspy.othersReading private messages
clearchatClearing chat
clearchat.exemptNot being cleared

Tiers: granting an amount, not a yes

Four settings are not on-or-off but how many, and each is a small table in the config where every key you write becomes a permission.

history:
  nick:
    stack: false
    default: 3
    vip: 5
    mvp: 10

That grants three slots to everyone, five to whoever holds polaroidchat.history.nick.slots.vip, and ten for .mvp. The names are yours β€” write patron: 7 and polaroidchat.history.nick.slots.patron exists.

  • default is the floor and needs no permission.
  • stack: false gives the largest tier a player holds.
  • stack: true adds every tier they hold on top of the default.

It works the same for history.color_nick, history.color_chat, history.blocklist, nick.cooldowns (where the lowest wins, since it is a wait), and user_channels.slots.create / .join / .members in channels.yml.