warnings.db — they survive restarts and redeployments.
The warning system lives in the warns module and core moderation actions live in the moderation module. Enable both before use:
All moderation commands use the
~ prefix by default. Change your server’s prefix with ~prefix <symbol>. The new prefix is saved to config.json and persists across restarts.Warning System
Issue, view, and manage per-guild warnings for any member:| Command | Description | Permission |
|---|---|---|
~warn <member|id> [reason] | Issue a warning with a unique hex ID. DMs the member with the reason and triggers any matching auto-threshold action. | Moderate Members |
~warns <member|id> | Show all warnings for a member, including hex IDs, timestamps, and reasons. | Moderate Members |
~delwarn <warn_id> | Delete a specific warning by its hex ID. | Moderate Members |
~clearwarns <member|id> | Clear all warnings for a member. | Moderate Members |
Auto-Threshold Actions
Configure automatic punishments that trigger when a member reaches a set warning count:~warnthresholds(alias~wt, also/warnthresholds) — open the threshold editor modal- Set one or more threshold rules per guild. Each rule maps a warning count to an action.
| Action | Format |
|---|---|
| Timeout | timeout <duration> — e.g. timeout 1h |
| Kick | kick |
| Ban | ban |
- At 3 warnings →
timeout 1h - At 5 warnings →
kick - At 7 warnings →
ban
config.json. Use the slash command form /warnthresholds to open the modal directly.
Member Actions
| Command | Permission |
|---|---|
~kick <member> [reason] | Kick Members |
~ban <user> [delete_messages] [reason] | Ban Members |
~softban <member> [delete_messages] [reason] | Ban Members |
~unban <user> [reason] | Ban Members |
~timeout <member> <duration> [reason] | Moderate Members |
~removetimeout <member> | Moderate Members |
delete_messages (e.g. 7d).
Timeout duration format: 10m, 1h, 1d — plain numbers with a unit suffix.
Ban delete_messages: Pass a duration like 7d to delete that many days of message history on ban.
~removetimeout has aliases ~rt and ~rto. ~timeout has alias ~to.
Channel Management
| Command | Permission |
|---|---|
~purge <limit> | Manage Messages |
~slowmode <duration|off> | Manage Channels |
~lock [reason] | Manage Channels |
~unlock [reason] | Manage Channels |
~purge accepts a limit between 1 and 1000 messages. ~slowmode takes the same duration format as ~timeout (e.g. 30s, 1m) or off to disable. ~lock and ~unlock control @everyone send permissions on the current channel.
Bot Whitelist
By default, Freesona ignores messages from other bots to prevent feedback loops. Use the whitelist to let specific bots through the message filter:| Command | Permission |
|---|---|
/botwhitelist | Administrator |
/botwhitelist add <bot_id> | Administrator |
/botwhitelist remove <bot_id> | Administrator |
/botwhitelist with no arguments shows the current list of whitelisted bot IDs.