promotional bannermobile promotional banner

Data Driven Villagers

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.

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

Buy me a coffee

Patreon


Requirements

  • On Fabric you need Fabric API. On Forge and NeoForge you do not.
  • For trades, install VillagersTradingPlus. Without it your professions work, but they have nothing to sell.

What you can do with it

  • New professions bound to a block of your choice, from vanilla or from other mods.
  • Your own look: a profession texture, a zombie-villager texture and the hat setting. You need no resource pack. On a server, the images go to every player automatically.
  • Change vanilla professions with overrides. For example, put the farmer on the night shift in four lines.
  • Day plans: "schedule": "night" or your own switch-over times for work, idle, meet and rest.
  • Behaviour:
    • 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.
  • Village buildings: your own .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.
  • Custom villager types, tied to biomes, with their own clothing.
  • Hero of the Village gifts from your own loot table.
  • In-game editor: /ddv edit opens a GUI with every field. Save writes the file and reloads it.
  • Live reload: /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.

Quick start

  1. Start the game once. The mod writes an example into config/datadrivenvillagers/professions/.
  2. Edit example_baker.json (or open /ddv edit), then restart.
  3. Get a structure block with /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.


Commands

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

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.


Good to know

  • Minecraft allows one job site per block. The thirteen vanilla workstation blocks, such as the composter and the lectern, are taken. /ddv blocks shows what is still free.
  • On Fabric, blocks from mods that register after DataDrivenVillagers are skipped with a warning. Vanilla blocks are always available.
  • Blocks that world generation places in bulk (stone, dirt, sand, logs, leaves, ores and a few more) are refused as workstations, because every natural one would become a job site. Set "allow_natural_block": true to use one anyway. Air, fluids and blocks without collision are never allowed.
  • If a file has an error, the mod does not load it and does not crash. /ddv errors and /ddv why tell you what is wrong.

More mods by LithiumPlus

The Data Driven Villagers Team

Grand Artisan tier frameprofile avatar
  • 133
    Followers
  • 11
    Projects
  • 94.5M
    Downloads
Donate

More from LithiumPlusView all