02 – Spawn Configuration Guide (TOML)
Besides the trades (JSON), the mod can be tweaked in the config/visitingvillagers-common.toml file, in 4 categories. The easiest way to edit it is the Config button in the mod list — Forge opens the native slider screens (one root screen + one per category); editing the .toml directly also works.
All 10 keys are integers with a
min–maxrange. The file is generated with the defaults on first launch; the limits are shown in the.tomlcomments and in the slider screens.
1. General Settings
| Key | Default | Range | Effect |
|---|---|---|---|
spawnCheckIntervalSeconds | 10 | 1–60 | Interval, in seconds, between spawn checks |
minVillagersForSpawn | 6 | 1–100 | Minimum villagers in the village before visitors start spawning |
minGolemsForSpawn | 1 | 0–50 | Minimum Iron Golems in the village before spawning starts |
2. Adult Visitors
| Key | Default | Range | Effect |
|---|---|---|---|
visitorSpawnPercentage | 100 | 0–100 | % of the villager population that can be visitors |
maxSpawnsPerCycle | 3 | 1–10 | Maximum adult visitors per spawn check |
defaultVisitorTradeChance | 40 | 0–100 | Chance (%), per default visitor, of having trades |
3. Baby Visitors
| Key | Default | Range | Effect |
|---|---|---|---|
minAdultsForBaby | 2 | 1–10 | Minimum adult visitors before babies start spawning |
babySpawnPercentage | 60 | 0–100 | % of adults that can be babies |
4. Wandering Visitors
| Key | Default | Range | Effect |
|---|---|---|---|
maxWanderingVisitors | 2 | 0–10 | Simultaneous wanderers allowed |
wanderingSpawnDelaySeconds | 120 | 10–600 | Delay, in seconds, between wanderer spawn attempts |
How the Spawn Decides
Everything works in check cycles: every spawnCheckIntervalSeconds seconds (converted to ticks), the server collects what exists in the area around the player — villagers, golems, existing visitors — and decides who is born. Nothing spawns outside this window; the larger the interval, the more you feel spawns arriving in “batches”.
One village, three cascading triggers
- The village must be established — everything depends on the two population keys: villagers ≥
minVillagersForSpawnand golems ≥minGolemsForSpawn. Without that, no visitor type appears at all. - Adults — the village cap is
max visitors = villagers × visitorSpawnPercentage ÷ 100. With a slot open and the right time of day, the mod spawnsmin(remaining slots, maxSpawnsPerCycle)per cycle, near a villager. Babies come next:max babies = adults × babySpawnPercentage ÷ 100, as long as adults ≥minAdultsForBaby— they are born near an adult visitor. - Wanderers — they follow the same village requirement but are counted separately (
maxWanderingVisitorssimultaneously) and have their own delay:wanderingSpawnDelaySecondsmust pass between attempts. The clock is stamped at the moment of the attempt even if it fails — spawn happens near an Iron Golem, one at a time.
Time of day (fixed rule)
- Visitors and babies: only while the sun is up (between sunrise and midday of the day cycle).
- Wanderers: arrive a bit later, after the visitors.
Example with the default values
Village with 10 villagers and 1 golem:
- Requirement: 10 ≥ 6 villagers and 1 ≥ 1 golem ✔ — the village is enabled.
- Adults: 10 × 100% = up to 10 visitors, arriving 3 per cycle of 10 s — the village can fill up within minutes.
- Babies: from 2 adults onward,
adults × 60%sets the cap — with 5 adult visitors, up to 3 babies playing around the village. - Wanderers: up to 2 at once, with at least 2 minutes between attempts.
Fixed rules (not configurable)
- Spawning only happens during the day (visitors at sunrise, wanderers a bit later) and on blocks with the tag
visitingvillagers:visitors_spawnable_on. - Babies don’t trade — they just play with each other.
- Visitors are born with the trade pool of their variant; the
defaultvisitor only has trades if it passes thedefaultVisitorTradeChanceroll.
🩺 My village doesn’t spawn — checklist
Before touching the sliders, check in order:
- Population: are there enough villagers and golems within the area of the player watching the village? The check is local to the player, not global to the world.
- Time of day: is it between sunrise and midday? From afternoon through night, no one arrives.
- Ground: is the spawn spot on a block with the
visitingvillagers:visitors_spawnable_ontag (grass and similar)? - Config reloaded: changes to the
.tomlrequire restarting the server (this config has no in-game reload — only the trade JSONs do). - Number expectations: with defaults, a village of 4 villagers doesn’t spawn anything yet (4 < 6). That’s a feature, not a bug.