Skip to main content

Moderation

The Moderation module unifies moderation actions across Discord and Minecraft. Bans applied on one platform mirror to the other, a configurable chat filter blocks listed words and regex patterns, and players can file reports from in-game with cooldown-gated /report.

Overview

Moderation combines three concerns: synchronized bans between Discord and Minecraft, a chat filter for both plain words and regular expressions, and an in-game reporting flow that respects verification and per-player cooldowns.

Configuration

All keys live under features.moderation in plugins/XDiscordUltimate/config.yml.
features:
  moderation:
    enabled: true
    sync-bans: true
    log-channel: "mod-logs"
    auto-moderate: true
    report-cooldown-minutes: 5
    require-verification-for-reports: true
    filter-words:
      - "badword"
      - "anotherbadword"
      - "regex:\\b(somepattern)\\b"

Key behavior

  • sync-bans — When true, bans propagate between platforms. A Minecraft ban applies a Discord ban, and a Discord ban removes the player’s access accordingly.
  • log-channel — Discord channel where moderation actions (bans, reports, filter hits) are logged (default mod-logs).
  • auto-moderate — When true, the chat filter runs automatically on player chat.
  • report-cooldown-minutes — Cooldown applied per player between reports (default 5).
  • require-verification-for-reports — When true, only players who have completed Verification can submit reports. This prevents abuse from throwaway accounts.
The filter-words list accepts two kinds of entries:
  • Plain words — Matched literally (e.g. badword).
  • Regex patterns — Prefixed with regex: and evaluated as Java regular expressions (e.g. regex:\b(somepattern)\b).
Players with the xdiscord.bypass.filter permission skip the filter entirely.

Commands & Permissions

# Report a player from in-game (alias: /reportplayer)
/report <player> <reason>
PermissionDescription
xdiscord.bypass.filterBypass the chat filter entirely. Grant to staff.

Ban sync behavior

When sync-bans: true, the direction is bidirectional:
  • Ban a player in Minecraft (e.g. /ban) → the bot applies a Discord ban to the linked account.
  • Ban a user on Discord → the corresponding Minecraft player is banned on the server.
This requires the player to be verified so the bot knows which Discord account maps to which player.
Regex patterns are powerful and evaluated as Java regular expressions. A malformed or overly broad pattern can silently match far more than you intend — for example, regex:abc matches any chat containing abc anywhere. Always test new patterns on a staging server before enabling them in production, and anchor patterns with \b word boundaries where possible.
Moderation actions are persisted to the moderation_logs database table for audit.

Next Steps

Support Tickets

Route player complaints into private, transcript-backed support channels.

Permissions

Full reference for every permission node, including the filter bypass.