Jail
Strips a member down to one role - the jail role - which is only allowed to see a single channel, and keeps their original roles safe to restore later.
Setup
$jailconfig
Also $jailsetup, /jail config. Opens a panel with two buttons: Set
Jail Role and Set Jail Channel. There's no separate on/off toggle - once
both are set, jailing works immediately.
Channel permissions stay in sync automatically from then on: the jail role gets View Channel + Send Messages in the jail channel only, and View Channel denied everywhere else - including any new channel created afterward. A Force Sync Perms button on the same panel re-checks every channel on demand, for if something's drifted (a channel's perms edited by hand, etc).
Jail message
The same $jailconfig panel also has Jail Message: On/Off,
Set Jail Message, and Preview Jail Message buttons. The message
posts in the jail channel every time someone's jailed. Default is
{user}, you have been jailed - {user} mentions the member who was just
jailed. Preview renders it exactly as it would send (script or plain) and shows it to only you -
no real jail action happens, and {actor}/{reason} use placeholder values
since there's no real jail event to preview against.
The jail message can be a full script instead (start it with
{embed}$v) - see the Scripting page's extra
variables section for {actor.mention} (who did the jailing) and {reason},
on top of the normal {user.*} variables for the member being jailed.
$jailconfig setmsg [message] (prefix only) sets it directly without opening the panel -
omit the message to view the current one; $jailconfig preview posts a button that shows
it privately, same as the panel's own Preview button.
Jailing a member
$jail <@member> [reason]
Also /jail add. Backs up the member's current roles, then replaces all of them with
just the jail role. You can't jail someone already jailed, yourself, Pixie itself, or a member
whose top role is equal to or higher than yours (server owner is exempt from that last check).
Pixie's own role also has to sit above both the target's original highest role and the jail role
itself, or it can't make the change.
If a jailed member leaves and rejoins, the jail role is automatically re-applied on rejoin - it isn't a way to escape jail.
Releasing a member
$unjail <@member> [reason]
$unjail all [reason]
Also /jail remove (single member) and /jail removeall (bulk - a separate
slash command rather than an all argument). Restores each member's exact original
roles from backup. A member is skipped during bulk unjail if restoring them would give back a role
higher than your own.
Who's currently jailed
$jailed
Also /jail list. Same permission as jailing/unjailing.