Skip to main content
A variable is {object.property}. When the script runs, it’s swapped for the real value.
Which variables exist depends on where the script runs. A welcome message knows about the member who joined; a ticket message knows about the ticket. The common ones below are available almost everywhere.
If a variable doesn’t exist in the current context, it’s left in the output as literal text. Seeing {user.rank} in your message means that variable isn’t available there — not that it’s spelled wrong.

Member

{user} on its own renders as a mention.
user, member, author, u and m are interchangeable. {member.name} and {u.name} are the same as {user.name} — use whichever reads better to you.

Server

Aliases: guild, server, sv, g, s. {server.name} works.

Channel

Aliases: channel, ch, c.

Context-specific variables

Available in !level message:
Available in !invoke responses, which override what moderation commands reply with:
!invoke variables lists them in Discord.
Available in ticket option messages:{case}, {panel}, {option}, {creator}, {claimer}, {reason}, plus {user} for whoever triggered the action.
In !vanity message and !tag message, {user} is the member who was awarded a role and {role} is the role they got.
Counter channel names use a different, flatter variable set — no user. or guild. prefix. {members}, {boosters}, {online}, {messages_today}, {voice_week} and so on. See Counters for the full list, or run !counter variables.
!voicemaster default name accepts {user.name}, and defaults to something like {user.name}'s channel.

Timestamps

Any date variable renders as a raw Unix timestamp, which means you can drop it straight into Discord’s timestamp markdown:
Renders as account made 3 years ago. The format letters are Discord’s own: Add .iso to get an ISO 8601 string instead — {user.created_at.iso}.

Finding what’s available

Most modules have a variables subcommand that lists exactly what that context supports:
Variables compose with operators. {guild.members|comma} gives 1,247, {user.name|upper} shouts, and {if: {user.bot}==True && beep boop && welcome} branches on a value.