/setup command directly on Discord.
01 🚀 Getting started
To add Armquad to your Discord server, you need to be an administrator
of the server (at least the Manage Server permission).
Recommended permissions
- Official invite link (recommended) — it only requests the permissions Armquad actually needs. Administrator is not necessary.
- Granular (even stricter) — grant at least:
Manage Roles,Manage Channels,Manage Messages,Ban Members,Kick Members,Timeout members,Read message history,View audit log.
Armquad must be placed above
of any roles it needs to manage (sanctions, autorole, etc.). Otherwise Discord will refuse the action.
First-time setup
- On Discord: type
/setup— a wizard guides you step by step (native Selects). - On the web: sign in to the dashboard with your Discord account, pick your server, turn on the modules.
02 ⚖️ Moderation
The full modern moderation toolkit, with persistent history and Discord logs.
Every sanction is recorded in the database and visible via /modpanel.
Commands
/warn <member> <reason>— Recorded warn + DM notification to the member./mute <member> <duration> [reason]— Native Discord timeout (formats:10m,2h,7d,permanent)./unmute <member>— Immediately lifts the timeout./kick <member> [reason]— Kicks the member (can come back on invite)./ban <member> [reason]— Bans permanently./unban <user_id>— Unbans, with autocomplete of the ban list./purge <amount> [filtres]— Purges messages (filters: by member, containing text, bots only, humans only)./lock [channel]//unlock [channel]— Locks or unlocks a channel (removes/restores send permission for @everyone)./modpanel <member>— Full panel: sanction history + one-click action buttons (warn/mute/kick/ban). Also accessible via right-click on a member → Applications → « Moderation panel »./search <text> [member] [channel]— Searches messages across the whole server (moderation only, private reply).- Right-click on a message → Applications → « Report to moderators » — any member can report a message, forwarded to the logs channel.
Native Discord AutoMod
Configured from the dashboard → Moderation. Three native Discord protections:
- Anti-spam — detects flooding automatically.
- Anti-mention spam — blocks mass pings (configurable limit).
- Banned words — Discord preset or custom list.
Custom anti-spam (on top of AutoMod)
A bot-side listener that analyzes every text message. Independent from native AutoMod: both can be enabled at once. Configurable from the dashboard → Anti-spam (off by default).
- 7 rules detected : flooding (N messages in X s), excessive mentions, emoji spam, caps lock, duplicates, Discord invites, external links (optional).
- Escalating actions based on the number of violations over 24h: delete → warn → mute → kick → ban.
- Bypass : permission
manage_messages+ configurable exempt roles. - Logs : each trigger can be logged to a channel.
03 📈 Levels & XP
A complete, configurable XP system. Encourages activity in your community with rewards (sometimes absurd ones) at every tier.
Commands
/level [member]— Shows the level (reply ephemeral by default)./leaderboard— Leaderboard of the most active members, with navigable pages. A 🔍 Search (or/leaderboard member:@X) shows a specific member's rank — private reply, only visible to you.
Members who left the server do not appear in the leaderboard. Their XP is kept — if they come back, they get their place back. This filter can be turned off in the dashboard, Levels section, if you prefer the old display.
Configuration (dashboard)
- XP per message text XP (with configurable anti-spam cooldown).
- XP per voice minute (active presence in voice).
- Ignored channels (the spam, bots, etc.).
- Mode : text only / voice only / both.
- Absurd rewards per tier — bot-generated phrases.
- Level-up announcement style : classic text embed or image card (avatar, level, reward, accent color).
- Image card theme : 4 background styles (Halo, Night, Aurora, Dusk), confetti on/off, a dedicated level-up color — also applies to the welcome card.
- Personal color : each member picks the color of
their own card via the 🎨 button under
/level. - Privacy : the 🙈 button under
/levelremoves the member from the leaderboard and stops their level-ups being announced publicly. They keep earning XP and unlocking roles, and still see their own card and position. Reversible at any time with the same button.
04 🎫 Tickets
A complete support system: a panel with a button, the user clicks, a private channel is created. Several independent systems (Support, Reports, Suggestions...) can coexist on the same server, each with its own settings.
Configuration
- Dashboard → Tickets.
- Create a system : name, button emoji and label, channel where the panel appears, destination category, one or more support roles, panel message.
- You can have several systems with different configurations (e.g. Bug, Partnership, Moderation).
Ticket categories
A dropdown menu in each ticket lets the support team categorise it (Bug / Question / Request / Urgent by default). From the dashboard, replace these 4 categories with your own — one per line, format emoji Label. The channel name is automatically prefixed with the active category's emoji, and the menu always shows the current category (no more scrolling through history to find it).
Support roles and per-member limit
- A system can have several support roles at once — they all get access to the channel, get pinged on opening, and can claim, categorise or close a ticket.
- Limits the number of tickets a member can have open at once (0 = unlimited, 1 by default) — useful to stop a single user from flooding the category.
Usage
- The user clicks the panel button → a private ticket channel is created, visible only to them and the support team.
- Claim — a support member marks themself as handling the ticket (visible to everyone in the channel, a second click releases it).
- Close — reserved to the support team by default; a dashboard option lets the ticket's author close their own too. Asks for confirmation with an explicit choice: “Close without transcript” or “Close and save”.
- Transcript recipient — configurable per system: whoever closes it, whoever opened the ticket, or both — in addition to the log channel if set.
- Transcription — button available at any time while the ticket is open, sent by DM (text file).
Rating after closing
Can be enabled per system: the person who opened the ticket gets a DM with 5 clickable stars + an optional comment once the ticket is closed. Reviews can be posted automatically to a dedicated channel.
05 🎙️ Temporary voice channels
No more creating 15 channels named "Voice 1", "Voice 2"... The member joins a hub, their own channel is created, and deleted when they leave.
Configuration
- Dashboard → Voice channels.
- Pick a "hub" voice channel and the destination category.
- Section Server default settings : the
name given to channels (variables
{user}and{count}), the default member limit, enabling the control panel and which buttons appear on it. - Every hub is expandable and editable :
change its destination category, or tick Settings specific to this hub
so it gets its own name, limit and buttons — for instance a Gaming hub using
🎮 Squad de {user}capped at 5, and an unlimited Chill hub. - Protect higher roles (on by default) : a member whose role sits above the owner's cannot be kicked, blacklisted or purged from their channel.
- Give “Manage Channel” to the owner (on by default) : turn it off if you unchecked panel buttons — otherwise the owner can rename their channel and change its limit straight from Discord.
Usage
- The member joins the hub → a personal channel is created:
🎙️ <nickname>by default, or the name you configured. - A persistent panel is posted in the voice channel's built-in text chat, with 11 buttons: Open / Lock / Private, Rename / Limit / Kick, Whitelist / Blacklist / Remove, Purge, Transfer.
- Only the owner can use the panel — it survives bot restarts.
- When the owner leaves but others remain → auto-transfer to the first remaining human member.
- The channel is deleted automatically as soon as it becomes empty.
📹 Mandatory camera
- Dashboard → Voice channels → section Camera required : pick the voice channels where camera is mandatory.
- Without a camera, the member gets a warning in the voice channel's chat (30 s by default, adjustable) then is disconnected from voice (60 s later, adjustable). The warning is deleted as soon as the situation is resolved.
- Administrators and members who can move members are exempt.
06 📋 Logs
Logging of important server events, with the responsible party resolved via the Discord audit log (who kicked, who deleted the message).
Three categories
- Messages — deletions, edits (before/after).
- Members — joins, leaves, sanctions, role changes.
- Voice — connections, disconnections, moves between channels.
Configuration
- Dashboard → Logs.
- Destination channel + per-category toggle.
07 🔒 Permissions
Advanced permission system — control who can use which command, beyond native Discord permissions.
Precedence (strongest to weakest)
- Blacklist — forbidden, regardless of anything else.
- Discord Admin — server admins can do everything (except when blacklisted).
- Whitelist DB — allowed via the database, even without the Discord permission.
- Native Discord permission — default fallback.
@everyone + and allowing a role = the command becomes
restricted to that role. Handy to restrict /purge to moderators.
The command disappears from the picker
The rules don't just refuse after the fact: they are declared to Discord. A restricted command no longer appears in the picker of the person concerned, instead of being offered and then rejected with an error message.
- Every change is sent automatically. The Re-declare to Discord button replays everything if needed.
- Server administrators always see every command: that is a Discord rule, not a bot setting.
- Discord accepts at most 100 roles per command; beyond that, the dashboard says so.
- The declaration is made with your account, not the bot's (Discord requires it). If you signed in before this feature existed, sign in once more.
Dashboard tools
- Moderator preset — applies every mod command to a role in one click.
- View by command or by role (toggle).
- Stats by category to see what's restricted at a glance.
08 🎮 Games
Three games powered by IA (Groq + GPT-OSS 120B) to liven up your server. No human involvement for topics, judging or definitions — the AI handles everything.
Commands
/whoami— AI Guess Who, multi-team, sharp topics generated via Groq./verdict— Assigned debate judged by AI. You defend your side, even against your own beliefs./balderdash— Make up plausible fake definitions, bluff the others./games classement <game>— Top 10 of the chosen game./games stats [member]— Personal stats (games played, wins, etc.).
09 📬 Private messages to the bot
Many members write to the bot thinking they are reaching their server's team. So the bot first asks who the message is for.
Three destinations
- 🏠 The team of one of your servers — only servers you are a member of AND whose team has opened an inbox appear. They reply to you in private, on behalf of the server or under their own name.
- 🤖 Saturnin — the bot's assistant, answering via AI (GPT-OSS 120B on Groq). For a question about the bot, its commands, your setup.
- 📮 The bot's creator — bug, suggestion, problem with Armquad.
The choice stays valid for 2 hours.
!menu changes it at any time.
How Saturnin behaves
- History : Last 10 exchanges kept in RAM, lost on bot reboot.
!reset— Instantly clears the conversation history.- Cooldown 3-second cooldown between messages.
For administrators
To receive your members' messages, pick a channel on the Private messages page of the dashboard. Without a channel, the bot does not offer your server. That page groups exchanges by person, shows what is still waiting for a reply, and lets you answer without leaving the browser.
10 🛠️ Utility
The handy everyday commands.
/help— Help panel tailored to your permissions (hides what you can't use)./avatar [member]— HD avatar of a member (full zoom)./userinfo [member]— Detailed info: account, roles, presence, badges. Restricted to members with "Manage Server"./serverinfo— Server info: members, channels, boost, owner, verification level, default notifications. Restricted to members with "Manage Server" since it exposes the server's configuration./poll <question> <opt1> <opt2> [opt3] [opt4]— Interactive poll (multi-vote, anonymous, optional timer)./slowmode <seconds> [channel]— Enables or changes slowmode./armquad— Info about the bot (version, latency, host, links)./send [channel] [edit_id]— Compose a message or rich embed directly from Discord, with several role buttons and link buttons on the same message. Interactive panel: title & text, color & image, embed/text format, adding and removing buttons.edit_idlets you re-edit a message the bot already sent.
For a more comfortable composing experience (live Discord-accurate preview, multi-embeds, markdown, templates), the Messages dashboard page does the same thing, richer: a single message can carry a full embed, role buttons and link buttons together, both when sending and when editing.
Two recent additions: images from your computer — a “Browse” button next to the image fields; the file travels with the message and Discord hosts it (nothing is stored on the bot's side) — and free layout which lets you place buttons between embeds instead of leaving them all at the bottom: each button gets a position. A message sent in this mode can never be turned back into classic embeds, which is why you must switch it on explicitly.
11 📊 Live statistics
Displays key server numbers live (members, in voice, boosts…) as renamed voice channels orembeds that update automatically.
Available counters
Over 15 types, grouped into 3 categories:
- 👥 Members — total, humans, bots, online, holding a role.
- ⚡ Activity — in voice, joins in 24h, joins in 7d.
- 🏰 Server — boosts, boost level, text/voice/total channels, categories, emojis, server age.
Two display modes
- 🔊 Renamed voice channel — a channel takes on the name
👥 1 234 members. Ideal at the top of the channel list. - 💬 Embed in a text channel — a persistent message edited periodically. Several counters sharing the same channel are grouped into a single embed.
Customization
- Each counter has its own template ( e.g.
🎮 {count} players online). - Refresh interval configurable: 5, 10, 15, 30 or 60 min.
- The bot skips updates when the value hasn't changed — no wasted quota.
Configuration
- Dashboard → Statistics to manage every counter.
- Or
/setup→ Server statistics for a quick start.
Discord limits to know about
- Discord limits channel renaming to 2 renames every 10 minutes per channel — hence the 5-minute minimum interval.
- The embed mode is more permissive (message edit). If you want lots of counters, prefer this mode.
- The Online members counter depends on the Presences (intent (already enabled on Armquad)).
12 🎁 Giveaways
Contests and prize draws, with a entry button in the embed. Winners are drawn automatically at the scheduled time.
Starting a giveaway
/giveaway start prize:"1-month Nitro" duration:24h winners:1- The bot posts an embed with the 🎉 Enter.
- Click the button again to withdraw.
Built-in templates
8 ready-made pro templates (Express, Premium Drop, Weekend, Birthday, Boost Reward, Active Community, Flash 15 min, Marathon). Use the
template: option on the command, or click in the dashboard to copy a ready-to-paste command.
Custom templates
- Create your own templates in the dashboard (prize, duration, conditions, color).
- Duplicate a pro template to edit it.
- Great for recurring giveaways (weekly drop, monthly anniversary, etc.).
Entry conditions
- Required / excluded roles — restrict to targeted members.
- Minimum XP level — reward activity (leveling integration).
- Bonus entries per role (boosters × 2, VIP × 3, etc.): each eligible member counts for N entries in the draw.
Management
/giveaway list— see active and recent ones./giveaway end— end it now (immediate draw)./giveaway reroll— redraw another winner (previous ones are excluded)./giveaway cancel— cancel without drawing.
13 🤖 Automations
A powerful system to create your own slash commands and automatic actions (birthdays, welcome series, weekly digest, quote of the day, etc.) without touching any code.
Architecture: Trigger + Conditions + Actions
Each rule combines:
- A trigger (what starts the action): slash command, daily/weekly schedule, a member joining/leaving, a member's birthday, level reached.
- Conditions (optional): required/excluded roles, XP level, per-user cooldown, whitelisted channels.
- Up to 5 actions chained: reply with text/embed, post in a channel, DM, give/remove roles (with optional duration), increment a counter, random pick, give XP.
Comparing roles, beyond “at least one”
The role condition carries an operator: has at least one, has all, doesn't have all, has none, plus five comparisons on the NUMBER of ticked roles the member holds: exactly, at least, at most, more than, fewer than.
A concrete example: a server with three guilds on the same game. “Has at least one” targets any guild member; “has exactly 1” rules out those in several; “has none” targets players without a guild.
A cascade of roles in a single action
The Role added trigger combined with the Give roles action covers the most common need: when a given role is assigned, the others follow on their own. The action takes several roles at once — no need to chain one per role, and Discord only sees a single request.
Variables available in your text
All text (replies, embeds, DMs…) supports variables that get substituted at runtime:
{user},{user.name},{user.mention},{user.id}{member}— the member targeted by the<member>{server},{server.name},{server.count}{channel}and{channel.name}{date},{date.day},{date.month},{date.year},{time}{text}— the<text>argument of the slash command{counter:nom}— value of a named counter you increment{random:a|b|c}— inline random pick within the text
Example: an automatic /birthday
- Members set their date with
/birthday set day:25 month:12. - You create a rule of type A member's birthday in the dashboard.
- Action 1: Send to a channel → a festive embed "Happy birthday {member}!"
- Action 2: Give a role → "Birthday" for 24h (1440 min).
- Every day at 9:00 AM, the bot checks and runs the ceremony for each birthday of the day.
Discord limits
- 100 slash commands max per server.
- 200 changes per day per server (sync rate limit).
- Fixed signature for custom slash commands: 2 optional options,
<member>and<text>. - Reserved names: a hardcoded blacklist prevents creating
/ban,/setup,/help, etc.
14 🎁 Recap & Wrapped
A single module — Recap & Wrapped — powers two things:
the personal wrap-up of a member (/mywrapped) and the
weekly recap auto-posted for the server. Everything is set up in
Dashboard → Recap & Wrapped.
🎁 Personal wrap-up — /mywrapped
A "Wrapped"-style recap (Spotify-like) of a member's stats. By default everyone sees their own; admins can allow /mywrapped member:@X.
Admins choose which blocks appear:
- 📊 Text activity — level, XP, rank, messages, favorite channel and time, active days.
- 🎤 Voice — total time and average per active day.
- 🎁 Giveaways — entries and wins.
- 🛡️ Moderation — sanctions received and given (if a mod).
- 📅 On the server — join date and tenure.
📅 Weekly recap
The bot automatically posts a recap in the chosen channel, on the configured day and time. A ritual that brings members back.
Each section can be turned on or off independently:
- 📈 Activity — messages, active members, peak hour.
- 🏆 Top contributors and 💬 Top channels.
- 🔊 Voice — total time + top members.
- 👋 Movement — joins / leaves for the week.
- 🛡️ Moderation — sanctions for the week.
- 🏅 Records & peaks — most active day, peak hour, record voice day.
- 😄 Top reactions — most-used reaction emojis.
- 📈 XP progress — level-ups for the week.
/recap apercu (admin) shows last week's recap without posting it; /recap maintenant sends it right away to the configured channel.
15 🔔 Notifications
The bot watches external sources and announces new content in the channel of your choice. Everything is set up from Dashboard → Notifications — no commands needed.
Two families, don't mix them up
The five services don't work the same way, and that's the most useful distinction to keep in mind:
Subscriptions — you pick who to follow
You add a list of sources; the bot tells you as soon as one of them posts.
- YouTube — a channel's new video. Accepts an ID, a URL or an @handle (checked every ~5 min).
- Twitch — a streamer going live (checked every ~3 min).
- RSS feeds — a new post from any site, blog or podcast (checked every ~10 min).
Free games — dedicated page
Free games have their own page: nothing to list, the bot watches the stores for everyone, you only pick the channel.
- Epic Games Store — the games given away each week.
- Steam — free games and DLC (you choose what gets announced).
- GOG — games given away on GOG, same settings as Steam.
Shared settings
- A announcement channel and a role to mention per service.
- The destination can be a forum post rather than a channel: several feeds then fit inside a single forum instead of each taking up its own line in the sidebar. Active posts appear in the menu, under their forum's name.
- A customisable message with the variables
{role},{name},{title}and{url}. Left as-is, only the embed is sent.
16 📰 News
The bot's news (updates, features, fixes) is published on armquad.xyz/news, in French and English depending on your browser's language.
- Every major announcement is also automatically relayed to the support Discord server.
- The current version number is shown at the bottom of this page and via
/armquad.
17 ❓ FAQ
The bot isn't responding to my commands?
Check your Discord permissions (required role) and the bot's permissions in that channel (it needs to be able to read and send). On the dashboard, also check the Permissions tab in case the command was restricted.
How do I set up the welcome message?
Sign in at armquad.xyz, pick your server, go to the Welcome. tab. You can compose a rich embed with a live preview.
Is my data sold?
No. No data is ever resold, shared with advertisers, or used for marketing. Full details in the privacy policy.
How do I delete all my data?
Go to My account → button « Delete all my data ». Immediate, irreversible action.
Has the bot crashed?
First check the status at /health
(public monitoring endpoint). If the issue persists, contact support.
18 💬 Support
Need help, want to report a bug, or have a suggestion?
- Support Discord server : discord.gg/qWjME78s79 (fastest)
- Email : [email protected] (for contacts outside Discord, GDPR, partnerships)
- Publisher site : armquad.xyz
- Dashboard : armquad.xyz
- Technical status :
/health(JSON public)