LunarisDocsbyAsta
ChangelogStatus
ENDashboard
Moderation

Moderation Commands

Tools to keep your server safe. Every action is logged as a numbered case you can look up later.

Requires Ban MembersRequires Kick MembersRequires Moderate MembersRequires AdministratorRequires Manage MessagesRequires Manage ServerRequires Manage RolesRequires Manage ChannelsRequires Manage Nicknames

Every action becomes a case

Ban, kick, mute, warn, softban, tempban, jail and restrict all funnel through one shared handler internally (not a separate implementation per command), so every one of them is logged identically: a numbered case with a letter prefix matching the action (B- for ban, K- for kick, M- for mute, W- for warn, S- for softban), posted to your mod-log channel with a colored accent bar and the moderator, reason and timestamp as separate fields, not a wall of text.

Look any of it back up with l?case view <id> for one case, or l?case history <user> for everything on record for that member: the same data the dashboard’s Moderation page shows as a table.

Mod-log channel
LunarisAPPToday at 03:02 AM
Case B-142 · Ban
User
@sable_
Moderator
@lunarmod
Reason
Raid attempt, 40 messages in 6s
Date
2 minutes ago

Reversing an action resolves the original case

Unban and unmute log their own case too, but they also mark the original ban or mute as resolved, who reversed it and when gets attached directly to that entry instead of leaving two disconnected rows in the log. l?case history reads cleanly even after several reversals.

Reply to l?case history
LunarisAPPToday at 03:02 AM
Case history · @sable_
B-142
Ban · active
B-140
RESOLVED · Unbanned by @lunarmod · 4 days ago

The target gets DMed before most actions land

For ban, kick, softban and tempban, Lunaris DMs the target the reason before the action actually executes, when Discord allows it. So a banned member generally knows why before they’re removed, not after. Warn works the other way around: the case is created first, so its DM is the only one that includes a case ID.

Direct message
LunarisAPPToday at 03:02 AM
You have been banned from Lunaris Community.
Reason
Raid attempt, 40 messages in 6s
By
@lunarmod

Targets are always re-verified, never trusted from a stale mention

Before checking role hierarchy or executing anything, Lunaris re-fetches the target by their real Discord ID rather than trusting whatever a message mention or slash-command option cached. That closes a real, previously-shipped bug class where a stale or partially-resolved member object could let a role-hierarchy check silently pass when it should have blocked the action.

Warn thresholds escalate automatically

l?warnthreshold maps a warning count to an automatic action (mute, kick, or ban), so repeat offenders escalate without a moderator having to remember or watch the count manually. It’s a separate system from Guild Protection (antinuke), which has no threshold at all by design: a single unauthorized destructive action there is already treated as severe enough to act on immediately.

Purge vs. masspurge

purge bulk-deletes up to 100 messages in the current channel, optionally filtered to one user: the everyday cleanup tool. masspurge is the incident-response version: it walks every channel in the server deleting one user’s messages within a time window, capped at Discord’s own 14-day bulk-delete limit. Reach for masspurge during a spam or scam-link raid, not as routine moderation.

Commands

l?ban <@user|id> [reason]Ban Membersaka b

Permanently bans a member and optionally deletes their recent messages.

l?ban @spammer raiding 1
l?hackban <user_id> [reason]Ban Members

Bans by raw user ID even if they never joined the server, for ban-list imports or pre-emptively blocking a known raider.

l?hackban 712989123456789012 known raid account
l?softban <@user|id> [days] [reason]Ban Membersaka sb

Bans then instantly unbans: wipes the user’s recent messages without keeping them banned.

l?softban @user mass mention
l?kick <@user> [reason]Kick Members

Removes a member from the server. They can rejoin with a new invite.

l?kick @user breaking rules
l?mute <@user> [duration] [reason]Moderate Membersaka stfu, timeout, m

Times a member out using Discord’s native timeout. Max 28 days.

l?mute @user 1h spamming
l?restrict <image|reaction|remove> <user>Moderate Membersaka imute, rmute

A lighter touch than a full mute: blocks just image/embed posting or just reactions, without silencing text chat entirely.

l?restrict image @user
l?warn <@user> <reason>Moderate Members

Issues a warning. Warnings accumulate and can trigger automatic punishments via warn thresholds.

l?warn @user first warning
l?tempban <@user|id> <duration> [reason]Ban Membersaka tb

Bans for a set time, then automatically unbans when it expires.

l?tempban @user 7d
l?massban <id1 id2 id3...> [--reason]Administrator

Bans multiple users by ID in one command, for clearing a whole raid list at once.

l?massban 123456789012345678 234567890123456789
l?purge <amount> [user]Manage Messages

