Configuration

Each jar has its own file in the game’s config folder, created with its defaults the first time the game or server starts. The files are read at start only, so restart after editing.

Times are in ticks where the name says so: 20 ticks make a second, and a Minecraft day is 24000 ticks.

Core: config/vaw.json5

Every option is written into the file with its default and a comment explaining it. The file takes comments and trailing commas, JSON5-style.

  • A value that is invalid or out of range is ignored with a warning in the log, and the default is used. Your file is left exactly as you wrote it.
  • An option missing from the file is added back with its default.
  • A file that cannot be read at all is never overwritten; the defaults are used until it is fixed.

Hauling and errands

Option Default Range What it does
haulingMode allays allays, villagers, off Who carries output from workstation containers to village storage. Allays haul only if nobody has given them an item. off leaves every allay entirely vanilla.
depositRange 48 8–128 How far, in blocks, a villager walks to reach village storage. Vanilla pathfinding fails quietly on long routes, so raise it with care.
childErrandsPerDay 2 0–8 Errands a village child runs in a day, during working hours only. 0 turns children’s errands off.
waterAvoidance 32 0–64 How dearly a working villager avoids water on its way, as a pathfinding cost per block of it. Vanilla’s own is 8, which a short cut across your fisherman’s pond easily beats. It is a preference and never a wall: storage across a stream is still reached, just last.
unreachableTimeoutTicks 200 40–2400 How long a villager keeps trying to reach a chest or shelf it cannot get to.
unreachableCooldownTicks 1200 100–24000 How long such a chest or shelf is skipped before it is tried again. A hauling villager or an errand-running child skips it for the rest of the day instead, unless the daylight cycle is off.

Service areas

Option Default Range What it does
serviceAreas {"minecraft:composter": 4, "minecraft:smoker": 16, "minecraft:loom": 16, "minecraft:barrel": 8} 1–64 per workstation How far, in blocks, a villager works around its workstation, by the workstation’s block id: the farmer’s field around its composter (4 is a 9×9), the animals around a butcher’s smoker or a shepherd’s loom, and the water around a fisherman’s barrel. A workstation you leave out keeps its default. Larger areas cost the server more to scan, the farmer’s most of all. See General Mechanics → Service Area.

serviceAreas replaces workstationRange and fishingRange. A file that still has them has their values carried over into serviceAreas the first time it loads, and the old options are removed.

How hard villagers work

Option Default Range What it does
productivity 0.7 0.0–1.0 How readily a villager takes on work it has just noticed. Lower it and work piles up and gets done in its own time; raise it and villagers pounce on everything. 1.0 means every task the moment it appears and no breaks — a farmer harvests a crop on the tick it ripens, clears its field, then stands still for the rest of the day. 0.0 means a villager that never starts work at all. With the MCA extension this is what a villager in a middling mood works at; see moodProductivity below.
productivityOverrides {} 0.0–1.0 per profession Productivity for one profession, overriding the value above, for example {"minecraft:farmer": 0.9}.
idleTicks 600 0–24000 How long, in ticks, a villager of productivity 0 leaves things alone — both after passing work over and while on a break. Scaled by productivity, so at 1.0 nothing is ever waited.
tasksBetweenBreaks 12 1–256 How many tasks a villager at full productivity does before taking a break. The lazier it is, the sooner the break. At 1.0 there is no break.

It changes how readily a villager starts, never how fast it works once it has, and it never paces a delivery, a deposit or a hauler. See General Mechanics → Productivity.

Farming

Option Default Range What it does
fieldUseChance 0.5 0.0–1.0 The chance that each bone meal the farmer makes goes on its own crops rather than to storage.
doNotHarvest [] block ids Plants a farmer leaves alone, for example ["minecraft:sweet_berry_bush"]. A listed plant is never harvested or sown, and never tilled under or replanted over.
plantPerennials true true/false Lets the farmer plant the crops it harvests without uprooting: sugar cane, bamboo, cactus, sweet berry bushes, and Farmer’s Delight rice beside rice already growing. Off, it still harvests them but never plants a new one.
plantCuttingsNearWater false true/false Lets the farmer plant cane, bamboo or cactus on ground near water while dry ground is still free. Off, it keeps cuttings off the pond that is there to keep your farmland moist. Sugar cane only grows beside water, so it is planted there either way.
toolsmithMakesHoes true true/false Lets the toolsmith make a hoe for every farmer. The hoe is what grows a field: a farmer without one harvests, replants and sows the farmland already there, but never tills or plants on open ground. Off, a farmer gets a hoe only from you, on its shelf, so you choose which fields grow.

Animals

Option Default Range What it does
cullPauseTicks 40 0–200 How long, in ticks, a butcher stands at its smoker with the animal before killing it. 0 kills the moment it arrives.
speciesPerAnimalWorker 2 1–8 How many species one butcher manages.
perSpeciesFloor 4 0–64 Culling never takes a species below this many adults. 0 lets a butcher cull a species to extinction.
breedIntervalTicks 6000 20–72000 The least time between two breedings of the same species. The default is vanilla’s own cooldown for a bred pair, five minutes.
breedIntervalOverrides {} entity id → ticks A breed interval per species, for example {"minecraft:rabbit": 3000}.
feedPerCull 1 0–16 Feed items a breeding butcher spends on each cull.
breedOnlyButchers false true/false Lets a butcher with feed and no culling tool breed its animals and never cull them, for a cramming farm; the toolsmith then leaves it without a tool. Off, a butcher without an axe or knife breeds nothing and shows the tool it is missing until the toolsmith makes it one.
cullingMode lead_teleport lead_teleport, lead, over_fence How a butcher gets a large animal to its smoker. lead_teleport walks it out through a gate that stays shut and lifts one that cannot reach the gate past it, so an animal always reaches the smoker; lead is the same walk without the lift, and an animal boxed into a corner by the herd is culled where it stands; over_fence never takes a lead at all. Small animals are carried whatever this says.
censusRescanSeconds 5 1–300 How often an animal worker recounts the animals it manages.

