Skip to main content

Punishments

Zander gives your staff a consistent, accountable way to manage rule violations across Discord and the website. Every action is logged, punishments can expire automatically, and players always have a path to appeal — keeping your moderation fair and transparent.

note

📸 Screenshot: The public punishment log at /punishments showing active bans and warnings with issue dates and reasons


Discord Punishments

Discord punishments are issued using the /punish slash command. The issuing user must have their Minecraft account linked and the appropriate LuckPerms permission.

Punishment Types

TypeCommandDurationDescription
Warning/punish warnPermanentFormal warning logged against the user
Kick/punish kickRemoves the user from the Discord guild immediately
Temporary Ban/punish tempbanRequiredBans for a specified duration
Permanent Ban/punish banPermanentBans indefinitely
Temporary Mute/punish tempmuteRequiredMutes in chat and voice for a specified duration
Permanent Mute/punish mutePermanentMutes indefinitely (chat and voice)

Duration format: <number><unit> — for example: 1h (1 hour), 7d (7 days), 2w (2 weeks).

All punishments support an optional evidence URL and a silent flag to suppress the public log message.

note

📸 Screenshot: The /punish command with subcommand options visible in Discord's command picker

Lifting Punishments

ActionCommandPermission
Unban/punish unban <user> <reason>zander.discord.punish.ban
Unmute/punish unmute <user> <reason>zander.discord.punish.mute

Temporary punishments are also lifted automatically when they expire (handled by punishmentExpiryCron).

Viewing History

/punish history accepts a Discord user, Minecraft username, or Discord tag/ID and returns the full cross-platform punishment record.

Configuration

Discord punishment settings live in config.json:

"discord": {
"punishments": {
"logChannelId": "CHANNEL_ID",
"appealBaseUrl": "/appeal",
"permissions": {
"can_warn": "zander.discord.punish.warn",
"can_kick": "zander.discord.punish.kick",
"can_ban": "zander.discord.punish.ban",
"can_mute": "zander.discord.punish.mute",
"can_view_history": "zander.discord.punish.history"
},
"requireDmSuccess": false
},
"roles": {
"muted": "ROLE_ID"
}
}

Set requireDmSuccess: true if you want punishment commands to fail silently when a DM cannot be delivered to the user.


Web Punishments

Web punishments restrict a user's access to the Zander website. They are issued and managed from Dashboard → Web Punishments (requires zander.web.punishment.manage).

note

📸 Screenshot: The web punishments dashboard showing active punishments with type badges, issue dates, and a "Lift" button

Punishment Types

TypeEffect
WarningWarning recorded on the account — no access restriction
Temporary BanPrevents the user from logging in to the website for the specified duration
Permanent BanPermanently blocks website login

Issuing a Punishment

  1. Click Create in the Web Punishments dashboard.
  2. Enter the target username, punishment type, reason, and duration (for temporary bans).
  3. Save — the punishment takes effect immediately and the user is notified via Discord DM.

Lifting a Punishment

Locate the active punishment in the dashboard and click Lift. Only ACTIVE punishments on the WEB platform can be lifted.


For Players — Appeals

If you believe a punishment was issued unfairly, you can appeal at /appeal.

Discord Punishment Appeals

  1. Navigate to /appeal and locate your punishment.
  2. Enter a clear reason for your appeal and submit.

Appeal rules:

  • Only you can appeal your own punishment.
  • You cannot submit a duplicate appeal while one is still pending.
  • Inactive punishments cannot be appealed.

Your appeal will be reviewed by staff, who may approve or reject it with optional notes.

Web Punishment Appeals

Web punishment appeals are handled through the ticket system. Head to /appeal and your request will be routed into a dedicated appeal support ticket for staff review.


Public Punishment Log

The /punishments page shows a public log of active punishments, keeping your moderation transparent and accountable to your community.