InControlMob

Rule-driven mob control plugin for Paper 1.21

274

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.

ADS