Fishing

Option Default Range What it does
fishingJunkChance 0.5 0.0–1.0 The chance that a fisherman’s catch is junk (string, sticks, leather, bones and the like) rather than fish. A player’s fishing is about 0.1, at which a fisherman cannot even replace its own rod. Villagers only: your own fishing is unchanged.

Crafting, enchanting and trade

Option Default Range What it does
workDurationTicks 100 20–1200 How long a villager works to craft or exchange one batch.
allowedEnchantments ["*"] enchantment ids Enchantments a librarian may put on books. "*" allows every enchantment.
clericUseVanillaRates false true, false Use vanilla’s trade rates for the cleric’s rotten flesh to lapis exchange.
clericLapisPerStack 9 1–64 Lapis made from a stack of rotten flesh when clericUseVanillaRates is false: about 7 flesh per lapis, against vanilla’s 32.
traderPrices {} item id → 1–64 emeralds What the village pays the wandering trader, for example {"minecraft:raw_iron": 2}. Empty uses the prices in the datapack (see Datapacks).

Signals and performance

Option Default Range What it does
bindingRescanTicks 20 5–1200 How often a villager re-checks the shelf and chests around its workstation. A villager with no workstation is not checked.
signalIntervalSeconds 4 1–60 How often a villager missing more than one mandatory item repeats its angry particles.

Villagers after Work: config/vaw-after-work.json5

Only with the Villagers after Work jar installed. It is written and read as the core’s file is.

Option Default Range What it does
afterWorkRange 32 8–64 How far from itself, in blocks, a villager looks after work for campfires, jukeboxes, bells, cushions and seats. Each is a place of its own; there is no area to set up.
dinnerFoodKept 8 0–64 How much food a butcher, fisherman or farmer keeps for dinner. Everything else it carries but its tools goes to storage when work ends. 0 keeps nothing, so nobody cooks at dinner and the farmer shares nothing. It replaces eveningFoodKept: a value you changed there is carried over.
bedtimeBreeding true true/false Villagers have children only at night, two well-fed villagers in beds side by side. Off, villagers breed as they do without the mod, and under MCA Reborn as MCA has them. Turn it off to keep a villager breeder working.
bedtimeBreedingChance 0.2 0.0–1.0 The chance each night that such a pair has a child.

MCA extension: config/villagers-at-work-mca.json

Plain JSON. An option missing from the file keeps its default, and a file that cannot be read leaves every option at its default.

Option Default What it does
chat true A blocked MCA villager says why in chat.
voice true And says it aloud, in MCA’s own voice. With chat off and voice on, the line is only heard, which needs the extension installed on the client too. With both off, MCA villagers say nothing.
answerWhenAsked true A blocked MCA villager you talk to tells you what it needs, at once, whatever it has said before. Only you hear it, and the limits below do not apply to it. It follows chat and voice.
showErrorIcon false Also show the error icon above blocked MCA villagers, as vanilla villagers have it.
cooldownMinutes 5 How long a villager stays quiet after speaking.
villageCap 3 At most this many lines within villageWindowSeconds among the villagers of one village, so a village of blocked villagers does not flood the chat.
villageWindowSeconds 60 The window villageCap counts over.
hearingRange 20 How far, in blocks, a line is heard. A villager with nobody near enough to hear says nothing.
dedupeRange 64 Villagers this close together count as one village, both for villageCap and so one cause is said once rather than by every villager.
moodProductivity 0.2 How far an MCA villager’s mood moves its productivity from the value set above: an overjoyed villager works at that value plus this, a miserable one at it minus this, and one in a middling mood at it exactly. 0 leaves mood out of it, so every villager of a profession works alike. From 0 to 1.
archersUseArrows true Archers shoot only the arrows they carry and fetch them from the fletcher’s armory. Off, MCA gives archers their arrows itself, as it does without the extension, and the fletcher’s arrows stay where they are.

On a player’s game: config/villagers-at-work-client.json

Only for the mod’s client part, which a player’s own game loads and a server never does. It draws the tool a villager works with in its hand. The villager uncrosses its arms to hold it, as a player holds an item, and swings it as it works. It works with model packs too: under a pack that gives villagers arms of their own, such as Human Era, with or without its Fresh Animations add-on, the tool goes in the hand the pack drew; under one that keeps the crossed arms, such as Fresh Animations, the villager’s arms uncross and follow the pack’s animation. Change these values only if a pack’s villagers still hold the tool out of place.

Under Human Era the arms belong to the pack, which animates them itself, so the villager holds its tool but never swings it, and the item it shows you while trading floats in front of its chest, where vanilla draws it from the crossed arms the pack removed. Both are fixed by the Human Era compatibility packs, vaw-human-era.zip and, if you use Human Era’s Fresh Animations add-on, vaw-human-era-fa.zip. They have their own project, Villagers at Work - Human Era Villagers Compat, since a Human Era release means a new pack rather than a new mod release, and they go above Human Era in your resource pack list. Their source is here. If you set custom values in an earlier version, when the tool stood in the villager’s crossed arms, the untouched defaults are ignored and the tool simply sits in the hand.

Option Default What it does
preset "vanilla" vanilla holds the tool as a player holds an item, or custom adjusts it by the values below.
custom.position [0.0, 0.0, 0.0] How far to move the tool in the hand, in blocks: x, y and z.
custom.rotation [0.0, 0.0, 0.0] How far to turn it, in degrees about x, y and z.
custom.scale 1.0 Its size.