GUI Screens

Overview

XBans provides multiple fully customizable GUI screens for managing moderation through an intuitive point-and-click interface. Most list GUIs are accessed through the unified /sanctions command, with dedicated commands for player-specific GUIs.

Every GUI follows the XCore GUI pattern with paginated navigation (slots 48/49/50 for Previous/Back/Next), blinking button animations, and YAML-driven customization through lang.yml.

CommandOpens
/sanctions bansActive bans
/sanctions ipbansActive IP bans
/sanctions mutesActive mutes
/sanctions ipmutesActive IP mutes
/sanctions warnsActive warnings
/sanctions reportsActive reports
/sanctions jailsCurrently jailed players
/playersAll known players
/profil <player>Detailed profile for a single player
/punish <player>One-click sanction menu with sub-menus

Sanction List GUIs

All sanction lists live under the /sanctions umbrella command (permission: xbans.sanctions) with these subcommands:

Bans (/sanctions bans)

Displays all active bans with player head icons. Each entry shows the banned player's name, the reason, who banned them, and the remaining duration. Left-click to unban directly from the GUI; right-click to open the player's profile.

IP Bans (/sanctions ipbans)

Lists all active IP bans. Shows the target player, the banned IP, the reason, and the remaining duration.

Mutes (/sanctions mutes)

Same layout as the ban list but for active mutes. Shows who muted the player, the reason, and when the mute expires.

IP Mutes (/sanctions ipmutes)

Lists all active IP mutes. Shows the target player, the muted IP, the reason, and the remaining duration.

Warns (/sanctions warns)

Lists all active warnings (warns expire after warn-duration). Each entry shows the warning ID, reason, and the staff member who issued it. Staff can click to remove individual warnings.

Reports (/sanctions reports)

Shows pending player reports. Each entry displays the reporter, the reported player, the reason, and the timestamp. Staff can click to resolve (left-click — trains the AI), dismiss (shift+left-click), or open the player profile (right-click).

Jails (/sanctions jails)

Displays currently jailed players with their jail name, duration, and remaining time. Left-click to release.

All lists are paginated. When more entries exist than fit on one page, Previous and Next buttons appear in the bottom bar.

Punish Menu (/punish <player>)

The /punish <player> command (permission: xbans.punish) opens a one-click sanction menu — the fastest way for staff to action a player without typing commands. It is built entirely from YAML and uses sub-menus, so each sanction type can offer several durations or reasons.

Main menu

The top-level menu (guis/punish.yml) shows the target's head plus one button per sanction category: Ban, Mute, Warn, Kick, and Jail. Clicking a category opens its sub-menu. Clicking the player's head opens their full profile (requires xbans.profil).

Sub-menus

  • Ban (punish_ban.yml) — 1 hour, 1 day, 7 days, 30 days, Permanent
  • Mute (punish_mute.yml) — 10 minutes, 1 hour, 1 day, 7 days, Permanent
  • Warn (punish_warn.yml) — Rule violation, Spam, Toxic behaviour, Harassment, Inappropriate content, Other
  • Kick (punish_kick.yml) — Review the rules, Spam, Toxic behaviour, Suspicious behaviour, AFK, Other
  • Jail (punish_jail.yml) — 1 hour, 1 day

Each sub-menu has a Back button that returns to the main menu. Sanctions are issued as the staff member who clicked, so they are attributed correctly and respect that staff member's permissions (a Ban button does nothing for someone without xbans.ban).

Fully configurable

Every button is defined in YAML — nothing is hardcoded. Each button has either:

  • commands: — one or more commands to run, with %target% (the punished player) and %player% (the staff member) placeholders;
  • open: — the name of another menu file to open (used for sub-menus and the Back button).

To add a duration or reason, copy a button and change its target-title (a lang.yml key), its command, and its slot. To add a whole new sub-menu, create guis/yourmenu.yml and point a button at it with open: yourmenu.

The same menu engine powers the /report reason picker (guis/report.yml). A Punish button also lives on the player Profile GUI, so staff can jump back and forth between a player's profile and the punish menu.

Players GUI (/players)

The Players GUI displays all known players as clickable heads. This provides a quick way to look up any player and access their profile. Each entry's lore shows the active sanction record (banned/muted/warned/reported/jailed flags).

Clicking a player head opens their Profile GUI via /profil.

Profile GUI (/profil <player>)

The Profile GUI is the most detailed screen, showing comprehensive information about a single player:

  • Player head — Online/offline status, server UUID, Mojang UUID, registration date, IPs used
  • Sanction record — Active ban, IP ban, mute, IP mute, warns, reports, jail status (with counts)
  • History buttons — Drill-down into ban / mute / warn / report / jail history (active and past)
  • Notes button — Opens the Notes GUI showing staff notes for the player
  • Alt-accounts button — Opens the Detected Accounts GUI showing potential alts with risk scores
  • Punish button — Opens the /punish menu for the player, for quick sanctions without leaving the profile flow

History GUI

The History GUI shows a player's complete sanction history in chronological order. Every ban, mute, warn, kick, and jail ever issued to the player is listed here, including expired and removed sanctions.

Each entry shows:

  • The sanction type and status (active, expired, or removed)
  • The reason and staff member who issued it
  • The date and duration
  • Who removed it (if applicable) and when

Notes GUI

The Notes GUI displays all staff notes attached to a player. Notes are shown in chronological order with the author and timestamp. Staff can browse through notes across multiple pages.

Detected Accounts GUI

The Detected Accounts (daccounts) GUI shows all accounts flagged by the alt-detection system as potential alternatives of the player being viewed. Each entry displays:

  • The detected account's name and head
  • The risk score (0-100) with color coding (green/yellow/red)
  • Which risk factors triggered the detection
  • Whether the detected account has any active sanctions

This allows staff to quickly assess whether a new player is likely an alt of a banned player and take appropriate action.

GUI Customization

All GUI elements are customizable through lang.yml. You can modify:

  • Titles — The inventory title for each GUI screen (supports MiniMessage formatting and %page%/%max% placeholders)
  • Item lores — The text displayed on each item (uses YAML pipe | for multi-line and %placeholder% tokens)
  • Button text — The blinking button labels (-off/-on suffix pattern)
  • Navigation buttons — Previous, Back, and Next button text and lore

XBans GUIs use the standard XCore GUI pattern. See the GUI Customization page for the full guis/*.yml schema — item materials, custom model data, item models, click sounds, click actions and per-item permissions.