Skip to content
VORQUL
VorqulBOT / Moderation

Moderation that keeps a record

Moderation tools are easy to build and hard to build well. The difference is not the number of commands - it is whether six months later you can still answer the question "why was this person banned, and by whom".

VorqulBOT ships 33 moderation commands: ban, tempban, softban, unban, kick, warn, timeout, mute, jail, shadow-mute, voice mute, timed roles, mass nickname and mass role changes, message clearing, slowmode, channel locks and a server lockdown. Every action creates a numbered case that stays searchable, warning counts can trigger an automatic action, members can appeal with /appeal, and everything is written to logs the server owner controls, because the bot runs on their own infrastructure.

Commands
33
Command style
Slash + legacy prefix
Case storage
JSON / MySQL
Escalation
Warn count over a window

Actions

The full set is deliberately conventional: ban, temporary ban, softban, kick, warn, timeout, mute, jail, shadow-mute and the voice equivalents. Conventional matters here, because moderators arriving from another server should not need to learn a new vocabulary before they can act.

Every action takes an optional reason and, where it applies, a duration. Both end up in the case record, which is what makes the record useful later. Kick and warn notify the member by direct message, in the server language.

  • ban, tempban, softban, unban
  • kick, with a DM notice to the member
  • warn, with automatic actions once a count is reached
  • timeout and untimeout, using native Discord timeouts
  • mute, unmute, and voicemute for voice channels
  • jail and unjail - roles stripped, access narrowed to a restricted channel set
  • shadowmute and unshadowmute - the member sees their own messages, nobody else does
  • timedrole - a role that removes itself after a set time
  • massnick and massrole for bulk changes
  • clear by amount or by member, plus cleanup for orphaned roles, dead channels and permission rot
  • lock, unlock, lockdown and slowmode
  • role, nick, note, notes, case, filter, permcheck, altcheck

Case history

Each action gets a case number scoped to the guild. A case holds the target, the moderator, the reason, the duration and the timestamp, and /case looks one up by its ID.

This is the part that pays off during staff disputes. A warning issued eight months ago by a moderator who has since left is still attributable, still readable, and still counts toward the warning thresholds.

Warning escalation

Warnings can carry consequences without a moderator deciding each time. A rule is a count, a window in days and an action - three warnings in seven days means a mute, for example - and several rules can stack so that repeated offences escalate on their own.

The rules are edited in the Warnings tab of the dashboard, which is also where you see the ones already in place.

Alt-account check

/altcheck scores a member against a small set of heuristics and shows the result: account younger than 7, 30 or 90 days, a default avatar, joined less than a day ago, no roles. Each adds to a score, and bots score zero.

It is a check a moderator runs, not an automatic ban. That is deliberate - heuristics like these produce false positives, and a wrong automatic ban costs more trust than it saves time. The output is evidence for a human decision.

Appeals

/appeal lets a member state their case in up to a thousand characters, and the bot posts it to the appeals channel set in the moderation settings. It replaces the pattern where an appeal is a DM to whichever moderator the member can find.

The channel has to be configured first; without it the command tells the member to ask an administrator rather than silently doing nothing. /whywasibanned covers the other direction, letting a member look up why an action was taken.

Terms on this page

Case history Shadow-mute Jail Alt-account check Escalation ladder Audit log

Frequently asked questions

Related pages