Skip to content

Custom Commands ​

Build your own commands without writing code. Pick a trigger, write a reply, and fill it with dynamic variables for the user, server and channel.

Overview ​

Custom commands are created and managed entirely from the dashboard: open your server, then Custom Commands in the sidebar. Every command has a trigger (what activates it) and a response: a message sent back when the command triggers. Responses support all template variables, which makes them perfect for FAQs, links, welcome messages and quick info commands.

  • Six trigger types: command, exact match, contains, regex, member joins and member leaves
  • Groups that share role and channel restrictions
  • Cooldowns scoped per user, channel or server
  • Enable / disable commands without deleting them

Creating a Command ​

  1. Open the Custom Commands page In your server dashboard, click Custom Commands, then New Command.
  2. Set the trigger Give the command a name/trigger and pick a trigger type. Optionally make it case-sensitive.
  3. Write the response Type the message Natsumi should send. Use template variables to fill in details when it runs.
  4. Save and test Save the command and trigger it in your server. Changes apply instantly, no restart needed.

Trigger Types ​

TypeFires When
CommandThe message starts with the bot prefix + trigger (e.g. !hello)
Exact MatchThe whole message equals the trigger text exactly
ContainsThe trigger text appears anywhere in the message
RegexThe message matches your regular expression pattern
Member JoinsSomeone joins the server. There is no trigger text: you pick where its message goes instead
Member LeavesSomeone leaves the server, same as above

Join and leave commands

These can post in a channel, send the member a DM, or both. {{user}} is the member who joined or left. A DM to someone who has left only arrives while they still share another server with Natsumi.

Careful with "Contains" and "Regex"

These can fire on normal conversation. Combine them with a cooldown or a channel restriction to limit where they respond.

Template Variables ​

Variables use double curly braces and are replaced when the command runs.

User ​

VariableOutput
{{user}}Mentions the user (@Username)
{{user.id}}The user's Discord ID
{{user.username}}Username as plain text
{{user.displayname}}Server display name (nickname if set)
{{user.avatar}}URL of the user's avatar image

Server ​

VariableOutput
{{server}}Server name
{{server.id}}Server ID
{{server.membercount}}Current member count
{{server.icon}}URL of the server icon

Channel ​

VariableOutput
{{channel}}Mentions the channel (#channel)
{{channel.id}}Channel ID
{{channel.name}}Channel name as plain text

Arguments ​

Arguments are the words a user types after the trigger. For example, in !say hello world, the arguments are "hello world". Join and leave commands have no message, so their arguments are always empty.

VariableOutput
{{args}}Everything after the trigger
{{args.0}}The first argument (then {{args.1}}, {{args.2}}…)

Example

<code v-pre>Hey {{user}}, welcome to {{server}}! We're now {{server.membercount}} members strong.</code>

Cooldowns ​

Prevent spam by setting a cooldown in seconds (0 = none). The scope decides who shares the timer:

ScopeBehavior
Per UserEach member has their own cooldown
Per ChannelOne timer per channel, shared by everyone in it
Per ServerOne global timer for the whole server

Examples ​

1. Simple FAQ ​

Trigger type Command, trigger ip:

<code v-pre>Our Minecraft server IP is **play.example.com**. See you there, {{user.displayname}}!</code>

2. Say Command ​

Trigger type Command, trigger say:

<code v-pre>{{user.displayname}} says: {{args}}</code>

3. Welcome Message ​

Trigger type Member Joins, sent to your welcome channel:

<code v-pre>Welcome {{user}}! You are member number {{server.membercount}} of {{server}}.</code>

Limits & Tips ​

LimitValue
TriggersCommands only fire for humans; bot messages are ignored
MatchesOne message fires at most three commands, even when more triggers match
Contains / Exact / RegexThese always have at least a one second cooldown, because they fire on ordinary conversation

Documentation for Natsumi.