Moderation Tools
Freeze
The freeze command completely locks a player in place, preventing all movement, interaction, and combat. This is typically used when staff need to question a suspected cheater or rule-breaker before deciding on a sanction.
/freeze <player>
The same command toggles the freeze state — running it again on a frozen player unfreezes them. When a player is frozen:
- All movement is blocked (including head rotation)
- Block breaking and placing is disabled
- Item usage and interaction is blocked
- The player receives a notification that they are frozen, repeated every
freeze.remind-intervalticks - Staff can still communicate with the frozen player via chat
Freezing is in-memory only — it clears on server restart. The freeze.on-disconnect config option controls what happens if a frozen player disconnects: "none" does nothing, "notify" alerts the Warden, or any command with the {player} placeholder (e.g., "ban {player} 30d Disconnected while frozen") is executed automatically.
Freeze is ideal for screenshare situations. Freeze a suspected cheater, ask them to join a voice call, and investigate before issuing a ban.
Watchlist
The watchlist lets staff flag suspicious players for ongoing monitoring. When a watchlisted player joins the server, all online staff with the xbans.warden permission receive a notification.
/watchlist <add|remove|list> [player] [reason]
Use cases for the watchlist:
- Players suspected of cheating but not yet caught
- Players who have been warned multiple times
- Accounts flagged by the alt-detection system
- Players under investigation by the moderation team
The watchlist is stored in the database and persists across restarts. The feature can be toggled with watchlist.enabled in config.
Staff Notes
Staff notes allow moderators to attach private annotations to player profiles. Notes are visible only to staff and provide context for future moderation decisions.
/note <add|list|delete> <player|id> [note]
Subcommands:
/note add <player> <text>— Attach a new note to a player/note list <player>— List all notes for a player/note delete <id>— Delete a note by its numeric ID
Notes are timestamped and attributed to the staff member who wrote them. They can be viewed in the player's profile GUI under the Notes tab. Disable the system entirely with notes.enabled: false.
Warden Notifications
The Warden system provides real-time notifications to staff about important events happening on the server. Staff toggle their own notifications with:
/warden
Players are added to the wardenPlayers list in config.yml when they enable notifications. Holders of xbans.warden who have toggled it on receive these alerts:
- Player reports — When a player files a report
- Login attempts by sanctioned players — Banned/IP-banned/muted players trying to connect or chat
- Alt-detection alerts — Duplicate accounts detected, risk score thresholds exceeded
- Watchlist joins — Watchlisted players connecting
- Frozen player disconnect — Frozen players leaving the server
- IP security info — VPN/proxy/hosting/mobile detection on join
- Client info — Client brand and protocol version on join (if
show-in-warden: true) - Chat AI flags — Messages flagged by the AI classifier (if
chat-ai.notify-warden: true)
Notifications use clickable chat components that allow staff to take immediate action (e.g., click to open the profile, click to unban).
Player Profiles & Lookups
Every player on the server has a detailed profile accessible through the GUI system. The profile aggregates all moderation data in one place.
/profil <player> # Open the player profile GUI
/history <player> # Quick text-based sanction history
/whois <player|ip> # Resolve a player or IP to its known data
The profile GUI shows:
- Basic info — Username, server UUID, Mojang UUID, registration date, IPs used
- Sanction record — Active bans, IP bans, mutes, IP mutes, warns, reports, jail status
- History buttons — Drill-down into ban / mute / warn / report / jail history (active and past)
- Alt-accounts — Detected alternative accounts with risk scores
- Staff notes — All notes attached to the player
/whois works on either a player name (returns UUID, all known IPs, shared accounts) or an IP address (returns country, ISP, VPN/hosting/mobile flags, and all players who have used that IP).
Kick
The kick command instantly disconnects a player from the server with a reason message. Unlike bans, kicks do not prevent the player from rejoining.
/kick [-s] <player> [reason] [-server <name>]
Kicks are logged in the player's history and can trigger Discord webhook notifications. Use kicks for minor or immediate disruptions that don't warrant a ban.
Shadow Ban
Shadow ban is a stealth alternative to a regular mute: shadow-banned players can join and chat normally, but their messages are only visible to themselves. Other players never see them.
Enable globally in config:
shadow-ban:
enabled: true
This is most useful against persistent spammers or trolls who would otherwise create new accounts as soon as they realize they've been muted. Because they can still see their own messages going through, they don't realize the sanction is in effect.