Compatibility
Minecraft: Java Edition
Platforms
Links
Tags
Creators
Details
🛡️ TuvaMuteSystem (TMS)
TuvaMuteSystem is an all-in-one, lightweight, and highly customizable escalating punishment & chat management plugin designed for modern and legacy Minecraft servers (1.8 – 26.+).
Instead of requiring moderators to memorize punishment durations or manually calculate repeat offenses, TuvaMuteSystem automatically tracks player infraction levels per category and escalates punishments from screen title warnings → temporary mutes → temporary/permanent bans, while seamlessly syncing with Simple Voice Chat (via LuckPerms) and Discord!
✨ Key Features
📈 Smart Escalating Punishment System
**Category-Based Offenses:** Punish players simply by typing `/tms <category> <player>` (e.g., `/tms swearing Steve`).
**Automatic Level Tracking:** Each offense increases the player's penalty level in that specific category and applies the next duration configured in `config.yml`.
**Screen Title Warnings (`warn: true`):** Categories with `warn: true` issue an on-screen title warning on the first offense. If the player re-offends within **1 hour**, they are automatically muted!
**Mute-to-Ban Escalation (`*`):** Append an asterisk `*` to any duration in `config.yml` (e.g., `5d*` or `999999w*`) to automatically escalate higher-tier offenses from a mute into a **temporary or permanent ban**.
🎙️ Automatic Voice Chat Mute Integration
**Chat Mute = Voice Mute:** When a player is muted in text chat, TuvaMuteSystem automatically revokes their `voicechat.speak` permission via **LuckPerms** for the exact same duration and notifies them with sound effects.
**Standalone Voice Commands:** Includes dedicated `/vcmute <player> <duration> [reason]` and `/vcunmute <player>` commands for staff to moderate voice chat independently.
Automatically lifts voice chat restrictions when `/tms unmute <player>` is executed.
🤖 Interactive Discord Bot Integration (JDA)
Built-in Discord bot with Slash Commands, Select Menus, and Interactive Buttons—no external webhook plugins required:
**📢 Interactive Player Reports (`/mutereport`):** Sends an embed to your Discord report channel containing the reported player's **last 20 chat messages** and a **dropdown menu** allowing staff to punish the player directly from Discord!
**⚖️ Interactive Mute Appeals (`/muteappeal`):** Muted players can submit an appeal in-game. Staff receive the player's recent chat history on Discord with **`[Unmute Player]`** and **`[Reject Appeal]`** buttons.
**📋 Live Muted Players Panel:** Maintains an auto-updating embed & dropdown menu in a designated channel where staff can inspect active mutes, reasons, and remaining times.
**🔍 `/tms <player>` Slash Command:** Query any player's active mute/ban status directly from Discord.
🖥️ Live Countdown GUI & Chat Moderation Tools
**Real-Time `/tms list` GUI:** View all currently muted players with their player heads, punishment reasons, and a **live second-by-second countdown timer**.
**Animated Chat Clear (`/tms clear` / `/tms res`):** Clears global chat with a sleek animated progress bar.
**Chat Lock (`/tms lock`):** Instantly lock or unlock global chat during raids or events (bypassable with `tms.bypass`).
**Blank/Hidden Username Protection (`/tms noname <player>`):** 3-stage escalating enforcement (`Warn` ➔ `Kick` ➔ `Permanent Ban`) against invisible or blank usernames.
🌍 21 Built-In Languages & Non-Destructive Auto-Updater
**Out-of-the-Box Translations:** Ships with **21 complete language files** (`en`, `tr`, `tr_cy`, `az`, `de`, `es`, `fr`, `ru`, `zh`, `ja`, `ko`, `ar`, `ur`, `pl`, `uk`, `bs`, `sq`, `fi`, `ga`, `id`, `ka`).
**Full Localization:** All in-game messages, GUIs, screen titles, and Discord embeds/buttons adapt to your selected language.
**Smart Config & Lang Auto-Updater:** Updating the plugin to a newer version automatically merges new keys into your existing `config.yml` and `lang/*.yml` files **without resetting or overwriting** your custom edits!
🎮 Commands
| Command | Aliases | Description |
| :--- | :--- | :--- |
| /tms <category> <player> | — | Punishes a player using the escalating category system. |
| /tms list | — | Opens the live-updating Muted Players GUI. |
| /tms levels <player> | — | Displays a player's offense history and category levels. |
| /tms unmute <player> | — | Unmutes a player (chat + voice chat) and reduces their category level by 1. |
| /tms noname <player> | — | Punishes players with blank/hidden names (1st: Warn, 2nd: Kick, 3rd: Ban). |
| /tms lock | — | Locks or unlocks the global server chat. |
| /tms clear | /tms res | Clears the global server chat with an animated progress bar. |
| /tms reload | — | Reloads config.yml, language files, and reconnects the Discord bot. |
| /vcmute <player> <time> [reason] | /tms vcmute | Temporarily mutes a player in voice chat via LuckPerms. |
| /vcunmute <player> | /tms vcunmute | Removes a player's voice chat mute. |
| /mutereport <player> <reason> | /mutebildir | Reports a player to online staff and Discord with recent chat logs. |
| /muteappeal | /muteitiraz | Submits a mute appeal to online staff and Discord. |
🔐 Permissions
| Permission | Default | Description |
| :--- | :---: | :--- |
| tms.use | OP | Access to main /tms moderation and category punishment commands. |
| tms.unmute | OP | Allows unmuting players via /tms unmute <player>. |
| tms.levels | OP | Allows checking player penalty levels via /tms levels <player>. |
| tms.lock | OP | Allows locking and unlocking global chat (/tms lock). |
| tms.clear | OP | Allows clearing global chat (/tms clear / /tms res). |
| tms.noname | OP | Standalone permission to use /tms noname <player> (works even without tms.use). |
| tms.reload | OP | Allows reloading the plugin configuration (/tms reload). |
| tms.bypass | OP | Allows chatting while chat is locked and bypasses report/appeal cooldowns. |
| tms.vcmute | OP | Allows using /vcmute, /vcunmute, and receiving voice mute alerts. |
| tms.report | true | Allows players to use /mutereport (/mutebildir). |
| tms.appeal | true | Allows muted players to use /muteappeal (/muteitiraz). |
⚙️ Configuration Example (config.yml)
language: "en"
server-name: "TuvaNetwork"
discord:
enabled: false
bot-token: "YOUR_DISCORD_BOT_TOKEN_HERE"
activity: "TuvaMuteSystem"
channels:
report: "" # Channel ID for player reports (/mutereport)
appeal: "" # Channel ID for mute appeals (/muteappeal)
log: "" # Channel ID for punishment logs
announcement: "" # Channel ID for public mute/ban embeds
list: "" # Channel ID for live active mute list panel
settings:
appeal-cooldown: 300
report-cooldown: 60
voicechat:
enabled: true
mute-on-chat-mute: true
permission: "voicechat.yetkili"
mute-command: "lp user %player% permission settemp voicechat.speak false %duration%"
unmute-commands:
- "lp user %player% permission unsettemp voicechat.speak"
- "lp user %player% permission unset voicechat.speak"
categories:
chat:
warn: true
penalties: ["10m", "30m", "1h", "4h"]
swearing:
warn: false
penalties: ["2h", "4h", "8h"]
harassment:
warn: false
penalties: ["12h", "5d*"] # '*' escalates to a temporary ban!
🔧 Compatibility & Requirements
**Minecraft Versions:** `1.8.8` up to `1.21.x+` (Full RGB/Hex color support on `1.16+`, automatic legacy color & material fallback on `1.8 – 1.15`).
**Server Software:** Spigot, Paper, Purpur, Folia-compatible schedulers, and forks.
**Optional Soft Dependencies:** [LuckPerms](https://modrinth.com/plugin/luckperms) & [Simple Voice Chat](https://modrinth.com/plugin/simple-voice-chat) (for voice mute integration).

