InControlMob
Rule-driven mob control plugin for Paper 1.21
Quick challenge
How far can you run before the mobs catch you?
Minecraft check
Confirm your run
Complete the quick check to get your code.
InControlMob
Overview
Minecraft 1.21 is a Spigot/Paper plugin for Minecraft 1.21 that gives server admins a powerful, rule‑driven system to control mob spawning, spawner behavior, summoned entities, loot, and experience. Rules are plain JSON files stored in `config/incontrolmob/`, hot‑reloadable, and validated on load so you can safely customize server behavior without code changes.
---
Key Features
- Rule‑driven control for spawn, spawner, summon, loot, and experience events - JSON rules with schema validation and clear error reporting - Hot reload with `/incontrolmob reload` — no server restart required - Rich conditions: entity type, world, biome, light level, spawn reason, time of day, difficulty, nearby players, NBT match, WorldGuard region checks, and more - Powerful actions: allow/deny spawn, change health, set equipment, add potion effects, replace entity type, modify drops and XP, set entity flags (noGravity, invulnerable, glowing, persistent), velocity/passenger changes - Priority and control: rule `priority`, `enabled` flag, `continueOnMatch` option, and file order semantics - Safe and performant: asynchronous rule loading, atomic swap of rule sets, caching and indexing by entityType/spawnReason, debug logging controlled by config - Optional WorldGuard integration: region checks when WorldGuard is present; graceful degradation when absent - Admin tools: list rules, test rules, and export rules for sharing
---
Installation
1. Place the compiled `InControlMob.jar` into your server `plugins/` folder for Paper 1.21 2. Start the server once to generate the `config/incontrolmob/` folder and sample JSON files 3. Edit the JSON files to define your rules 4. Use `/incontrolmob reload` to apply changes instantly
Default config.yml ```yaml enabled: true debug: false default-action: allow max-rule-load-time-ms: 5000 rule-cache-size: 1024 ```
---
Commands
- `/incontrolmob reload` — reload all JSON rules and report errors - `/incontrolmob rules list` — list loaded rules with id, priority, and enabled state - `/incontrolmob rule test <ruleId> <entityType>` — simulate rule evaluation at your location - `/incontrolmob export` — export current loaded rules to a single archive
Permissions - `incontrolmob.reload` — allow reload - `incontrolmob.manage` — manage rules and export - `incontrolmob.test` — run rule tests
---
Examples
- Spawner replacement: add `deny_pigs_global` to `spawn.json`, reload, pigs will no longer spawn - Spawner replacement: add `strong_zombies_plains_night`, reload, zombies in Plains at night spawn with 40 HP, iron sword, and speed effect - Spawner replacement: add a `spawner.json` rule to replace zombies with skeletons
---
Troubleshooting
- Enable `debug: true` in `config.yml` for detailed logs - On reload, check console for schema validation errors; invalid rules are skipped and reported - If WorldGuard checks fail, confirm WorldGuard is installed and compatible - For performance, ensure `rule-cache-size` is reasonable and avoid overly broad rules
---
Credits
This plugin was inspired by the InControlMob. InControlMob is an independent server‑side plugin built for Paper/Spigot, bringing similar rule‑based mob control features to multiplayer servers.
---
License
Released under the Creative Study Lab License. (MIT‑style permissive). See the Creative Study Lab License. file for details.