Badges update automatically and link to the mod page on MineUniverse.
Create new villager professions and change existing ones, including textures, workstations, day plans, behaviours and village buildings, from simple JSON files or directly in the in-game editor GUI, no coding required.
No Java, no fork, no resource pack. One file per profession.
Versions: 1.20.1, 1.21.1, 1.21.8
Loader: Fabric, NeoForge (1.21.1, 1.21.8), Forge (1.20.1)
Support my work on
overrides. For example, put the farmer on the night shift
in four lines."schedule": "night" or your own switch-over times for work, idle, meet and rest.farm work: harvest, replant and use bone meal like the farmer.flees_from: extra mobs to run from.attacks: guards that fight zombies and skeletons.health: more health for the profession.villages: keep a job in desert or snowy villages only..nbt house appears in generated villages. Or give only a
workstation, and the mod builds a stall in each village style: oak, sandstone, acacia or spruce./ddv edit opens a GUI with every field. Save writes the file and reloads it./ddv reload applies textures, hats, gifts, workstations, behaviour and day
plans without a restart. New day plans reach villagers that already stand in the world.config/datadrivenvillagers/professions/.example_baker.json (or open /ddv edit), then restart./give @s minecraft:structure_block and place it next to an unemployed
villager. The villager becomes a baker. The example uses a structure block so it takes no block
away from a normal world.{
"workstation": "minecraft:structure_block",
"display_name": "Baker",
"texture": "example_baker.png",
"hat": "none",
"work_sound": "minecraft:entity.villager.work_farmer",
"gatherable_items": ["minecraft:wheat", "minecraft:bread"],
"secondary_job_sites": ["minecraft:cake"]
}
The file name is the id: baker.json becomes datadrivenvillagers:baker. Put baker.png next to
the json and the texture loads at runtime.
Why a config folder and not a datapack? Professions and job sites are registries that Minecraft freezes before any datapack loads. Everything that can be a datapack still is one: trades, gifts, tags and translations.
On a server, every player needs the mod and the same profession files, because the game
refuses a client that does not know a registered profession. /ddv export <name> packs one
profession into a zip that you can give to your players.
| Command | Does |
|---|---|
/ddv edit [<name>] |
Opens the editor GUI on a profession, or on a new one. |
/ddv why <name> |
Checks the complete chain for one profession and shows where it breaks. |
/ddv why villager |
The same for the villager in front of you: job, station, bed, plan, why it does not work or sleep. |
/ddv blocks [text] |
Shows which blocks are still free to be a workstation. |
/ddv reload |
Reads the config folder again without a restart. |
/ddv scaffold <name> |
Writes the trade file, gift loot table, language file and a village stall, ready to edit. |
/ddv export <name> |
Packs a profession with its files into one zip that you can share. |
/ddv doctor |
Writes every report into doctor.txt, to paste into a bug report. |
/ddv list / /ddv errors |
All loaded professions / every rejected file and why. |
/ddv help |
Shows this table in the chat. |
list, errors, why, blocks and help need permission level 2. edit, reload, scaffold,
export and doctor write files and need level 3. In a singleplayer or LAN world, only the host can
use them.
Trades come from VillagersTradingPlus.
Put a trade file into a datapack at data/<namespace>/default_villager_trades/baker.json with
"profession": "datadrivenvillagers:baker". Or press Create default trades in /ddv edit, and
the mod writes a starting file into the world's datapacks for you. The full trade format is on the
VillagersTradingPlus page.
/ddv blocks shows what is still free."allow_natural_block": true to use one anyway. Air, fluids and blocks without collision are never
allowed./ddv errors and /ddv why
tell you what is wrong.