Skip to main content

Punishments

Zander gives your staff a consistent, accountable way to handle rule-breaking on Discord and on the website. Every punishment is logged, temporary punishments lift themselves automatically once their time is up, and players always have a way to appeal - so your moderation stays fair and transparent.

note

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

:::warning Two separate punishment systems It's important to understand that Zander actually has two separate punishment systems. They sound similar and both use the word "punishment," but they punish different things and don't share the same records:

  1. In-game punishments (LiteBans) - these are the bans, kicks, mutes, and warnings your Minecraft anti-cheat/moderation plugins hand out in-game, using the popular LiteBans plugin. Zander doesn't create or manage these - it just displays them. The public /punishments page on your website simply reads and shows this LiteBans data live; it can't issue or remove a punishment, only display what already happened in-game.
  2. Web Punishments (dashboard) - these are punishments your staff issue from the website dashboard, and they act on a player's website account rather than their in-game access - for example, blocking someone from logging into your site. These are stored separately from LiteBans, in the same place Zander stores Discord punishments. Web Punishments never touch the LiteBans data and never show up on the public /punishments page.

Discord punishments (covered next) and Web Punishments are close cousins - they're stored together and expire the same way - but staff issue them through two different places: the /punish command in Discord, versus the dashboard. In-game (LiteBans) punishments are a completely separate system that Zander only displays, never controls. :::


Discord Punishments​

Staff issue Discord punishments using the /punish slash command right in Discord. To use it, a staff member needs their Minecraft account linked and the right permission group for the action they're taking.

Punishment Types​

TypeCommandDurationDescription
Warning/punish warnPermanentFormal warning logged against the user
Kick/punish kick-Removes 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

You don't need to remember to lift temporary punishments yourself - Zander automatically checks for and lifts them the moment their time is up.

Viewing History​

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

Configuration​

To set up which Discord role gets applied when someone is muted, which channel punishment logs post to, and which permission group is required for each punishment type, edit these settings 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 what a player can do on your website - they don't affect a player in-game at all, and they're completely separate from the in-game LiteBans punishments described in the warning above. Staff issue and manage them entirely from Dashboard → Web Punishments at /dashboard/web-punishments, which requires the zander.web.punishment.manage permission. There's no way to issue or lift these from outside the dashboard.

note

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

Punishment Types​

TypeValueEffect
WarningWARNWarning recorded on the account - no access restriction
Temporary BanTEMP_BANPrevents the user from logging in to the website for the specified duration
Permanent BanPERM_BANPermanently blocks website login

Issuing a Punishment​

  1. Click Create (Issue Punishment) in the Web Punishments dashboard - posts to POST /dashboard/web-punishments/create.
  2. Enter the target username, punishment type, reason, and duration (required for temporary bans; format 30m, 1h, 7d, 2w).
  3. Save. This looks up the target account, inserts a discord_punishments row with platform = 'WEB', and takes effect immediately.

If the player has a linked Discord account, they'll receive a direct message letting them know, and a notification is posted using the same behind-the-scenes notification system the Discord /punish command uses.

Lifting a Punishment​

Find the active punishment in the dashboard and click Lift. You can only lift punishments that are currently active.

Just like Discord punishments, temporary Web Punishments are lifted automatically once their time runs out - no need to check back and remove them manually.


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 so your moderation stays transparent and your community can see it's being applied fairly. This log shows only in-game (LiteBans) punishments - not Discord or Web Punishments - and lists recent bans, kicks, mutes, and warnings, with player names shown instead of raw account IDs. Anyone can view this page; no login is required.