Bulk-deletes up to 100 messages in the current channel, optionally only from one user.

l?purge 50 @user
l?masspurge <duration> <user>Manage Messagesaka mpurge

Deletes one user’s messages across every channel in the server within a time window, built for cleaning up a spam or scam raid, not routine moderation.

l?masspurge 1h @spambot
l?case <view|history|recent|reason|remove|removeall>Moderate Membersaka cases, modcase, modhistory, modlogs

Look up a single case by ID, list every case for a member, edit a case’s reason, or remove one case (or all of a member’s, Admin only) from the record.

l?case history @user
l?warnthreshold <set|remove|list> [warns] [action] [duration]Manage Serveraka autowarn

Automatically punishes a member once they reach a warning count: mute, kick or ban.

l?warnthreshold add 3 mute 1h
l?warndecay <days> (0 = off)Manage Serveraka warnexpiry, warnexpire

Auto-expires warnings after a set number of days, so old ones stop counting toward thresholds.

l?warndecay 30
l?warninfo <@user>Moderate Members

Lists every active warning for a member with reasons and dates.

l?warninfo @user
l?warnreset <@user>Moderate Members

Clears every warning for a member, resetting their count to zero.

l?warnreset @user
l?wt @userModerate Membersaka quickwarn, warntemplate

Warns a member from a pre-set reason template with one click instead of typing a reason each time.

l?wt @user
l?modnote <add|list|remove> <user> [text]Moderate Membersaka note, notes

Private staff notes on a member. Visible to moderators only, never to the member.

l?modnote add @user left on good terms
l?appeals <status|toggle|channel|window|cooldown|attempts|evidence|questions|types>Manage Serveraka appeal, banappeal

Lets banned users appeal. The bot DMs them an appeal button before the ban lands, they fill a form you write and can attach proof, and it arrives in your review channel with Approve, Deny and Ask-for-more-info buttons. Approving unbans them.

l?appeals channel #ban-appeals
l?jail <setup|add|release>Manage Roles

Strips a member’s roles and confines them to a jail channel until released.

l?jail add @user pending review
l?lock [channel] [reason]Manage Channels

Prevents members from sending messages in a channel. Use unlock to reverse it.

l?lock #general
l?unlock [channel]Manage Channels

Reverses lock, letting members send messages in the channel again.

l?unlock #general
l?hide [channel]Manage Channels

Hides a channel from @everyone entirely, rather than just blocking messages like lock does.

l?hide #general
l?unhide [channel]Manage Channels

Reverses hide, making the channel visible to @everyone again.

l?unhide #general
l?slowmode <off|duration> [channel]Manage Channelsaka slow

Sets Discord’s per-user message cooldown for a channel.

l?slowmode 10s
l?unban <user_id> [reason]Ban Members

Lifts a ban so the user can rejoin with a new invite.

l?unban 712989123456789012
l?unmute <@user>Moderate Members

Removes an active timeout from a member before it expires on its own.

l?unmute @user
l?stickyroles <enable|disable|status>Manage Serveraka persistroles

Re-applies a member’s roles automatically if they leave and rejoin, so a kicked-and-rejoined member doesn’t come back with a clean slate.

l?stickyroles enable
l?decancer <user>Manage Nicknamesaka cleannick

Strips hoisting symbols and unreadable Unicode from a nickname so it sorts and displays normally.

l?decancer @user
l?forcenick <user> <name|clear>Manage Nicknamesaka fn, forcenickname

Locks a member to a specific nickname; if they try to change it, Lunaris reverts it.

l?forcenick @user xX_Gamer_Xx
l?picperms <user> [channel]Manage Channelsaka imageperms

Toggles whether a member can post images or links in a channel, without a full mute.

l?picperms @user #general
l?massrole <add|remove> <role> [all|humans|bots|role]Manage Rolesaka mrole, bulkrole

Adds or removes a role from many members at once, filtered by all members, humans only, bots only or another role.

l?massrole add @Member humans
l?giverole <user> <role>Manage Rolesaka addrole

Gives a single role to a single member.

l?giverole @user @Member
l?takerole <user> <role>Manage Rolesaka removerole

Removes a single role from a single member.

l?takerole @user @Member
l?ignoredchannelsManage Serveraka ignorechannel, nocommands

Manages which channels Lunaris ignores commands in entirely.

l?ignoredchannels
l?temprole <user> <role> <duration>Manage Rolesaka tr

Gives a member a role that is automatically removed once the duration expires.

l?temprole @user @Muted 1h
l?nukeManage Channels

Deletes and instantly recreates the current channel, clearing every message. Irreversible.

l?nuke

This is the full moderation command set. Looking for something else? Search all modules from the docs hub.

Explore more