Configuration
Civillis works out of the box with no configuration required. Every parameter has a carefully tuned default. This page covers the two ways to customize behavior: the in-game GUI and the raw properties file.
Singleplayer vs Multiplayer Scope
Civilization logic is server-authoritative. In multiplayer, gameplay-impacting settings are not per-player.
- Singleplayer / LAN host: the local config screen changes the same process that runs world logic, so changes affect gameplay immediately.
- Dedicated server: server-side
civil.properties is the source of truth for civilization scoring, spawn suppression, decay, head attraction, and mob flee behavior.
- Client-only changes on a dedicated server: changing local GUI options does not override server logic.
In-Game GUI
Install Mod Menu + Cloth Config, then open the Civillis settings screen from the mod list.
Settings are organized into one top-level category (Civilization) with two expandable subcategories.
Main
| Setting |
Type |
Range |
Default |
Description |
| Civilization Strength |
Slider |
1–10 |
5 |
How strongly buildings suppress hostile mob spawning. Higher values lower both spawn thresholds, making it easier to reach full protection |
| Max. Civilization Radius |
Slider |
112–496 blocks (step 32) |
240 blocks |
Size of the area scanned around each spawn attempt for nearby civilization |
| Detector Sonar |
Toggle |
on / off |
on |
Whether the Civilization Detector's sonar effects (boundary walls, shockwave particles, sounds) are enabled. Disabling keeps only the basic color/sound feedback |
Decay & Recovery Details
Controls how protection fades when you leave and recovers when you return. See Civilization Decay for mechanics.
| Setting |
Type |
Range |
Default |
Description |
| Decay Enabled |
Toggle |
on / off |
on |
Whether time-based decay is active. When off, settlements stay forever fresh — no need to patrol to maintain protection |
| Freshness Duration |
Slider |
1–48 hours |
6 hours |
Grace period before protection starts fading after your last visit |
| Decay Speed |
Slider |
1–10 |
5 |
How fast protection fades after the grace period expires. The slider label shows the approximate half-life |
| Decay Floor |
Slider |
0–50% |
25% |
Minimum remaining protection even if fully abandoned. At 0% a settlement can decay to nothing; at 50% half the score always remains |
| Recovery Speed |
Slider |
1–10 |
5 |
How fast protection recovers when you return. The slider label shows the approximate recovery time |
| Patrol Influence Range |
Slider |
2–8 VC (32–128 blocks) |
4 VC (64 blocks) |
How far your presence refreshes nearby shards. Larger values let you restore a wider area by walking through it |
Mob Head Attraction
Controls how monster skulls attract and redirect spawns. See Monster Heads for mechanics.
| Setting |
Type |
Range |
Default |
Description |
| Mob Head System |
Toggle |
on / off |
on |
Whether mob head gameplay effects (spawn attraction, detector zone display, flee AI awareness) are active. When off, heads are purely decorative — useful for wall displays without affecting spawn behavior |
| Attraction Strength |
Slider |
1–10 |
5 |
How strongly skulls suppress distant spawns, concentrating mobs near the heads |
| Attraction Range |
Slider |
48–160 blocks (step 16) |
128 blocks |
Maximum horizontal radius within which skulls exert their redirection effect |
Mob Flee Behavior
Controls whether hostile mobs retreat from civilized zones after spawning.
| Setting |
Type |
Range |
Default |
Description |
| Mob Flee AI |
Toggle |
on / off |
on |
Enables hostile-mob retreat behavior in civilized areas. In highly civilized city centers, mobs may panic and disengage from combat to escape. Thresholds are linked to Civilization Strength |
civil.properties
For fine-grained control, you can edit config/civil.properties directly. The file is auto-generated on first launch with all values commented out — the mod uses the GUI-derived internal values unless a raw override is present.
Advanced Users Only
Raw parameters bypass the GUI's safety mapping. If things break, delete civil.properties and restart — the mod will regenerate it with defaults. Changing a GUI slider will overwrite any raw override for the corresponding parameter.
File Location
- Production:
.minecraft/config/civil.properties
- Dev environment:
run/config/civil.properties
Parameter Reference
Below is the full list of raw parameters. Values shown are defaults derived from GUI defaults. All are normally commented out; uncomment to override.
Spawn Thresholds
| Key |
Type |
Default |
Description |
spawn.thresholdLow |
double |
~0.14 |
Civilization score below which spawns are fully allowed |
spawn.thresholdMid |
double |
~0.41 |
Score above which spawns are fully blocked. Between low and mid, suppression is probabilistic |
Scoring Curve
| Key |
Type |
Default |
Description |
scoring.sigmoidMid |
double |
0.8 |
Sigmoid midpoint for the score normalization curve |
scoring.sigmoidSteepness |
double |
3.0 |
Sigmoid steepness — higher values create a sharper transition |
scoring.distanceAlphaSq |
double |
0.5 |
Distance weighting factor (squared) for blocks farther from the spawn point |
scoring.normalizationFactor |
double |
5.0 |
Per-voxel-chunk score cap — a chunk's total block weight is divided by this value and clamped to 1.0. When the sum of block weights in a single 16³ chunk reaches 5.0, the chunk score is maxed out |
Detection Ranges (Voxel Chunks)
| Key |
Type |
Default |
Description |
range.detectionRadiusX |
int |
7 |
Detection radius along X in voxel chunks (7 VC = 112 blocks per side → 240 block box) |
range.detectionRadiusZ |
int |
7 |
Detection radius along Z |
range.detectionRadiusY |
int |
1 |
Detection radius along Y (vertical) |
range.coreRadiusX |
int |
1 |
Core (inner zone) radius X |
range.coreRadiusZ |
int |
1 |
Core radius Z |
range.coreRadiusY |
int |
0 |
Core radius Y |
range.headRangeX |
int |
1 |
Mob head bypass zone radius X |
range.headRangeZ |
int |
1 |
Head bypass zone radius Z |
range.headRangeY |
int |
0 |
Head bypass zone radius Y |
Decay
| Key |
Type |
Default |
Description |
decay.enabled |
boolean |
true |
Whether time-based decay is active. When false, settlements stay forever fresh |
decay.gracePeriodHours |
double |
6.0 |
Hours before decay begins after your last visit |
decay.lambda |
double |
~0.008 |
Exponential decay rate; half-life ≈ ln(2) / λ hours |
decay.minFloor |
double |
0.25 |
Minimum score fraction retained after full decay (0.0–1.0) |
Recovery
| Key |
Type |
Default |
Description |
recovery.cooldownMs |
long |
~60000 |
Minimum milliseconds between recovery steps |
recovery.fraction |
double |
~0.20 |
Fraction of the gap recovered per step |
recovery.minMs |
long |
~2266666 |
Minimum recovery jump per step (ms). Each recovery step advances presenceTime by at least this amount, preventing the final stretch from dragging out when the remaining gap is small |
Head Attraction
| Key |
Type |
Default |
Description |
headAttract.enabled |
boolean |
true |
Master switch for all mob head gameplay effects (spawn attraction, detector zone, flee AI awareness). When false, heads are purely decorative |
headAttract.nearBlocks |
double |
32.0 |
Distance (blocks) within which skulls never suppress spawns |
headAttract.maxRadius |
double |
128.0 |
Maximum horizontal attraction radius in blocks |
headAttract.lambda |
double |
0.15 |
Attraction decay rate — higher values concentrate mobs more tightly around skulls |
Mob Flee AI
| Key |
Type |
Default |
Description |
mobFlee.enabled |
boolean |
true |
Master switch for flee behavior in civilized areas |
mobFlee.combatFleeRatio |
double |
0.5 |
Fraction of the high-pressure interval where combat panic begins |
mobFlee.checkIntervalTicks |
int |
80 |
Base interval between flee evaluations per mob (ticks) |
mobFlee.jitterTicks |
int |
40 |
Random jitter added to evaluation interval for desynchronization |
mobFlee.panicDurationTicks |
int |
80 |
Maximum duration of combat panic bursts (ticks) |
mobFlee.maxDurationTicks |
int |
200 |
Maximum duration of non-combat flee movement (ticks) |
mobFlee.speed |
double |
1.0 |
Movement speed multiplier while fleeing |
mobFlee.sampleDistance |
int |
14 |
Sampling distance (blocks) used to choose flee direction |
| Key |
Type |
Default |
Description |
cache.l1TtlMs |
long |
300000 |
L1 voxel chunk score TTL in milliseconds (5 min) |
cache.resultTtlMs |
long |
3600000 |
Result shard TTL in milliseconds (60 min) |
cache.clockPersistTicks |
int |
6000 |
How often the server clock is persisted to H2 (in ticks) |
Detector & UI
| Key |
Type |
Default |
Description |
ui.detectorAnimationTicks |
int |
40 |
Sonar pulse animation length in ticks (2 seconds) |
ui.detectorCooldownTicks |
int |
10 |
Cooldown between detector uses in ticks |
Diagnostics
| Key |
Type |
Default |
Description |
tpsLog.enabled |
boolean |
true |
Whether TPS/MSPT is periodically logged to latest.log. Only effective when the mod's internal DEBUG flag is also enabled — in production builds this has no effect regardless of the setting |
tpsLog.intervalTicks |
int |
20 |
Interval between TPS log entries in server ticks (~1 second). Same DEBUG requirement as above |