
AnvilWatch
AnvilWatch is a lightweight Minecraft moderation plugin that monitors and logs all item renaming done through anvils. It blocks the use of banned words, alerts admins in-game, and records rename activity to a log file for server safety and accountability.
AnvilWatch
AnvilWatch is a lightweight Minecraft moderation plugin that monitors and controls item renaming through anvils. Designed for server administrators, it ensures that all rename actions are tracked and that inappropriate names are blocked automatically based on a configurable banned word list.
<br>
<i>Please join the Discord if you have questions!</i>
Features
- Logs all item renames done through anvils to a log file
- Blocks item names that contain banned words (case-insensitive)
- Alerts all online admins with the correct permission when a rename occurs
- Supports permission-based bypass for trusted users
- Provides a set of admin commands to manage banned words and plugin behavior
- Live reloading of banned word list without restarting the server
- Advanced Filtering: Supports Regular Expressions (Regex), Homoglyph normalization, and Leet-speak detection.
- Alerts all online admins with the correct permission when a rename occurs.
Why Use AnvilWatch?
Players renaming items with offensive, inappropriate, or disruptive names is a common issue on Minecraft servers. AnvilWatch provides a simple and effective way to:
- Automatically prevent these renames using a customizable word filter
- Keep a detailed log of all rename events for moderation and accountability
- Notify staff in real time when rename attempts occur
- Manage filters and settings easily in-game using commands
Regex & Advanced Filtering
AnvilWatch supports powerful Regular Expressions (Regex) for advanced moderation. Each entry in your BannedWords.txt is treated as a regex pattern, allowing you to block entire families of words or specific character patterns.
- Case-Insensitive: All checks are automatically case-insensitive.
- Pattern Matching: Use regex to catch variations. For example,
bad.*will block "badword", "badstuff", and "badlink". - Character Sets: Use
b[a4]dw[o0]rdto catch leet-speak variations like "b4dw0rd". - Normalizations: The plugin automatically converts homoglyphs (look-alike characters from other alphabets) and leet-speak back to standard text before checking your filters, preventing simple bypasses.
Commands
| Command | Description |
|---|---|
/anvilwatch help | Displays a list of available commands |
/anvilwatch reload | Reloads config.yml and the banned word list from BannedWords.txt |
/anvilwatch add <word> | Adds a word to the banned word list |
/anvilwatch remove <word> | Removes a word from the banned word list |
/anvilwatch log <on/off> | Toggles in-game rename log messages for the user and saves the setting across restarts |
/anvilwatch check <text> | Checks text against the current banned word list and reports a matching pattern when blocked |
/anvilwatch recent [page] | Shows the 10 most recent successful and blocked rename entries together, with clickable pagination |
Alias: /anw
Usage: /anvilwatch <help|reload|add|remove|log|check|recent> <args>
Permissions
| Permission | Description | Default |
|---|---|---|
anvilwatch.admin | Receive rename alerts and use plugin management commands | op |
anvilwatch.bypass | Allows renaming items without word filter restrictions | false |
Configuration
- Banned Word List: Managed in the
BannedWords.txtfile located in the plugin folder. Each non-comment line is treated as a case-insensitive Java regular expression. - Configuration File:
config.ymlis generated in the plugin folder and controls player warnings, administrator notifications, notification display modes, log locations, and blocked-attempt logging. - Messages: Configurable messages use MiniMessage formatting. Available placeholders are
<player>,<item>,<old>, and<new>. - Player Warning:
messages.player-blockedcontrols the message shown when a player's rename attempt is blocked. - Admin Messages:
messages.admin-renamecontrols successful-rename notifications, whilemessages.admin-blockedcontrols blocked-attempt notifications. - Notification Display:
messages.admin-displayacceptsCHAT,ACTION_BAR, orBOTH. - Successful Rename Log:
logging.rename-filecontrols the successful-rename log location. It defaults tologs/anvil_renames.log. - Blocked Attempt Log:
logging.blocked-filecontrols the blocked-attempt log location. It defaults tologs/blocked_renames.log. - Blocked Attempt Logging:
logging.log-blocked-attemptscontrols whether blocked attempts are written to the blocked log and defaults totrue. - Log Paths: Relative paths are resolved inside the AnvilWatch plugin folder. Absolute paths are also supported, and missing parent directories are created automatically.
- Persistent Notifications:
/anvilwatch log offpreferences are stored in the generateddata.ymlfile and survive server restarts. - Historical Logs: Existing log files are preserved and new entries are appended.
- No server restart required: Changes to the configuration and banned word list can be applied using
/anvilwatch reload.
A default config.yml looks like this:
messages:
player-blocked: "<red>You cannot use that word in item names.</red>"
admin-rename: "<yellow><player></yellow> renamed <aqua><item></aqua> from '<red><old></red>' to '<green><new></green>'"
admin-blocked: "<yellow><player></yellow> attempted to use a blocked name on <aqua><item></aqua>: '<red><new></red>'"
admin-display: CHAT
logging:
rename-file: "logs/anvil_renames.log"
blocked-file: "logs/blocked_renames.log"
log-blocked-attempts: true
Compatibility
- Minecraft Version: 26.2
- API Version: 26.2
- Java Version: 25
- Dependencies: None
Getting Started
- Drop the plugin JAR into your server's
plugins/folder. - Start the server to generate
config.yml,BannedWords.txt, the log directory, and the separate log files. - Review and edit
config.ymlto customize messages, notification display, and logging. - Add banned words either manually to
BannedWords.txtor in-game using/anvilwatch add <word>. - Assign the
anvilwatch.adminpermission to trusted staff. - Use
/anvilwatch check <text>to verify how the current filter handles a word or phrase. - Use
/anvilwatch recentto review successful and blocked rename activity. - Monitor the log files and in-game alerts as players rename items.
