Updated:
Summon a villager with a profession (Java)
/summon minecraft:villager ~ ~ ~ {VillagerData:{profession:"minecraft:librarian",level:1,type:"minecraft:plains"}}
profession is the job, level the trade level and type the biome look.
Profession IDs and job site blocks
| Profession | ID | Job site block |
|---|---|---|
| Armorer | armorer | Blast furnace |
| Butcher | butcher | Smoker |
| Cartographer | cartographer | Cartography table |
| Cleric | cleric | Brewing stand |
| Farmer | farmer | Composter |
| Fisherman | fisherman | Barrel |
| Fletcher | fletcher | Fletching table |
| Leatherworker | leatherworker | Cauldron |
| Librarian | librarian | Lectern |
| Mason | mason | Stonecutter |
| Shepherd | shepherd | Loom |
| Toolsmith | toolsmith | Smithing table |
| Weaponsmith | weaponsmith | Grindstone |
| Nitwit (never works) | nitwit | None |
| Unemployed | none | None |
Levels and types
level runs from 1 (Novice) to 5 (Master). Higher levels unlock more trades.
type sets the outfit: desert, jungle, plains, savanna, snow, swamp or taiga, each with the minecraft: prefix.
Change a villager that already exists (Java)
/data merge entity @e[type=minecraft:villager,limit=1,sort=nearest] {VillagerData:{profession:"minecraft:librarian",level:1,type:"minecraft:plains"}}
This turns the nearest villager into a librarian. A villager that has already traded may keep its old trades, so use a freshly summoned villager when you need new ones. For fully custom trades, see the villager shop guide.
Survival and Bedrock
Bedrock commands cannot set the profession in detail, so use job site blocks. This also works in Java survival.
- Find a villager that has never traded.
- If it already has a job, break its job site block to make it unemployed.
- Place the job site block you want nearby. The villager takes that job after a moment.
Once a villager has traded, its profession is locked and breaking the block does nothing.
When it does not work
- The profession does not change: check the ID spelling and the
minecraft:prefix. - It became a nitwit: nitwits never take a job and cannot trade.
- Bedrock rejects it: VillagerData is Java syntax. Use job site blocks.
Common questions
- Can I summon a master villager? On Java, set
levelto 5. Trades follow the profession and level. - Keep it in place? Add
NoAI:1b. See the NoAI guide.
Check your command
The Command Error Doctor checks common syntax mistakes in your browser.