Command System Overview
ArcBot uses slash commands (commands prefixed with /) that are natively integrated with the Discord interface. Commands appear in the menu after typing / in the message field.
Per-guild Synchronization
ArcBot does not register commands globally. Instead, it synchronizes commands separately for each server based on enabled cogs:
Cog enabled
When a cog is enabled in the dashboard → config polling (every 5 seconds) detects the change
Command sync
The bot automatically calls _sync_guild_commands for the given server
Commands appear
Commands from the enabled cog immediately appear in the slash commands menu. Commands from a disabled cog immediately disappear.
Per-server Commands
This means each server sees only those commands whose cogs have been activated. There are no unnecessary commands cluttering the menu.
Permission Structure
ArcBot commands use several permission levels:
| Level | Description |
|---|---|
| Everyone | Any server user |
| Moderation Roles | Roles configured in cog_settings.moderation.moderation_roles |
| Custom Roles | Specific roles configured per-cog (e.g., create_roles for polls) |
| Administrator | Required Discord ADMINISTRATOR permission |
| Alliance R4/R5 | Rank in the alliance system |
Command Groups
Some commands are grouped under a single prefix:
/role add,/role remove— role management (moderation)/lockdown,/unlock— channel lockdown (moderation)/alliance create,/alliance invite, etc. — alliance system/president appoint,/president remove, etc. — president system/armory assign,/armory clear— armory rotation/embed send,/embed list— message builder/event schedule,/event list,/event cancel— scheduled events/duel send,/duel preview— duel reminders/ticket close,/ticket add,/ticket remove,/ticket panel— support tickets/apc,/apc-remove— APC ranking system
Context Menus
In addition to slash commands, the Translation cog adds two context menus (right-click on a message):
- Translate Message — translates message text
- Translate Voice — transcribes audio and translates
Error Behavior
All commands respond ephemeral (visible only to the user):
- Missing permissions → access denied message
- Role hierarchy error → information about insufficient position
- Missing configuration → instruction to configure in dashboard
- Database / API error → generic message asking to try again
Limits
| Parameter | Limit |
|---|---|
| Reason | max 512 characters |
| Mute duration | 1–40320 minutes (28 days) |
| Clear messages | 1–100 messages |
| Poll options | 2–10 options |
| Poll question | max 256 characters |
| Suggestion content | max 2000 characters |
| Alliance name | 2–32 characters (alphanumeric, spaces, hyphens) |
| Alliance tag | 1–5 characters (alphanumeric) |
| Nickname | 1–32 characters |
Command Modules
Moderation
12 commands — ban, kick, mute, warn, clear, lockdown, and more
Alliances
10 commands — create, invite, kick, promote, demote, transfer
Presidents
5 commands — appoint, remove, decree, info, history
Armory
2 commands — assign and clear armory slots
APC Rankings
2 commands — submit APC strength and remove entries
Polls
2 commands — create polls with buttons and timers
Suggestions
1 command — community suggestion system with voting
Message Builder
2 commands — send and list embed templates
Translation
2 commands + 2 context menus — DeepL translation and Whisper transcription
Schedule Events
3 commands — schedule, list, and cancel events
Duel Reminder
2 commands — daily duel strategy reminders
Tickets
4 commands — support ticket system with panels