How to create, manage, and configure Tags and SlashTags in your server
Classic Tags are triggered by a prefix followed by the tag name.
Create them with the tag command.
Creates a new tag with the given name. The content supports the full TagScript language.
Replaces the content of an existing tag you own.
Shows the tag's author, creation date, and use count.
Runs the tag and shows parsed output and any errors — useful before deploying.
Creates an alternative name that points to an existing tag's content.
Restrict who can run a tag from within the tag itself using
require and blacklist:
[p]tag debug <name> to inspect parsed
output
{ braces — every
{ needs a matching }
Missing parameter:
Unmatched braces:
SlashTags are registered as Discord slash commands
(/name). They support optional typed arguments
(options) and context-menu commands.
/ in any channel
to see registered slash commands.
Registers a new slash command with the given name and TagScript content.
SlashTags don't use {args}. Instead, you define named
typed options that Discord presents to the user when they type the
slash command. Each option becomes a variable with the same name
inside your TagScript.
Option types: string, integer,
number, boolean, user,
channel, role, mentionable,
attachment
reason, access it in
TagScript as {reason}. For a user-type
option named member, use {member(name)},
{member(id)}, etc.
You can restrict which roles or channels can use a slash command
through Discord's own
Server Settings → Integrations → Axion menu. This
is separate from TagScript's {require} and
{blacklist} blocks, which act as a second layer of
control.
These blocks only work inside SlashTags. For details and examples, see Parsing Blocks.
{hide} / {hidden} — send an ephemeral
(private) response
{reply} / {respond} — reply directly to
the interaction
{#:…} / {comment(…)} /
{//} — inline comments, stripped from output
{delete}, {silent}, and
{reactu} are Tags-only and will be ignored inside
SlashTags.
- or _)
/ and refreshing Discord if it doesn't
appear
{option_name} not
{args} for slash inputs
{hide} and {reply} blocks only work
in SlashTags
{#:…}) are stripped at runtime — they won't
appear in output