Moderation
Manual moderation actions via Slash-Commands
The Moderation module provides Slash-Commands for all common moderation actions. Every action is logged in a dedicated mod-log channel and optionally reported to the affected user via DM. Moderators must hold a configured Moderator role to use the commands.
Setup
- Enable Moderation in the dashboard
- Select Moderator roles (roles that are allowed to use all mod commands)
- Select immune roles (e.g. Admins — these cannot be banned or muted)
- Select a mod-log channel (recommended: a private channel visible only to mods)
- Enable or disable DM-on-punishment (default: ON)
- Save
Slash-Commands
All commands require a Moderator role. The target user must be on the server (except for /unban).
/ban
/ban <@user> [duration] [reason]Bans the user from the server. Without a duration: permanent ban. With a duration: temporary ban that is automatically lifted after it expires.
/kick
/kick <@user> [reason]Kicks the user from the server. No automatic unban — the user can rejoin immediately.
/mute
/mute <@user> [duration] [reason]Silences the user via Discord timeout. Without a duration: 10 minutes (Discord minimum). The user cannot send messages or join voice channels.
/unmute
/unmute <@user> [reason]Lifts an active timeout immediately.
/warn
/warn <@user> <reason>Issues a warning. Saved in the mod log and in the action history. Has no direct Discord consequence — but you can escalate manually if someone accumulates too many warnings.
/unban
/unban <user-ID> [reason]Lifts an active ban. Since the user is no longer on the server, an ID is used instead of a mention.
/history
/history <@user>Shows the complete chronological action history for a user: all warnings, mutes, kicks, and bans with date, duration, reason, and responsible Moderator.
Duration syntax
For /ban and /mute, durations are specified in the format <number><unit>:
| Input | Meaning |
|---|---|
30m | 30 minutes |
2h | 2 hours |
7d | 7 days |
2w | 2 weeks |
(no value) | Permanent (no expiry) |
Example: /ban @Spammer 7d Spam in #generalMod log
Every moderation action creates an Embed post in the configured mod-log channel. The Embed contains: action type, affected user (avatar + name + ID), Moderator, reason, duration, and timestamp.
DM to affected users
When DM-on-punishment is enabled (default), the bot attempts to send the user a direct message before the action. The DM contains the action type, duration, reason, and a note with the server name. If the user has DMs disabled, the action is carried out anyway — the bot just shows a silent note in the command response.
Troubleshooting
- Command does not appear in Discord
- Slash-Commands can take up to 1 hour to register after activation. With a custom bot: up to 1 hour after the bot restarts.
- "Missing permissions" on /ban
- Check the role hierarchy: TeraOne must be above the target user in the hierarchy. The bot also needs the "Ban members" permission.
- Mod-log post does not appear
- Check that the bot has write and embed permissions in the mod-log channel.
Frequently asked questions
- Can I restrict Moderators to specific actions (e.g. warnings only, no bans)?
- Currently permissions are binary: Moderator role = access to all mod commands. Granular per-command permissions are planned.
- What happens to a temporary ban if the bot goes offline?
- The expiry timestamp is stored in the database. When the bot comes back online, all expired bans are lifted retroactively.
- Can the warning history be deleted?
- No, mod actions are stored immutably — this is intentional to maintain a complete audit trail.