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
Overflowing Career Level
The 1.8 trading system did not place any bounds on the career level. It is increased by 1 every time the villager queues a trade generation. This value will overflow at 2,147,483,647 to -2,147,483,648, and will continue to increase until it returns to 0. When a trade generation is queued again, the villager will have a random career applied and the career level set to 1, which will generate more trades for that new career. This method will work in any version from 14w02a to 19w07a, and does not require downgrading, but it is highly impractical.
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 indefinitely. Do note that downgrading villagers from 14w03a (a 1.8 snapshot) or newer to 14w02c or before will result in all items in their trades becoming air due to the change to using namespaced IDs for items in 14w03a.
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 indefinitely. Note that downgrading villagers from 24w09a or newer to earlier versions will result in all items in their trades becoming air, so this process must be done in 24w07a or earlier.
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.
Combos
- Java Edition:Entities
- Java Edition:Entity Data
- Java Edition:Trades
- Java Edition:Passive Mobs
- Java Edition:End
- Java Edition:Nether
- Java Edition:Overworld
- Java Edition:Multiplayer
- Java Edition:Singleplayer
- Java Edition:Release
- Java Edition:Downgrade
- Java Edition:Unintentional
- Java Edition:Movable
- Java Edition:Directly Observable
- Java Edition:Permanent
- Java Edition:Current