CreativeGuard
Server-side anti-cheat for Forge 1.20.1. Detects and punishes players carrying creative-only items, illegal NBT, or items whose lore / registry ID matches a configurable keyword list. No client install required — vanilla and modded clients connect normally.
Built for PvP and geopolitical servers where a single duped or cheated item can ruin a season. CreativeGuard scans every online player on a configurable interval and at login, and applies your chosen punishment on the first violation.
Features
- Creative-only item blacklist — command blocks, chain/repeating command blocks, barriers, debug sticks, structure blocks, structure voids, jigsaw blocks, light blocks, bedrock, spawners, knowledge books, end portal frames, budding amethyst, reinforced deepslate, dirt paths, farmland-as-item, petrified oak slabs, and more. Fully editable.
- Over-stacked items — flags any stack larger than its vanilla max size.
- Over/under-enchanted items — catches enchantments above max level or below min level (
Sharpness 10, Efficiency 32, negative levels, etc.).
- Impossible attribute modifiers — inspects the
AttributeModifiers NBT tag and flags modifiers whose absolute amount exceeds a configurable bound.
- Keyword detection — whole-word, case-insensitive match of banned keywords in item lore and registry ID. Default list:
creative, infinity, admin, debug, op, unbreakable, godmode, cheat, test.
- 4 punishment modes — permanent ban (default), tempban, kick, or silent confiscate. Swap at runtime with one command.
- Exemptions — OP level threshold plus a named allowlist, both editable in-game.
- Lightweight — ~17 KB jar, no client files, no mixins, no network traffic. Scan cost is negligible on modest player counts.
Installation
- Install Forge 1.20.1 (≥ 47.2.0) on the dedicated server.
- Drop
creativeguard-1.0.0.jar into <server>/mods/.
- Start the server once — this generates
config/creativeguard-common.toml.
- Edit the TOML (see below), then restart.
Clients do not need the mod installed. displayTest="IGNORE_ALL_VERSION" is set, so vanilla clients connect without a "mod mismatch" prompt.
Configuration
File: <server>/config/creativeguard-common.toml
[general]
| Key |
Default |
Description |
punishment_mode |
"BAN" |
BAN (permanent), TEMPBAN, KICK, or CONFISCATE. |
temp_ban_minutes |
1440 |
Duration for TEMPBAN mode (default = 24 hours). |
ban_reason |
"Use of creative-only or illegal items (CreativeGuard)" |
Text shown on kick/ban. |
scan_interval_ticks |
40 |
Ticks between full sweeps. 20 ticks = 1 second. |
[exemptions]
| Key |
Default |
Description |
op_exempt_level |
2 |
Players with OP permission level ≥ this value are skipped. -1 disables. |
exempt_players |
[] |
Named allowlist. Case-insensitive. |
[detection]
| Key |
Default |
Description |
item_blacklist |
(see below) |
Registry IDs treated as creative-only. |
name_keywords |
["creative","infinity","admin","debug","op","unbreakable","godmode","cheat","test"] |
Whole-word, case-insensitive keyword flags. |
keyword_scan_fields |
["lore","registry_id"] |
Where to scan. Valid: display_name, lore, registry_id. |
check_oversized_stacks |
true |
Flag stacks above vanilla max size. |
check_over_enchanted |
true |
Flag enchantments outside [min, max]. |
check_illegal_attributes |
true |
Flag outsized AttributeModifiers. |
max_attribute_magnitude |
50 |
Absolute bound for modifier Amount. |
Default blacklist
minecraft:command_block
minecraft:chain_command_block
minecraft:repeating_command_block
minecraft:command_block_minecart
minecraft:jigsaw
minecraft:structure_block
minecraft:structure_void
minecraft:barrier
minecraft:light
minecraft:debug_stick
minecraft:knowledge_book
minecraft:petrified_oak_slab
minecraft:farmland
minecraft:dirt_path
minecraft:budding_amethyst
minecraft:reinforced_deepslate
minecraft:bedrock
minecraft:end_portal_frame
minecraft:spawner
minecraft:nether_portal
minecraft:end_portal
minecraft:end_gateway
Example: switch to confiscate-only for a testing night
[general]
punishment_mode = "CONFISCATE"
scan_interval_ticks = 20
Example: tempban for a week, exempt your admin team
[general]
punishment_mode = "TEMPBAN"
temp_ban_minutes = 10080
[exemptions]
op_exempt_level = 3
exempt_players = ["masn", "Notch", "Admin_Bob"]
Example: paranoid keyword policy
[detection]
name_keywords = ["creative","infinity","admin","debug","op","unbreakable","godmode","cheat","test","dupe","hack","kit","nuke"]
keyword_scan_fields = ["display_name","lore","registry_id"]
Commands
All commands require OP permission level 2.
| Command |
Effect |
/creativeguard scan <player> |
Run a one-off manual scan. |
/creativeguard exempt add <name> |
Add a named player to the exempt list. |
/creativeguard exempt remove <name> |
Remove from the exempt list. |
/creativeguard exempt list |
Show the current exempt list. |
/creativeguard mode <BAN\|TEMPBAN\|KICK\|CONFISCATE> |
Change punishment mode on the fly. Persists to the config file. |
/creativeguard reload |
Reminder that Forge hot-reloads the TOML on save. |
Compatibility
- Minecraft: 1.20.1
- Loader: Forge 47.2.0 or newer (declared range
[47,))
- Physical side: dedicated server only. Deps are marked
side="SERVER".
- Client: no install needed.
displayTest="IGNORE_ALL_VERSION".
- Other mods: does not touch registries, block states, or world data — should coexist cleanly with any mod in the 1.20.1 ecosystem.
FAQ
Will it ban players who pick up a spawner with Silk Touch?
Spawners can't be picked up with Silk Touch in vanilla. If a mod adds that ability and you want to allow it, remove minecraft:spawner from item_blacklist.
What if I name my sword "Creative Fury"?
It'll match the creative keyword. Either rename the item, add yourself to exempt_players, or trim the keyword list.
Does it scan Ender Chests / Shulker Boxes?
Not in 1.0.0 — only the main inventory, armor, and offhand. Planned for a later release.
Can I disable a specific check?
Yes. Every check has a toggle under [detection]. Set check_over_enchanted = false to skip enchant checks, etc.
How do I know the mod is running?
Server log will show [CreativeGuard] Initialized. on startup. Flagged players also produce a log line and a broadcast to online ops.
Credits
Built for Project Atlas. Server-side anti-cheat for Forge 1.20.1.
License: All Rights Reserved (change in gradle.properties and rebuild if you want to relicense).