United Documentation
Clear setup guides for United's protection, moderation, ticket, and server tools.
, as the default prefix. Commands are not case-sensitive, and essential moderation and protection tools are also available as slash commands.Set up anti-nuke, anti-raid, anti-spam, account-age protection, and the scam trap.
Ticket DeskCreate ticket types, select the roles for each type, publish a panel, and keep transcripts.
Server ConfigurationConfigure welcome and goodbye messages, autoroles, verification, reaction roles, and moderation roles.
Command GuideSearch the full live command reference when you need the exact command and syntax.
Quick Start
- Invite United with the website invite button.
- Open the dashboard through ,dashboard or the website.
- Set one Bot Logs channel in Setup → Logs so activity has a clear home.
- Use Protection Setup to enable and validate the core protection tools.
Anti-Nuke and Anti-Raid
Use the dashboard Protection Setup button for the fastest safe baseline. It checks permissions, creates or finds Bot Logs, and enables the selected protections. Anti-Nuke attributes destructive server changes through Discord audit logs; Anti-Raid watches suspicious joins, bots, accounts, and mass-join patterns.
Recommended first setup
- Set Bot Logs in Setup → Logs.
- Open Protection Setup and enable Anti-Nuke, Anti-Spam, Anti-Raid, and account-age checks.
- Open Permission Health and repair missing permissions or role-position warnings.
- Use ,antinuke config to review the final configuration.
Anti-Spam and Scam Trap
Anti-Spam now keeps message floods, repeated content, mass mentions, emoji spam, caps spam, and invite-link limits in one control surface. Scam Trap remains a separate immediate-action decoy channel.
| Tool | Use it for | Starting command |
|---|---|---|
| Anti-Spam | Floods, repeats, mentions, emoji, caps, and invite-link escalation | ,antispam |
| Invite links | Set the five-minute invite allowance and response | ,antispam links |
| Scam Trap | Immediate action when someone types in a decoy channel | ,scamtrap #channel |
Start with ,scamtrap #channel, then set the outcome with ,scamtrap action timeout, kick, or ban. Use ,scamtrap timeout 5m for the timeout length and /scamtrap config to customize the channel warning, member DM, and Bot Logs message.
Tickets
Each ticket type has its own category and role notifications. Edit Ticket Types in the dashboard, choose the exact roles for that type, then edit or refresh the public panel. Ticket activity uses Bot Logs by default; transcripts can use the optional Ticket Logs channel in Setup → Logs.
Ticket workflow
- Create or confirm the category for each ticket type.
- Choose the roles allowed to see and receive a ping for that specific type.
- Save the type, edit the public panel, then refresh the panel only when its message needs updating.
- Claim, close, or export tickets from Discord or Ticket Center.
Use ,tickets list to see open tickets, ,tickets claim to claim one, ,tickets transcript to export one, and ,tickettimeout 10m when a ticket needs a response window.
Roles and Verification
Autoroles are assigned on join. When verification is enabled, United removes configured unverified roles when the member receives the verified role. Server owners and Discord administrators retain their normal Discord permission-based access.
Sticky Roles keep selected roles through a leave and rejoin. Use ,stickyroles add @StaffBlacklist for a role such as Staff Blacklist. When an appeal is accepted, use ,stickyroles pardon @member @StaffBlacklist to remove that person's current role and their saved rejoin record without changing the rule for anyone else.
Use ,autorole add @Role for automatic roles and the dashboard for verification, role health, reaction roles, and role recovery.
Bot Logs
Setup → Logs has one default Bot Logs channel for all activity. You can optionally split any active United log type, including tickets, moderation actions, voice activity, and every protection module. Existing server channels are reused rather than duplicated.
,banlogs #ban-logs
,kicklogs #kick-logs
,timeoutlogs #timeout-logs
,antinukelogs #security-logs
,ticketlogs #ticket-transcripts
Use ,logs #channel to choose the all-in-one default. Dedicated commands are optional overrides, not required extra setup.
Command Syntax
United accepts prefix commands with ,. Command names are not case-sensitive, so ,HeLp and ,help behave the same way.
Formatting durations
Use a number immediately followed by a unit whenever a command asks for a duration.
| Unit | Meaning | Example |
|---|---|---|
| s | Seconds | 10s |
| m | Minutes | 5m |
| h | Hours | 2h |
| d | Days | 3d |
,timeout @member 10m
,slowmode 15s
,tickettimeout 1h
,scamtrap timeout 5m
Incorrect
,timeout @member 10 minutes
,slowmode ten
Channels, members, and roles
Use Discord mentions whenever possible. Type # and choose a channel, @ and choose a member, or @ and choose a role. This prevents copy-and-paste mistakes with IDs and names.
Permissions and Role Position
United follows the permissions set in Discord. Server owners and Discord administrators can configure server settings. Moderation actions also require United to have the matching Discord permission and a role above the target member's highest role.
| Action | United needs | Also check |
|---|---|---|
| Delete spam | Manage Messages | Channel access |
| Timeout | Moderate Members | Role position |
| Kick | Kick Members | Role position |
| Ban | Ban Members | Bot role can act |
| Anti-Nuke recovery | Manage Roles, Channels, Audit Log | Role position and audit-log visibility |
Languages
Set a server language with commands such as ,english, ,dutch, or ,slovak. Use language-specific command references such as ,helpdutch when available.
Set Up a New Server
Use this order for a clean setup. It keeps your server organized and avoids creating duplicate ticket panels, roles, or log channels.
- Invite the bot. Give United the permissions it requests, then move the United role above any roles it must timeout, kick, ban, mute, jail, or remove.
- Choose your log channel. In Dashboard → Setup → Logs, choose an existing channel or let United create #bot-logs. This is the default home for moderation, security, tickets, and configuration activity.
- Check Permission Health. Resolve red checks for Manage Messages, Moderate Members, Kick Members, Ban Members, Manage Roles, Manage Channels, and View Audit Log before enabling protection.
- Configure protection. Open Protection Setup in the dashboard. It validates the log channel and can enable Anti-Nuke, Anti-Spam, Anti-Raid, and account-age checks together.
- Configure the member journey. Set Welcome, Autorole, and Verification. If you use an unverified role, set it as the verification role to remove after verification.
- Add tickets only when ready. Configure the ticket types and panel before publishing one. Existing configured panels are reused during repair; United should not create a second panel or category when a valid one already exists.
Anti-Nuke in Detail
Anti-Nuke watches destructive server actions through Discord audit logs. It can identify repeated channel changes, role changes, bans, kicks, webhook creation, dangerous permission escalation, and unauthorized bot additions. When its threshold is reached, it records the actor, action, result, and incident timeline in Bot Logs and the dashboard.
Before enabling it
- Confirm United has View Audit Log, Manage Roles, Manage Channels, Kick Members, and Ban Members as appropriate for your chosen response.
- Move the United role above roles it needs to strip or manage. Discord will not let any bot act on roles at or above its own role.
- Set a Bot Logs channel. Use ,antinukelogs #channel only if this server needs a separate Anti-Nuke log destination.
- Enable it with ,antinuke on or use the Anti-Nuke dashboard tab.
Thresholds and actions
Thresholds define how many actions in a time window create an Anti-Nuke event. Keep lower thresholds for destructive changes and use a slightly higher threshold where legitimate staff activity is common.
,antinuke_config channel_threshold 3
,antinuke_config channel_time 60
,antinuke_config role_threshold 3
,antinuke_config ban_threshold 3
,antinuke_action strip_permissions
| Setting | What it watches | Example |
|---|---|---|
| channel_threshold / channel_time | Channel deletions within a time window | 3 changes in 60 seconds |
| channel_create_threshold / channel_create_time | Mass channel creation | 5 channels in 60 seconds |
| role_threshold / role_time | Role deletions | 3 roles in 60 seconds |
| ban_threshold / ban_time | Mass bans | 3 bans in 60 seconds |
| kick_threshold / kick_time | Mass kicks | 3 kicks in 60 seconds |
| webhook_threshold / webhook_time | Mass webhook creation | 3 webhooks in 60 seconds |
Available responses are strip_permissions, kick, and ban. Start with stripping permissions while tuning thresholds. The dashboard Incident view includes recovery controls when a destructive change is detected.
Whitelisting
Use ,antinuke_whitelist @member only for a person or bot that must perform actions above the normal threshold. Use ,antinuke_unwhitelist @member to remove it. Whitelisted users are excluded from enforcement; do not use the whitelist as a general staff list.
Anti-Raid and Account-Age Protection
Anti-Raid detects many joins in a short period, can lock writable channels, and records the response. Account-age checks, default-avatar signals, and alt detection use the same universal trusted-member and trusted-role list as the rest of United protection.
Recommended baseline
,antiraid action kick
,antiraid newaccounts true 30
,antiraid avatar true quarantine
,antiraid config
| Command | What it configures | Important detail |
|---|---|---|
| ,antiraid true 10 60 | Anti-Raid with a join threshold and window | Example means 10 joins in 60 seconds |
| ,antiraid action log|kick|ban | Confirmed raid response | Start with log while tuning a busy server |
| ,antiraid newaccounts true 30 | New-account bans | Accounts younger than 30 days are banned on join |
| ,antiraid avatar true quarantine | Default-avatar signal | Available actions: log, quarantine, kick, ban |
| ,antiraid lockdown 10 | Manual ten-minute lockdown | Saves only permissions United changes |
| ,antiraid unlock | Ends an active lockdown | Restores saved channel permissions where possible |
Universal protection whitelist
Use ,antinuke_whitelist @member for one trusted account or ,antinuke_whitelistrole @role for a tightly controlled staff role. The same exemption applies across Anti-Nuke, Anti-Spam, Anti-Raid, account-age checks, Link Limit, Link Filter, and Scam Trap.
Anti-Spam, Invite Links, and Scam Trap
Anti-Spam and invite-link escalation share one dashboard workspace and one Discord command family. Their scanners remain separate internally so an ordinary flood cannot corrupt an invite countdown. Scam Trap remains an immediate-action decoy channel.
Message spam
Run ,antispam for the overview, ,antispam on to enable it, ,antispam action timeout to choose the response, and ,antispam config message_threshold 5 to tune it. Ignored channels and roles use ,antispam ignore.
Invite links
Run ,antispam links 3 to allow three invite links per five minutes, ,antispam linkaction kick to choose the final response, and ,antispam linktimeout 5m when the response is timeout. ,antispam linkignore manages invite-specific exceptions.
Scam Trap
- Create or select a channel that normal members should not type in.
- Run ,scamtrap #channel.
- Set the action: ,scamtrap action delete, timeout, kick, or ban.
- For a timeout, set its duration: ,scamtrap timeout 5m.
- Use ,scamrefresh to refresh the warning panel immediately.
Create a Ticket Panel
A ticket panel is the public dropdown message members use to open tickets. Build ticket types before publishing the panel. Each type stores its own category, staff roles, and optional form questions.
Dashboard setup
- Open the server in the dashboard and choose Tickets.
- Select Edit Ticket Types. Add a name, optional emoji, and the category where tickets of that type should be created.
- Press Roles next to a type and check only the roles that should see and be pinged for that type. Discord administrators can still access tickets through their administrator permission.
- Press Questions to save up to five required questions. Members complete this form before their ticket opens. Leave it blank to use United's default reason form.
- Select Edit Panel to set the panel title, description, main image, and thumbnail. Choose the existing channel where the panel belongs.
- Use Refresh Panel after saving panel text or types. This updates the existing panel message rather than making a duplicate channel.
Discord command setup
,ticketquestions
,panel_text "Support Center" Choose the type of help you need.
,panel_title Support Center
,panel_description Choose the type of help you need.
,panel_image https://example.com/banner.png
,panel_thumbnail https://example.com/icon.png
,panel
,ticketquestions lets an administrator choose a type and edit its form in Discord. ,panel setup shows the setup guide. ,panel creates or reuses a detected existing panel. ,panel_delete deletes panel messages and their saved records only when you intentionally want to replace them.
Ticket Controls, Transcripts, and Timeouts
Once a ticket opens, the member who opened it, roles assigned to that ticket type, Discord administrators, and the permanent owner can access it. Selected roles are not global ticket staff; a role chosen for Staff Reports does not automatically see Support tickets.
| Command | What it does | Who uses it |
|---|---|---|
| ,ticketcontrols | Posts the compact close, reopen, transcript, delete, and access menu | Ticket creator or ticket staff |
| ,claim | Claims the current ticket for the staff member | Ticket staff |
| ,unclaim | Releases the current claim | Claimer or administrator |
| ,ticketstatus waiting | Marks it waiting on the ticket owner | Ticket staff |
| ,add @member | Gives a member or role access to this ticket | Manage Channels |
| ,remove @member | Removes an added member or role, never the ticket creator | Manage Channels |
Close, reopen, and delete
Every new ticket receives a compact action menu. The ticket creator may close or delete their own ticket. Ticket staff can reopen, save transcripts, and manage the ticket. The Access button and the ,add/,remove commands require Discord Manage Channels, administrator, server owner, or the permanent owner. ,delete saves the transcript first, then removes the channel.
Transcript channel and auto-close
Set the transcript destination with ,ticketlogs #channel or Dashboard → Setup → Logs → Ticket Transcript Channel. If no separate ticket log exists, ticket activity stays in Bot Logs. Set inactive auto-close with ,tickettimeout 24h, ,tickettimeout 3d, or set it to off to disable it. Auto-close will not proceed unless a transcript can be saved.
Welcome Messages
Welcome messages are independent from verification. They announce a new member in the selected channel, while verification controls access and roles. Set up welcome after you know where new members should be sent.
Recommended flow
- Choose the channel: ,welcome channel #welcome.
- Run ,welcome setup to choose a starter template, or ,welcome config to open the interactive editor.
- Use placeholders in the message: {user_mention}, {user_name}, {server_name}, and {member_count}.
- Optionally set a large image with ,welcome image https://... and a thumbnail with ,welcome thumbnail server, user, or an image URL.
- Run ,welcome test to preview it for yourself. When it looks right, run ,welcome toggle to enable it.
You are member #{member_count}. Please read the rules and verify to unlock the server.
Use ,welcome examples to view placeholder examples. Use ,welcome save name and ,welcome load name to keep reusable designs. Do not type a raw username if you need a real clickable mention; use {user_mention}.
Goodbye Messages
Goodbye messages announce when a member leaves, is kicked, or is banned. Welcome and goodbye configurations are independent and can use different channels and designs.
Recommended flow
- Run ,goodbye setup #goodbye to create a starter configuration in an existing channel, or omit the channel to let United find or create one.
- Open ,goodbye config or Dashboard → Goodbye to edit the title, message, color, image, thumbnail, and link buttons.
- Use {user_mention}, {user_name}, {user_id}, {server_name}, and {member_count}.
- Run ,goodbye test before enabling it for real departures.
- Use ,goodbye toggle whenever the automatic message should be paused.
{member_count} members remain.
The departing member is no longer in the server, so {user_mention} is useful for identification but does not notify them. Sticky roles are saved before United sends the goodbye message.
Autorole and Verification
Autorole and verification are designed to work together. Without verification, configured autoroles are given when someone joins. With verification enabled, members can receive an unverified or limited-access role first, then receive the verified role after completing the panel. United removes the configured unverified role when verification succeeds.
,verify setup
,verify roles @Member @Unverified
,verify panel #verify
,verify toggle true
| Command | Purpose |
|---|---|
| ,autorole add @Role | Adds a role on member join |
| ,autorole remove @Role | Stops assigning that autorole |
| ,verify setup | Starts verification configuration |
| ,verify roles @Verified @Unverified | Sets the role gained and the role removed after verification |
| ,verify panel #channel | Publishes the verification panel |
| ,verify status | Shows the current verification configuration |
Ticket Types and Staff Access
Ticket types are the choices inside the public dropdown. A good type has a clear name, its own category, and only the roles that are responsible for that kind of request. For example, a Staff Report should not ping or reveal itself to every Support role.
Create the first types
,tcfg preset
,tcfg add
,tcfg list
,tcfg quick creates a small common starter set. ,tcfg preset lets you choose a larger starter set. ,tcfg add opens the guided menu to add one type. Run ,tcfg list to see the types currently saved for the server.
Who can see a ticket
| Person or role | Ticket access |
|---|---|
| Member who opened it | Can see and reply until the ticket is closed |
| Roles selected for that ticket type | Can see and work that type of ticket |
| Discord administrators | Can access according to their Discord administrator permission |
| Server owner and permanent United owner | Retain full access |
| Roles not selected for that type | Do not receive ticket access or a role ping |
Ticket Troubleshooting
| What happened | What to check | Best next step |
|---|---|---|
| The dropdown will not open the same type twice | The selected option may still be cached in an old panel view | Use Refresh Panel in the dashboard; United resets the dropdown selection for new interactions |
| A ticket says “Something went wrong” | Bot permissions, category access, ticket-type category, and modal responses | Open Ticket Health, then verify United can Manage Channels and has access to the selected category |
| No transcript appears | Ticket Transcript Channel and bot access to it | Run ,ticketlogs #channel, then use ,transcript again |
| Panel text changed but message did not | The existing panel message has not been refreshed | Use Refresh Panel or ,refresh_ticket_panels |
| Repair wants to make another panel | An old panel may not be saved or a saved channel/message ID may be stale | Use Ticket Health first; do not rebuild until it reports the panel as actually missing |
When a ticket is closed or deleted, United archives the transcript before removing access or deleting the channel. It logs the transcript and ticket action to the configured destination. If a transcript cannot be saved, close and delete intentionally stop rather than silently losing the conversation.
Welcome and Verification Troubleshooting
| What happened | What to check |
|---|---|
| No welcome message | ,welcome for status, the selected channel, then ,welcome test |
| Welcome message is in the wrong channel | Run ,welcome channel #channel again; United saves the channel ID and name |
| Unverified role remains after verification | Run ,verify roles @Verified @Unverified and ensure United is above both roles |
| Verified role is not assigned | Check ,verify status, the panel channel, and Manage Roles/role position |
| New members do not receive an autorole | Run ,autorole list and ensure the target role is below United |
Use Dashboard → Welcome for visual editing and testing. Use Discord commands when you are already in the server and need a fast change. The two paths save the same server configuration.
Protection Troubleshooting
| What happened | What to check | Next step |
|---|---|---|
| Anti-Nuke did not punish | Enabled state, threshold, time window, audit-log permission, and role position | Open Anti-Nuke Live Check and Permission Health |
| An owner action does not appear in Anti-Nuke | The server owner and permanent United owner are fully exempt | This is expected; no protection event or log is created |
| Anti-Raid cannot restore a lockdown | Whether a restorable channel state existed before lockdown | Read the Incident timeline and make manual changes only when no snapshot is available |
| Anti-Spam says log channel missing | Bot Logs channel ID and whether it still exists | Set Bot Logs again in Setup → Logs, save, then return to Anti-Spam |
| Scam Trap did not punish a test | Whether the tester is the server owner/permanent owner, is an administrator, or is exempt | Test with a normal non-exempt account and check Bot Logs |
Always read the Bot Logs entry first. It records the actor, the detected action, the result, and any Discord permission failure. That is more reliable than guessing from a missing moderation result.
Trusted Protection Roles
Use a trusted role when a whole staff team should bypass United's automatic protection checks. Run ,antinuke_whitelistrole @role to add it and ,antinuke_unwhitelistrole @role to remove it. This applies to Anti-Nuke, Anti-Spam, Anti-Raid, Link Limit, Link Filter, and Scam Trap. Use ,antinuke_whitelist @member when only one person or bot needs the bypass.
Timeout a Member in One Ticket
United has two different ticket timeout modes. A command with only a duration sets the server-wide inactive ticket auto-close setting. A command with a member mention temporarily stops that member from sending messages in the current ticket only. It does not apply a server-wide Discord timeout.
| Command | What it does |
|---|---|
| ,tickettimeout 24h | Closes inactive tickets after 24 hours, after saving a transcript |
| ,tickettimeout @member 10s | Stops the member sending messages in the current ticket for 10 seconds |
| ,tickettimeout 10s @member | Same member timeout, duration first |
| ,tickettimeout @member end | Ends that member's ticket timeout early and restores their previous send permission |
Temporarily Block New Ticket Creation
Use the short ,tblock command when someone should not be able to open any new tickets for a while. It does not close their current ticket, timeout them from Discord, or change any of their roles.
| Command | What it does |
|---|---|
| ,tblock @member 10m | Stops the member opening new tickets for 10 minutes |
| ,tblock @member 1h | Stops the member opening new tickets for one hour |
| ,tblock @member end | Lets the member create tickets again immediately |
| ,ticketblock @member 10m | Longer alias for the same command |