Java Edition:Multiple Career Villager
By downgrading villagers into older trading systems, it is possible to reset certain tags relating to careers and career levels, which allows a single villager to have trades that belong to different careers.
Obtaining
Downgrading from 1.8
14w02a (a 1.8 snapshot) introduced a completely reworked trading system, which added careers and career levels. By downgrading from 14w02a or after to 1.7.10 or before, the Career
and CareerLevel
tags will be reset to 0. By then upgrading back to 14w02a or newer, triggering a restock will assign a random career based on the villager's profession (which is not lost). This process may be repeated.
Available Careers For Each Profession | |
---|---|
Profession | Careers |
Farmer | Farmer |
Fisherman | |
Shepherd | |
Fletcher | |
Librarian | Librarian |
Cartographer | |
Priest | Cleric |
Blacksmith | Armorer |
Weaponsmith | |
Toolsmith | |
Butcher | Butcher |
Leatherworker |
Downgrading from 1.14
18w50a (a 1.14 snapshot) rewrote villager data to allow the storing of a villager's biome type, which moved Profession
, Career
, and CareerLevel
into the VillagerData
tag. By downgrading villagers from 18w50a or after to 18w49a or below, Profession
, Career
, and CareerLevel
will reset to 0. This results in all villagers gaining the farmer profession. Upon triggering a restock, each villager will gain either the farmer, fisherman, shepherd, or fletcher career. This process may be repeated.
About Villagers with More than 256 Trades
Before 19w13a (a 1.14 snapshot), the trade GUI will not properly write the trades to a packet once the trade list exceeds 255 trades, even in singleplayer. The trading GUI will only write the first tradeList.size() % 256
trades. The reduced amount of trades available may lock without triggering a restock, or in the case that a villager has an exact multiple of 256 trades, the villager will have zero tradeable trades. A trade list with more than 255 trades becomes fully available again in 19w13a, which rewrote the trading GUI to support up to 2,147,483,647 trades, although packet limitations would prevent the usage of such large trade lists in multiplayer.
A villager cannot have more than 2,147,483,647 trades as the trade list extends Java's ArrayList
, which only allows a maximum of 2,147,483,647 elements to be stored in a single list.