Overview#
In Control! is a comprehensive tool designed to manage every aspect of mob behavior and presence in a Minecraft world. Unlike mods that simply add content, In Control! acts as a logic layer, allowing you to define exactly when, where, and how mobs appear. It supports complex conditions such as biomes, dimensions, time of day, player distance, and even custom game stages.
Key Features
- Spawn Restriction: Block specific mobs from spawning in certain biomes or dimensions.
- Spawn Addition: Add mobs to dimensions where they don't naturally occur (e.g., Blazes in the Overworld).
- Attribute Modification: Change a mob's health, speed, damage, and equipment upon spawning.
- Loot & XP Control: Customize what items mobs drop and how much experience they grant.
- Event-Based Spawning: Trigger mob spawns based on player actions like breaking blocks or killing other mobs.
- Area Management: Define specific safe zones or high-danger areas using the new Area system.
Configuration Files#
All configuration files are located in the config/incontrol/ directory. These files use JSON syntax and are evaluated by the mod to apply rules.
| File Name | Purpose |
|---|---|
spawn.json |
Restricts or modifies existing natural spawns. |
spawner.json |
Adds new mob spawns to the world (1.16+). |
loot.json |
Customizes item drops from mobs. |
experience.json |
Customizes XP rewards from mobs. |
summonaid.json |
Controls zombie reinforcement spawns. |
effects.json |
Applies potion effects to players based on conditions. |
phases.json |
Defines global conditions (phases) to simplify other rules. |
areas.json |
Defines named geographic regions (1.20+). |
events.json |
Spawns mobs based on specific world events (1.20+). |
potentialspawn.json |
1.12 ONLY. Replaced by spawner.json in newer versions. |
Conditions Reference#
Conditions are tests that must be true for a rule to execute. Most conditions can be used across all JSON files.
Common Conditions
| Condition | Type | Description |
|---|---|---|
mob |
String/List | The registry name of the mob (e.g., minecraft:zombie). |
hostile |
Boolean | Matches all hostile mobs if true. |
passive |
Boolean | Matches all passive mobs if true. |
dimension |
String/List | The dimension ID (e.g., minecraft:overworld). |
biome |
String/List | The biome registry name (e.g., minecraft:plains). |
biometags |
String/List | Matches biomes based on tags (e.g., minecraft:is_forest). |
time |
Range | Time of day in ticks (0-24000). |
mindaycount |
Integer | Minimum number of days passed in the world. |
minlight |
Integer | Minimum light level at the spawn position (0-15). |
minheight |
Integer | Minimum Y-level for the spawn. |
seesky |
Boolean | True if the position has a direct view of the sky. |
onblock |
String | The block the mob is spawning on. |
weather |
String | Current weather: clear, rain, or thunder. |
difficulty |
String | Current difficulty: easy, normal, hard. |
random |
Float | A random chance between 0.0 and 1.0. |
area |
String | Matches if the spawn is within a named area from areas.json. |
phase |
String | Matches if a specific phase from phases.json is active. |
Actions Reference#
Actions define what happens when all conditions in a rule are met.
Spawn Actions (spawn.json)
| Action | Description |
|---|---|
result |
The outcome: deny (block), allow (force), default (vanilla check), or deny_with_actions. |
healthmultiply |
Multiplies the mob's base health. |
healthadd |
Adds a flat value to the mob's health. |
speedmultiply |
Multiplies the mob's movement speed. |
damagemultiply |
Multiplies the mob's attack damage. |
potion |
Applies a potion effect (Format: effect,duration,amplifier). |
helditem |
Gives the mob an item to hold (Format: itemstack). |
armorhelmet |
Equips the mob with a specific helmet. |
customname |
Sets a custom display name for the mob. |
nbt |
Adds custom NBT data to the entity. |
nodespawn |
If true, the mob will never naturally despawn. |
setphase |
Activates a specific phase. |
Spawn Control (spawn.json)#
The spawn.json file is used to restrict or modify mobs that are already attempting to spawn. Rules are evaluated from top to bottom, and the first matching rule is applied.
Note: spawn.json cannot add new spawns; it can only filter or modify existing ones.
Example: Blocking Creepers in the Overworld
[
{
"dimension": "minecraft:overworld",
"mob": "minecraft:creeper",
"result": "deny"
}
]
Example: Buffing Zombies at Night
[
{
"mob": "minecraft:zombie",
"time": "13000-24000",
"healthmultiply": 2.0,
"damagemultiply": 1.5,
"result": "default"
}
]Adding Spawns (spawner.json)#
Introduced in 1.16+, spawner.json allows you to add entirely new spawn rules to the world. Unlike spawn.json, all matching rules in this file are executed.
Spawner Keywords
mobs: A list of mob objects to spawn.persecond: How often the spawner attempts to run (e.g., 0.5 means every 2 seconds).attempts: Number of attempts per cycle.amount: Number of mobs to spawn per successful attempt.conditions: The conditions required for this spawner to run.
Example: Spawning Blazes in Deserts
[
{
"mobs": [
{
"mob": "minecraft:blaze",
"weight": 10,
"groupcountmin": 1,
"groupcountmax": 2
}
],
"persecond": 0.1,
"attempts": 20,
"amount": {
"minimum": 1,
"maximum": 3
},
"conditions": {
"dimension": "minecraft:overworld",
"biome": "minecraft:desert"
}
}
]Loot and Experience#
Loot Control (loot.json)
This file allows you to add or remove items from a mob's drop table. You can use conditions like playerhelditem to make specific items drop only when killed with a certain tool.
| Action | Description |
|---|---|
item |
The item to add to the drops. |
remove |
A list of items to remove from the default drops. |
removeall |
If true, removes all vanilla drops. |
Experience Control (experience.json)
Controls the amount of XP dropped by a mob.
| Action | Description |
|---|---|
result |
Set to deny to prevent any XP from dropping. |
setxp |
Sets the XP to a fixed value. |
multxp |
Multiplies the default XP value. |
Commands#
In Control! provides several commands for debugging and management. All commands start with /incontrol.
| Command | Description |
|---|---|
/incontrol reload |
Reloads all JSON configuration files immediately. |
/incontrol debug |
Toggles debug mode, logging spawn details to the console. |
/incontrol show |
Lists all valid entity registry names. |
/incontrol list |
Lists all currently loaded mobs in the current dimension. |
/incontrol kill <type> |
Kills mobs of a certain type (all, hostile, passive). |
/incontrol days |
Shows or sets the current internal day counter. |
/incontrol phases |
Lists all currently active phases. |
/incontrol area |
Shows information about the area the player is standing in. |