Maintenance
| The data for Java release versions is current as of 1.20.1. (needs to be checked/updated to 1.20.2). | 20:49, June 9 2022 (UTC) |
| The data for Java snapshots is current as of 1.20.2 Pre-release 1. | 18:43, 20 April 2022 (UTC) |
| The data for Bedrock release versions is current as of 1.19.0. (needs to be checked/updated to 1.20.30). | 20:49, June 9 2022 (UTC) |
| The data for Bedrock beta versions is current as of beta 1.19.80.22. (needs to be checked/updated to beta 1.20.40.22). | 18:43, January 23 2023 (UTC) |
.base usage (Template:LootChest)
Generates a table of the contents of the designated chests, with columns corresponding to various statistics about the availability of those items.
Invoking
It takes any number of chest parameters, and any number of column parameters, in no particular order.
If no chest parameters are listed, it displays them all; likewise for column parameters.
{{#invoke:LootChest|base
[ |<chestParam1> ... |<chestParamN> ]
[ |<columnHideParam1> ... |<columnHideParamN> ]
}}
Chest parameters
ancient-city,
ancient-city-ice-box,
bastion-bridge,
bastion-generic,
bastion-hoglin-stable,
bastion-treasure,
bonus,
bonus-barrel,
buried-treasure,
desert-temple ( desert ),
dungeon,
end-city,
igloo,
jungle-temple ( jungle ),
jungle-temple-dispenser,
mineshaft,
nether-fortress ( nether-fortress, nether ),
pillager-outpost ( outpost ),
ruined-portal,
shipwreck-map,
shipwreck-supply,
shipwreck-treasure,
stronghold-altar ( altar ),
stronghold-library ( library ),
stronghold-storeroom ( storeroom ),
underwater-ruin-big,
underwater-ruin-small,
village-armorer ( armorer ),
village-butcher ( butcher ),
village-cartographer ( cartographer ),
village-desert-house ( desert-house ),
village-fisherman ( fisherman ),
village-fletcher ( fletcher ),
village-mason ( mason ),
village-plains-house ( plains-house ),
village-savanna-house ( savanna-house ),
village-shepherd ( shepherd ),
village-snowy-house ( snowy-house ),
village-taiga-house ( taiga-house ),
village-tannery ( tannery ),
village-temple ( temple ),
village-toolsmith ( toolsmith ),
village-weaponsmith ( weaponsmith ),
woodland-mansion ( mansion )
Column parameters
chance: The odds of finding any of this item in a single chest.,
chests: The average number of chests the player should expect to search to find any of this item.,
items: The number of items expected per chest, averaged over a large number of chests.,
stacksize: The size of stacks (or for unstackable items, number) of this item on any given roll.,
weight: The weight of this item relative to other items in the pool.
Example
{{#invoke:LootChest|base}} → all chests and all columns
{{#invoke:LootChest|base|weaponsmith|jungle|bonus|chance|stacksize}} → only weaponsmith and jungle chests, and only 'stacksize' and 'chance' columns
.base2 usage (Template:LootChestItem inline)
Prints a summary of this item's availability in the various worldgen chests.
Invoking
It takes exactly one item name as a parameter.
{{#invoke:LootChest|base2|<itemParam>}}
Item parameters
acacia-log, acacia-sapling, activator-rail, amethyst-shard, ancient-debris, apple, arrow, baked-potato, bamboo, barrel, basalt, beetroot, beetroot-seeds, beetroot-soup, bell, birch-log, birch-sapling, black-wool, block-of-gold, block-of-iron, blue-ice, blue-key, bone, bone-block, book, book-and-quill, bottle-o'-enchanting, bread, brown-mushroom, brown-wool, bucket, buried-treasure-map, cactus, cake, candle, carrot, chain, chainmail-boots, chainmail-chestplate, chainmail-helmet, chainmail-leggings, clay-ball, clock, coal, cocoa-beans, compass, cooked-cod, cooked-porkchop, cooked-salmon, copper-horn, crimson-fungus, crimson-nylium, crimson-roots, crossbow, crying-obsidian, damaged-diamond-boots, damaged-diamond-chestplate, damaged-diamond-helmet, damaged-diamond-leggings, damaged-diamond-sword, damaged-level-enchanted-crossbow, damaged-level-enchanted-diamond-hoe, damaged-level-enchanted-netherite-boots, damaged-level-enchanted-netherite-chestplate, damaged-level-enchanted-netherite-helmet, damaged-level-enchanted-netherite-leggings, damaged-level-enchanted-netherite-sword, damaged-netherite-boots, damaged-netherite-chestplate, damaged-netherite-helmet, damaged-netherite-leggings, damaged-netherite-sword, damaged-random-enchanted-crossbow, damaged-random-enchanted-crossbow-2, damaged-random-enchanted-diamond-boots, damaged-random-enchanted-diamond-boots-2, damaged-random-enchanted-diamond-chestplate, damaged-random-enchanted-diamond-chestplate-2, damaged-random-enchanted-diamond-helmet, damaged-random-enchanted-diamond-helmet-2, damaged-random-enchanted-diamond-leggings, damaged-random-enchanted-diamond-leggings-2, damaged-random-enchanted-diamond-pickaxe, damaged-random-enchanted-diamond-shovel, damaged-random-enchanted-diamond-shovel-2, damaged-random-enchanted-diamond-sword, damaged-random-enchanted-diamond-sword-2, damaged-random-enchanted-iron-sword, damaged-random-enchanted-netherite-axe, damaged-random-enchanted-netherite-boots, damaged-random-enchanted-netherite-chestplate, damaged-random-enchanted-netherite-helmet, damaged-random-enchanted-netherite-hoe, damaged-random-enchanted-netherite-leggings, damaged-random-enchanted-netherite-pickaxe, damaged-random-enchanted-netherite-shovel, damaged-random-enchanted-netherite-sword, dandelion, dark-oak-log, dark-oak-sapling, dead-bush, detector-rail, diamond, diamond-boots, diamond-chestplate, diamond-helmet, diamond-hoe, diamond-horse-armor, diamond-leggings, diamond-shovel, diamond-sword, disc-13, disc-cat, disc-mellohi, disc-otherside, disc-pigstep, disc-wait, egg, emerald, empty, empty-map, enchanted-book, enchanted-book-rnd, enchanted-book-rnd-soul-speed, enchanted-book-rnd-swift-sneak, enchanted-fishing-rod, enchanted-golden-apple, ender-pearl, feather, fern, fire-charge, flint, flint-and-steel, flower-pot, furnace, gilded-blackstone, glistering-melon-slice, glow-berries, glowstone, goat-horn, gold-ingot, gold-nugget, golden-apple, golden-boots, golden-carrot, golden-chestplate, golden-helmet, golden-hoe, golden-horse-armor, golden-leggings, golden-sword, grass, gray-wool, green-dye, gunpowder, heart-of-the-sea, ink-sac, iron-boots, iron-chestplate, iron-helmet, iron-horse-armor, iron-ingot, iron-leggings, iron-nugget, iron-pickaxe, iron-shovel, iron-sword, jungle-log, jungle-sapling, lapis-lazuli, large-fern, lead, leather, leather-boots, leather-cap, leather-pants, leather-tunic, level-enchanted-bow, level-enchanted-diamond-boots, level-enchanted-diamond-boots-2, level-enchanted-diamond-chestplate, level-enchanted-diamond-chestplate-2, level-enchanted-diamond-helmet, level-enchanted-diamond-helmet-2, level-enchanted-diamond-leggings, level-enchanted-diamond-leggings-2, level-enchanted-diamond-leggings-3, level-enchanted-diamond-pickaxe, level-enchanted-diamond-shovel, level-enchanted-diamond-sword, level-enchanted-diamond-sword-2, level-enchanted-golden-boots, level-enchanted-golden-chestplate, level-enchanted-golden-helmet, level-enchanted-golden-hoe, level-enchanted-golden-leggings, level-enchanted-iron-boots, level-enchanted-iron-boots-2, level-enchanted-iron-chestplate, level-enchanted-iron-chestplate-2, level-enchanted-iron-helmet, level-enchanted-iron-helmet-2, level-enchanted-iron-leggings, level-enchanted-iron-leggings-2, level-enchanted-iron-pickaxe, level-enchanted-iron-shovel, level-enchanted-iron-sword, level-enchanted-iron-sword-2, level-enchanted-leather-boots, level-enchanted-leather-cap, level-enchanted-leather-pants, level-enchanted-leather-tunic, level-enchanted-stone-sword, light-gray-wool, light-weighted-pressure-plate, lodestone, magma-block, magma-cream, map, melon-seeds, moss-block, name-tag, nether-quartz, nether-wart, netherite-boots, netherite-chestplate, netherite-helmet, netherite-ingot, netherite-leggings, netherite-scrap, oak-log, oak-planks, oak-sapling, oak-sign, obsidian, packed-ice, paper, poisonous-potato, polished-basalt, poppy, potato, potion-of-healing, potion-of-regeneration, potion-of-water-breathing, powered-rail, prismarine-crystals, pumpkin, pumpkin-pie, pumpkin-seeds, rail, random-effect-arrow, random-effect-lingering-potion, random-effect-potion, random-effect-splash-potion, random-effect-tipped-arrow, random-enchanted-crossbow, random-enchanted-diamond-pickaxe, random-enchanted-golden-axe, random-enchanted-golden-boots, random-enchanted-golden-chestplate, random-enchanted-golden-helmet, random-enchanted-golden-hoe, random-enchanted-golden-leggings, random-enchanted-golden-pickaxe, random-enchanted-golden-shovel, random-enchanted-golden-sword, random-enchanted-leather-boots, random-enchanted-leather-cap, random-enchanted-leather-pants, random-enchanted-leather-tunic, raw-beef, raw-cod, raw-mutton, raw-porkchop, raw-salmon, red-key, redstone, rotten-flesh, saddle, sand, sculk, sculk-catalyst, sculk-sensor, shears, smooth-stone, snout-banner-pattern, snow-block, snowball, soul-sand, soul-speed-enchanted-golden-boots, soul-torch, spectral-arrow, spider-eye, spruce-log, spruce-sapling, spruce-sign, stick, stone, stone-axe, stone-bricks, stone-pickaxe, string, suspicious-stew, suspicious-stew-2, sweet-berries, tall-grass, tnt, torch, tripwire-hook, water-bucket, wheat, wheat-seeds, white-wool, wooden-axe, wooden-hoe, wooden-pickaxe, yellow-dye, yellow-key
Example
{{#invoke:LootChest|base2|iron-ingot}} →
Iron ingots can be found in 18.5% of dungeon chests, 18.5% of woodland mansion chests, and 99.4% of buried treasure chests, all in stacks of 1–4; in 23.0% of stronghold altar chests, 41.2% of village toolsmith chests, 97.4% of shipwreck treasure chests, 34.3% of stronghold storeroom chests, 45.1% of village weaponsmith chests, 37.4% of jungle temple chests, 18.0% of desert temple chests, 19.0% of nether fortress chests, and 27.3% of chest minecarts in Mineshafts, all in stacks of 1–5; in 38.4% of End city chests in stacks of 4–8; in 54.2% of village armorer chests and 30.5% of pillager outpost chests in stacks of 1–3; in 11.2% of bastion remnant bridge chests in stacks of 4–9; in 33.7% of bastion remnant treasure chests in stacks of 3–9; and in 19.0% of bastion remnant chests in stacks of 1–6.
Bedrock Editionthey can be found in 18.5% of dungeon chests and 18.5% of woodland mansion chests in stacks of 1–4; in 22.4% of stronghold altar chests, 41.2% of village toolsmith chests, 97.4% of shipwreck treasure chests, 28.5% of stronghold storeroom chests, 45.1% of village weaponsmith chests, 37.3% of jungle temple chests, 18.0% of desert temple chests, 19.0% of nether fortress chests, and 27.3% of chest minecarts in Mineshafts, all in stacks of 1–5; in 38.4% of End city chests in stacks of 4–8; in 57.2% of buried treasure chests in stacks of 3–5; in 54.2% of village armorer chests and 30.5% of pillager outpost chests in stacks of 1–3; in 11.2% of bastion remnant bridge chests in stacks of 4–9; in 33.7% of bastion remnant treasure chests in stacks of 3–9; and in 19.0% of bastion remnant chests in stacks of 1–6.
{{#invoke:LootChest|base2|emerald}} →
Emeralds can be found in 14.9% of big underwater ruins chests, 24.2% of village fisherman chests, 31.8% of village armorer chests, 12.3% of village shepherd chests, 10.2% of village butcher chests, 16.4% of small underwater ruins chests, 12.3% of village fletcher chests, 7.6% of igloo chests, and 20.8% of village mason chests, all in stacks of 1; in 25.4% of village temple chests, 21.5% of savanna village house chests, 18.6% of taiga village house chests, 9.9% of snowy village house chests, 22.8% of plains village house chests, and 17.3% of village tannery chests, all in stacks of 1–4; in 73.7% of shipwreck treasure chests in stacks of 1–5; in 59.9% of buried treasure chests in stacks of 4–8; in 14.3% of desert village house chests, 8.7% of jungle temple chests, and 18.0% of desert temple chests, all in stacks of 1–3; and in 9.0% of End city chests in stacks of 2–6.
Bedrock Editionthey can be found in 14.9% of big underwater ruins chests, 31.8% of village armorer chests, 12.3% of village shepherd chests, 10.2% of village butcher chests, 16.4% of small underwater ruins chests, 12.3% of village fletcher chests, 7.6% of igloo chests, and 20.8% of village mason chests, all in stacks of 1; in 7.1% of stronghold altar chests, 14.3% of desert village house chests, 8.7% of jungle temple chests, and 18.0% of desert temple chests, all in stacks of 1–3; in 73.7% of shipwreck treasure chests in stacks of 1–5; in 9.0% of End city chests in stacks of 2–6; and in 25.4% of village temple chests, 21.5% of savanna village house chests, 20.3% of taiga village house chests, 9.9% of snowy village house chests, 22.8% of plains village house chests, and 17.3% of village tannery chests, all in stacks of 1–4.
.base3 usage (Template:LootChestItem table)
Prints a summary of this item's availability in the various worldgen chests in the form of a table.
Invoking
It takes exactly one item name as a parameter.
{{#invoke:LootChest|base3|<itemParam>}}
Item parameters
Same as above
Example
{{#invoke:LootChest|base3|emerald}} →
| Item | Structure | Container | Quantity | Chance |
|---|---|---|---|---|
| Java Edition | ||||
| Emerald | Buried treasure | Chest | 4–8 | 59.9% |
| Desert temple | Chest | 1–3 | 18% | |
| End city | Chest | 2–6 | 9% | |
| Igloo | Chest | 1 | 7.6% | |
| Jungle temple | Chest | 1–3 | 8.7% | |
| Shipwreck | Treasure chest | 1–5 | 73.7% | |
| Underwater ruins | Big ruins chest | 1 | 14.9% | |
| Small ruins chest | 1 | 16.4% | ||
| Village | Shepherd's chest | 1 | 12.3% | |
| Tanner's chest | 1–4 | 17.3% | ||
| Armorer's chest | 1 | 31.8% | ||
| Fisherman's chest | 1 | 24.2% | ||
| Desert house chest | 1–3 | 14.3% | ||
| Fletcher's chest | 1 | 12.3% | ||
| Plains house chest | 1–4 | 22.8% | ||
| Taiga house chest | 1–4 | 18.6% | ||
| Mason's chest | 1 | 20.8% | ||
| Snowy house chest | 1–4 | 9.9% | ||
| Temple chest | 1–4 | 25.4% | ||
| Butcher's chest | 1 | 10.2% | ||
| Savanna house chest | 1–4 | 21.5% | ||
| Bedrock Edition | ||||
| Emerald | Desert temple | Chest | 1–3 | 18% |
| End city | Chest | 2–6 | 9% | |
| Igloo | Chest | 1 | 7.6% | |
| Jungle temple | Chest | 1–3 | 8.7% | |
| Shipwreck | Treasure chest | 1–5 | 73.7% | |
| Stronghold | Altar chest | 1–3 | 7.1% | |
| Underwater ruins | Big ruins chest | 1 | 14.9% | |
| Small ruins chest | 1 | 16.4% | ||
| Village | Savanna house chest | 1–4 | 21.5% | |
| Snowy house chest | 1–4 | 9.9% | ||
| Taiga house chest | 1–4 | 20.3% | ||
| Temple chest | 1–4 | 25.4% | ||
| Desert house chest | 1–3 | 14.3% | ||
| Mason's chest | 1 | 20.8% | ||
| Armorer's chest | 1 | 31.8% | ||
| Plains house chest | 1–4 | 22.8% | ||
| Shepherd's chest | 1 | 12.3% | ||
| Fletcher's chest | 1 | 12.3% | ||
| Butcher's chest | 1 | 10.2% | ||
| Tanner's chest | 1–4 | 17.3% | ||
Source
- The data is set up within
pso that it can be pulled directly from (or compared directly to) the minecraft loot table files. - stack size given here (and given in code) can be larger than the stackable size of the item, prominently in the case of enchanted books. However this fact does not affect the calculated values. This is because the game puts the right number of items, but unstacked rather than stacked.
Data structure
p.items
'<item-id>' = {- This key must match a sprite name for the items/blocks defined in Module:BlockSprite or Module:ItemSprite, unless
idis included in the item definition.
- This key must match a sprite name for the items/blocks defined in Module:BlockSprite or Module:ItemSprite, unless
'<sprite-type>'- Either
itemorblock.
- Either
[, id='<sprite-id>']- Use this to specify a sprite defined in Module:BlockSprite or Module:ItemSprite. Otherwise it uses the sprite with the name given by
item-id.
- Use this to specify a sprite defined in Module:BlockSprite or Module:ItemSprite. Otherwise it uses the sprite with the name given by
[, link='<item-link>']- A link to a page that is different from the sprite-id name. Used in Template:LootChest.
[, title='<item-text>']- A name for an item that is different from the sprite-id name.
[, cannot_stack=false]- Use this to indicate that the item comes in groups rather than in stacks. Used in Template:LootChestItem.
[, plural=(false|'<custom-plural-word>')]- Use
falsewhen a word has no plural, like 'Nether Wart'. Use a custom plural word when you cannot simply append an 's' to the base word to make it plural, like 'Bottles o' Enchanting'. Used in Template:LootChestItem.
- Use
[, preserve_case=false]- Use
falsewhen an item name should follow the capitalization exactly specified intitle, and not follow sentence case, like 'TNT'.
- Use
[, note='<note-name>']- Indicates that a note appears next to this item in the table. (notes are defined directly below the item list)
}
p.notes
'<note-name>' = '<note-full-text>'
p.chests[n].poolsJava[n]p.chests[n].poolsJavaUpcoming[n]p.chests[n].poolsBedrock[n]p.chests[n].poolsBedrockUpcoming[n]- rolls
{ <min-number-of-stacks>, <max-number-of-stacks> }
p.chests[n].poolsJava[n].itemsp.chests[n].poolsJavaUpcoming[n].itemsp.chests[n].poolsBedrock[n].itemsp.chests[n].poolsBedrockUpcoming[n].items
'<item-id>' = { <min-stack-size>, <max-stack-size>, <item-weight> }
p.synonyms
'<chest-name-synonym>' = '<original-interally-valid-chest-name>'- Allows additional chest names to be used as parameters, in addition to the ones defined in p.chests.
p.display_names
'<chest-name-given-via-parameter>' = '<name-displayed-in-single-chest-table>'- If a single chest parameter is used, this defines the name it is called in the summary text above the table.
p.columns
'<column-name>' = '<column-full-description>'- The column descriptions, found either in the tooltip on the column header, or in the summary text above the table.
Functions
The following functions are made available at the top of the file, for ease of inspection.
calc_average_amount_this_item_per_chest
- average number of a certain item (not number of stacks), per-chest (not per-structure).
calc_chance_any_of_this_item_per_chest
- chance that at least one of a certain item is present, per-chest (not per-structure).
Item tests
{{#invoke:LootChest|base2_test}}
Acacia logs can be found in 28.0% of bonus chests in stacks of 1–3.
Bedrock Editionthey can be found in 50.0% of bonus chests in stacks of 1–3.
Acacia saplings can be found in 71.7% of savanna village house chests in stacks of 1–2.
Bedrock Editionthey can be found in 14.3% of bonus chests in stacks of 4, and in 71.7% of savanna village house chests in stacks of 1–2.
Activator rails can be found in 27.1% of chest minecarts in Mineshafts in stacks of 1–4.
Bedrock Editionthey can be found in 27.1% of chest minecarts in Mineshafts in stacks of 1–4.
Ancient debris can be found in 13.5% of bastion remnant chests in stacks of 1, and in 12.7% of bastion remnant treasure chests and 5.7% of bastion remnant hoglin stable chests in stacks of 2.
Bedrock Editionthey can be found in 13.5% of bastion remnant chests and 5.7% of bastion remnant hoglin stable chests in stacks of 1, and in 12.7% of bastion remnant treasure chests in stacks of 2.
Apples can be found in 33.2% of stronghold altar chests, 47.5% of stronghold storeroom chests, 70.4% of igloo chests, and 59.8% of village weaponsmith chests, all in stacks of 1–3; in 83.8% of bonus chests in stacks of 1–2; and in 74.2% of plains village house chests in stacks of 1–5.
Bedrock Editionthey can be found in 32.3% of stronghold altar chests, 40.0% of stronghold storeroom chests, 70.4% of igloo chests, and 59.8% of village weaponsmith chests, all in stacks of 1–3; in all bonus chests in stacks of 1–2; and in 74.2% of plains village house chests in stacks of 1–5.
Arrows can be found in 23.3% of village fletcher chests in stacks of 1–3, in all dispensers in jungle temples and 39.1% of pillager outpost chests in stacks of 2–7, and in 44.1% of bastion remnant chests, 22.8% of bastion remnant hoglin stable chests, and 47.9% of bastion remnant bridge chests, all in stacks of 5–17.
Bedrock Editionthey can be found in 11.2% of bastion remnant bridge chests in stacks of 10–28, in 33.7% of bastion remnant treasure chests in stacks of 12–25, in 23.3% of village fletcher chests in stacks of 1–3, in 11.2% of bastion remnant chests in stacks of 10–22, in all dispensers in jungle temples and 39.1% of pillager outpost chests in stacks of 2–7, and in 44.1% of bastion remnant chests, 22.8% of bastion remnant hoglin stable chests, and 47.9% of bastion remnant bridge chests, all in stacks of 5–17.
Arrows[H] can be found in 10.9% of bonus barrel chests in stacks of 1–20.
Bamboo can be found in 51.0% of jungle temple chests and 14.4% of shipwreck supply chests in stacks of 1–3.
Bedrock Editionthey can be found in 50.9% of jungle temple chests and 14.4% of shipwreck supply chests in stacks of 1–3.
Barrels can be found in 24.2% of village fisherman chests in stacks of 1–3.
Beetroot seeds can be found in 18.5% of dungeon chests, 27.3% of chest minecarts in Mineshafts, and 18.5% of woodland mansion chests, all in stacks of 2–4; in 21.2% of End city chests in stacks of 1–10; and in 66.3% of snowy village house chests in stacks of 1–5.
Bedrock Editionthey can be found in 21.2% of End city chests in stacks of 1–10; in 18.5% of dungeon chests, 27.3% of chest minecarts in Mineshafts, and 18.5% of woodland mansion chests, all in stacks of 2–4; in 66.3% of snowy village house chests in stacks of 1–5; and in 33.3% of bonus chests in stacks of 1–2.
Beetroot soup can be found in 9.9% of snowy village house chests in groups of 1.
Bedrock Editionthey can be found in 9.9% of snowy village house chests in groups of 1.
Bells can be found in 1.5% of ruined portal chests in stacks of 1.
Bedrock Editionthey can be found in 1.5% of ruined portal chests in stacks of 1.
Bfc9000s[J] can be found in 10.9% of bonus barrel chests in groups of 1.
Birch logs can be found in 28.0% of bonus chests in stacks of 1–3.
Bedrock Editionthey can be found in 25.0% of bonus chests in stacks of 1–3.
Black wool can be found in 33.0% of village shepherd chests in stacks of 1–3.
Bedrock Editionthey can be found in 33.0% of village shepherd chests in stacks of 1–3.
Blocks of gold can be found in 19.0% of bastion remnant chests and 11.2% of bastion remnant bridge chests in stacks of 1, in 33.7% of bastion remnant treasure chests in stacks of 2–5, in 1.5% of ruined portal chests in stacks of 1–2, and in 18.2% of bastion remnant hoglin stable chests in stacks of 2–4.
Bedrock Editionthey can be found in 19.0% of bastion remnant chests and 11.2% of bastion remnant bridge chests in stacks of 1, in 33.7% of bastion remnant treasure chests in stacks of 2–5, in 1.5% of ruined portal chests in stacks of 1–2, and in 18.2% of bastion remnant hoglin stable chests in stacks of 2–4.
Blocks of iron can be found in 19.0% of bastion remnant chests in stacks of 1, and in 33.7% of bastion remnant treasure chests in stacks of 2–5.
Bedrock Editionthey can be found in 19.0% of bastion remnant chests in stacks of 1, and in 33.7% of bastion remnant treasure chests in stacks of 2–5.
Blue ice can be found in 9.9% of snowy village house chests in stacks of 1.
Bedrock Editionthey can be found in 9.9% of snowy village house chests in stacks of 1.
Blue keys can be found in 4.2% of bonus barrel chests in stacks of 1.
Bone blocks can be found in 24.4% of bastion remnant chests in stacks of 3–6.
Bedrock Editionthey can be found in 24.4% of bastion remnant chests in stacks of 3–6.
Bones can be found in 61.9% of jungle temple chests and 28.7% of desert temple chests in stacks of 4–6, and in 57.8% of dungeon chests, 59.0% of desert temple chests, and 57.8% of woodland mansion chests, all in stacks of 1–8. Java Edition 1.19[upcoming]they can be found in 30.7% of Ancient City chests in stacks of 1–15.
Bedrock Editionthey can be found in 61.8% of jungle temple chests and 28.7% of desert temple chests in stacks of 4–6, and in 57.8% of dungeon chests, 59.0% of desert temple chests, and 57.8% of woodland mansion chests, all in stacks of 1–8.
Books can be found in 14.3% of desert village house chests and 12.1% of plains village house chests in stacks of 1, in 89.2% of stronghold library chests in stacks of 1–3, and in 34.5% of shipwreck map chests in stacks of 1–5. Java Edition 1.19[upcoming]they can be found in 30.7% of Ancient City chests in stacks of 3–10.
Bedrock Editionthey can be found in 14.3% of desert village house chests and 12.1% of plains village house chests in stacks of 1, in 88.3% of stronghold library chests in stacks of 1–3, and in 34.5% of shipwreck map chests in stacks of 1–5.
Bottles o' enchanting can be found in 14.1% of shipwreck treasure chests and 60.9% of pillager outpost chests in stacks of 1. Java Edition 1.19[upcoming]they can be found in 24.0% of Ancient City chests in stacks of 1–3.
Bedrock Editionthey can be found in 14.1% of shipwreck treasure chests, 60.9% of pillager outpost chests, and 11.8% of buried treasure chests, all in stacks of 1.
Bread can be found in 34.1% of dungeon chests and 34.1% of woodland mansion chests in stacks of 1; in 33.2% of stronghold altar chests, 81.2% of village toolsmith chests, 47.5% of stronghold storeroom chests, 59.8% of village weaponsmith chests, and 38.7% of chest minecarts in Mineshafts, all in stacks of 1–3; in 61.5% of bonus chests in stacks of 1–2; and in 89.3% of village temple chests, 80.6% of village armorer chests, 61.2% of village cartographer chests, 80.6% of desert village house chests, 71.7% of savanna village house chests, 62.2% of village mason chests, 65.6% of taiga village house chests, 66.3% of snowy village house chests, 74.2% of plains village house chests, and 62.8% of village tannery chests, all in stacks of 1–4.
Bedrock Editionthey can be found in 34.1% of dungeon chests and 34.1% of woodland mansion chests in stacks of 1; in 32.3% of stronghold altar chests, 81.2% of village toolsmith chests, 40.0% of stronghold storeroom chests, 59.8% of village weaponsmith chests, and 38.7% of chest minecarts in Mineshafts, all in stacks of 1–3; in all bonus chests in stacks of 1–2; and in 89.3% of village temple chests, 80.6% of village armorer chests, 61.2% of village cartographer chests, 80.6% of desert village house chests, 71.7% of savanna village house chests, 62.2% of village mason chests, 69.3% of taiga village house chests, 66.3% of snowy village house chests, 74.2% of plains village house chests, and 62.8% of village tannery chests, all in stacks of 1–4.
Brown wool can be found in 23.3% of village shepherd chests in stacks of 1–3.
Bedrock Editionthey can be found in 23.3% of village shepherd chests in stacks of 1–3.
Buckets can be found in 18.5% of dungeon chests, 11.3% of savanna village house chests, and 18.5% of woodland mansion chests, all in stacks of 1.
Bedrock Editionthey can be found in 18.5% of dungeon chests, 11.3% of savanna village house chests, and 18.5% of woodland mansion chests, all in stacks of 1.
Buried treasure maps can be found in 43.5% of big underwater ruins chests, 41.7% of small underwater ruins chests, and all shipwreck map chests, all in stacks of 1.
Bedrock Editionthey can be found in 43.5% of big underwater ruins chests, 41.7% of small underwater ruins chests, and all shipwreck map chests, all in stacks of 1.
Cactus can be found in 80.6% of desert village house chests in stacks of 1–4.
Bedrock Editionthey can be found in 80.6% of desert village house chests in stacks of 1–4, and in 60.0% of bonus chests in stacks of 1–2.
Carrots can be found in 42.1% of shipwreck supply chests in stacks of 4–8, and in 57.5% of pillager outpost chests in stacks of 3–5.
Bedrock Editionthey can be found in 50.0% of bonus chests in stacks of 1–2, in 42.1% of shipwreck supply chests in stacks of 4–8, and in 57.5% of pillager outpost chests in stacks of 3–5.
Chainmail chestplates can be found in 14.9% of woodland mansion chests in groups of 1.
Bedrock Editionthey can be found in 14.7% of woodland mansion chests and 57.2% of buried treasure chests in groups of 1.
Chains can be found in 24.4% of bastion remnant chests in stacks of 2–10.
Bedrock Editionthey can be found in 24.4% of bastion remnant chests in stacks of 2–10.
Clay ball can be found in 14.3% of desert village house chests in stacks of 1, and in 20.8% of village mason chests in stacks of 1–3.
Bedrock Editionthey can be found in 14.3% of desert village house chests in stacks of 1, and in 20.8% of village mason chests in stacks of 1–3.
Clocks can be found in 7.7% of shipwreck map chests and 7.3% of ruined portal chests in stacks of 1.
Bedrock Editionthey can be found in 7.7% of shipwreck map chests and 7.3% of ruined portal chests in stacks of 1.
Coal can be found in 43.0% of village fisherman chests, 9.9% of village toolsmith chests, and 27.9% of village butcher chests, all in stacks of 1–3; in 37.3% of shipwreck supply chests in stacks of 2–8; in 81.0% of big underwater ruins chests, 84.2% of small underwater ruins chests, 26.6% of dungeon chests, 70.4% of igloo chests, 41.2% of snowy village house chests, and 26.6% of woodland mansion chests, all in stacks of 1–4; and in 34.3% of stronghold storeroom chests and 27.3% of chest minecarts in Mineshafts in stacks of 3–8. Java Edition 1.19[upcoming]they can be found in 42.6% of Ancient City chests in stacks of 6–15.
Bedrock Editionthey can be found in 9.9% of village toolsmith chests and 27.9% of village butcher chests in stacks of 1–3; in 37.3% of shipwreck supply chests in stacks of 2–8; in 81.0% of big underwater ruins chests, 84.2% of small underwater ruins chests, 26.6% of dungeon chests, 70.4% of igloo chests, 41.2% of snowy village house chests, and 26.6% of woodland mansion chests, all in stacks of 1–4; and in 28.5% of stronghold storeroom chests and 27.3% of chest minecarts in Mineshafts in stacks of 3–8.
Compasses can be found in 7.7% of shipwreck map chests, 26.3% of village cartographer chests, and 10.9% of stronghold library chests, all in stacks of 1. Java Edition 1.19[upcoming]they can be found in 16.6% of Ancient City chests in stacks of 1.
Bedrock Editionthey can be found in 7.7% of shipwreck map chests, 26.3% of village cartographer chests, and 10.5% of stronghold library chests, all in stacks of 1.
Cooked cod can be found in 75.0% of buried treasure chests in stacks of 2–4.
Cooked porkchops can be found in 24.4% of bastion remnant chests in stacks of 1, and in 22.8% of bastion remnant hoglin stable chests in stacks of 2–5.
Bedrock Editionthey can be found in 24.4% of bastion remnant chests in stacks of 1, and in 22.8% of bastion remnant hoglin stable chests in stacks of 2–5.
Cooked salmon can be found in 75.0% of buried treasure chests in stacks of 2–4.
Crimson fungi can be found in 22.8% of bastion remnant hoglin stable chests in stacks of 2–7.
Bedrock Editionthey can be found in 22.8% of bastion remnant hoglin stable chests in stacks of 2–7.
Crimson nylium can be found in 22.8% of bastion remnant hoglin stable chests in stacks of 2–7.
Bedrock Editionthey can be found in 22.8% of bastion remnant hoglin stable chests in stacks of 2–7.
Crimson roots can be found in 22.8% of bastion remnant hoglin stable chests in stacks of 2–7.
Bedrock Editionthey can be found in 22.8% of bastion remnant hoglin stable chests in stacks of 2–7.
Crossbows can be found in 9.8% of bastion remnant chests and all pillager outpost chests in groups of 1.
Bedrock Editionthey can be found in 9.8% of bastion remnant chests and all pillager outpost chests in groups of 1.
Crying obsidians can be found in 19.0% of bastion remnant chests and 22.8% of bastion remnant hoglin stable chests in stacks of 1–5, in 11.2% of bastion remnant bridge chests in stacks of 3–8, and in 33.7% of bastion remnant treasure chests in stacks of 3–5.
Bedrock Editionthey can be found in 19.0% of bastion remnant chests and 22.8% of bastion remnant hoglin stable chests in stacks of 1–5, in 11.2% of bastion remnant bridge chests in stacks of 3–8, and in 33.7% of bastion remnant treasure chests in stacks of 3–5.
Damaged enchanted crossbows[B][L] can be found in 6.7% of bastion remnant chests in groups of 1.
Bedrock Editionthey can be found in 6.7% of bastion remnant chests in groups of 1.
Damaged enchanted crossbows[B][R] can be found in 11.2% of bastion remnant bridge chests in groups of 1.
Bedrock Editionthey can be found in 11.2% of bastion remnant bridge chests in groups of 1.
Damaged enchanted diamond boots[B][C] can be found in 18.7% of bastion remnant treasure chests in groups of 1.
Bedrock Editionthey can be found in 18.7% of bastion remnant treasure chests in groups of 1.
Damaged enchanted diamond chestplates[B][C] can be found in 18.7% of bastion remnant treasure chests in groups of 1.
Bedrock Editionthey can be found in 18.7% of bastion remnant treasure chests in groups of 1.
Damaged enchanted diamond helmets[B][C] can be found in 18.7% of bastion remnant treasure chests in groups of 1.
Bedrock Editionthey can be found in 18.7% of bastion remnant treasure chests in groups of 1.
Damaged enchanted diamond leggings[B][C] can be found in 18.7% of bastion remnant treasure chests in groups of 1.
Bedrock Editionthey can be found in 18.7% of bastion remnant treasure chests in groups of 1.
Damaged enchanted diamond shovels[B][G] can be found in 17.0% of bastion remnant hoglin stable chests in groups of 1.
Bedrock Editionthey can be found in 17.0% of bastion remnant hoglin stable chests in groups of 1.
Damaged enchanted diamond swords[B][C] can be found in 18.7% of bastion remnant treasure chests in groups of 1.
Bedrock Editionthey can be found in 18.7% of bastion remnant treasure chests in groups of 1.
Damaged enchanted iron swords[B][L] can be found in 19.0% of bastion remnant chests in groups of 1.
Bedrock Editionthey can be found in 19.0% of bastion remnant chests in groups of 1.
Dandelions can be found in 22.8% of plains village house chests in stacks of 1.
Bedrock Editionthey can be found in 22.8% of plains village house chests in stacks of 1.
Dark oak logs can be found in 28.0% of bonus chests in stacks of 1–3, and in all pillager outpost chests in stacks of 2–3.
Bedrock Editionthey can be found in 50.0% of bonus chests in stacks of 1–3, and in all pillager outpost chests in stacks of 2–3.
Dead bushes can be found in 26.6% of desert village house chests in stacks of 1–3.
Bedrock Editionthey can be found in 26.6% of desert village house chests in stacks of 1–3.
Detector rails can be found in 27.1% of chest minecarts in Mineshafts in stacks of 1–4.
Bedrock Editionthey can be found in 27.1% of chest minecarts in Mineshafts in stacks of 1–4.
Diamond boots can be found in 15.8% of bastion remnant treasure chests in groups of 1.
Bedrock Editionthey can be found in 15.8% of bastion remnant treasure chests in groups of 1.
Diamond chestplates can be found in 15.8% of bastion remnant treasure chests and 7.7% of woodland mansion chests in groups of 1.
Bedrock Editionthey can be found in 15.8% of bastion remnant treasure chests and 7.6% of woodland mansion chests in groups of 1.
Diamond helmets can be found in 15.8% of bastion remnant treasure chests in groups of 1.
Bedrock Editionthey can be found in 15.8% of bastion remnant treasure chests in groups of 1.
Diamond hoes can be found in 21.8% of woodland mansion chests in groups of 1.
Bedrock Editionthey can be found in 21.5% of woodland mansion chests in groups of 1.
Diamond horse armor can be found in 2.5% of stronghold altar chests, 7.6% of dungeon chests, 5.7% of village weaponsmith chests, 4.5% of jungle temple chests, 6.3% of desert temple chests, 11.8% of nether fortress chests, and 4.6% of End city chests, all in groups of 1. Java Edition 1.19[upcoming]they can be found in 16.6% of Ancient City chests in groups of 1.
Bedrock Editionthey can be found in 2.4% of stronghold altar chests, 7.7% of dungeon chests, 5.7% of village weaponsmith chests, 4.4% of jungle temple chests, 6.3% of desert temple chests, 11.8% of nether fortress chests, and 4.6% of End city chests, all in groups of 1.
Diamond leggings can be found in 15.8% of bastion remnant treasure chests in groups of 1.
Bedrock Editionthey can be found in 15.8% of bastion remnant treasure chests in groups of 1.
Diamond shovels can be found in 6.7% of bastion remnant chests in groups of 1.
Bedrock Editionthey can be found in 6.7% of bastion remnant chests in groups of 1.
Diamond swords can be found in 18.7% of bastion remnant treasure chests in groups of 1.
Bedrock Editionthey can be found in 18.7% of bastion remnant treasure chests in groups of 1.
Diamonds can be found in 14.1% of shipwreck treasure chests in stacks of 1, in 15.8% of bastion remnant treasure chests in stacks of 2–6, in 8.9% of chest minecarts in Mineshafts and 59.9% of buried treasure chests in stacks of 1–2, in 21.2% of End city chests in stacks of 2–7, and in 7.3% of stronghold altar chests, 9.9% of village toolsmith chests, 16.2% of village weaponsmith chests, 12.9% of jungle temple chests, 6.3% of desert temple chests, and 19.0% of nether fortress chests, all in stacks of 1–3.
Bedrock Editionthey can be found in 14.1% of shipwreck treasure chests and 46.9% of buried treasure chests in stacks of 1, in 15.8% of bastion remnant treasure chests in stacks of 2–6, in 8.9% of chest minecarts in Mineshafts in stacks of 1–2, in 21.2% of End city chests in stacks of 2–7, and in 7.1% of stronghold altar chests, 9.9% of village toolsmith chests, 16.2% of village weaponsmith chests, 12.8% of jungle temple chests, 6.3% of desert temple chests, and 19.0% of nether fortress chests, all in stacks of 1–3.
Eggs can be found in 23.3% of village fletcher chests in stacks of 1–3.
Bedrock Editionthey can be found in 23.3% of village fletcher chests in stacks of 1–3.
Emeralds can be found in 14.9% of big underwater ruins chests, 24.2% of village fisherman chests, 31.8% of village armorer chests, 12.3% of village shepherd chests, 10.2% of village butcher chests, 16.4% of small underwater ruins chests, 12.3% of village fletcher chests, 7.6% of igloo chests, and 20.8% of village mason chests, all in stacks of 1; in 25.4% of village temple chests, 21.5% of savanna village house chests, 18.6% of taiga village house chests, 9.9% of snowy village house chests, 22.8% of plains village house chests, and 17.3% of village tannery chests, all in stacks of 1–4; in 73.7% of shipwreck treasure chests in stacks of 1–5; in 59.9% of buried treasure chests in stacks of 4–8; in 14.3% of desert village house chests, 8.7% of jungle temple chests, and 18.0% of desert temple chests, all in stacks of 1–3; and in 9.0% of End city chests in stacks of 2–6.
Bedrock Editionthey can be found in 14.9% of big underwater ruins chests, 31.8% of village armorer chests, 12.3% of village shepherd chests, 10.2% of village butcher chests, 16.4% of small underwater ruins chests, 12.3% of village fletcher chests, 7.6% of igloo chests, and 20.8% of village mason chests, all in stacks of 1; in 7.1% of stronghold altar chests, 14.3% of desert village house chests, 8.7% of jungle temple chests, and 18.0% of desert temple chests, all in stacks of 1–3; in 73.7% of shipwreck treasure chests in stacks of 1–5; in 9.0% of End city chests in stacks of 2–6; and in 25.4% of village temple chests, 21.5% of savanna village house chests, 20.3% of taiga village house chests, 9.9% of snowy village house chests, 22.8% of plains village house chests, and 17.3% of village tannery chests, all in stacks of 1–4.
Empty maps can be found in 7.7% of shipwreck map chests and 10.9% of stronghold library chests in stacks of 1, and in 46.2% of village cartographer chests in stacks of 1–3.
Enchanted books[K] can be found in 2.5% of stronghold altar chests, 4.0% of stronghold storeroom chests, 4.5% of jungle temple chests, and 67.8% of stronghold library chests, all in groups of 1.
Bedrock Editionthey can be found in 2.9% of stronghold altar chests, 3.8% of stronghold storeroom chests, 5.3% of jungle temple chests, and 72.9% of stronghold library chests, all in groups of 1.
Enchanted books[B] can be found in 21.7% of big underwater ruins chests, 14.7% of dungeon chests, 23.5% of desert temple chests, 14.1% of chest minecarts in Mineshafts, 11.0% of pillager outpost chests, and 14.9% of woodland mansion chests, all in groups of 1. Java Edition 1.19[upcoming]they can be found in 30.7% of Ancient City chests in groups of 1.
Bedrock Editionthey can be found in 21.7% of big underwater ruins chests, 14.9% of dungeon chests, 23.5% of desert temple chests, 14.1% of chest minecarts in Mineshafts, 11.0% of pillager outpost chests, and 17.5% of woodland mansion chests, all in groups of 1.
Enchanted books[Q] can be found in 11.2% of bastion remnant chests in groups of 1.
Bedrock Editionthey can be found in 11.2% of bastion remnant chests in groups of 1.
Enchanted bows[M] can be found in 10.9% of bonus barrel chests in groups of 1.
Enchanted diamond bootses[F] can be found in 10.9% of bonus barrel chests in groups of 1.
Enchanted diamond boots[A] can be found in 13.3% of End city chests in groups of 1.
Bedrock Editionthey can be found in 13.3% of End city chests in groups of 1.
Enchanted diamond chestplates[A] can be found in 13.3% of End city chests in groups of 1.
Bedrock Editionthey can be found in 13.3% of End city chests in groups of 1.
Enchanted diamond chestplates[F] can be found in 10.9% of bonus barrel chests in groups of 1.
Enchanted diamond helmets[F] can be found in 10.9% of bonus barrel chests in groups of 1.
Enchanted diamond helmets[A] can be found in 13.3% of End city chests in groups of 1.
Bedrock Editionthey can be found in 13.3% of End city chests in groups of 1.
Enchanted diamond leggingses[F] can be found in 10.9% of bonus barrel chests in groups of 1.
Enchanted diamond leggings[A] can be found in 13.3% of End city chests in groups of 1.
Bedrock Editionthey can be found in 13.3% of End city chests in groups of 1.
Enchanted diamond pickaxes[A] can be found in 13.3% of End city chests in groups of 1.
Bedrock Editionthey can be found in 13.3% of End city chests in groups of 1.
Enchanted diamond pickaxes[B][E] can be found in 13.6% of bastion remnant hoglin stable chests in groups of 1.
Bedrock Editionthey can be found in 13.6% of bastion remnant hoglin stable chests in groups of 1.
Enchanted diamond pickaxes[B] can be found in 6.7% of bastion remnant chests in groups of 1.
Bedrock Editionthey can be found in 6.7% of bastion remnant chests in groups of 1.
Enchanted diamond shovels[A] can be found in 13.3% of End city chests in groups of 1.
Bedrock Editionthey can be found in 13.3% of End city chests in groups of 1.
Enchanted diamond swords[F] can be found in 10.9% of bonus barrel chests in groups of 1.
Enchanted diamond swords[A] can be found in 13.3% of End city chests in groups of 1.
Bedrock Editionthey can be found in 13.3% of End city chests in groups of 1.
Enchanted fishing rods[B] can be found in 21.7% of big underwater ruins chests and 41.7% of small underwater ruins chests in groups of 1.
Bedrock Editionthey can be found in 21.7% of big underwater ruins chests and 41.7% of small underwater ruins chests in groups of 1.
Enchanted golden apples can be found in 1.5% of ruined portal chests, 3.1% of dungeon chests, 6.5% of bastion remnant treasure chests, 2.6% of desert temple chests, 1.4% of chest minecarts in Mineshafts, and 3.1% of woodland mansion chests, all in stacks of 1. Java Edition 1.19[upcoming]they can be found in 8.7% of Ancient City chests in stacks of 1–2.
Bedrock Editionthey can be found in 1.5% of ruined portal chests, 3.1% of dungeon chests, 6.5% of bastion remnant treasure chests, 2.6% of desert temple chests, 1.4% of chest minecarts in Mineshafts, and 3.1% of woodland mansion chests, all in stacks of 1.
Enchanted golden axes[B] can be found in 20.5% of ruined portal chests, 9.8% of bastion remnant chests, 22.8% of bastion remnant hoglin stable chests, and 11.2% of bastion remnant bridge chests, all in groups of 1.
Bedrock Editionthey can be found in 20.5% of ruined portal chests, 9.8% of bastion remnant chests, 22.8% of bastion remnant hoglin stable chests, and 11.2% of bastion remnant bridge chests, all in groups of 1.
Enchanted golden boots with soul speed[Q] can be found in 9.8% of bastion remnant chests in groups of 1.
Bedrock Editionthey can be found in 9.8% of bastion remnant chests in groups of 1.
Enchanted golden boots[B] can be found in 20.5% of ruined portal chests and 11.2% of bastion remnant bridge chests in groups of 1.
Bedrock Editionthey can be found in 20.5% of ruined portal chests and 11.2% of bastion remnant bridge chests in groups of 1.
Enchanted golden chestplates[B] can be found in 20.5% of ruined portal chests and 11.2% of bastion remnant bridge chests in groups of 1.
Bedrock Editionthey can be found in 20.5% of ruined portal chests and 11.2% of bastion remnant bridge chests in groups of 1.
Enchanted golden helmets[B] can be found in 20.5% of ruined portal chests and 11.2% of bastion remnant bridge chests in groups of 1.
Bedrock Editionthey can be found in 20.5% of ruined portal chests and 11.2% of bastion remnant bridge chests in groups of 1.
Enchanted golden hoes[B] can be found in 20.5% of ruined portal chests in groups of 1.
Bedrock Editionthey can be found in 20.5% of ruined portal chests in groups of 1.
Enchanted golden leggings[B] can be found in 20.5% of ruined portal chests and 11.2% of bastion remnant bridge chests in groups of 1.
Bedrock Editionthey can be found in 20.5% of ruined portal chests and 11.2% of bastion remnant bridge chests in groups of 1.
Enchanted golden pickaxes[B] can be found in 20.5% of ruined portal chests in groups of 1.
Bedrock Editionthey can be found in 20.5% of ruined portal chests in groups of 1.
Enchanted golden shovels[B] can be found in 20.5% of ruined portal chests in groups of 1.
Bedrock Editionthey can be found in 20.5% of ruined portal chests in groups of 1.
Enchanted golden swords[B] can be found in 20.5% of ruined portal chests in groups of 1.
Bedrock Editionthey can be found in 20.5% of ruined portal chests in groups of 1.
Enchanted iron bootses[F] can be found in 10.9% of bonus barrel chests in groups of 1.
Enchanted iron boots[A] can be found in 13.3% of End city chests in groups of 1.
Bedrock Editionthey can be found in 13.3% of End city chests in groups of 1.
Enchanted iron chestplates[A] can be found in 13.3% of End city chests in groups of 1.
Bedrock Editionthey can be found in 13.3% of End city chests in groups of 1.
Enchanted iron chestplates[F] can be found in 10.9% of bonus barrel chests in groups of 1.
Enchanted iron helmets[A] can be found in 13.3% of End city chests in groups of 1.
Bedrock Editionthey can be found in 13.3% of End city chests in groups of 1.
Enchanted iron helmets[F] can be found in 10.9% of bonus barrel chests in groups of 1.
Enchanted iron leggingses[F] can be found in 10.9% of bonus barrel chests in groups of 1.
Enchanted iron leggings[A] can be found in 13.3% of End city chests in groups of 1. Java Edition 1.19[upcoming]they can be found in 24.0% of Ancient City chests in groups of 1.
Bedrock Editionthey can be found in 13.3% of End city chests in groups of 1.
Enchanted iron pickaxes[A] can be found in 13.3% of End city chests in groups of 1.
Bedrock Editionthey can be found in 13.3% of End city chests in groups of 1.
Enchanted iron shovels[A] can be found in 13.3% of End city chests in groups of 1.
Bedrock Editionthey can be found in 13.3% of End city chests in groups of 1.
Enchanted iron swords[F] can be found in 10.9% of bonus barrel chests in groups of 1.
Enchanted iron swords[A] can be found in 13.3% of End city chests in groups of 1.
Bedrock Editionthey can be found in 13.3% of End city chests in groups of 1.
Enchanted leather bootses[F] can be found in 10.9% of bonus barrel chests in groups of 1.
Enchanted leather boots[B] can be found in 20.8% of shipwreck supply chests in groups of 1.
Bedrock Editionthey can be found in 20.8% of shipwreck supply chests in groups of 1.
Enchanted leather caps[F] can be found in 10.9% of bonus barrel chests in groups of 1.
Enchanted leather caps[B] can be found in 20.8% of shipwreck supply chests in groups of 1.
Bedrock Editionthey can be found in 20.8% of shipwreck supply chests in groups of 1.
Enchanted leather pantses[F] can be found in 10.9% of bonus barrel chests in groups of 1.
Enchanted leather pants[B] can be found in 20.8% of shipwreck supply chests in groups of 1.
Bedrock Editionthey can be found in 20.8% of shipwreck supply chests in groups of 1.
Enchanted leather tunics[F] can be found in 10.9% of bonus barrel chests in groups of 1.
Enchanted leather tunics[B] can be found in 20.8% of shipwreck supply chests in groups of 1.
Bedrock Editionthey can be found in 20.8% of shipwreck supply chests in groups of 1.
Enchanted stone swords[F] can be found in 10.9% of bonus barrel chests in groups of 1.
Ender pearls can be found in 23.0% of stronghold altar chests in stacks of 1.
Bedrock Editionthey can be found in 22.4% of stronghold altar chests in stacks of 1.
Feathers can be found in 12.1% of plains village house chests in stacks of 1, in 55.8% of village fletcher chests in stacks of 1–3, and in 60.0% of shipwreck map chests in stacks of 1–5.
Bedrock Editionthey can be found in 12.1% of plains village house chests in stacks of 1, in 55.8% of village fletcher chests in stacks of 1–3, and in 60.0% of shipwreck map chests in stacks of 1–5.
Ferns can be found in 18.6% of taiga village house chests in stacks of 1.
Bedrock Editionthey can be found in 20.3% of taiga village house chests in stacks of 1.
Fire charges can be found in 46.4% of ruined portal chests in stacks of 1.
Bedrock Editionthey can be found in 46.4% of ruined portal chests in stacks of 1.
Flint and steel can be found in 46.4% of ruined portal chests and 19.0% of nether fortress chests in groups of 1.
Bedrock Editionthey can be found in 46.4% of ruined portal chests and 19.0% of nether fortress chests in groups of 1.
Flint can be found in 55.8% of village fletcher chests in stacks of 1–3, and in 46.4% of ruined portal chests in stacks of 1–4.
Bedrock Editionthey can be found in 55.8% of village fletcher chests in stacks of 1–3, and in 46.4% of ruined portal chests in stacks of 1–4.
Flower pots can be found in 20.8% of village mason chests in stacks of 1.
Bedrock Editionthey can be found in 20.8% of village mason chests in stacks of 1.
Furnaces can be found in 9.9% of snowy village house chests in stacks of 1.
Bedrock Editionthey can be found in 9.9% of snowy village house chests in stacks of 1.
Gilded blackstone can be found in 22.8% of bastion remnant hoglin stable chests in stacks of 2–5, in 44.1% of bastion remnant chests in stacks of 1–5, in 33.7% of bastion remnant treasure chests in stacks of 5–15, and in 11.2% of bastion remnant bridge chests in stacks of 8–12.
Bedrock Editionthey can be found in 22.8% of bastion remnant hoglin stable chests in stacks of 2–5, in 44.1% of bastion remnant chests in stacks of 1–5, in 33.7% of bastion remnant treasure chests in stacks of 5–15, and in 11.2% of bastion remnant bridge chests in stacks of 8–12.
Glistering melon slices can be found in 7.3% of ruined portal chests in stacks of 4–12.
Bedrock Editionthey can be found in 7.3% of ruined portal chests in stacks of 4–12.
Glow berries can be found in 38.7% of chest minecarts in Mineshafts in stacks of 3–6. Java Edition 1.19[upcoming]they can be found in 24.0% of Ancient City chests in stacks of 1–15.
Bedrock Editionthey can be found in 38.7% of chest minecarts in Mineshafts in stacks of 3–6.
Glowstones can be found in 22.8% of bastion remnant hoglin stable chests in stacks of 3–6.
Bedrock Editionthey can be found in 22.8% of bastion remnant hoglin stable chests in stacks of 3–6.
Gold ingots can be found in 7.3% of ruined portal chests in stacks of 2–8; in 26.5% of shipwreck treasure chests in stacks of 1–5; in 51.0% of jungle temple chests, 18.0% of desert temple chests, and 52.3% of End city chests, all in stacks of 2–7; in 11.2% of bastion remnant bridge chests in stacks of 4–9; in 12.0% of stronghold altar chests, 9.9% of village toolsmith chests, 18.6% of stronghold storeroom chests, 25.6% of village weaponsmith chests, 49.0% of nether fortress chests, and 14.5% of chest minecarts in Mineshafts, all in stacks of 1–3; in 25.4% of village temple chests, 9.6% of dungeon chests, 9.6% of woodland mansion chests, and 88.0% of buried treasure chests, all in stacks of 1–4; in 33.7% of bastion remnant treasure chests in stacks of 3–9; and in 19.0% of bastion remnant chests in stacks of 1–6.
Bedrock Editionthey can be found in 7.3% of ruined portal chests in stacks of 2–8; in 26.5% of shipwreck treasure chests and 34.3% of buried treasure chests in stacks of 1–5; in 50.9% of jungle temple chests, 18.0% of desert temple chests, and 52.3% of End city chests, all in stacks of 2–7; in 11.2% of bastion remnant bridge chests in stacks of 4–9; in 11.6% of stronghold altar chests, 9.9% of village toolsmith chests, 15.2% of stronghold storeroom chests, 25.6% of village weaponsmith chests, 49.0% of nether fortress chests, and 14.5% of chest minecarts in Mineshafts, all in stacks of 1–3; in 25.4% of village temple chests, 9.6% of dungeon chests, and 9.6% of woodland mansion chests, all in stacks of 1–4; in 33.7% of bastion remnant treasure chests in stacks of 3–9; and in 19.0% of bastion remnant chests in stacks of 1–6.
Gold nuggets can be found in 24.4% of bastion remnant chests and 22.8% of bastion remnant hoglin stable chests in stacks of 2–8, in 36.6% of shipwreck treasure chests in stacks of 1–10, in 20.5% of ruined portal chests in stacks of 4–24, in 47.9% of bastion remnant bridge chests in stacks of 2–6, and in 81.0% of big underwater ruins chests, 55.3% of igloo chests, 11.3% of savanna village house chests, and 12.1% of plains village house chests, all in stacks of 1–3.
Bedrock Editionthey can be found in 24.4% of bastion remnant chests and 22.8% of bastion remnant hoglin stable chests in stacks of 2–8, in 36.6% of shipwreck treasure chests in stacks of 1–10, in 20.5% of ruined portal chests in stacks of 4–24, in 47.9% of bastion remnant bridge chests in stacks of 2–6, and in 81.0% of big underwater ruins chests, 55.3% of igloo chests, 11.3% of savanna village house chests, and 12.1% of plains village house chests, all in stacks of 1–3.
Golden apples can be found in 2.5% of stronghold altar chests, 4.3% of big underwater ruins chests, 20.5% of ruined portal chests, 21.5% of dungeon chests, all igloo chests, 10.1% of bastion remnant chests, 11.4% of bastion remnant hoglin stable chests, 23.5% of desert temple chests, 28.2% of chest minecarts in Mineshafts, and 21.8% of woodland mansion chests, all in stacks of 1.
Bedrock Editionthey can be found in 2.4% of stronghold altar chests, 4.3% of big underwater ruins chests, 20.5% of ruined portal chests, 21.8% of dungeon chests, all igloo chests, 10.1% of bastion remnant chests, 11.4% of bastion remnant hoglin stable chests, 23.5% of desert temple chests, 28.2% of chest minecarts in Mineshafts, and 21.5% of woodland mansion chests, all in stacks of 1.
Golden boots can be found in 9.8% of bastion remnant chests in groups of 1.
Bedrock Editionthey can be found in 9.8% of bastion remnant chests in groups of 1.
Golden carrots can be found in 13.5% of bastion remnant chests in stacks of 6–17, in 11.4% of bastion remnant hoglin stable chests in stacks of 8–17, and in 7.3% of ruined portal chests in stacks of 4–12. Java Edition 1.19[upcoming]they can be found in 54.9% of Ancient City chests in stacks of 1–10.
Bedrock Editionthey can be found in 13.5% of bastion remnant chests in stacks of 6–17, in 11.4% of bastion remnant hoglin stable chests in stacks of 8–17, and in 7.3% of ruined portal chests in stacks of 4–12.
Golden chestplates can be found in 9.8% of bastion remnant chests and 19.0% of nether fortress chests in groups of 1.
Bedrock Editionthey can be found in 9.8% of bastion remnant chests and 19.0% of nether fortress chests in groups of 1.
Golden helmets can be found in 4.3% of big underwater ruins chests, 8.3% of small underwater ruins chests, and 9.8% of bastion remnant chests, all in groups of 1.
Bedrock Editionthey can be found in 4.3% of big underwater ruins chests, 8.3% of small underwater ruins chests, and 9.8% of bastion remnant chests, all in groups of 1.
Golden horse armor can be found in 2.5% of stronghold altar chests, 7.3% of ruined portal chests, 14.7% of dungeon chests, 5.7% of village weaponsmith chests, 4.5% of jungle temple chests, 12.3% of desert temple chests, 29.1% of nether fortress chests, and 4.6% of End city chests, all in groups of 1.
Bedrock Editionthey can be found in 2.4% of stronghold altar chests, 7.3% of ruined portal chests, 14.9% of dungeon chests, 5.7% of village weaponsmith chests, 4.4% of jungle temple chests, 12.3% of desert temple chests, 29.1% of nether fortress chests, and 4.6% of End city chests, all in groups of 1.
Golden leggings can be found in 9.8% of bastion remnant chests in groups of 1.
Bedrock Editionthey can be found in 9.8% of bastion remnant chests in groups of 1.
Golden swords can be found in 9.8% of bastion remnant chests, 11.2% of bastion remnant bridge chests, and 19.0% of nether fortress chests, all in groups of 1.
Bedrock Editionthey can be found in 9.8% of bastion remnant chests, 11.2% of bastion remnant bridge chests, and 19.0% of nether fortress chests, all in groups of 1.
Grass can be found in 45.9% of savanna village house chests in stacks of 1.
Bedrock Editionthey can be found in 45.9% of savanna village house chests in stacks of 1.
Gray wool can be found in 23.3% of village shepherd chests in stacks of 1–3.
Bedrock Editionthey can be found in 23.3% of village shepherd chests in stacks of 1–3.
Green dye can be found in 14.3% of desert village house chests in stacks of 1.
Bedrock Editionthey can be found in 14.3% of desert village house chests in stacks of 1.
Gunpowder can be found in 20.8% of shipwreck supply chests in stacks of 1–5, and in 57.8% of dungeon chests, 59.0% of desert temple chests, and 57.8% of woodland mansion chests, all in stacks of 1–8.
Bedrock Editionthey can be found in 20.8% of shipwreck supply chests in stacks of 1–5, and in 57.8% of dungeon chests, 59.0% of desert temple chests, and 57.8% of woodland mansion chests, all in stacks of 1–8.
Heart of the sea can be found in all buried treasure chests in stacks of 1.
Bedrock Editionthey can be found in all buried treasure chests in stacks of 1.
Iron boots can be found in 12.0% of stronghold altar chests and 25.6% of village weaponsmith chests in groups of 1.
Bedrock Editionthey can be found in 11.6% of stronghold altar chests and 25.6% of village weaponsmith chests in groups of 1.
Iron chestplates can be found in 12.0% of stronghold altar chests and 25.6% of village weaponsmith chests in groups of 1.
Bedrock Editionthey can be found in 11.6% of stronghold altar chests and 25.6% of village weaponsmith chests in groups of 1.
Iron helmets can be found in 12.0% of stronghold altar chests, 31.8% of village armorer chests, and 25.6% of village weaponsmith chests, all in groups of 1.
Bedrock Editionthey can be found in 11.6% of stronghold altar chests, 31.8% of village armorer chests, and 25.6% of village weaponsmith chests, all in groups of 1.
Iron horse armor can be found in 2.5% of stronghold altar chests, 21.5% of dungeon chests, 5.7% of village weaponsmith chests, 4.5% of jungle temple chests, 18.0% of desert temple chests, 19.0% of nether fortress chests, and 4.6% of End city chests, all in groups of 1.
Bedrock Editionthey can be found in 2.4% of stronghold altar chests, 21.8% of dungeon chests, 5.7% of village weaponsmith chests, 4.4% of jungle temple chests, 18.0% of desert temple chests, 19.0% of nether fortress chests, and 4.6% of End city chests, all in groups of 1.
Iron ingots can be found in 18.5% of dungeon chests, 18.5% of woodland mansion chests, and 99.4% of buried treasure chests, all in stacks of 1–4; in 23.0% of stronghold altar chests, 41.2% of village toolsmith chests, 97.4% of shipwreck treasure chests, 34.3% of stronghold storeroom chests, 45.1% of village weaponsmith chests, 37.4% of jungle temple chests, 18.0% of desert temple chests, 19.0% of nether fortress chests, and 27.3% of chest minecarts in Mineshafts, all in stacks of 1–5; in 38.4% of End city chests in stacks of 4–8; in 54.2% of village armorer chests and 30.5% of pillager outpost chests in stacks of 1–3; in 11.2% of bastion remnant bridge chests in stacks of 4–9; in 33.7% of bastion remnant treasure chests in stacks of 3–9; and in 19.0% of bastion remnant chests in stacks of 1–6.
Bedrock Editionthey can be found in 18.5% of dungeon chests and 18.5% of woodland mansion chests in stacks of 1–4; in 22.4% of stronghold altar chests, 41.2% of village toolsmith chests, 97.4% of shipwreck treasure chests, 28.5% of stronghold storeroom chests, 45.1% of village weaponsmith chests, 37.3% of jungle temple chests, 18.0% of desert temple chests, 19.0% of nether fortress chests, and 27.3% of chest minecarts in Mineshafts, all in stacks of 1–5; in 38.4% of End city chests in stacks of 4–8; in 57.2% of buried treasure chests in stacks of 3–5; in 54.2% of village armorer chests and 30.5% of pillager outpost chests in stacks of 1–3; in 11.2% of bastion remnant bridge chests in stacks of 4–9; in 33.7% of bastion remnant treasure chests in stacks of 3–9; and in 19.0% of bastion remnant chests in stacks of 1–6.
Iron leggings can be found in 12.0% of stronghold altar chests and 25.6% of village weaponsmith chests in groups of 1.
Bedrock Editionthey can be found in 11.6% of stronghold altar chests and 25.6% of village weaponsmith chests in groups of 1.
Iron nuggets can be found in 24.4% of bastion remnant chests in stacks of 2–8, in 94.5% of shipwreck treasure chests in stacks of 1–10, in 46.4% of ruined portal chests in stacks of 9–18, in 47.9% of bastion remnant bridge chests in stacks of 2–6, and in 9.7% of taiga village house chests in stacks of 1–5.
Bedrock Editionthey can be found in 24.4% of bastion remnant chests in stacks of 2–8, in 94.5% of shipwreck treasure chests in stacks of 1–10, in 46.4% of ruined portal chests in stacks of 9–18, in 47.9% of bastion remnant bridge chests in stacks of 2–6, and in 10.7% of taiga village house chests in stacks of 1–5.
Iron pickaxes can be found in 12.0% of stronghold altar chests, 41.2% of village toolsmith chests, 4.0% of stronghold storeroom chests, 25.6% of village weaponsmith chests, and 7.0% of chest minecarts in Mineshafts, all in groups of 1.
Bedrock Editionthey can be found in 11.6% of stronghold altar chests, 41.2% of village toolsmith chests, 3.2% of stronghold storeroom chests, 25.6% of village weaponsmith chests, and 7.0% of chest minecarts in Mineshafts, all in groups of 1.
Iron shovels can be found in 41.2% of village toolsmith chests in groups of 1.
Bedrock Editionthey can be found in 41.2% of village toolsmith chests in groups of 1.
Iron swords can be found in 12.0% of stronghold altar chests, 25.6% of village weaponsmith chests, and 75.0% of buried treasure chests, all in groups of 1.
Bedrock Editionthey can be found in 11.6% of stronghold altar chests and 25.6% of village weaponsmith chests in groups of 1.
Jungle logs can be found in 28.0% of bonus chests in stacks of 1–3.
Bedrock Editionthey can be found in 25.0% of bonus chests in stacks of 1–3.
Lapis lazuli can be found in 25.4% of village temple chests in stacks of 1–4, in 61.5% of shipwreck treasure chests in stacks of 1–10, and in 14.5% of chest minecarts in Mineshafts in stacks of 4–9.
Bedrock Editionthey can be found in 25.4% of village temple chests in stacks of 1–4, in 61.5% of shipwreck treasure chests in stacks of 1–10, and in 14.5% of chest minecarts in Mineshafts in stacks of 4–9.
Large ferns can be found in 18.6% of taiga village house chests in stacks of 1.
Bedrock Editionthey can be found in 20.3% of taiga village house chests in stacks of 1.
Leads can be found in 28.3% of woodland mansion chests in stacks of 1. Java Edition 1.19[upcoming]they can be found in 16.6% of Ancient City chests in stacks of 1.
Bedrock Editionthey can be found in 27.9% of woodland mansion chests in stacks of 1, and in 34.3% of buried treasure chests in stacks of 1–3.
Leather boots can be found in 31.8% of village tannery chests in groups of 1.
Bedrock Editionthey can be found in 31.8% of village tannery chests in groups of 1.
Leather can be found in 22.8% of bastion remnant hoglin stable chests, 47.9% of bastion remnant bridge chests, and 17.3% of village tannery chests, all in stacks of 1–3.
Bedrock Editionthey can be found in 22.8% of bastion remnant hoglin stable chests, 47.9% of bastion remnant bridge chests, and 17.3% of village tannery chests, all in stacks of 1–3.
Leather caps can be found in 31.8% of village tannery chests in groups of 1.
Bedrock Editionthey can be found in 31.8% of village tannery chests in groups of 1.
Leather pants can be found in 31.8% of village tannery chests in groups of 1.
Bedrock Editionthey can be found in 31.8% of village tannery chests in groups of 1.
Leather tunics can be found in 4.3% of big underwater ruins chests, 8.3% of small underwater ruins chests, 75.0% of buried treasure chests, and 31.8% of village tannery chests, all in groups of 1.
Bedrock Editionthey can be found in 4.3% of big underwater ruins chests, 8.3% of small underwater ruins chests, and 31.8% of village tannery chests, all in groups of 1.
Light gray wool can be found in 23.3% of village shepherd chests in stacks of 1–3.
Bedrock Editionthey can be found in 23.3% of village shepherd chests in stacks of 1–3.
Light weighted pressure plates can be found in 7.3% of ruined portal chests in stacks of 1.
Bedrock Editionthey can be found in 7.3% of ruined portal chests in stacks of 1.
Lodestones can be found in all bastion remnant bridge chests in stacks of 1.
Bedrock Editionthey can be found in all bastion remnant bridge chests in stacks of 1.
Magma cream can be found in 44.1% of bastion remnant chests in stacks of 2–6, and in 33.7% of bastion remnant treasure chests in stacks of 3–8.
Bedrock Editionthey can be found in 44.1% of bastion remnant chests in stacks of 2–6, and in 33.7% of bastion remnant treasure chests in stacks of 3–8.
Melon seeds can be found in 18.5% of dungeon chests, 27.3% of chest minecarts in Mineshafts, and 18.5% of woodland mansion chests, all in stacks of 2–4.
Bedrock Editionthey can be found in 33.3% of bonus chests in stacks of 1–2, and in 18.5% of dungeon chests, 27.3% of chest minecarts in Mineshafts, and 18.5% of woodland mansion chests, all in stacks of 2–4.
Moss blocks can be found in 42.1% of shipwreck supply chests in stacks of 1–4.
Bedrock Editionthey can be found in 42.1% of shipwreck supply chests in stacks of 1–4.
Music disc (13) can be found in 21.5% of dungeon chests and 21.8% of woodland mansion chests in groups of 1. Java Edition 1.19[upcoming]they can be found in 16.6% of Ancient City chests in groups of 1.
Bedrock Editionthey can be found in 21.8% of dungeon chests and 21.5% of woodland mansion chests in groups of 1.
Music disc (cat) can be found in 21.5% of dungeon chests and 21.8% of woodland mansion chests in groups of 1. Java Edition 1.19[upcoming]they can be found in 16.6% of Ancient City chests in groups of 1.
Bedrock Editionthey can be found in 21.8% of dungeon chests and 21.5% of woodland mansion chests in groups of 1.
Music disc (otherside) can be found in 2.5% of stronghold altar chests and 3.1% of dungeon chests in groups of 1. Java Edition 1.19[upcoming]they can be found in 8.7% of Ancient City chests in groups of 1.
Bedrock Editionthey can be found in 2.4% of stronghold altar chests in groups of 1.
Music disc (pigstep) can be found in 5.6% of bastion remnant chests in groups of 1.
Bedrock Editionthey can be found in 5.6% of bastion remnant chests in groups of 1.
Name tags can be found in 27.9% of dungeon chests, 42.3% of chest minecarts in Mineshafts, and 28.3% of woodland mansion chests, all in stacks of 1. Java Edition 1.19[upcoming]they can be found in 16.6% of Ancient City chests in stacks of 1.
Bedrock Editionthey can be found in 28.3% of dungeon chests, 42.3% of chest minecarts in Mineshafts, 27.9% of woodland mansion chests, and 34.3% of buried treasure chests, all in stacks of 1.
Nether quartz can be found in 33.7% of bastion remnant treasure chests in stacks of 8–23.
Bedrock Editionthey can be found in 33.7% of bastion remnant treasure chests in stacks of 8–23.
Nether wart can be found in 19.0% of nether fortress chests in stacks of 3–7.
Bedrock Editionthey can be found in 19.0% of nether fortress chests in stacks of 3–7.
Netherite ingots can be found in 42.1% of bastion remnant treasure chests in stacks of 1.
Bedrock Editionthey can be found in 42.1% of bastion remnant treasure chests in stacks of 1.
Netherite scraps can be found in 24.4% of bastion remnant treasure chests, 4.5% of bastion remnant chests, and 9.1% of bastion remnant hoglin stable chests, all in stacks of 1.
Bedrock Editionthey can be found in 24.4% of bastion remnant treasure chests, 4.5% of bastion remnant chests, and 9.1% of bastion remnant hoglin stable chests, all in stacks of 1.
Nothing[N] can be found in 66.7% of bonus barrel chests, 18.0% of desert temple chests, and 7.0% of chest minecarts in Mineshafts, all in stacks of 1.
Bedrock Editionthey can be found in 18.0% of desert temple chests and 7.0% of chest minecarts in Mineshafts in stacks of 1.
Oak logs can be found in 28.0% of bonus chests in stacks of 1–3.
Bedrock Editionthey can be found in 25.0% of bonus chests in stacks of 1–3.
Oak planks can be found in 70.5% of bonus chests in stacks of 1–12.
Bedrock Editionthey can be found in all bonus chests in stacks of 1–12.
Oak saplings can be found in 48.2% of plains village house chests in stacks of 1–2, and in 25.6% of village weaponsmith chests in stacks of 3–7.
Bedrock Editionthey can be found in 26.3% of village cartographer chests and 48.2% of plains village house chests in stacks of 1–2, in 14.3% of bonus chests in stacks of 4, and in 25.6% of village weaponsmith chests in stacks of 3–7.
Obsidian can be found in 8.0% of nether fortress chests in stacks of 2–4, in 46.4% of ruined portal chests in stacks of 1–2, in 24.4% of bastion remnant chests in stacks of 4–6, and in 25.6% of village weaponsmith chests in stacks of 3–7.
Bedrock Editionthey can be found in 8.0% of nether fortress chests in stacks of 2–4, in 46.4% of ruined portal chests in stacks of 1–2, in 24.4% of bastion remnant chests in stacks of 4–6, and in 25.6% of village weaponsmith chests in stacks of 3–7.
Paper can be found in 46.4% of shipwreck supply chests in stacks of 1–12, in 89.4% of shipwreck map chests in stacks of 1–10, in 89.2% of stronghold library chests in stacks of 2–7, and in 61.2% of village cartographer chests in stacks of 1–5.
Bedrock Editionthey can be found in 46.4% of shipwreck supply chests in stacks of 1–12, in 89.4% of shipwreck map chests in stacks of 1–10, in 88.3% of stronghold library chests in stacks of 2–7, and in 61.2% of village cartographer chests in stacks of 1–5.
Poisonous potatoes can be found in 42.1% of shipwreck supply chests in stacks of 2–6.
Bedrock Editionthey can be found in 42.1% of shipwreck supply chests in stacks of 2–6.
Poppies can be found in 12.1% of plains village house chests in stacks of 1.
Bedrock Editionthey can be found in 12.1% of plains village house chests in stacks of 1.
Potatoes can be found in 57.5% of pillager outpost chests in stacks of 2–5; in 65.6% of taiga village house chests, 66.3% of snowy village house chests, and 74.2% of plains village house chests, all in stacks of 1–7; and in 42.1% of shipwreck supply chests in stacks of 2–6.
Bedrock Editionthey can be found in 42.1% of shipwreck supply chests in stacks of 2–6; in 50.0% of bonus chests in stacks of 1–2; in 69.3% of taiga village house chests, 66.3% of snowy village house chests, and 74.2% of plains village house chests, all in stacks of 1–7; and in 57.5% of pillager outpost chests in stacks of 2–5.
Potion of Water Breathing can be found in all buried treasure chests in stacks of 1.
Bedrock Editionthey can be found in 46.9% of buried treasure chests in stacks of 1.
Powered rail can be found in 27.1% of chest minecarts in Mineshafts in stacks of 1–4.
Bedrock Editionthey can be found in 27.1% of chest minecarts in Mineshafts in stacks of 1–4.
Prismarine crystals can be found in 59.9% of buried treasure chests in stacks of 1–5.
Bedrock Editionthey can be found in 18.9% of buried treasure chests in stacks of 1–5.
Pumpkin pie can be found in 9.7% of taiga village house chests in stacks of 1.
Bedrock Editionthey can be found in 10.7% of taiga village house chests in stacks of 1.
Pumpkin seeds can be found in 40.6% of taiga village house chests in stacks of 1–5, and in 18.5% of dungeon chests, 27.3% of chest minecarts in Mineshafts, and 18.5% of woodland mansion chests, all in stacks of 2–4.
Bedrock Editionthey can be found in 18.5% of dungeon chests, 27.3% of chest minecarts in Mineshafts, and 18.5% of woodland mansion chests, all in stacks of 2–4; in 43.7% of taiga village house chests in stacks of 1–5; and in 33.3% of bonus chests in stacks of 1–2.
Pumpkins can be found in 14.4% of shipwreck supply chests in stacks of 1–3.
Bedrock Editionthey can be found in 14.4% of shipwreck supply chests in stacks of 1–3.
Rails can be found in 78.4% of chest minecarts in Mineshafts in stacks of 4–8.
Bedrock Editionthey can be found in 78.4% of chest minecarts in Mineshafts in stacks of 4–8.
Random lingering potions[D] can be found in 10.9% of bonus barrel chests in stacks of 1.
Random potions[D] can be found in 10.9% of bonus barrel chests in stacks of 1.
Random splash potions[D] can be found in 10.9% of bonus barrel chests in stacks of 1.
Random tipped arrows[D] can be found in 10.9% of bonus barrel chests in stacks of 1–20.
Raw beef can be found in 48.6% of village butcher chests in stacks of 1–3.
Bedrock Editionthey can be found in 48.6% of village butcher chests in stacks of 1–3.
Raw cod can be found in 43.0% of village fisherman chests in stacks of 1–3.
Raw mutton can be found in 48.6% of village butcher chests in stacks of 1–3.
Bedrock Editionthey can be found in 48.6% of village butcher chests in stacks of 1–3.
Raw porkchops can be found in 48.6% of village butcher chests in stacks of 1–3, and in 22.8% of bastion remnant hoglin stable chests in stacks of 2–5.
Bedrock Editionthey can be found in 48.6% of village butcher chests in stacks of 1–3, and in 22.8% of bastion remnant hoglin stable chests in stacks of 2–5.
Raw salmon can be found in 24.2% of village fisherman chests in stacks of 1–3, and in 61.5% of bonus chests in stacks of 1–2.
Bedrock Editionthey can be found in all bonus chests in stacks of 1–2.
Red keys can be found in 20.8% of bonus barrel chests in stacks of 1.
Redstone dust can be found in 44.8% of village temple chests, 26.6% of dungeon chests, and 26.6% of woodland mansion chests, all in stacks of 1–4; and in 12.0% of stronghold altar chests, 18.6% of stronghold storeroom chests, and 14.5% of chest minecarts in Mineshafts, all in stacks of 4–9.
Bedrock Editionthey can be found in 44.8% of village temple chests, 26.6% of dungeon chests, and 26.6% of woodland mansion chests, all in stacks of 1–4; and in 11.6% of stronghold altar chests, 15.2% of stronghold storeroom chests, and 14.5% of chest minecarts in Mineshafts, all in stacks of 4–9.
Rotten flesh can be found in 59.6% of small underwater ruins chests and 55.3% of igloo chests in stacks of 1; in 89.3% of village temple chests in stacks of 1–4; in 57.8% of dungeon chests, 59.0% of desert temple chests, and 57.8% of woodland mansion chests, all in stacks of 1–8; in 32.2% of shipwreck supply chests in stacks of 5–24; and in 53.4% of jungle temple chests and 28.7% of desert temple chests in stacks of 3–7.
Bedrock Editionthey can be found in 59.6% of small underwater ruins chests and 55.3% of igloo chests in stacks of 1; in 89.3% of village temple chests in stacks of 1–4; in 57.8% of dungeon chests, 59.0% of desert temple chests, and 57.8% of woodland mansion chests, all in stacks of 1–8; in 32.2% of shipwreck supply chests in stacks of 5–24; and in 53.3% of jungle temple chests and 28.7% of desert temple chests in stacks of 3–7.
Saddles can be found in 2.5% of stronghold altar chests, 27.9% of dungeon chests, 13.6% of bastion remnant hoglin stable chests, 11.3% of savanna village house chests, 16.2% of village weaponsmith chests, 12.9% of jungle temple chests, 23.5% of desert temple chests, 35.3% of nether fortress chests, 13.3% of End city chests, and 17.3% of village tannery chests, all in groups of 1. Java Edition 1.19[upcoming]they can be found in 16.6% of Ancient City chests in groups of 1.
Bedrock Editionthey can be found in 2.4% of stronghold altar chests, 28.3% of dungeon chests, 13.6% of bastion remnant hoglin stable chests, 11.3% of savanna village house chests, 16.2% of village weaponsmith chests, 12.8% of jungle temple chests, 23.5% of desert temple chests, 35.3% of nether fortress chests, 13.3% of End city chests, and 17.3% of village tannery chests, all in groups of 1.
Sand can be found in 59.0% of desert temple chests in stacks of 1–8.
Bedrock Editionthey can be found in 59.0% of desert temple chests in stacks of 1–8.
Shears can be found in 12.3% of village shepherd chests in groups of 1.
Bedrock Editionthey can be found in 12.3% of village shepherd chests in groups of 1.
Smooth stone can be found in 20.8% of village mason chests in stacks of 1.
Bedrock Editionthey can be found in 20.8% of village mason chests in stacks of 1.
Snout banner patterns can be found in 10.1% of bastion remnant chests in groups of 1.
Bedrock Editionthey can be found in 10.1% of bastion remnant chests in groups of 1.
Snow blocks can be found in 34.5% of snowy village house chests in stacks of 1.
Bedrock Editionthey can be found in 34.5% of snowy village house chests in stacks of 1.
Snowballs can be found in 66.3% of snowy village house chests in stacks of 1–7. Java Edition 1.19[upcoming]they can be found in 97.0% of Ancient City chests in stacks of 2–6.
Bedrock Editionthey can be found in 66.3% of snowy village house chests in stacks of 1–7.
Soul sands can be found in 22.8% of bastion remnant hoglin stable chests in stacks of 2–7.
Bedrock Editionthey can be found in 22.8% of bastion remnant hoglin stable chests in stacks of 2–7.
Spectral arrows can be found in 11.2% of bastion remnant bridge chests in stacks of 10–28, in 11.2% of bastion remnant chests in stacks of 10–22, and in 33.7% of bastion remnant treasure chests in stacks of 12–25.
Spider eyes can be found in 28.7% of desert temple chests in stacks of 1–3.
Bedrock Editionthey can be found in 28.7% of desert temple chests in stacks of 1–3.
Spruce logs can be found in 28.0% of bonus chests in stacks of 1–3, and in 65.6% of taiga village house chests in stacks of 1–5.
Bedrock Editionthey can be found in 25.0% of bonus chests in stacks of 1–3, and in 69.3% of taiga village house chests in stacks of 1–5.
Spruce saplings can be found in 40.6% of taiga village house chests in stacks of 1–5.
Bedrock Editionthey can be found in 14.3% of bonus chests in stacks of 4, and in 43.7% of taiga village house chests in stacks of 1–5.
Spruce signs can be found in 9.7% of taiga village house chests in stacks of 1.
Sticks can be found in 90.0% of village toolsmith chests and 55.8% of village fletcher chests in stacks of 1–3, in 26.3% of village cartographer chests in stacks of 1–2, and in 70.5% of bonus chests in stacks of 1–12.
Bedrock Editionthey can be found in 90.0% of village toolsmith chests and 55.8% of village fletcher chests in stacks of 1–3, and in all bonus chests in stacks of 1–12.
Stone axes can be found in 30.2% of small underwater ruins chests, 14.7% of igloo chests, and 25.0% of bonus chests, all in groups of 1.
Bedrock Editionthey can be found in 30.2% of small underwater ruins chests, 14.7% of igloo chests, and 25.0% of bonus chests, all in groups of 1.
Stone bricks can be found in 37.7% of village mason chests in stacks of 1.
Bedrock Editionthey can be found in 37.7% of village mason chests in stacks of 1.
Stone can be found in 37.7% of village mason chests in stacks of 1.
Bedrock Editionthey can be found in 37.7% of village mason chests in stacks of 1.
Stone pickaxes can be found in 25.0% of bonus chests in groups of 1.
Bedrock Editionthey can be found in 25.0% of bonus chests in groups of 1.
String can be found in 47.9% of bastion remnant bridge chests and 39.1% of pillager outpost chests in stacks of 1–6; in 57.8% of dungeon chests, 59.0% of desert temple chests, and 57.8% of woodland mansion chests, all in stacks of 1–8; in 24.4% of bastion remnant chests in stacks of 4–6; and in 22.8% of bastion remnant hoglin stable chests in stacks of 3–8.
Bedrock Editionthey can be found in 47.9% of bastion remnant bridge chests and 39.1% of pillager outpost chests in stacks of 1–6; in 57.8% of dungeon chests, 59.0% of desert temple chests, and 57.8% of woodland mansion chests, all in stacks of 1–8; in 24.4% of bastion remnant chests in stacks of 4–6; and in 22.8% of bastion remnant hoglin stable chests in stacks of 3–8.
Suspicious stew[S] can be found in 54.3% of shipwreck supply chests in stacks of 1.
Bedrock Editionthey can be found in 54.3% of shipwreck supply chests in stacks of 1.
Sweet berries can be found in 40.6% of taiga village house chests in stacks of 1–7.
TNT can be found in 7.5% of shipwreck supply chests and 62.7% of buried treasure chests in stacks of 1–2.
Bedrock Editionthey can be found in 7.5% of shipwreck supply chests and 34.3% of buried treasure chests in stacks of 1–2.
Tall grass can be found in 45.9% of savanna village house chests in stacks of 1.
Bedrock Editionthey can be found in 45.9% of savanna village house chests in stacks of 1.
Torches can be found in 65.7% of chest minecarts in Mineshafts in stacks of 1–16, and in 11.3% of savanna village house chests in stacks of 1–2.
Bedrock Editionthey can be found in 65.7% of chest minecarts in Mineshafts in stacks of 1–16, and in 11.3% of savanna village house chests in stacks of 1–2.
Tripwire hooks can be found in 30.5% of pillager outpost chests in stacks of 1–3.
Bedrock Editionthey can be found in 30.5% of pillager outpost chests in stacks of 1–3.
Water buckets can be found in 24.2% of village fisherman chests in groups of 1–3.
Wheat can be found in 34.1% of dungeon chests and 34.1% of woodland mansion chests in stacks of 1–4; in 80.6% of desert village house chests in stacks of 1–7; in 81.0% of big underwater ruins chests, 84.2% of small underwater ruins chests, and 55.3% of igloo chests, all in stacks of 2–3; in 48.6% of village butcher chests in stacks of 1–3; in 72.5% of pillager outpost chests in stacks of 3–5; in 42.1% of shipwreck supply chests in stacks of 8–21; and in 55.8% of village shepherd chests in stacks of 1–6.
Bedrock Editionthey can be found in 34.1% of dungeon chests and 34.1% of woodland mansion chests in stacks of 1–4; in 80.6% of desert village house chests in stacks of 1–7; in 81.0% of big underwater ruins chests, 84.2% of small underwater ruins chests, and 55.3% of igloo chests, all in stacks of 2–3; in 48.6% of village butcher chests in stacks of 1–3; in 72.5% of pillager outpost chests in stacks of 3–5; in 42.1% of shipwreck supply chests in stacks of 8–21; and in 55.8% of village shepherd chests in stacks of 1–6.
Wheat seeds can be found in 57.5% of village fisherman chests in stacks of 1–3, and in 71.7% of savanna village house chests in stacks of 1–5.
Bedrock Editionthey can be found in 71.7% of savanna village house chests in stacks of 1–5.
White wool can be found in 55.8% of village shepherd chests in stacks of 1–8.
Bedrock Editionthey can be found in 55.8% of village shepherd chests in stacks of 1–8.
Wooden axes can be found in 75.0% of bonus chests in groups of 1.
Bedrock Editionthey can be found in 75.0% of bonus chests in groups of 1.
Wooden pickaxes can be found in 75.0% of bonus chests in groups of 1.
Bedrock Editionthey can be found in 75.0% of bonus chests in groups of 1.
Yellow dye can be found in 20.8% of village mason chests in stacks of 1.
Bedrock Editionthey can be found in 20.8% of village mason chests in stacks of 1.
Yellow keys can be found in 8.3% of bonus barrel chests in stacks of 1.
Bedrock Edition 1.18.30 (Vanilla Experiments)[upcoming]copper horns can be found in 75.0% of pillager outpost chests in stacks of 1.
Bedrock Edition 1.18.30 (Vanilla Experiments)[upcoming]goat horns can be found in 75.0% of pillager outpost chests in stacks of 1.
Bedrock Editionbirch saplings can be found in 14.3% of bonus chests in stacks of 4.
Bedrock Editionbook and quill can be found in 18.9% of buried treasure chests in stacks of 1–2.
Bedrock Editionbrown mushrooms can be found in all bonus chests in stacks of 1–2.
Bedrock Editioncake can be found in 4.1% of buried treasure chests in stacks of 1.
Bedrock Editionchainmail boots can be found in 57.2% of buried treasure chests in groups of 1.
Bedrock Editionchainmail helmets can be found in 57.2% of buried treasure chests in groups of 1.
Bedrock Editionchainmail leggings can be found in 57.2% of buried treasure chests in groups of 1.
Bedrock Editioncocoa beans can be found in 40.0% of bonus chests in stacks of 1–2.
Bedrock Editiondark oak saplings can be found in 14.3% of bonus chests in stacks of 4.
Bedrock Editionink sacs can be found in 40.0% of stronghold storeroom chests in stacks of 1–3.
Bedrock Editionjungle saplings can be found in 28.6% of bonus chests in stacks of 4.
Bedrock Editionmaps[P] can be found in 7.7% of shipwreck map chests and 10.5% of stronghold library chests in stacks of 1, and in 46.2% of village cartographer chests in stacks of 1–3.
Bedrock Editionmusic disc (mellohi) can be found in 18.9% of buried treasure chests in groups of 1.
Bedrock Editionmusic disc (wait) can be found in 18.9% of buried treasure chests in groups of 1.
Bedrock Editionoak signs can be found in 10.7% of taiga village house chests in stacks of 1.
Java Edition 1.19[upcoming]Potion of Regeneration can be found in 30.7% of Ancient City chests in stacks of 1–3.
Bedrock Editionthey can be found in 34.3% of buried treasure chests in stacks of 1.
Java Edition 1.19[upcoming]amethyst shards can be found in 24.0% of Ancient City chests in stacks of 1–15.
Java Edition 1.19[upcoming]baked potatos can be found in 54.9% of Ancient City chests in stacks of 1–10.
Java Edition 1.19[upcoming]candles can be found in 24.0% of Ancient City chests in stacks of 1–4.
Java Edition 1.19[upcoming]damaged enchanted diamond hoes[O][C] can be found in 16.6% of Ancient City chests in groups of 1.
Java Edition 1.19[upcoming]enchanted books[T] can be found in 24.0% of Ancient City chests in groups of 1.
Java Edition 1.19[upcoming]enchanted diamond leggings[O] can be found in 16.6% of Ancient City chests in groups of 1.
Java Edition 1.19[upcoming]packed ices can be found in 80.5% of Ancient City chests in stacks of 2–6.
Java Edition 1.19[upcoming]sculk catalysts can be found in 16.6% of Ancient City chests in stacks of 1–2.
Java Edition 1.19[upcoming]sculk sensors can be found in 24.0% of Ancient City chests in stacks of 1–3.
Java Edition 1.19[upcoming]sculks can be found in 24.0% of Ancient City chests in stacks of 4–10.
Java Edition 1.19[upcoming]soul torches can be found in 30.7% of Ancient City chests in stacks of 1–15.
Java Edition 1.19[upcoming]suspicious stew[I] can be found in 54.9% of Ancient City chests in stacks of 2–6.
Notes
- ↑ a b c d e f g h i j k l m n Enchantment probabilities are the same as a level-20 to level-39 enchantment would be on an enchantment table that had no cap at level 30, and that was able to apply treasure enchantments (except Soul Speed), and where the chance of multiple enchantments is not reduced.
- ↑ a b c d e f g h i j k l m n o p q r s t u v w x y z All enchantments are equally probable, including treasure enchantments (except Soul Speed), and any level of the enchantment is equally probable.
- ↑ a b c d e f The item has between 80% and 100% of its total durability.
- ↑ a b c d The item has a random effect applied, including empty (uncraftable), water, mundane, thick, or awkward.
- ↑ The item has between 15% and 95% of its total durability.
- ↑ a b c d e f g h i j k l m n o Enchantment probabilities are the same as a level-5 to level-10 enchantment would be on an enchantment table where the chance of multiple enchantments is not reduced.
- ↑ The item has between 15% and 80% of its total durability.
- ↑ The arrow has an ineffective hidden effect applied, including empty, water, mundane, thick, or awkward. As it is not a tipped arrow, this has no effect except make it unstackable with arrows that do not match the hidden effect. The effect applied can be seen with
/data get entity @s. - ↑ The stew grants one of the following effects: 5-7 seconds of Blindness, or 7-10 seconds of Night Vision.
- ↑ Any level between 1 and 12 of Multishot is equally probable.
- ↑ Enchantment probabilities are the same as a level-30 enchantment on an enchantment table that was able to apply treasure enchantments (except Soul Speed), and where the chance of multiple enchantments is not reduced.
- ↑ a b The item has between 10% and 90% of its total durability.
- ↑ Enchantment probabilities are the same as a level-1 to level-30 enchantment would be on an enchantment table where the chance of multiple enchantments is not reduced.
- ↑ 'Nothing' does not refer to the chance of an empty chest. Instead, it refers to the chance that the random loot generator does not add any loot on a single roll.
- ↑ a b Enchantment probabilities are the same as a level-30 to level-50 enchantment would be on an enchantment table that had no cap at level 30, and that was able to apply treasure enchantments (except Soul Speed), and where the chance of multiple enchantments is not reduced.
- ↑ Named unknown map, but changed to map 0, the scale level is 1:4, Maps from the same stack are stackable, but maps that are not stacked are unstackable despite looking identical.
- ↑ a b Enchanted with a random level of Soul Speed.
- ↑ The item has between 10% and 50% of its total durability.
- ↑ The stew grants one of the following effects: 5–7 seconds of Blindness, 7–10 seconds of Jump Boost, 7-10 seconds of Night Vision, 10–20 seconds of Poison, 0.35-0.5 seconds of Saturation, or 6–8 seconds of Weakness.
- ↑ Enchanted with a random level of Swift Sneak.
local p = {
calc_average_amount_this_item_per_pool = function(
min_stacksize, max_stacksize,
min_pool_rolls, max_pool_rolls,
item_weight, pool_total_item_weight )
local avg_stacksize = ( min_stacksize + max_stacksize ) / 2
local avg_rolls = ( min_pool_rolls + max_pool_rolls ) / 2
return avg_stacksize * avg_rolls * item_weight / pool_total_item_weight
end,
calc_chance_any_of_this_item_per_pool = function(
min_pool_rolls, max_pool_rolls,
item_weight, pool_total_item_weight )
local inverse_result = 0 -- 1 - inverse_result = return value
local inverse_item_weight = pool_total_item_weight - item_weight
-- will be used for the division in the for loop to avoid the slightly
-- less performant math.pow(). The divisor already includes the probability
-- of picking any specific number of rolls.
local cur_dividend = inverse_item_weight
local cur_divisor = pool_total_item_weight * (max_pool_rolls - min_pool_rolls + 1)
for i = 1, max_pool_rolls do
if i >= min_pool_rolls then
inverse_result = inverse_result + cur_dividend / cur_divisor
end
cur_dividend = cur_dividend * inverse_item_weight -- simulate pow
cur_divisor = cur_divisor * pool_total_item_weight -- simulate pow
end
return 1 - inverse_result
end,
java = "''[[Java Edition]]''",
['java-upcoming'] = "[[Java Edition 1.19]]<sup>[''[[Planned versions#Java Edition|upcoming]]'']</sup>",
bedrock = "[[Bedrock Edition]]",
['bedrock-upcoming'] = "[[Bedrock Edition 1.18.30]] ([[Experimental Gameplay|Vanilla Experiments]])<sup>[''[[Planned versions#Bedrock Edition|upcoming]]'']</sup>",
-- These 'items' define which sprite, label and link to use in the table.
-- Properties 'cannot_stack', 'preserve_case', and 'plural' describe how to display the single-item summary in p.base2.
-- Order within this 'items' list doesn't matter.
items = {
["acacia-log"] = { "block", link="Log" },
["acacia-sapling"] = { "block", link="Sapling" },
["activator-rail"] = { "block" },
["amethyst-shard"] = { "item" },
["ancient-debris"] = { "block", plural=false },
["apple"] = { "item" },
["arrow"] = { "item" },
["baked-potato"] = { "item" },
["bamboo"] = { "item", plural=false },
["barrel"] = { "block" },
["basalt"] = { "block", plural=false },
["beetroot"] = { "item" },
["beetroot-seeds"] = { "item", plural=false },
["beetroot-soup"] = { "item", plural=false, cannot_stack=true },
["bell"] = { "block" },
["birch-log"] = { "block", link="Log" },
["birch-sapling"] = { "block", link="Sapling" },
["black-wool"] = { "block", link="Wool", plural=false },
["block-of-gold"] = { "block", plural="blocks of gold" },
["block-of-iron"] = { "block", plural="blocks of iron" },
["blue-ice"] = { "block", plural=false },
["bone"] = { "item" },
["bone-block"] = { "block" },
["book"] = { "item" },
["book-and-quill"] = { "item", plural=false, title="Book and Quill" },
["bottle-o'-enchanting"] = { "item", title="Bottle o' Enchanting", plural="bottles o' enchanting" },
["bread"] = { "item", plural=false },
["brown-mushroom"] = { "block", link="Mushroom" },
["brown-wool"] = { "block", link="Wool", plural=false },
["bucket"] = { "item" },
["buried-treasure-map"] = { "item", link="Explorer Map" },
["cactus"] = { "block", plural=false },
["cake"] = { "block", plural=false },
["candle"] = { "item" },
["carrot"] = { "item" },
["chain"] = { "block" },
["chainmail-boots"] = { "item", link="Armor", cannot_stack=true, plural=false },
["chainmail-chestplate"] = { "item", link="Armor", cannot_stack=true },
["chainmail-helmet"] = { "item", link="Armor", cannot_stack=true },
["chainmail-leggings"] = { "item", link="Armor", cannot_stack=true, plural=false },
["clay-ball"] = { "item", link="Clay Ball", plural=false },
["clock"] = { "item" },
["coal"] = { "item", plural=false },
["cocoa-beans"] = { "item", plural=false },
["cooked-cod"] = { "item", plural=false},
["cooked-porkchop"] = { "item" },
["cooked-salmon"] = { "item", plural=false},
["copper-horn"] = { "item" },
["compass"] = { "item" },
["crimson-fungus"] = { "block", link="Fungus", plural= "crimson fungi" },
["crimson-nylium"] = { "block", link="Nylium", plural=false},
["crimson-roots"] = { "block", link="Roots", plural=false},
["crossbow"] = { "item", cannot_stack=true },
["crying-obsidian"] = { "block" },
["dandelion"] = { "block", link="Flower" },
["dark-oak-log"] = { "block", link="Log" },
["dark-oak-sapling"] = { "block", link="Sapling" },
["dead-bush"] = { "block", link="Dead Bush" },
["detector-rail"] = { "block" },
["diamond"] = { "item" },
["diamond-boots"] = { "item", link="Armor", cannot_stack=true, plural=false },
["diamond-chestplate"] = { "item", link="Armor", cannot_stack=true },
["diamond-helmet"] = { "item", link="Armor", cannot_stack=true },
["diamond-hoe"] = { "item", link="Hoe", cannot_stack=true },
["diamond-horse-armor"] = { "item", link="Horse Armor", cannot_stack=true, plural=false },
["diamond-leggings"] = { "item", link="Armor", cannot_stack=true, plural=false },
["diamond-shovel"] = { "item", link="Shovel", cannot_stack=true },
["diamond-sword"] = { "item", link="Sword", cannot_stack=true },
["disc-13"] = { "item", id='music-disc-13', title="Music Disc (13)", link="Music Disc", cannot_stack=true, plural=false },
["disc-cat"] = { "item", id='music-disc-cat', title="Music Disc (cat)", link="Music Disc", cannot_stack=true, plural=false },
["disc-mellohi"] = { "item", id='music-disc-mellohi', title="Music Disc (mellohi)", link="Music Disc", cannot_stack=true, plural=false },
["disc-pigstep"] = { "item", id='music-disc-pigstep', title = "Music Disc (Pigstep)", link="Music Disc", cannot_stack=true, plural=false },
["disc-wait"] = { "item", id='music-disc-wait', title="Music Disc (wait)", link="Music Disc", cannot_stack=true, plural=false },
["disc-otherside"] = { "item", id='music-disc-otherside',title="Music Disc (otherside)", link="Music Disc", cannot_stack=true, plural=false },
["egg"] = { "item" },
["emerald"] = { "item" },
["empty-map"] = { "item", link="Map", title="Empty Map" },
["enchanted-book"] = { "item", id='enchanted-book', title="Enchanted Book", link="Enchanted Book", cannot_stack=true, note="enchant-with-levels-30" },
["enchanted-book-rnd"] = { "item", id='enchanted-book', title="Enchanted Book", link="Enchanted Book", cannot_stack=true, note="enchant-randomly" },
["enchanted-book-rnd-soul-speed"] = { "item", id='enchanted-book', title="Enchanted Book", link="Enchanted Book", cannot_stack=true, note="enchant-randomly-soul-speed" },
["enchanted-book-rnd-swift-sneak"] = { "item", id='enchanted-book', title="Enchanted Book", link="Enchanted Book", cannot_stack=true, note="enchant-randomly-swift-sneak" },
["enchanted-fishing-rod"] = { "item", id="fishing-rod", link="Fishing Rod", cannot_stack=true, note="enchant-randomly" },
["enchanted-golden-apple"] = { "item" },
["ender-pearl"] = { "item" },
["feather"] = { "item" },
["fern"] = { "block", link="Grass" },
["fire-charge"] = { "item" },
["flint"] = { "item", plural=false },
["flint-and-steel"] = { "item", cannot_stack=true, plural=false },
["flower-pot"] = { "item" },
["furnace"] = { "block" },
["gilded-blackstone"] = { "block", plural=false },
["glistering-melon-slice"] = { "item" },
["glowstone"] = { "block" },
["glow-berries"] = { "item", plural=false },
["goat-horn"] = { "item" },
["golden-apple"] = { "item" },
["golden-boots"] = { "item", link="Armor", cannot_stack=true, plural=false },
["golden-carrot"] = { "item" },
["golden-chestplate"] = { "item", link="Armor", cannot_stack=true },
["golden-helmet"] = { "item", link="Armor", cannot_stack=true },
["golden-hoe"] = { "item", link="Hoe", cannot_stack=true },
["golden-horse-armor"] = { "item", link="Horse Armor", cannot_stack=true, plural=false },
["golden-leggings"] = { "item", link="Armor", cannot_stack=true, plural=false },
["golden-sword"] = { "item", link="Sword", cannot_stack=true },
["gold-ingot"] = { "item" },
["gold-nugget"] = { "item" },
["grass"] = { "block", link="Grass", plural=false },
["gray-wool"] = { "block", link="Wool", plural=false },
["green-dye"] = { "item", link="Dye", plural=false },
["gunpowder"] = { "item", plural=false },
["heart-of-the-sea"] = { "item", plural=false, link="Heart of the Sea" },
["ink-sac"] = { "item" },
["iron-boots"] = { "item", link="Armor", cannot_stack=true, plural=false },
["iron-chestplate"] = { "item", link="Armor", cannot_stack=true },
["iron-helmet"] = { "item", link="Armor", cannot_stack=true },
["iron-horse-armor"] = { "item", link="Horse Armor", cannot_stack=true, plural=false },
["iron-ingot"] = { "item" },
["iron-leggings"] = { "item", link="Armor", cannot_stack=true, plural=false },
["iron-nugget"] = { "item" },
["iron-pickaxe"] = { "item", link="Pickaxe", cannot_stack=true },
["iron-shovel"] = { "item", link="Shovel", cannot_stack=true },
["iron-sword"] = { "item", link="Sword", cannot_stack=true },
["jungle-log"] = { "block", link="Log" },
["jungle-sapling"] = { "block", link="Sapling" },
["lapis-lazuli"] = { "item", plural=false },
["large-fern"] = { "block", link="Grass" },
["lead"] = { "item" },
["leather"] = { "item", plural=false },
["leather-boots"] = { "item", link="Armor", cannot_stack=true, plural=false },
["leather-cap"] = { "item", link="Armor", cannot_stack=true },
["leather-pants"] = { "item", link="Armor", cannot_stack=true, plural=false },
["leather-tunic"] = { "item", link="Armor", cannot_stack=true },
["light-gray-wool"] = { "block", link="Wool", plural=false },
["light-weighted-pressure-plate"] = { "block", link="Pressure Plate" },
["lodestone"] = { "block" },
["melon-seeds"] = { "item", plural=false },
["magma-cream"] = { "item", plural=false },
["magma-block"] = { "block" },
["moss-block"] = { "block" },
["name-tag"] = { "item" },
["netherite-boots"] = { "item", link="Armor", cannot_stack=true, plural=false },
["netherite-chestplate"] = { "item", link="Armor", cannot_stack=true },
["netherite-helmet"] = { "item", link="Armor", cannot_stack=true },
["netherite-ingot"] = { "item" },
["netherite-leggings"] = { "item", link="Armor", cannot_stack=true, plural=false },
["netherite-scrap"] = { "item" },
["nether-wart"] = { "item", plural=false },
["nether-quartz"] = { "item", plural=false },
["oak-log"] = { "block", link="Log" },
["oak-planks"] = { "block", link="Planks", id="oak-wood-planks", plural=false },
["oak-sapling"] = { "block", link="Sapling" },
["oak-sign"] = { "item", link="Sign" },
["obsidian"] = { "block", plural=false },
["packed-ice"] = { "block" },
["paper"] = { "item", plural=false },
["poisonous-potato"] = { "item", plural="poisonous potatoes" },
["polished-basalt"] = { "block", plural=false },
["poppy"] = { "block", link="Flower", plural="poppies" },
["potato"] = { "item", plural="potatoes" },
["potion-of-healing"] = { "item", link="Potion", title="Potion of Healing", plural=false, preserve_case=true },
["potion-of-regeneration"] = { "item", link="Potion", title="Potion of Regeneration", plural=false, preserve_case=true },
["potion-of-water-breathing"] = { "item", link="Potion", title="Potion of Water Breathing", plural=false, preserve_case=true },
["powered-rail"] = { "block", title="Powered Rail", plural=false },
["prismarine-crystals"] = { "item", plural=false },
["pumpkin"] = { "block" },
["pumpkin-pie"] = { "item", plural=false },
["pumpkin-seeds"] = { "item", plural=false },
["rail"] = { "block", title="Rails", plural=false },
["raw-beef"] = { "item", link="Raw Beef", plural=false },
["raw-cod"] = { "item", link="Raw Cod", plural=false },
["raw-mutton"] = { "item", link="Raw Mutton", plural=false },
["raw-porkchop"] = { "item", link="Raw Porkchop" },
["raw-salmon"] = { "item", link="Raw Salmon", plural=false },
["redstone"] = { "item", id="redstone-dust", title="Redstone Dust", plural=false },
["rotten-flesh"] = { "item", plural=false },
["saddle"] = { "item", cannot_stack=true },
["sand"] = { "block", plural=false },
["sculk"] = { "block" },
["sculk-catalyst"] = { "block" },
["sculk-sensor"] = { "block" },
["shears"] = { "item", plural=false, cannot_stack=true },
["smooth-stone"] = { "block", plural=false },
["snowball"] = { "item", link="Snowball" },
["snow-block"] = { "block", link="Snow Block" },
["snout-banner-pattern"] = { "item", id="banner-pattern", link="Banner Pattern", cannot_stack=true },
["soul-sand"] = { "block" },
["soul-torch"] = { "block", link="Torch" },
["spectral-arrow"] = { "item" },
["spider-eye"] = { "item" },
["spruce-log"] = { "block", link="Log" },
["spruce-sapling"] = { "block", link="Sapling" },
["spruce-sign"] = { "item", link="Sign" },
["stick"] = { "item" },
["stone"] = { "block", plural=false },
["stone-axe"] = { "item", link="Axe", cannot_stack=true },
["stone-bricks"] = { "block", plural=false },
["stone-pickaxe"] = { "item", link="Pickaxe", cannot_stack=true },
["string"] = { "item", plural=false },
["suspicious-stew"] = { "item", plural=false, note="suspicious-stew" },
["suspicious-stew-2"] = { "item", plural=false, note="suspicious-stew-2", id="suspicious-stew", link="Suspicious Stew", title="Suspicious Stew" },
["sweet-berries"] = { "item", plural=false },
["tall-grass"] = { "block", plural=false, link="Grass" },
["tnt"] = { "block", title="TNT", plural=false, preserve_case=true },
["torch"] = { "block" },
["tripwire-hook"] = { "block" },
["water-bucket"] = { "item", cannot_stack=true },
["wheat"] = { "item", plural=false },
["wheat-seeds"] = { "item", plural=false },
["white-wool"] = { "block", link="Wool", plural=false },
["wooden-axe"] = { "item", link="Axe", cannot_stack=true },
["wooden-hoe"] = { "item", link="Hoe", cannot_stack=true },
["wooden-pickaxe"] = { "item", link="Pickaxe", cannot_stack=true },
["yellow-dye"] = { "item", link="Dye", plural=false },
["map"] = { "item", link="Map", note="map" },
["damaged-random-enchanted-netherite-axe"] = { "item", id="netherite-axe", title="Damaged Enchanted Netherite Axe", link="Axe", note="enchant-randomly", note1="damaged-0.15-0.85", cannot_stack=true },
["damaged-netherite-boots"] = { "item", id="netherite-boots", link="Armor", note="damaged-0.2-0.65", cannot_stack=true, plural=false},
["damaged-level-enchanted-netherite-boots"] = { "item", id="netherite-boots", title="Damaged Enchanted Netherite Boots", link="Armor", note="enchant-with-levels-5-20", note1="damaged-0.2-0.65", cannot_stack=true, plural=false },
["damaged-random-enchanted-netherite-boots"] = { "item", id="netherite-boots", title="Damaged Enchanted Netherite Boots", link="Armor", note="enchant-randomly", note1="damaged-0.2-0.65", cannot_stack=true, plural=false },
["damaged-netherite-chestplate"] = { "item", id="netherite-chestplate", link="Armor", note="damaged-0.2-0.65", cannot_stack=true},
["damaged-level-enchanted-netherite-chestplate"] = { "item", id="netherite-chestplate", title="Damaged Enchanted Netherite Chestplate", link="Armor", note="enchant-with-levels-5-20", note1="damaged-0.2-0.65", cannot_stack=true },
["damaged-random-enchanted-netherite-chestplate"] = { "item", id="netherite-chestplate", title="Damaged Enchanted Netherite Chestplate", link="Armor", note="enchant-randomly", note1="damaged-0.2-0.65", cannot_stack=true },
["damaged-netherite-helmet"] = { "item", id="netherite-helmet", link="Armor", note="damaged-0.2-0.65", cannot_stack=true},
["damaged-random-enchanted-netherite-hoe"] = { "item", id="netherite-hoe", title="Damaged Enchanted Netherite Hoe", link="Hoe", note="enchant-randomly", note1="damaged-0.1-0.95", cannot_stack=true },
["damaged-level-enchanted-netherite-helmet"] = { "item", id="netherite-helmet", title="Damaged Enchanted Netherite Helmet", link="Armor", note="enchant-with-levels-5-20", note1="damaged-0.2-0.65", cannot_stack=true },
["damaged-random-enchanted-netherite-helmet"] = { "item", id="netherite-helmet", title="Damaged Enchanted Netherite Helmet", link="Armor", note="enchant-randomly", note1="damaged-0.2-0.65", cannot_stack=true },
["damaged-netherite-leggings"] = { "item", id="netherite-leggings", link="Armor", note="damaged-0.2-0.65", cannot_stack=true, plural=false},
["damaged-level-enchanted-netherite-leggings"] = { "item", id="netherite-leggings", title="Damaged Enchanted Netherite Leggings", link="Armor", note="enchant-with-levels-5-20", note1="damaged-0.2-0.65", cannot_stack=true, plural=false },
["damaged-random-enchanted-netherite-leggings"] = { "item", id="netherite-leggings", title="Damaged Enchanted Netherite Leggings", link="Armor", note="enchant-randomly", note1="damaged-0.2-0.65", cannot_stack=true, plural=false },
["damaged-random-enchanted-netherite-pickaxe"] = { "item", id="netherite-pickaxe", title="Damaged Enchanted Netherite Pickaxe", link="Pickaxe", note="enchant-randomly", note1="damaged-0.1-0.95", cannot_stack=true },
["damaged-random-enchanted-netherite-shovel"] = { "item", id="netherite-shovel", title="Damaged Enchanted Netherite Shovel", link="Shovel", note="enchant-randomly", note1="damaged-0.15-0.45", cannot_stack=true},
["damaged-netherite-sword"] = { "item", id="netherite-sword", link="Sword", note="damaged-0.2-0.65", cannot_stack=true},
["damaged-level-enchanted-netherite-sword"] = { "item", id="netherite-sword", title="Damaged Enchanted Netherite Sword", link="Sword", note="enchant-with-levels-5-20", note1="damaged-0.2-0.65", cannot_stack=true },
["damaged-random-enchanted-netherite-sword"] = { "item", id="netherite-sword", title="Damaged Enchanted Netherite Sword", link="Sword", note="enchant-randomly", note1="damaged-0.2-0.65", cannot_stack=true },
["damaged-diamond-boots"] = { "item", id="diamond-boots", link="Armor", note="damaged-0.2-0.65", cannot_stack=true, plural=false},
["level-enchanted-diamond-boots"] = { "item", id="diamond-boots", title="Enchanted Diamond Boots", link="Armor", note="enchant-with-levels-20-39", cannot_stack=true, plural=false },
["damaged-random-enchanted-diamond-boots"] = { "item", id="diamond-boots", title="Damaged Enchanted Diamond Boots", link="Armor", note="enchant-randomly", note1="damaged-0.2-0.65", cannot_stack=true, plural=false },
["damaged-random-enchanted-diamond-boots-2"] = { "item", id="diamond-boots", title="Damaged Enchanted Diamond Boots", link="Armor", note="enchant-randomly", note1="damaged-0.8-1.0", cannot_stack=true, plural=false },
["damaged-diamond-chestplate"] = { "item", id="diamond-chestplate", link="Armor", note="damaged-0.2-0.65", cannot_stack=true},
["level-enchanted-diamond-chestplate"] = { "item", id="diamond-chestplate", title="Enchanted Diamond Chestplate", link="Armor", note="enchant-with-levels-20-39", cannot_stack=true },
["damaged-random-enchanted-diamond-chestplate"] = { "item", id="diamond-chestplate", title="Damaged Enchanted Diamond Chestplate", link="Armor", note="enchant-randomly", note1="damaged-0.2-0.65", cannot_stack=true },
["damaged-random-enchanted-diamond-chestplate-2"] = { "item", id="diamond-chestplate", title="Damaged Enchanted Diamond Chestplate", link="Armor", note="enchant-randomly", note1="damaged-0.8-1.0", cannot_stack=true },
["damaged-diamond-helmet"] = { "item", id="diamond-helmet", link="Armor", note="damaged-0.2-0.65", cannot_stack=true},
["level-enchanted-diamond-helmet"] = { "item", id="diamond-helmet", title="Enchanted Diamond Helmet", link="Armor", note="enchant-with-levels-20-39", cannot_stack=true },
["damaged-random-enchanted-diamond-helmet"] = { "item", id="diamond-helmet", title="Damaged Enchanted Diamond Helmet", link="Armor", note="enchant-randomly", note1="damaged-0.2-0.65", cannot_stack=true },
["damaged-random-enchanted-diamond-helmet-2"] = { "item", id="diamond-helmet", title="Damaged Enchanted Diamond Helmet", link="Armor", note="enchant-randomly", note1="damaged-0.8-1.0", cannot_stack=true },
["damaged-diamond-leggings"] = { "item", id="diamond-leggings", link="Armor", note="damaged-0.2-0.65", cannot_stack=true, plural=false},
["level-enchanted-diamond-leggings"] = { "item", id="diamond-leggings", title="Enchanted Diamond Leggings", link="Armor", note="enchant-with-levels-20-39", cannot_stack=true, plural=false },
["damaged-random-enchanted-diamond-leggings"] = { "item", id="diamond-leggings", title="Damaged Enchanted Diamond Leggings", link="Armor", note="enchant-randomly", note1="damaged-0.2-0.65", cannot_stack=true, plural=false },
["damaged-random-enchanted-diamond-leggings-2"] = { "item", id="diamond-leggings", title="Damaged Enchanted Diamond Leggings", link="Armor", note="enchant-randomly", note1="damaged-0.8-1.0", cannot_stack=true, plural=false },
["level-enchanted-diamond-pickaxe"] = { "item", id="diamond-pickaxe", title="Enchanted Diamond Pickaxe", link="Pickaxe", note="enchant-with-levels-20-39", cannot_stack=true },
["random-enchanted-diamond-pickaxe"] = { "item", id="diamond-pickaxe", title="Enchanted Diamond Pickaxe", link="Pickaxe", note="enchant-randomly", cannot_stack=true, },
["damaged-random-enchanted-diamond-pickaxe"] = { "item", id="diamond-pickaxe", title="Enchanted Diamond Pickaxe", link="Pickaxe", note="enchant-randomly", note1="damaged-0.15-0.95", cannot_stack=true },
["level-enchanted-diamond-shovel"] = { "item", id="diamond-shovel", title="Enchanted Diamond Shovel", link="Shovel", note="enchant-with-levels-20-39", cannot_stack=true },
["damaged-random-enchanted-diamond-shovel"] = { "item", id="diamond-shovel", title="Damaged Enchanted Diamond Shovel", link="Shovel", note="enchant-randomly", note1="damaged-0.15-0.45", cannot_stack=true},
["damaged-random-enchanted-diamond-shovel-2"] = { "item", id="diamond-shovel", title="Damaged Enchanted Diamond Shovel", link="Shovel", note="enchant-randomly", note1="damaged-0.15-0.8", cannot_stack=true},
["damaged-diamond-sword"] = { "item", id="diamond-sword", link="Sword", note="damaged-0.2-0.65", cannot_stack=true},
["level-enchanted-diamond-sword"] = { "item", id="diamond-sword", title="Enchanted Diamond Sword", link="Sword", note="enchant-with-levels-20-39", cannot_stack=true },
["damaged-random-enchanted-diamond-sword"] = { "item", id="diamond-sword", title="Damaged Enchanted Diamond Sword", link="Sword", note="enchant-randomly", note1="damaged-0.2-0.65", cannot_stack=true },
["damaged-random-enchanted-diamond-sword-2"] = { "item", id="diamond-sword", title="Damaged Enchanted Diamond Sword", link="Sword", note="enchant-randomly", note1="damaged-0.8-1.0", cannot_stack=true },
["level-enchanted-iron-boots"] = { "item", id="iron-boots", title="Enchanted Iron Boots", link="Armor", note="enchant-with-levels-20-39", cannot_stack=true, plural=false },
["level-enchanted-iron-chestplate"] = { "item", id="iron-chestplate", title="Enchanted Iron Chestplate", link="Armor", note="enchant-with-levels-20-39", cannot_stack=true },
["level-enchanted-iron-helmet"] = { "item", id="iron-helmet", title="Enchanted Iron Helmet", link="Armor", note="enchant-with-levels-20-39", cannot_stack=true },
["level-enchanted-iron-leggings"] = { "item", id="iron-leggings", title="Enchanted Iron Leggings", link="Armor", note="enchant-with-levels-20-39", cannot_stack=true, plural=false },
["level-enchanted-iron-pickaxe"] = { "item", id="iron-pickaxe", title="Enchanted Iron Pickaxe", link="Pickaxe", note="enchant-with-levels-20-39", cannot_stack=true },
["level-enchanted-iron-shovel"] = { "item", id="iron-shovel", title="Enchanted Iron Shovel", link="Shovel", note="enchant-with-levels-20-39", cannot_stack=true },
["level-enchanted-iron-sword"] = { "item", id="iron-sword", title="Enchanted Iron Sword", link="Sword", note="enchant-with-levels-20-39", cannot_stack=true },
["damaged-random-enchanted-iron-sword"] = { "item", id="iron-sword", title="Damaged Enchanted Iron Sword", link="Sword", note="enchant-randomly", note1="damaged-0.1-0.9", cannot_stack=true },
["random-enchanted-golden-axe"] = { "item", id="golden-axe", title="Enchanted Golden Axe", link="Axe", note="enchant-randomly", cannot_stack=true },
["level-enchanted-golden-boots"] = { "item", id="golden-boots", title="Enchanted Golden Boots", link="Armor", note="enchant-with-levels-5-15", cannot_stack=true, plural=false },
["random-enchanted-golden-boots"] = { "item", id="golden-boots", title="Enchanted Golden Boots", link="Armor", note="enchant-randomly", cannot_stack=true, plural=false },
["soul-speed-enchanted-golden-boots"] = { "item", id="golden-boots", title="Enchanted Golden Boots with Soul Speed", link="Armor", note="enchant-randomly-soul-speed", cannot_stack=true, plural=false },
["level-enchanted-golden-chestplate"] = { "item", id="golden-chestplate", title="Enchanted Golden Chestplate", link="Armor", note="enchant-with-levels-5-15", cannot_stack=true },
["random-enchanted-golden-chestplate"] = { "item", id="golden-chestplate", title="Enchanted Golden Chestplate", link="Armor", note="enchant-randomly", cannot_stack=true },
["level-enchanted-golden-helmet"] = { "item", id="golden-helmet", title="Enchanted Golden Helmet", link="Armor", note="enchant-with-levels-20-39", cannot_stack=true },
["random-enchanted-golden-helmet"] = { "item", id="golden-helmet", title="Enchanted Golden Helmet", link="Armor", note="enchant-randomly", cannot_stack=true },
["level-enchanted-golden-hoe"] = { "item", id="golden-hoe", title="Enchanted Golden Hoe", link="Hoe", note="enchant-with-levels-20-39", cannot_stack=true },
["random-enchanted-golden-hoe"] = { "item", id="golden-hoe", title="Enchanted Golden Hoe", link="Hoe", note="enchant-randomly", cannot_stack=true },
["level-enchanted-golden-leggings"] = { "item", id="golden-leggings", title="Enchanted Golden Leggings", link="Armor", note="enchant-with-levels-20-39", cannot_stack=true, plural=false },
["random-enchanted-golden-leggings"] = { "item", id="golden-leggings", title="Enchanted Golden Leggings", link="Armor", note="enchant-randomly", cannot_stack=true, plural=false },
["random-enchanted-golden-pickaxe"] = { "item", id="golden-pickaxe", title="Enchanted Golden Pickaxe", link="Pickaxe", note="enchant-randomly", cannot_stack=true },
["random-enchanted-golden-shovel"] = { "item", id="golden-shovel", title="Enchanted Golden Shovel", link="Shovel", note="enchant-randomly", cannot_stack=true },
["random-enchanted-golden-sword"] = { "item", id="golden-sword", title="Enchanted Golden Sword", link="Sword", note="enchant-randomly", cannot_stack=true },
["random-enchanted-leather-boots"] = { "item", id="leather-boots", title="Enchanted Leather Boots", link="Armor", note="enchant-randomly", cannot_stack=true, plural=false },
["random-enchanted-leather-cap"] = { "item", id="leather-cap", title="Enchanted Leather Cap", link="Armor", note="enchant-randomly", cannot_stack=true },
["random-enchanted-leather-pants"] = { "item", id="leather-pants", title="Enchanted Leather Pants", link="Armor", note="enchant-randomly", cannot_stack=true, plural=false },
["random-enchanted-leather-tunic"] = { "item", id="leather-tunic", title="Enchanted Leather Tunic", link="Armor", note="enchant-randomly", cannot_stack=true },
["damaged-level-enchanted-crossbow"] = { "item", id="crossbow", title="Damaged Enchanted Crossbow", link="Crossbow", note="enchant-with-levels-20-25", note1="damaged-0.05-0.15", cannot_stack=true },
["damaged-random-enchanted-crossbow"] = { "item", id="crossbow", title="Damaged Enchanted Crossbow", link="Crossbow", note="enchant-randomly", note1="damaged-0.1-0.5", cannot_stack=true },
["damaged-random-enchanted-crossbow-2"] = { "item", id="crossbow", title="Damaged Enchanted Crossbow", link="Crossbow", note="enchant-randomly", note1="damaged-0.1-0.9", cannot_stack=true },
["damaged-level-enchanted-diamond-hoe"] = { "item", id="diamond-hoe", title="Damaged Enchanted Diamond Hoe", link="Hoe", note="enchant-with-levels-30-50", note1="damaged-0.8-1.0", cannot_stack=true },
["level-enchanted-diamond-leggings-3"] = { "item", id="diamond-leggings", title="Enchanted Diamond Leggings", link="Armor", note="enchant-with-levels-30-50", cannot_stack=true, plural=false},
["empty"] = { "block", id="air", link='', title='Nothing', plural=false, note="nothing" },
-- Items for bonus-barrel from Java Edition 3D Shareware v1.34
["level-enchanted-bow"] = { "item", id="bow", title="Enchanted Bow", link="Bow", note="enchant-with-levels-1-30-no-treasure", cannot_stack=true },
["random-effect-arrow"] = { "item", id="bow", title="Arrow", link="Arrow", note="random-effect-arrow" },
["random-effect-tipped-arrow"] = { "item", id="tipped-arrow", title="Random Tipped Arrow", link="Arrow", note="random-effect" },
["random-effect-potion"] = { "item", id="potion", title="Random Potion", link="Arrow", note="random-effect" },
["random-effect-splash-potion"] = { "item", id="splash-potion", title="Random Splash Potion", link="Arrow", note="random-effect" },
["random-effect-lingering-potion"] = { "item", id="lingering-potion", title="Random Lingering Potion", link="Arrow", note="random-effect" },
["level-enchanted-leather-tunic"] = { "item", id="leather-tunic", title="Enchanted Leather Tunic", link="Armor", note="enchant-with-levels-5-10-no-treasure", cannot_stack=true },
["level-enchanted-leather-boots"] = { "item", id="leather-boots", title="Enchanted Leather Boots", link="Armor", note="enchant-with-levels-5-10-no-treasure", cannot_stack=true },
["level-enchanted-leather-cap"] = { "item", id="leather-cap", title="Enchanted Leather Cap", link="Armor", note="enchant-with-levels-5-10-no-treasure", cannot_stack=true },
["level-enchanted-leather-pants"] = { "item", id="leather-pants", title="Enchanted Leather Pants", link="Armor", note="enchant-with-levels-5-10-no-treasure", cannot_stack=true },
["level-enchanted-iron-chestplate-2"] = { "item", id="iron-chestplate", title="Enchanted Iron Chestplate", link="Armor", note="enchant-with-levels-5-10-no-treasure", cannot_stack=true },
["level-enchanted-iron-boots-2"] = { "item", id="iron-boots", title="Enchanted Iron Boots", link="Armor", note="enchant-with-levels-5-10-no-treasure", cannot_stack=true },
["level-enchanted-iron-helmet-2"] = { "item", id="iron-helmet", title="Enchanted Iron Helmet", link="Armor", note="enchant-with-levels-5-10-no-treasure", cannot_stack=true },
["level-enchanted-iron-leggings-2"] = { "item", id="iron-leggings", title="Enchanted Iron Leggings", link="Armor", note="enchant-with-levels-5-10-no-treasure", cannot_stack=true },
["level-enchanted-diamond-chestplate-2"] = { "item", id="diamond-chestplate", title="Enchanted Diamond Chestplate", link="Armor", note="enchant-with-levels-5-10-no-treasure", cannot_stack=true },
["level-enchanted-diamond-boots-2"] = { "item", id="diamond-boots", title="Enchanted Diamond Boots", link="Armor", note="enchant-with-levels-5-10-no-treasure", cannot_stack=true },
["level-enchanted-diamond-helmet-2"] = { "item", id="diamond-helmet", title="Enchanted Diamond Helmet", link="Armor", note="enchant-with-levels-5-10-no-treasure", cannot_stack=true },
["level-enchanted-diamond-leggings-2"] = { "item", id="diamond-leggings", title="Enchanted Diamond Leggings", link="Armor", note="enchant-with-levels-5-10-no-treasure", cannot_stack=true },
["level-enchanted-stone-sword"] = { "item", id="stone-sword", title="Enchanted Stone Sword", link="Sword", note="enchant-with-levels-5-10-no-treasure", cannot_stack=true },
["level-enchanted-iron-sword-2"] = { "item", id="iron-sword", title="Enchanted Iron Sword", link="Sword", note="enchant-with-levels-5-10-no-treasure", cannot_stack=true },
["level-enchanted-diamond-sword-2"] = { "item", id="diamond-sword", title="Enchanted Diamond Sword", link="Sword", note="enchant-with-levels-5-10-no-treasure", cannot_stack=true },
["random-enchanted-crossbow"] = { "item", id="crossbow", title="BFC9000", link="Crossbow", note="enchant-randomly-multishot", cannot_stack=true },
["blue-key"] = { "item" },
["yellow-key"] = { "item" },
["red-key"] = { "item" },
},
notes = {
["enchant-randomly"] = "All enchantments are equally probable, ''including'' [[treasure enchantment]]s (except [[Soul Speed]]), and any level of the enchantment is equally probable.",
["enchant-randomly-soul-speed"] = "Enchanted with a random level of [[Soul Speed]].",
["enchant-randomly-swift-sneak"] = "Enchanted with a random level of [[Swift Sneak]].",
["enchant-with-levels-5-15"] = "Enchantment probabilities are the same as a level-5 to level-15 [[enchantment mechanics|enchantment]] would be on an [[enchantment table]] that was able to apply [[treasure enchantment]]s (except [[Soul Speed]]), and where the chance of multiple enchantments is not reduced.",
["enchant-with-levels-5-20"] = "Enchantment probabilities are the same as a level-5 to level-20 [[enchantment mechanics|enchantment]] would be on an [[enchantment table]] that was able to apply [[treasure enchantment]]s (except [[Soul Speed]]), and where the chance of multiple enchantments is not reduced.",
["enchant-with-levels-20-25"] = "Enchantment probabilities are the same as a level-20 to level-25 [[enchantment mechanics|enchantment]] would be on an [[enchantment table]] that was able to apply [[treasure enchantment]]s (except [[Soul Speed]]), and where the chance of multiple enchantments is not reduced.",
["enchant-with-levels-20-25"] = "Enchantment probabilities are the same as a level-20 to level-25 [[enchantment mechanics|enchantment]] would be on an [[enchantment table]] that was able to apply [[treasure enchantment]]s (except [[Soul Speed]]), and where the chance of multiple enchantments is not reduced.",
["enchant-with-levels-20-39"] = "Enchantment probabilities are the same as a level-20 to level-39 [[enchantment mechanics|enchantment]] would be on an [[enchantment table]] that had no cap at level 30, and that was able to apply [[treasure enchantment]]s (except [[Soul Speed]]), and where the chance of multiple enchantments is not reduced.",
["enchant-with-levels-30"] = "Enchantment probabilities are the same as a level-30 enchantment on an [[enchantment table]] that was able to apply [[treasure enchantment]]s (except [[Soul Speed]]), and where the chance of multiple enchantments is not reduced.",
["enchant-with-levels-30-50"] = "Enchantment probabilities are the same as a level-30 to level-50 [[enchantment mechanics|enchantment]] would be on an [[enchantment table]] that had no cap at level 30, and that was able to apply [[treasure enchantment]]s (except [[Soul Speed]]), and where the chance of multiple enchantments is not reduced.",
["damaged-0.05-0.15"] = "The item has between 5% and 15% of its total durability.",
["damaged-0.1-0.5"] = "The item has between 10% and 50% of its total durability.",
["damaged-0.1-0.9"] = "The item has between 10% and 90% of its total durability.",
["damaged-0.1-0.95"] = "The item has between 10% and 95% of its total durability.",
["damaged-0.15-0.45"] = "The item has between 15% and 45% of its total durability.",
["damaged-0.15-0.8"] = "The item has between 15% and 80% of its total durability.",
["damaged-0.15-0.85"] = "The item has between 15% and 85% of its total durability.",
["damaged-0.15-0.95"] = "The item has between 15% and 95% of its total durability.",
["damaged-0.2-0.65"] = "The item has between 20% and 65% of its total durability.",
["damaged-0.8-1.0"] = "The item has between 80% and 100% of its total durability.",
["nothing"] = "'Nothing' does not refer to the chance of an empty chest. Instead, it refers to the chance that the random loot generator does not add any loot ''on a single roll''.",
["suspicious-stew"] = "The stew grants one of the following effects: 5–7 seconds of [[Blindness]], 7–10 seconds of [[Jump Boost]], 7-10 seconds of [[Night Vision]], 10–20 seconds of [[Poison]], 0.35-0.5 seconds of [[Saturation]], or 6–8 seconds of [[Weakness]].",
["suspicious-stew-2"] = "The stew grants one of the following effects: 5-7 seconds of [[Blindness]], or 7-10 seconds of [[Night Vision]].",
["map"] = "Named unknown map, but changed to map 0, the scale level is 1:4, Maps from the same stack are stackable, but maps that are not stacked are unstackable despite looking identical.",
-- Notes for bonus-barrel from Java Edition 3D Shareware v1.34
["enchant-with-levels-5-10-no-treasure"] = "Enchantment probabilities are the same as a level-5 to level-10 [[enchantment mechanics|enchantment]] would be on an [[enchantment table]] where the chance of multiple enchantments is not reduced.",
["enchant-with-levels-10-20-no-treasure"] = "Enchantment probabilities are the same as a level-10 to level-20 [[enchantment mechanics|enchantment]] would be on an [[enchantment table]] where the chance of multiple enchantments is not reduced.",
["enchant-with-levels-1-30-no-treasure"] = "Enchantment probabilities are the same as a level-1 to level-30 [[enchantment mechanics|enchantment]] would be on an [[enchantment table]] where the chance of multiple enchantments is not reduced.",
["random-effect"] = "The item has a random [[effect]] applied, including empty (uncraftable), water, mundane, thick, or awkward.",
["random-effect-arrow"] = "The arrow has an ineffective hidden [[effect]] applied, including empty, water, mundane, thick, or awkward. As it is not a tipped arrow, this has no effect except make it unstackable with arrows that do not match the hidden effect. The effect applied can be seen with {{cmd|data get entity @s}}.",
["enchant-randomly-multishot"] = "Any level between 1 and 12 of [[Multishot]] is equally probable.",
},
-- <ref group='FN' name='enchant-randomly'>
-- NOTE: order here doesn't matter.
-- * in the table, chests are sorted in alphabetical order
-- * in the table, items are sorted by chance, then by avg#, then alphabetically.
-- * If poolsJavaUpcoming is omitted, poolsJava is used. To omit a pool entirely, set it to {}.
-- * If the loot is the same on both editions, use the same loot table twice.
chests = {
["ancient-city"] = { -- ancient_city.json in Java and N/A in Bedrock
header = "[[Ancient City]]",
link = "[[Ancient City]]",
structure = "Ancient City",
container = "",
structID = "ancient",
poolsJava = {},
poolsJavaUpcoming = {
{
rolls = {4,9},
items = {
["enchanted-golden-apple"] = {1,2,1},
["disc-otherside"] = {1,1,1},
["compass"] = {1,1,2},
["sculk-catalyst"] = {1,2,2},
["name-tag"] = {1,1,2},
["damaged-level-enchanted-diamond-hoe"] = {1,1,2},
["lead"] = {1,1,2},
["diamond-horse-armor"] = {1,1,2},
["saddle"] = {1,1,2},
["disc-13"] = {1,1,2},
["disc-cat"] = {1,1,2},
["level-enchanted-diamond-leggings-3"] = {1,1,2},
["enchanted-book-rnd-swift-sneak"] = {1,1,3},
["sculk"] = {4,10,3},
["sculk-sensor"] = {1,3,3},
["candle"] = {1,4,3},
["amethyst-shard"] = {1,15,3},
["bottle-o'-enchanting"] = {1,3,3},
["glow-berries"] = {1,15,3},
["level-enchanted-iron-leggings"] = {1,1,3},
["potion-of-regeneration"] = {1,3,4},
["enchanted-book-rnd"] = {1,1,4},
["book"] = {3,10,4},
["bone"] = {1,15,4},
["soul-torch"] = {1,15,4},
["coal"] = {6,15,6},
}
},
},
poolsBedrock = {},
poolsBedrockUpcoming = {}
},
["ancient-city-ice-box"] = { -- ancient_city_ice_box.json in Java and N/A in Bedrock
header = "[[Ancient City]]",
link = "[[Ancient City]]",
structure = "Ancient City",
container = "Ice box chest",
structID = "ancient",
poolsJava = {},
poolsJavaUpcoming = {
{
rolls = {4,10},
items = {
["suspicious-stew-2"] = {2,6,1},
["golden-carrot"] = {1,10,1},
["baked-potato"] = {1,10,1},
["packed-ice"] = {2,6,2},
["snowball"] = {2,6,4},
}
},
},
poolsBedrock = {},
poolsBedrockUpcoming = {}
},
["shipwreck-map"] = { -- shipwreck_map.json in Java and shipwreck.json in Bedrock
header = "Map",
superheader = "[[Shipwreck]]",
link = "[[shipwreck]] map",
structure = "Shipwreck",
container = "Map chest",
structID = "shipwreck",
poolsJava = {
{
rolls = {1,1},
items = {
["buried-treasure-map"] = {1,1,1},
}
},
{
rolls = {3,3},
items = {
["compass"] = {1,1,1},
["empty-map"] = {1,1,1},
["clock"] = {1,1,1},
["paper"] = {1,10,20},
["feather"] = {1,5,10},
["book"] = {1,5,5},
}
},
},
poolsJavaUpcoming = {},
poolsBedrock = {
{
rolls = {1,1},
items = {
["buried-treasure-map"] = {1,1,1},
}
},
{
rolls = {3,3},
items = {
["compass"] = {1,1,1},
["map"] = {1,1,1},
["clock"] = {1,1,1},
["paper"] = {1,10,20},
["feather"] = {1,5,10},
["book"] = {1,5,5},
}
},
},
poolsBedrockUpcoming = {}
},
["shipwreck-supply"] = { -- shipwreck_supply.json in Java and shipwrecksupply.json in Bedrock
header = "Supply",
superheader = "[[Shipwreck]]",
link = "[[shipwreck]] supply",
structure = "Shipwreck",
container = "Supply chest",
structID = "shipwreck",
poolsJava = {
{
rolls = {3,10},
items = {
["paper"] = {1,12,8},
["potato"] = {2,6,7},
["moss-block"] = {1,4,7},
["poisonous-potato"] = {2,6,7},
["carrot"] = {4,8,7},
["wheat"] = {8,21,7},
["coal"] = {2,8,6},
["rotten-flesh"] = {5,24,5},
["bamboo"] = {1,3,2},
["suspicious-stew"] = {1,1,10},
["pumpkin"] = {1,3,2},
["gunpowder"] = {1,5,3},
["tnt"] = {1,2,1},
["random-enchanted-leather-cap"] = {1,1,3},
["random-enchanted-leather-tunic"] = {1,1,3},
["random-enchanted-leather-pants"] = {1,1,3},
["random-enchanted-leather-boots"] = {1,1,3},
}
},
},
poolsJavaUpcoming = {},
poolsBedrock = {
{
rolls = {3,10},
items = {
["paper"] = {1,12,8},
["potato"] = {2,6,7},
["poisonous-potato"] = {2,6,7},
["moss-block"] = {1,4,7},
["carrot"] = {4,8,7},
["wheat"] = {8,21,7},
["coal"] = {2,8,6},
["rotten-flesh"] = {5,24,5},
["bamboo"] = {1,3,2},
["suspicious-stew"] = {1,1,10},
["pumpkin"] = {1,3,2},
["gunpowder"] = {1,5,3},
["tnt"] = {1,2,1},
["random-enchanted-leather-cap"] = {1,1,3},
["random-enchanted-leather-tunic"] = {1,1,3},
["random-enchanted-leather-pants"] = {1,1,3},
["random-enchanted-leather-boots"] = {1,1,3},
}
},
},
poolsBedrockUpcoming = {}
},
["shipwreck-treasure"] = { -- shipwreck_treasure.json in Java and shipwrecktreasure.json in Bedrock
header = "Treasure",
superheader = "[[Shipwreck]]",
link = "[[shipwreck]] treasure",
structure = "Shipwreck",
container = "Treasure chest",
structID = "shipwreck",
poolsJava = {
{
rolls = {3,6},
items = {
["iron-ingot"] = {1,5,90},
["gold-ingot"] = {1,5,10},
["emerald"] = {1,5,40},
["diamond"] = {1,1,5},
["bottle-o'-enchanting"] = {1,1,5},
}
},
{
rolls = {2,5},
items = {
["iron-nugget"] = {1,10,50},
["gold-nugget"] = {1,10,10},
["lapis-lazuli"] = {1,10,20},
}
},
},
poolsJavaUpcoming = {},
poolsBedrock = {
{
rolls = {3,6},
items = {
["iron-ingot"] = {1,5,90},
["gold-ingot"] = {1,5,10},
["emerald"] = {1,5,40},
["diamond"] = {1,1,5},
["bottle-o'-enchanting"] = {1,1,5},
}
},
{
rolls = {2,5},
items = {
["iron-nugget"] = {1,10,50},
["gold-nugget"] = {1,10,10},
["lapis-lazuli"] = {1,10,20},
}
},
},
poolsBedrockUpcoming = {}
},
["buried-treasure"] = { -- buried_treasure.json in Java and buriedtreasure.json in Bedrock
header = "[[Buried treasure]]",
link = "[[buried treasure]]",
structure = "Buried treasure",
container = "",
structID = "buried-treasure",
poolsJava = {
{
rolls = {1,1},
items = {
["heart-of-the-sea"] = {1,1,1},
}
},
{
rolls = {5,8},
items = {
["iron-ingot"] = {1,4,20},
["gold-ingot"] = {1,4,10},
["tnt"] = {1,2,5},
}
},
{
rolls = {1,4},
items = {
["emerald"] = {4,8,5},
["diamond"] = {1,2,5},
["prismarine-crystals"] = {1,5,5},
}
},
{
rolls = {0,1},
items = {
["leather-tunic"] = {1,1,1},
["iron-sword"] = {1,1,1},
}
},
{
rolls = {2,2},
items = {
["cooked-cod"] = {2,4,1},
["cooked-salmon"] = {2,4,1},
}
},
{
rolls = {0,2},
items = {
["potion-of-water-breathing"] = {1,1,1},
}
},
},
poolsJavaUpcoming = {},
poolsBedrock = {
{
rolls = {1,1},
items = {
["heart-of-the-sea"] = {1,1,1},
}
},
{
rolls = {5,12},
items = {
["prismarine-crystals"] = {1,5,5},
["iron-ingot"] = {3,5,20},
["gold-ingot"] = {1,5,10},
["tnt"] = {1,2,10},
["diamond"] = {1,1,15},
["disc-wait"] = {1,1,5},
["disc-mellohi"] = {1,1,5},
["name-tag"] = {1,1,10},
["chainmail-chestplate"] = {1,1,20},
["chainmail-helmet"] = {1,1,20},
["chainmail-leggings"] = {1,1,20},
["chainmail-boots"] = {1,1,20},
["book-and-quill"] = {1,2,5},
["lead"] = {1,3,10},
["bottle-o'-enchanting"] = {1,1,3},
["potion-of-water-breathing"] = {1,1,15},
["potion-of-regeneration"] = {1,1,10},
["cake"] = {1,1,1},
}
},
},
poolsBedrockUpcoming = {}
},
["underwater-ruin-big"] = { -- underwater_ruin_big.json
header = "Big",
superheader = "[[Underwater ruins]]",
link = "big [[underwater ruins]]",
structure = "Underwater ruins",
container = "Big ruins chest",
structID = "underwater-ruins",
poolsJava = {
{
rolls = {2,8},
items = {
["coal"] = {1,4,10},
["gold-nugget"] = {1,3,10},
["emerald"] = {1,1,1},
["wheat"] = {2,3,10},
}
},
{
rolls = {1,1},
items = {
["golden-apple"] = {1,1,1},
["enchanted-book-rnd"] = {1,1,5},
["leather-tunic"] = {1,1,1},
["golden-helmet"] = {1,1,1},
["enchanted-fishing-rod"] = {1,1,5},
["buried-treasure-map"] = {1,1,10},
}
},
},
poolsJavaUpcoming = {},
poolsBedrock = {
{
rolls = {2,8},
items = {
["coal"] = {1,4,10},
["gold-nugget"] = {1,3,10},
["emerald"] = {1,1,1},
["wheat"] = {2,3,10},
}
},
{
rolls = {1,1},
items = {
["golden-apple"] = {1,1,1},
["enchanted-book-rnd"] = {1,1,5},
["leather-tunic"] = {1,1,1},
["golden-helmet"] = {1,1,1},
["enchanted-fishing-rod"] = {1,1,5},
["buried-treasure-map"] = {1,1,10},
}
},
},
poolsBedrockUpcoming = {}
},
["underwater-ruin-small"] = { -- underwater_ruin_small.json
header = "Small",
superheader = "[[Underwater ruins]]",
link = "small [[underwater ruins]]",
structure = "Underwater ruins",
container = "Small ruins chest",
structID = "underwater-ruins",
poolsJava = {
{
rolls = {2,8},
items = {
["coal"] = {1,4,10},
["stone-axe"] = {1,1,2},
["rotten-flesh"] = {1,1,5},
["emerald"] = {1,1,1},
["wheat"] = {2,3,10},
}
},
{
rolls = {1,1},
items = {
["leather-tunic"] = {1,1,1},
["golden-helmet"] = {1,1,1},
["enchanted-fishing-rod"] = {1,1,5},
["buried-treasure-map"] = {1,1,5},
}
},
},
poolsJavaUpcoming = {},
poolsBedrock = {
{
rolls = {2,8},
items = {
["coal"] = {1,4,10},
["stone-axe"] = {1,1,2},
["rotten-flesh"] = {1,1,5},
["emerald"] = {1,1,1},
["wheat"] = {2,3,10},
}
},
{
rolls = {1,1},
items = {
["leather-tunic"] = {1,1,1},
["golden-helmet"] = {1,1,1},
["enchanted-fishing-rod"] = {1,1,5},
["buried-treasure-map"] = {1,1,5},
}
},
},
poolsBedrockUpcoming = {}
},
["village-armorer"] = { -- village\village_armorer.json
header = "Armorer",
superheader = "[[Village]]",
link = "[[village]] armorer",
structure = "Village",
container = "Armorer's chest",
structID = "village",
poolsJava = {
{
rolls = {1,5},
items = {
["iron-ingot"] = {1,3,2},
["bread"] = {1,4,4},
["iron-helmet"] = {1,1,1},
["emerald"] = {1,1,1}
}
},
},
poolsJavaUpcoming = {},
poolsBedrock = {
{
rolls = {1,5},
items = {
["iron-ingot"] = {1,3,2},
["bread"] = {1,4,4},
["iron-helmet"] = {1,1,1},
["emerald"] = {1,1,1}
}
},
},
poolsBedrockUpcoming = {}
},
["village-butcher"] = { -- village\village_butcher.json
header = "Butcher",
superheader = "[[Village]]",
link = "[[village]] butcher",
structure = "Village",
container = "Butcher's chest",
structID = "village",
poolsJava = {
{
rolls = {1,5},
items = {
["emerald"] = {1,1,1},
["raw-porkchop"] = {1,3,6},
["wheat"] = {1,3,6},
["raw-beef"] = {1,3,6},
["raw-mutton"] = {1,3,6},
["coal"] = {1,3,3}
}
},
},
poolsJavaUpcoming = {},
poolsBedrock = {
{
rolls = {1,5},
items = {
["emerald"] = {1,1,1},
["raw-porkchop"] = {1,3,6},
["wheat"] = {1,3,6},
["raw-beef"] = {1,3,6},
["raw-mutton"] = {1,3,6},
["coal"] = {1,3,3}
}
},
},
poolsBedrockUpcoming = {}
},
["village-cartographer"] = { -- village\village_cartographer.json
header = "Cartographer",
superheader = "[[Village]]",
link = "[[village]] cartographer",
structure = "Village",
container = "Cartographer's chest",
structID = "village",
poolsJava = {
{
rolls = {1,5},
items = {
["empty-map"] = {1,3,10},
["paper"] = {1,5,15},
["compass"] = {1,1,5},
["bread"] = {1,4,15},
["stick"] = {1,2,5}
}
},
},
poolsJavaUpcoming = {},
poolsBedrock = {
{
rolls = {1,5},
items = {
["map"] = {1,3,10},
["paper"] = {1,5,15},
["compass"] = {1,1,5},
["bread"] = {1,4,15},
["oak-sapling"] = {1,2,5}
}
},
},
poolsBedrockUpcoming = {}
},
["village-fisherman"] = { -- village\village_fisher.json, Java-exclusive as of Java 1.14 / Bedrock 1.12
header = "Fisherman",
superheader = "[[Village]]",
link = "[[village]] fisherman",
structure = "Village",
container = "Fisherman's chest",
structID = "village",
poolsJava = {
{
rolls = {1,5},
items = {
["emerald"] = {1,1,1},
["raw-cod"] = {1,3,2},
["raw-salmon"] = {1,3,1},
["water-bucket"] = {1,3,1},
["barrel"] = {1,3,1},
["wheat-seeds"] = {1,3,3},
["coal"] = {1,3,2}
}
},
},
poolsJavaUpcoming = {},
poolsBedrock = {},
poolsBedrockUpcoming = {}
},
["village-fletcher"] = { -- village\village_fletcher.json
header = "Fletcher",
superheader = "[[Village]]",
link = "[[village]] fletcher",
structure = "Village",
container = "Fletcher's chest",
structID = "village",
poolsJava = {
{
rolls = {1,5},
items = {
["emerald"] = {1,1,1},
["arrow"] = {1,3,2},
["feather"] = {1,3,6},
["egg"] = {1,3,2},
["flint"] = {1,3,6},
["stick"] = {1,3,6}
}
},
},
poolsJavaUpcoming = {},
poolsBedrock = {
{
rolls = {1,5},
items = {
["emerald"] = {1,1,1},
["arrow"] = {1,3,2},
["feather"] = {1,3,6},
["egg"] = {1,3,2},
["flint"] = {1,3,6},
["stick"] = {1,3,6}
}
},
},
poolsBedrockUpcoming = {}
},
["village-mason"] = { -- village\village_mason.json
header = "Mason",
superheader = "[[Village]]",
link = "[[village]] mason",
structure = "Village",
container = "Mason's chest",
structID = "village",
poolsJava = {
{
rolls = {1,5},
items = {
["clay-ball"] = {1,3,1},
["flower-pot"] = {1,1,1},
["stone"] = {1,1,2},
["stone-bricks"] = {1,1,2},
["bread"] = {1,4,4},
["yellow-dye"] = {1,1,1},
["smooth-stone"] = {1,1,1},
["emerald"] = {1,1,1}
}
},
},
poolsJavaUpcoming = {},
poolsBedrock = {
{
rolls = {1,5},
items = {
["clay-ball"] = {1,3,1},
["flower-pot"] = {1,1,1},
["stone"] = {1,1,2},
["stone-bricks"] = {1,1,2},
["bread"] = {1,4,4},
["yellow-dye"] = {1,1,1},
["smooth-stone"] = {1,1,1},
["emerald"] = {1,1,1}
}
},
},
poolsBedrockUpcoming = {}
},
["village-shepherd"] = { -- village\village_shepherd.json
header = "Shepherd",
superheader = "[[Village]]",
link = "[[village]] shepherd",
structure = "Village",
container = "Shepherd's chest",
structID = "village",
poolsJava = {
{
rolls = {1,5},
items = {
["white-wool"] = {1,8,6},
["black-wool"] = {1,3,3},
["gray-wool"] = {1,3,2},
["brown-wool"] = {1,3,2},
["light-gray-wool"] = {1,3,2},
["emerald"] = {1,1,1},
["shears"] = {1,1,1},
["wheat"] = {1,6,6}
}
},
},
poolsJavaUpcoming = {},
poolsBedrock = {
{
rolls = {1,5},
items = {
["white-wool"] = {1,8,6},
["black-wool"] = {1,3,3},
["gray-wool"] = {1,3,2},
["brown-wool"] = {1,3,2},
["light-gray-wool"] = {1,3,2},
["emerald"] = {1,1,1},
["shears"] = {1,1,1},
["wheat"] = {1,6,6}
}
},
},
poolsBedrockUpcoming = {}
},
["village-tannery"] = { -- village\village_tannery.json
header = "Tannery",
superheader = "[[Village]]",
link = "[[village]] tannery",
structure = "Village",
container = "Tanner's chest",
structID = "village",
poolsJava = {
{
rolls = {1,5},
items = {
["leather"] = {1,3,1},
["leather-tunic"] = {1,1,2},
["leather-boots"] = {1,1,2},
["leather-cap"] = {1,1,2},
["bread"] = {1,4,5},
["leather-pants"] = {1,1,2},
["saddle"] = {1,1,1},
["emerald"] = {1,4,1}
}
},
},
poolsJavaUpcoming = {},
poolsBedrock = {
{
rolls = {1,5},
items = {
["leather"] = {1,3,1},
["leather-tunic"] = {1,1,2},
["leather-boots"] = {1,1,2},
["leather-cap"] = {1,1,2},
["bread"] = {1,4,5},
["leather-pants"] = {1,1,2},
["saddle"] = {1,1,1},
["emerald"] = {1,4,1}
}
},
},
poolsBedrockUpcoming = {}
},
["village-temple"] = { -- village\village_temple.json
header = "Temple",
superheader = "[[Village]]",
link = "[[village]] temple",
structure = "Village",
container = "Temple chest",
structID = "village",
poolsJava = {
{
rolls = {3,8},
items = {
["redstone"] = {1,4,2},
["bread"] = {1,4,7},
["rotten-flesh"] = {1,4,7},
["lapis-lazuli"] = {1,4,1},
["gold-ingot"] = {1,4,1},
["emerald"] = {1,4,1}
}
},
},
poolsJavaUpcoming = {},
poolsBedrock = {
{
rolls = {3,8},
items = {
["redstone"] = {1,4,2},
["bread"] = {1,4,7},
["rotten-flesh"] = {1,4,7},
["lapis-lazuli"] = {1,4,1},
["gold-ingot"] = {1,4,1},
["emerald"] = {1,4,1}
}
},
},
poolsBedrockUpcoming = {}
},
["village-toolsmith"] = { -- village\village_toolsmith.json
header = "Toolsmith",
superheader = "[[Village]]",
link = "[[village]] toolsmith",
structure = "Village",
container = "Toolsmith's chest",
structID = "village",
poolsJava = {
{
rolls = {3,8},
items = {
["diamond"] = {1,3,1},
["iron-ingot"] = {1,5,5},
["gold-ingot"] = {1,3,1},
["bread"] = {1,3,15},
["iron-pickaxe"] = {1,1,5},
["coal"] = {1,3,1},
["stick"] = {1,3,20},
["iron-shovel"] = {1,1,5}
}
},
},
poolsJavaUpcoming = {},
poolsBedrock = {
{
rolls = {3,8},
items = {
["diamond"] = {1,3,1},
["iron-ingot"] = {1,5,5},
["gold-ingot"] = {1,3,1},
["bread"] = {1,3,15},
["iron-pickaxe"] = {1,1,5},
["coal"] = {1,3,1},
["stick"] = {1,3,20},
["iron-shovel"] = {1,1,5}
}
},
},
poolsBedrockUpcoming = {}
},
["village-weaponsmith"] = { -- village\village_weaponsmith.json
header = "Weaponsmith",
superheader = "[[Village]]",
link = "[[village]] weaponsmith",
structure = "Village",
container = "Weaponsmith's chest",
structID = "village",
poolsJava = {
{
rolls = {3,8},
items = {
["diamond"] = {1,3,3},
["iron-ingot"] = {1,5,10},
["gold-ingot"] = {1,3,5},
["bread"] = {1,3,15},
["apple"] = {1,3,15},
["iron-pickaxe"] = {1,1,5},
["iron-sword"] = {1,1,5},
["iron-chestplate"] = {1,1,5},
["iron-helmet"] = {1,1,5},
["iron-leggings"] = {1,1,5},
["iron-boots"] = {1,1,5},
["obsidian"] = {3,7,5},
["oak-sapling"] = {3,7,5},
["saddle"] = {1,1,3},
["iron-horse-armor"] = {1,1,1},
["golden-horse-armor"] = {1,1,1},
["diamond-horse-armor"] = {1,1,1}
}
},
},
poolsJavaUpcoming = {},
poolsBedrock = {
{
rolls = {3,8},
items = {
["diamond"] = {1,3,3},
["iron-ingot"] = {1,5,10},
["gold-ingot"] = {1,3,5},
["bread"] = {1,3,15},
["apple"] = {1,3,15},
["iron-pickaxe"] = {1,1,5},
["iron-sword"] = {1,1,5},
["iron-chestplate"] = {1,1,5},
["iron-helmet"] = {1,1,5},
["iron-leggings"] = {1,1,5},
["iron-boots"] = {1,1,5},
["obsidian"] = {3,7,5},
["oak-sapling"] = {3,7,5},
["saddle"] = {1,1,3},
["iron-horse-armor"] = {1,1,1},
["golden-horse-armor"] = {1,1,1},
["diamond-horse-armor"] = {1,1,1}
}
},
},
poolsBedrockUpcoming = {}
},
["village-desert-house"] = { -- village\village_desert_house.json
header = "Desert House",
superheader = "[[Village]]",
link = "desert [[village]] house",
structure = "Village",
container = "Desert house chest",
structID = "village",
poolsJava = {
{
rolls = {3,8},
items = {
["clay-ball"] = {1,1,1},
["green-dye"] = {1,1,1},
["cactus"] = {1,4,10},
["wheat"] = {1,7,10},
["bread"] = {1,4,10},
["book"] = {1,1,1},
["dead-bush"] = {1,3,2},
["emerald"] = {1,3,1}
}
},
},
poolsJavaUpcoming = {},
poolsBedrock = {
{
rolls = {3,8},
items = {
["clay-ball"] = {1,1,1},
["green-dye"] = {1,1,1},
["cactus"] = {1,4,10},
["wheat"] = {1,7,10},
["bread"] = {1,4,10},
["book"] = {1,1,1},
["dead-bush"] = {1,3,2},
["emerald"] = {1,3,1}
}
},
},
poolsBedrockUpcoming = {}
},
["village-plains-house"] = { -- village\village_plains_house.json
header = "Plains house",
superheader = "[[Village]]",
link = "plains [[village]] house",
structure = "Village",
container = "Plains house chest",
structID = "village",
poolsJava = {
{
rolls = {3,8},
items = {
["gold-nugget"] = {1,3,1},
["dandelion"] = {1,1,2},
["poppy"] = {1,1,1},
["potato"] = {1,7,10},
["bread"] = {1,4,10},
["apple"] = {1,5,10},
["book"] = {1,1,1},
["feather"] = {1,1,1},
["emerald"] = {1,4,2},
["oak-sapling"] = {1,2,5}
}
},
},
poolsJavaUpcoming = {},
poolsBedrock = {
{
rolls = {3,8},
items = {
["gold-nugget"] = {1,3,1},
["dandelion"] = {1,1,2},
["poppy"] = {1,1,1},
["potato"] = {1,7,10},
["bread"] = {1,4,10},
["apple"] = {1,5,10},
["book"] = {1,1,1},
["feather"] = {1,1,1},
["emerald"] = {1,4,2},
["oak-sapling"] = {1,2,5}
}
},
},
poolsBedrockUpcoming = {}
},
["village-savanna-house"] = { -- village\village_savanna_house.json
header = "Savanna house",
superheader = "[[Village]]",
link = "savanna [[village]] house",
structure = "Village",
container = "Savanna house chest",
structID = "village",
poolsJava = {
{
rolls = {3,8},
items = {
["gold-nugget"] = {1,3,1},
["grass"] = {1,1,5},
["tall-grass"] = {1,1,5},
["bread"] = {1,4,10},
["wheat-seeds"] = {1,5,10},
["emerald"] = {1,4,2},
["acacia-sapling"] = {1,2,10},
["saddle"] = {1,1,1},
["torch"] = {1,2,1},
["bucket"] = {1,1,1}
}
},
},
poolsJavaUpcoming = {},
poolsBedrock = {
{
rolls = {3,8},
items = {
["gold-nugget"] = {1,3,1},
["grass"] = {1,1,5},
["tall-grass"] = {1,1,5},
["bread"] = {1,4,10},
["wheat-seeds"] = {1,5,10},
["emerald"] = {1,4,2},
["acacia-sapling"] = {1,2,10},
["saddle"] = {1,1,1},
["torch"] = {1,2,1},
["bucket"] = {1,1,1}
}
},
},
poolsBedrockUpcoming = {}
},
["village-snowy-house"] = { -- village\village_snowy_house.json
header = "Snowy house",
superheader = "[[Village]]",
link = "snowy [[village]] house",
structure = "Village",
container = "Snowy house chest",
structID = "village",
poolsJava = {
{
rolls = {3,8},
items = {
["blue-ice"] = {1,1,1},
["snow-block"] = {1,1,4},
["potato"] = {1,7,10},
["bread"] = {1,4,10},
["beetroot-seeds"] = {1,5,10},
["beetroot-soup"] = {1,1,1},
["furnace"] = {1,1,1},
["emerald"] = {1,4,1},
["snowball"] = {1,7,10},
["coal"] = {1,4,5}
}
},
},
poolsJavaUpcoming = {},
poolsBedrock = {
{
rolls = {3,8},
items = {
["blue-ice"] = {1,1,1},
["snow-block"] = {1,1,4},
["potato"] = {1,7,10},
["bread"] = {1,4,10},
["beetroot-seeds"] = {1,5,10},
["beetroot-soup"] = {1,1,1},
["furnace"] = {1,1,1},
["emerald"] = {1,4,1},
["snowball"] = {1,7,10},
["coal"] = {1,4,5}
}
},
},
poolsBedrockUpcoming = {}
},
["village-taiga-house"] = { -- village\village_taiga_house.json
header = "Taiga house",
superheader = "[[Village]]",
link = "taiga [[village]] house",
structure = "Village",
container = "Taiga house chest",
structID = "village",
poolsJava = {
{
rolls = {3,8},
items = {
["iron-nugget"] = {1,5,1},
["fern"] = {1,1,2},
["large-fern"] = {1,1,2},
["potato"] = {1,7,10},
["sweet-berries"] = {1,7,5},
["bread"] = {1,4,10},
["pumpkin-seeds"] = {1,5,5},
["pumpkin-pie"] = {1,1,1},
["emerald"] = {1,4,2},
["spruce-sapling"] = {1,5,5},
["spruce-sign"] = {1,1,1},
["spruce-log"] = {1,5,10}
}
},
},
poolsJavaUpcoming = {},
poolsBedrock = {
{
rolls = {3,8},
items = {
["iron-nugget"] = {1,5,1},
["fern"] = {1,1,2},
["large-fern"] = {1,1,2},
["potato"] = {1,7,10},
["bread"] = {1,4,10},
["pumpkin-seeds"] = {1,5,5},
["pumpkin-pie"] = {1,1,1},
["emerald"] = {1,4,2},
["spruce-sapling"] = {1,5,5},
["oak-sign"] = {1,1,1},
["spruce-log"] = {1,5,10}
}
},
},
poolsBedrockUpcoming = {}
},
["stronghold-altar"] = { -- stronghold_corridor.json
header = "Altar",
superheader = "[[Stronghold]]",
link = "[[stronghold]] altar",
structure = "Stronghold",
container = "Altar chest",
structID = "stronghold",
poolsJava = {
{
rolls = {2,3},
items = {
["ender-pearl"] = {1,1,10},
["diamond"] = {1,3,3},
["iron-ingot"] = {1,5,10},
["gold-ingot"] = {1,3,5},
["redstone"] = {4,9,5},
["bread"] = {1,3,15},
["apple"] = {1,3,15},
["iron-pickaxe"] = {1,1,5},
["iron-sword"] = {1,1,5},
["iron-chestplate"] = {1,1,5},
["iron-helmet"] = {1,1,5},
["iron-leggings"] = {1,1,5},
["iron-boots"] = {1,1,5},
["golden-apple"] = {1,1,1},
["saddle"] = {1,1,1},
["iron-horse-armor"] = {1,1,1},
["golden-horse-armor"] = {1,1,1},
["diamond-horse-armor"] = {1,1,1},
["disc-otherside"] = {1,1,1},
["enchanted-book"] = {1,1,1},
}
},
},
poolsJavaUpcoming = {},
poolsBedrock = {
{
rolls = {2,3},
items = {
["ender-pearl"] = {1,1,50},
["emerald"] = {1,3,15},
["diamond"] = {1,3,15},
["iron-ingot"] = {1,5,50},
["gold-ingot"] = {1,3,25},
["redstone"] = {4,9,25},
["bread"] = {1,3,75},
["apple"] = {1,3,75},
["iron-pickaxe"] = {1,1,25},
["iron-sword"] = {1,1,25},
["iron-chestplate"] = {1,1,25},
["iron-helmet"] = {1,1,25},
["iron-leggings"] = {1,1,25},
["iron-boots"] = {1,1,25},
["golden-apple"] = {1,1,5},
["saddle"] = {1,1,5},
["iron-horse-armor"] = {1,1,5},
["golden-horse-armor"] = {1,1,5},
["diamond-horse-armor"] = {1,1,5},
["disc-otherside"] = {1,1,5},
["enchanted-book"] = {1,1,6},
}
},
},
poolsBedrockUpcoming = {}
},
["stronghold-library"] = { -- stronghold_library.json
header = "Library",
superheader = "[[Stronghold]]",
link = "[[stronghold]] library",
structure = "Stronghold",
container = "Library chest",
structID = "stronghold",
poolsJava = {
{
rolls = {2,10},
items = {
["book"] = {1,3,20},
["paper"] = {2,7,20},
["empty-map"] = {1,1,1},
["compass"] = {1,1,1},
["enchanted-book"] = {1,1,10},
}
},
},
poolsJavaUpcoming = {},
poolsBedrock = {
{
rolls = {2,10},
items = {
["book"] = {1,3,100},
["paper"] = {2,7,100},
["map"] = {1,1,5},
["compass"] = {1,1,5},
["enchanted-book"] = {1,1,60},
}
},
},
poolsBedrockUpcoming = {}
},
["stronghold-storeroom"] = { -- stronghold_crossing.json
header = "Storeroom",
superheader = "[[Stronghold]]",
link = "[[stronghold]] storeroom",
structure = "Stronghold",
container = "Storeroom chest",
structID = "stronghold",
poolsJava = {
{
rolls = {1,4},
items = {
["iron-ingot"] = {1,5,10},
["gold-ingot"] = {1,3,5},
["redstone"] = {4,9,5},
["coal"] = {3,8,10},
["bread"] = {1,3,15},
["apple"] = {1,3,15},
["iron-pickaxe"] = {1,1,1},
["enchanted-book"] = {1,1,1},
}
},
},
poolsJavaUpcoming = {},
poolsBedrock = {
{
rolls = {1,4},
items = {
["iron-ingot"] = {1,5,50},
["gold-ingot"] = {1,3,25},
["redstone"] = {4,9,25},
["coal"] = {3,8,50},
["bread"] = {1,3,75},
["apple"] = {1,3,75},
["iron-pickaxe"] = {1,1,5},
["enchanted-book"] = {1,1,6},
["ink-sac"] = {1,3,75},
}
},
},
poolsBedrockUpcoming = {}
},
["bonus"] = { -- spawn_bonus_chest.json
header = "[[Chest#Bonus chest|Bonus]]",
link = "[[Chest#Bonus chest|bonus]]",
structure = "Bonus chest",
container = "",
structID = "day",
poolsJava = {
{
rolls = {1,1},
items = {
["stone-axe"] = {1,1,1},
["wooden-axe"] = {1,1,3},
}
},
{
rolls = {1,1},
items = {
["stone-pickaxe"] = {1,1,1},
["wooden-pickaxe"] = {1,1,3}
}
},
{
rolls = {3,3},
items = {
["apple"] = {1,2,5},
["bread"] = {1,2,3},
["raw-salmon"] = {1,2,3},
}
},
{
rolls = {4,4},
items = {
["stick"] = {1,12,10},
["oak-planks"] = {1,12,10},
["oak-log"] = {1,3,3},
["spruce-log"] = {1,3,3},
["birch-log"] = {1,3,3},
["jungle-log"] = {1,3,3},
["acacia-log"] = {1,3,3},
["dark-oak-log"] = {1,3,3},
}
},
},
poolsJavaUpcoming = {},
poolsBedrock = {
{
rolls = {1,1},
items = {
["stone-axe"] = {1,1,1},
["wooden-axe"] = {1,1,3},
}
},
{
rolls = {1,1},
items = {
["stone-pickaxe"] = {1,1,1},
["wooden-pickaxe"] = {1,1,3}
}
},
{
rolls = {1,1},
items = {
["apple"] = {1,2,1}
}
},
{
rolls = {1,1},
items = {
["bread"] = {1,2,1}
}
},
{
rolls = {1,1},
items = {
["raw-salmon"] = {1,2,1}
}
},
{
rolls = {1,1},
items = {
["stick"] = {1,12,1}
}
},
{
rolls = {1,1},
items = {
["oak-planks"] = {1,12,1}
}
},
{
rolls = {1,1},
items = {
["dark-oak-log"] = {1,3,1},
["acacia-log"] = {1,3,1},
}
},
{
rolls = {1,1},
items = {
["oak-log"] = {1,3,1},
["spruce-log"] = {1,3,1},
["birch-log"] = {1,3,1},
["jungle-log"] = {1,3,1},
}
},
{
rolls = {1,1},
items = {
["potato"] = {1,2,3},
["carrot"] = {1,2,3},
}
},
{
rolls = {1,1},
items = {
["oak-sapling"] = {4,4,2},
["spruce-sapling"] = {4,4,2},
["birch-sapling"] = {4,4,2},
["jungle-sapling"] = {4,4,4},
["dark-oak-sapling"] = {4,4,2},
["acacia-sapling"] = {4,4,2},
}
},
{
rolls = {1,1},
items = {
["melon-seeds"] = {1,2,3},
["pumpkin-seeds"] = {1,2,3},
["beetroot-seeds"] = {1,2,3},
}
},
{
rolls = {1,1},
items = {
["cactus"] = {1,2,3},
["cocoa-beans"] = {1,2,2},
}
},
{
rolls = {1,1},
items = {
["brown-mushroom"] = {1,2,2},
}
},
},
poolsBedrockUpcoming = {}
},
["dungeon"] = { -- simple_dungeon.json
header = "[[Dungeon]]",
link = "[[dungeon]]",
structure = "Dungeon",
container = "",
structID = "Dungeon",
poolsJava = {
{
rolls = {1,3},
items = {
["saddle"] = {1,1,20},
["golden-apple"] = {1,1,15},
["enchanted-golden-apple"] = {1,1,2},
["disc-otherside"] = {1,1,2},
["disc-13"] = {1,1,15},
["disc-cat"] = {1,1,15},
["name-tag"] = {1,1,20},
["golden-horse-armor"] = {1,1,10},
["iron-horse-armor"] = {1,1,15},
["diamond-horse-armor"] = {1,1,5},
["enchanted-book-rnd"] = {1,1,10},
}
},
{
rolls = {1,4},
items = {
["iron-ingot"] = {1,4,10},
["gold-ingot"] = {1,4,5},
["bread"] = {1,1,20},
["wheat"] = {1,4,20},
["bucket"] = {1,1,10},
["redstone"] = {1,4,15},
["coal"] = {1,4,15},
["melon-seeds"] = {2,4,10},
["pumpkin-seeds"] = {2,4,10},
["beetroot-seeds"] = {2,4,10},
}
},
{
rolls = {3,3},
items = {
["bone"] = {1,8,10},
["gunpowder"] = {1,8,10},
["rotten-flesh"] = {1,8,10},
["string"] = {1,8,10},
}
},
},
poolsJavaUpcoming = {},
poolsBedrock = {
{
rolls = {1,3},
items = {
["saddle"] = {1,1,20},
["golden-apple"] = {1,1,15},
["enchanted-golden-apple"] = {1,1,2},
["disc-13"] = {1,1,15},
["disc-cat"] = {1,1,15},
["name-tag"] = {1,1,20},
["golden-horse-armor"] = {1,1,10},
["iron-horse-armor"] = {1,1,15},
["diamond-horse-armor"] = {1,1,5},
["enchanted-book-rnd"] = {1,1,10},
}
},
{
rolls = {1,4},
items = {
["iron-ingot"] = {1,4,10},
["gold-ingot"] = {1,4,5},
["bread"] = {1,1,20},
["wheat"] = {1,4,20},
["bucket"] = {1,1,10},
["redstone"] = {1,4,15},
["coal"] = {1,4,15},
["melon-seeds"] = {2,4,10},
["pumpkin-seeds"] = {2,4,10},
["beetroot-seeds"] = {2,4,10},
}
},
{
rolls = {3,3},
items = {
["bone"] = {1,8,10},
["gunpowder"] = {1,8,10},
["rotten-flesh"] = {1,8,10},
["string"] = {1,8,10},
}
},
},
poolsBedrockUpcoming = {}
},
["mineshaft"] = { -- abandoned_mineshaft.json
chest_type = "minecart with chest",
header = "[[Mineshaft]]",
link = "[[Mineshaft]]s",
structure = "Mineshaft",
container = "",
structID = "abandoned-mineshaft",
poolsJava = {
{
rolls = {1,1},
items = {
["golden-apple"] = {1,1,20},
["enchanted-golden-apple"] = {1,1,1},
["name-tag"] = {1,1,30},
["enchanted-book-rnd"] = {1,1,10},
["iron-pickaxe"] = {1,1,5},
["empty"] = {1,1,5},
}
},
{
rolls = {2,4},
items = {
["iron-ingot"] = {1,5,10},
["gold-ingot"] = {1,3,5},
["redstone"] = {4,9,5},
["lapis-lazuli"] = {4,9,5},
["diamond"] = {1,2,3},
["coal"] = {3,8,10},
["bread"] = {1,3,15},
["glow-berries"] = {3,6,15},
["melon-seeds"] = {2,4,10},
["pumpkin-seeds"] = {2,4,10},
["beetroot-seeds"] = {2,4,10},
}
},
{
rolls = {3,3},
items = {
["rail"] = {4,8,20},
["powered-rail"] = {1,4,5},
["detector-rail"] = {1,4,5},
["activator-rail"] = {1,4,5},
["torch"] = {1,16,15},
}
},
},
poolsJavaUpcoming = {},
poolsBedrock = {
{
rolls = {1,1},
items = {
["golden-apple"] = {1,1,20},
["enchanted-golden-apple"] = {1,1,1},
["name-tag"] = {1,1,30},
["enchanted-book-rnd"] = {1,1,10},
["iron-pickaxe"] = {1,1,5},
["empty"] = {1,1,5},
}
},
{
rolls = {2,4},
items = {
["iron-ingot"] = {1,5,10},
["gold-ingot"] = {1,3,5},
["redstone"] = {4,9,5},
["lapis-lazuli"] = {4,9,5},
["diamond"] = {1,2,3},
["coal"] = {3,8,10},
["bread"] = {1,3,15},
["melon-seeds"] = {2,4,10},
["pumpkin-seeds"] = {2,4,10},
["beetroot-seeds"] = {2,4,10},
["glow-berries"] = {3,6,15},
}
},
{
rolls = {3,3},
items = {
["rail"] = {4,8,20},
["powered-rail"] = {1,4,5},
["detector-rail"] = {1,4,5},
["activator-rail"] = {1,4,5},
["torch"] = {1,16,15},
}
},
},
poolsBedrockUpcoming = {}
},
["nether-fortress"] = { -- nether_bridge.json
header = "[[nether fortress]]",
link = "[[nether fortress]]",
structure = "Nether fortress",
container = "",
structID = "nether-fortress",
poolsJava = {
{
rolls = {2,4},
items = {
["diamond"] = {1,3,5},
["iron-ingot"] = {1,5,5},
["gold-ingot"] = {1,3,15},
["golden-sword"] = {1,1,5},
["golden-chestplate"] = {1,1,5},
["flint-and-steel"] = {1,1,5},
["nether-wart"] = {3,7,5},
["saddle"] = {1,1,10},
["golden-horse-armor"] = {1,1,8},
["iron-horse-armor"] = {1,1,5},
["diamond-horse-armor"] = {1,1,3},
["obsidian"] = {2,4,2},
}
},
},
poolsJavaUpcoming = {},
poolsBedrock = {
{
rolls = {2,4},
items = {
["diamond"] = {1,3,5},
["iron-ingot"] = {1,5,5},
["gold-ingot"] = {1,3,15},
["golden-sword"] = {1,1,5},
["golden-chestplate"] = {1,1,5},
["flint-and-steel"] = {1,1,5},
["nether-wart"] = {3,7,5},
["saddle"] = {1,1,10},
["golden-horse-armor"] = {1,1,8},
["iron-horse-armor"] = {1,1,5},
["diamond-horse-armor"] = {1,1,3},
["obsidian"] = {2,4,2},
}
},
},
poolsBedrockUpcoming = {}
},
["desert-temple"] = { -- desert_pyramid.json
header = "[[Desert temple]]",
link = "[[desert temple]]",
structure = "Desert temple",
container = "",
structID = "desert-temple",
poolsJava = {
{
rolls = {2,4},
items = {
["diamond"] = {1,3,5},
["iron-ingot"] = {1,5,15},
["gold-ingot"] = {2,7,15},
["emerald"] = {1,3,15},
["bone"] = {4,6,25},
["spider-eye"] = {1,3,25},
["rotten-flesh"] = {3,7,25},
["saddle"] = {1,1,20},
["iron-horse-armor"] = {1,1,15},
["golden-horse-armor"] = {1,1,10},
["diamond-horse-armor"] = {1,1,5},
["enchanted-book-rnd"] = {1,1,20},
["golden-apple"] = {1,1,20},
["enchanted-golden-apple"] = {1,1,2},
["empty"] = {1,1,15},
}
},
{
rolls = {4,4},
items = {
["bone"] = {1,8,10},
["gunpowder"] = {1,8,10},
["rotten-flesh"] = {1,8,10},
["string"] = {1,8,10},
["sand"] = {1,8,10},
}
},
},
poolsJavaUpcoming = {},
poolsBedrock = {
{
rolls = {2,4},
items = {
["diamond"] = {1,3,5},
["iron-ingot"] = {1,5,15},
["gold-ingot"] = {2,7,15},
["emerald"] = {1,3,15},
["bone"] = {4,6,25},
["spider-eye"] = {1,3,25},
["rotten-flesh"] = {3,7,25},
["saddle"] = {1,1,20},
["iron-horse-armor"] = {1,1,15},
["golden-horse-armor"] = {1,1,10},
["diamond-horse-armor"] = {1,1,5},
["enchanted-book-rnd"] = {1,1,20},
["golden-apple"] = {1,1,20},
["enchanted-golden-apple"] = {1,1,2},
["empty"] = {1,1,15},
}
},
{
rolls = {4,4},
items = {
["bone"] = {1,8,10},
["gunpowder"] = {1,8,10},
["rotten-flesh"] = {1,8,10},
["string"] = {1,8,10},
["sand"] = {1,8,10},
}
},
},
poolsBedrockUpcoming = {}
},
["jungle-temple"] = { -- jungle_temple.json
header = "[[Jungle temple]]",
link = "[[jungle temple]]",
structure = "Jungle temple",
container = "Chest",
structID = "jungle-temple",
poolsJava = {
{
rolls = {2,6},
items = {
["diamond"] = {1,3,3},
["iron-ingot"] = {1,5,10},
["gold-ingot"] = {2,7,15},
["emerald"] = {1,3,2},
["bone"] = {4,6,20},
["bamboo"] = {1,3,15},
["rotten-flesh"] = {3,7,16},
["saddle"] = {1,1,3},
["iron-horse-armor"] = {1,1,1},
["golden-horse-armor"] = {1,1,1},
["diamond-horse-armor"] = {1,1,1},
["enchanted-book"] = {1,1,1}
}
},
},
poolsJavaUpcoming = {},
poolsBedrock = {
{
rolls = {2,6},
items = {
["diamond"] = {1,3,15},
["iron-ingot"] = {1,5,50},
["gold-ingot"] = {2,7,75},
["emerald"] = {1,3,10},
["bone"] = {4,6,100},
["rotten-flesh"] = {3,7,80},
["bamboo"] = {1,3,75},
["saddle"] = {1,1,15},
["iron-horse-armor"] = {1,1,5},
["golden-horse-armor"] = {1,1,5},
["diamond-horse-armor"] = {1,1,5},
["enchanted-book"] = {1,1,6}
}
},
},
poolsBedrockUpcoming = {},
},
["jungle-temple-dispenser"] = { -- jungle_temple_dispenser.json in Java and dispenser_trap.json in Bedrock
chest_type = "dispenser",
link = "[[jungle temple]]s",
structure = "Jungle temple",
container = "Dispenser",
structID = "jungle-temple",
poolsJava = {
{
rolls = {1,2},
items = {
["arrow"] = {2,7,30}
}
},
},
poolsJavaUpcoming = {},
poolsBedrock = {
{
rolls = {2,2},
items = {
["arrow"] = {2,7,30}
}
},
},
poolsBedrockUpcoming = {}
},
["end-city"] = { -- end_city_treasure.json
header = "[[End city]]",
link = "[[End city]]",
structure = "End city",
container = "",
structID = "end-city",
poolsJava = {
{
rolls = {2,6},
items = {
["diamond"] = {2,7,5},
["iron-ingot"] = {4,8,10},
["gold-ingot"] = {2,7,15},
["emerald"] = {2,6,2},
["beetroot-seeds"] = {1,10,5},
["saddle"] = {1,1,3},
["iron-horse-armor"] = {1,1,1},
["golden-horse-armor"] = {1,1,1},
["diamond-horse-armor"] = {1,1,1},
["level-enchanted-diamond-sword"] = {1,1,3},
["level-enchanted-diamond-boots"] = {1,1,3},
["level-enchanted-diamond-chestplate"] = {1,1,3},
["level-enchanted-diamond-leggings"] = {1,1,3},
["level-enchanted-diamond-helmet"] = {1,1,3},
["level-enchanted-diamond-pickaxe"] = {1,1,3},
["level-enchanted-diamond-shovel"] = {1,1,3},
["level-enchanted-iron-sword"] = {1,1,3},
["level-enchanted-iron-boots"] = {1,1,3},
["level-enchanted-iron-chestplate"] = {1,1,3},
["level-enchanted-iron-leggings"] = {1,1,3},
["level-enchanted-iron-helmet"] = {1,1,3},
["level-enchanted-iron-pickaxe"] = {1,1,3},
["level-enchanted-iron-shovel"] = {1,1,3},
}
},
},
poolsJavaUpcoming = {},
poolsBedrock = {
{
rolls = {2,6},
items = {
["diamond"] = {2,7,5},
["iron-ingot"] = {4,8,10},
["gold-ingot"] = {2,7,15},
["emerald"] = {2,6,2},
["beetroot-seeds"] = {1,10,5},
["saddle"] = {1,1,3},
["iron-horse-armor"] = {1,1,1},
["golden-horse-armor"] = {1,1,1},
["diamond-horse-armor"] = {1,1,1},
["level-enchanted-diamond-sword"] = {1,1,3},
["level-enchanted-diamond-boots"] = {1,1,3},
["level-enchanted-diamond-chestplate"] = {1,1,3},
["level-enchanted-diamond-leggings"] = {1,1,3},
["level-enchanted-diamond-helmet"] = {1,1,3},
["level-enchanted-diamond-pickaxe"] = {1,1,3},
["level-enchanted-diamond-shovel"] = {1,1,3},
["level-enchanted-iron-sword"] = {1,1,3},
["level-enchanted-iron-boots"] = {1,1,3},
["level-enchanted-iron-chestplate"] = {1,1,3},
["level-enchanted-iron-leggings"] = {1,1,3},
["level-enchanted-iron-helmet"] = {1,1,3},
["level-enchanted-iron-pickaxe"] = {1,1,3},
["level-enchanted-iron-shovel"] = {1,1,3},
}
},
},
poolsBedrockUpcoming = {}
},
["igloo"] = { -- igloo_chest.json
header = "[[Igloo]]",
link = "[[igloo]]",
structure = "Igloo",
container = "",
structID = "igloo",
poolsJava = {
{
rolls = {2,8},
items = {
["apple"] = {1,3,15},
["coal"] = {1,4,15},
["gold-nugget"] = {1,3,10},
["stone-axe"] = {1,1,2},
["rotten-flesh"] = {1,1,10},
["emerald"] = {1,1,1},
["wheat"] = {2,3,10}
}
},
{
rolls = {1,1},
items = {
["golden-apple"] = {1,1,1},
}
},
},
poolsJavaUpcoming = {},
poolsBedrock = {
{
rolls = {2,8},
items = {
["apple"] = {1,3,15},
["coal"] = {1,4,15},
["gold-nugget"] = {1,3,10},
["stone-axe"] = {1,1,2},
["rotten-flesh"] = {1,1,10},
["emerald"] = {1,1,1},
["wheat"] = {2,3,10}
}
},
{
rolls = {1,1},
items = {
["golden-apple"] = {1,1,1},
}
},
},
poolsBedrockUpcoming = {}
},
["pillager-outpost"] = {
header = "[[Pillager outpost]]",
link = "[[pillager outpost]]",
structure = "Pillager Outpost",
container = "",
structID = "pillager-outpost",
poolsJava = {
{
rolls = {0,1},
items = {
["crossbow"] = {1,1,1},
}
},
{
rolls = {2,3},
items = {
["wheat"] = {3,5,7},
["potato"] = {2,5,5},
["carrot"] = {3,5,5}
}
},
{
rolls = {1,3},
items = {
["dark-oak-log"] = {2,3,1}
}
},
{
rolls = {2,3},
items = {
["bottle-o'-enchanting"] = {1,1,7},
["string"] = {1,6,4},
["arrow"] = {2,7,4},
["tripwire-hook"] = {1,3,3},
["iron-ingot"] = {1,3,3},
["enchanted-book-rnd"] = {1,1,1}
}
}
},
poolsJavaUpcoming = {},
poolsBedrock = {
{
rolls = {0,1},
items = {
["crossbow"] = {1,1,1},
}
},
{
rolls = {2,3},
items = {
["wheat"] = {3,5,7},
["potato"] = {2,5,5},
["carrot"] = {3,5,5}
}
},
{
rolls = {1,3},
items = {
["dark-oak-log"] = {2,3,1}
}
},
{
rolls = {2,3},
items = {
["bottle-o'-enchanting"] = {1,1,7},
["string"] = {1,6,4},
["arrow"] = {2,7,4},
["tripwire-hook"] = {1,3,3},
["iron-ingot"] = {1,3,3},
["enchanted-book-rnd"] = {1,1,1}
}
}
},
poolsBedrockUpcoming = {
{
rolls = {0,1},
items = {
["crossbow"] = {1,1,1},
}
},
{
rolls = {2,3},
items = {
["wheat"] = {3,5,7},
["potato"] = {2,5,5},
["carrot"] = {3,5,5}
}
},
{
rolls = {1,3},
items = {
["dark-oak-log"] = {2,3,1}
}
},
{
rolls = {2,3},
items = {
["bottle-o'-enchanting"] = {1,1,7},
["string"] = {1,6,4},
["arrow"] = {2,7,4},
["tripwire-hook"] = {1,3,3},
["iron-ingot"] = {1,3,3},
["enchanted-book-rnd"] = {1,1,1}
}
},
{
rolls={0,1},
items={
["goat-horn"] = {1,1,1},
["copper-horn"] = {1,1,1}
}
}
}},
["bastion-bridge"] = { -- bastion_bridge.json
header = "[[Bastion]] bridge",
link = "[[bastion remnant|bastion remnant bridge]]",
structure = "Bastion remnant",
container = "Bridge chest",
structID = "bastion-remnant",
poolsJava = {
{
rolls = {1,1},
items = {
["lodestone"] = {1,1,1},
}
},
{
rolls = {1,2},
items = {
["damaged-random-enchanted-crossbow"] = {1,1,1},
["spectral-arrow"] = {10,28,1},
["gilded-blackstone"] = {8,12,1},
["crying-obsidian"] = {3,8,1},
["block-of-gold"] = {1,1,1},
["gold-ingot"] = {4,9,1},
["iron-ingot"] = {4,9,1},
["golden-sword"] = {1,1,1},
["random-enchanted-golden-chestplate"] = {1,1,1},
["random-enchanted-golden-helmet"] = {1,1,1},
["random-enchanted-golden-leggings"] = {1,1,1},
["random-enchanted-golden-boots"] = {1,1,1},
["random-enchanted-golden-axe"] = {1,1,1},
}
},
{
rolls = {2,4},
items = {
["string"] = {1,6,1},
["leather"] = {1,3,1},
["arrow"] = {5,17,1},
["iron-nugget"] = {2,6,1},
["gold-nugget"] = {2,6,1},
}
}
},
poolsJavaUpcoming = {},
poolsBedrock = {
{
rolls = {1,1},
items = {
["lodestone"] = {1,1,1},
}
},
{
rolls = {1,2},
items = {
["damaged-random-enchanted-crossbow"] = {1,1,1},
["arrow"] = {10,28,1},
["gilded-blackstone"] = {8,12,1},
["crying-obsidian"] = {3,8,1},
["block-of-gold"] = {1,1,1},
["gold-ingot"] = {4,9,1},
["iron-ingot"] = {4,9,1},
["golden-sword"] = {1,1,1},
["random-enchanted-golden-chestplate"] = {1,1,1},
["random-enchanted-golden-helmet"] = {1,1,1},
["random-enchanted-golden-leggings"] = {1,1,1},
["random-enchanted-golden-boots"] = {1,1,1},
["random-enchanted-golden-axe"] = {1,1,1},
}
},
{
rolls = {2,4},
items = {
["string"] = {1,6,1},
["leather"] = {1,3,1},
["arrow"] = {5,17,1},
["iron-nugget"] = {2,6,1},
["gold-nugget"] = {2,6,1},
}
}
},
poolsBedrockUpcoming = {}
},
["bastion-hoglin-stable"] = { -- bastion_hoglin_stable.json
header = "[[Bastion]] hoglin stable",
link = "[[bastion remnant|bastion remnant hoglin stable]]",
structure = "Bastion remnant",
container = "Hoglin stable chest",
structID = "bastion-remnant",
poolsJava = {
{
rolls = {1,1},
items = {
["damaged-random-enchanted-diamond-shovel-2"] = {1,1,15},
["damaged-random-enchanted-diamond-pickaxe"] = {1,1,12},
["netherite-scrap"] = {1,1,8},
["ancient-debris"] = {1,1,12},
["ancient-debris"] = {2,2,5},
["saddle"] = {1,1,12},
["block-of-gold"] = {2,4,16},
["golden-carrot"] = {8,17,10},
["golden-apple"] = {1,1,10},
}
},
{
rolls = {3,4},
items = {
["random-enchanted-golden-axe"] = {1,1,1},
["crying-obsidian"] = {1,5,1},
["glowstone"] = {3,6,1},
["gilded-blackstone"] = {2,5,1},
["soul-sand"] = {2,7,1},
["crimson-nylium"] = {2,7,1},
["gold-nugget"] = {2,8,1},
["leather"] = {1,3,1},
["arrow"] = {5,17,1},
["string"] = {3,8,1},
["raw-porkchop"] = {2,5,1},
["cooked-porkchop"] = {2,5,1},
["crimson-fungus"] = {2,7,1},
["crimson-roots"] = {2,7,1},
}
}
},
poolsJavaUpcoming = {},
poolsBedrock = {
{
rolls = {1,1},
items = {
["damaged-random-enchanted-diamond-shovel-2"] = {1,1,15},
["damaged-random-enchanted-diamond-pickaxe"] = {1,1,12},
["netherite-scrap"] = {1,1,8},
["ancient-debris"] = {1,1,5},
["saddle"] = {1,1,12},
["block-of-gold"] = {2,4,16},
["golden-carrot"] = {8,17,10},
["golden-apple"] = {1,1,10},
}
},
{
rolls = {3,4},
items = {
["random-enchanted-golden-axe"] = {1,1,1},
["crying-obsidian"] = {1,5,1},
["glowstone"] = {3,6,1},
["gilded-blackstone"] = {2,5,1},
["soul-sand"] = {2,7,1},
["crimson-nylium"] = {2,7,1},
["gold-nugget"] = {2,8,1},
["leather"] = {1,3,1},
["arrow"] = {5,17,1},
["string"] = {3,8,1},
["raw-porkchop"] = {2,5,1},
["cooked-porkchop"] = {2,5,1},
["crimson-fungus"] = {2,7,1},
["crimson-roots"] = {2,7,1},
}
}
},
poolsBedrockUpcoming = {}
},
["bastion-generic"] = { -- bastion_other.json
header = "[[Bastion]]",
link = "[[bastion remnant|bastion remnant]]",
structure = "Bastion remnant",
container = "Generic chest",
structID = "bastion-remnant",
poolsJava = {
{
rolls = {1,1},
items = {
["random-enchanted-diamond-pickaxe"] = {1,1,6},
["diamond-shovel"] = {1,1,6},
["damaged-random-enchanted-crossbow-2"] = {1,1,6},
["ancient-debris"] = {1,1,12},
["netherite-scrap"] = {1,1,4},
["spectral-arrow"] = {10,22,10},
["snout-banner-pattern"] = {1,1,9},
["disc-pigstep"] = {1,1,5},
["golden-carrot"] = {6,17,12},
["golden-apple"] = {1,1,9},
["enchanted-book-rnd-soul-speed"] = {1,1,10},
}
},
{
rolls = {2,2},
items = {
["damaged-random-enchanted-iron-sword"] = {1,1,2},
["block-of-iron"] = {1,1,2},
["soul-speed-enchanted-golden-boots"] = {1,1,1},
["random-enchanted-golden-axe"] = {1,1,1},
["block-of-gold"] = {1,1,2},
["crossbow"] = {1,1,1},
["gold-ingot"] = {1,6,2},
["iron-ingot"] = {1,6,2},
["golden-sword"] = {1,1,1},
["golden-chestplate"] = {1,1,1},
["golden-helmet"] = {1,1,1},
["golden-leggings"] = {1,1,1},
["golden-boots"] = {1,1,1},
["crying-obsidian"] = {1,5,2},
}
},
{
rolls = {3,4},
items = {
["gilded-blackstone"] = {1,5,2},
["chain"] = {2,10,1},
["magma-cream"] = {2,6,2},
["bone-block"] = {3,6,1},
["iron-nugget"] = {2,8,1},
["obsidian"] = {4,6,1},
["gold-nugget"] = {2,8,1},
["string"] = {4,6,1},
["arrow"] = {5,17,2},
["cooked-porkchop"] = {1,1,1},
}
}
},
poolsJavaUpcoming = {},
poolsBedrock = {
{
rolls = {1,1},
items = {
["random-enchanted-diamond-pickaxe"] = {1,1,6},
["diamond-shovel"] = {1,1,6},
["damaged-random-enchanted-crossbow-2"] = {1,1,6},
["ancient-debris"] = {1,1,12},
["netherite-scrap"] = {1,1,4},
["arrow"] = {10,22,10},
["snout-banner-pattern"] = {1,1,9},
["disc-pigstep"] = {1,1,5},
["golden-carrot"] = {6,17,12},
["golden-apple"] = {1,1,9},
["enchanted-book-rnd-soul-speed"] = {1,1,10},
}
},
{
rolls = {2,2},
items = {
["damaged-random-enchanted-iron-sword"] = {1,1,2},
["block-of-iron"] = {1,1,2},
["soul-speed-enchanted-golden-boots"] = {1,1,1},
["random-enchanted-golden-axe"] = {1,1,1},
["block-of-gold"] = {1,1,2},
["crossbow"] = {1,1,1},
["gold-ingot"] = {1,6,2},
["iron-ingot"] = {1,6,2},
["golden-sword"] = {1,1,1},
["golden-chestplate"] = {1,1,1},
["golden-helmet"] = {1,1,1},
["golden-leggings"] = {1,1,1},
["golden-boots"] = {1,1,1},
["crying-obsidian"] = {1,5,2},
}
},
{
rolls = {3,4},
items = {
["gilded-blackstone"] = {1,5,2},
["chain"] = {2,10,1},
["magma-cream"] = {2,6,2},
["bone-block"] = {3,6,1},
["iron-nugget"] = {2,8,1},
["obsidian"] = {4,6,1},
["gold-nugget"] = {2,8,1},
["string"] = {4,6,1},
["arrow"] = {5,17,2},
["cooked-porkchop"] = {1,1,1},
}
}
},
poolsBedrockUpcoming = {}
},
["bastion-treasure"] = { -- bastion_treasure.json
header = "[[Bastion]] treasure",
link = "[[bastion remnant|bastion remnant treasure]]",
structure = "Bastion remnant",
container = "Treasure chest",
structID = "bastion-remnant",
poolsJava = {
{
rolls = {3,3},
items = {
["netherite-ingot"] = {1,1,15},
["ancient-debris"] = {1,1,10},
["netherite-scrap"] = {1,1,8},
["ancient-debris"] = {2,2,4},
["damaged-random-enchanted-diamond-sword-2"] = {1,1,6},
["damaged-random-enchanted-diamond-chestplate-2"] = {1,1,6},
["damaged-random-enchanted-diamond-helmet-2"] = {1,1,6},
["damaged-random-enchanted-diamond-leggings-2"] = {1,1,6},
["damaged-random-enchanted-diamond-boots-2"] = {1,1,6},
["diamond-sword"] = {1,1,6},
["diamond-chestplate"] = {1,1,5},
["diamond-helmet"] = {1,1,5},
["diamond-leggings"] = {1,1,5},
["diamond-boots"] = {1,1,5},
["diamond"] = {2,6,5},
["enchanted-golden-apple"] = {1,1,2},
}
},
{
rolls = {3,4},
items = {
["spectral-arrow"] = {12,25,1},
["block-of-gold"] = {2,5,1},
["block-of-iron"] = {2,5,1},
["gold-ingot"] = {3,9,1},
["iron-ingot"] = {3,9,1},
["crying-obsidian"] = {3,5,1},
["nether-quartz"] = {8,23,1},
["gilded-blackstone"] = {5,15,1},
["magma-cream"] = {3,8,1},
}
}
},
poolsJavaUpcoming = {},
poolsBedrock = {
{
rolls = {3,3},
items = {
["netherite-ingot"] = {1,1,15},
["ancient-debris"] = {1,1,10},
["netherite-scrap"] = {1,1,8},
["ancient-debris"] = {2,2,4},
["damaged-random-enchanted-diamond-sword-2"] = {1,1,6},
["damaged-random-enchanted-diamond-chestplate-2"] = {1,1,6},
["damaged-random-enchanted-diamond-helmet-2"] = {1,1,6},
["damaged-random-enchanted-diamond-leggings-2"] = {1,1,6},
["damaged-random-enchanted-diamond-boots-2"] = {1,1,6},
["diamond-sword"] = {1,1,6},
["diamond-chestplate"] = {1,1,5},
["diamond-helmet"] = {1,1,5},
["diamond-leggings"] = {1,1,5},
["diamond-boots"] = {1,1,5},
["diamond"] = {2,6,5},
["enchanted-golden-apple"] = {1,1,2},
}
},
{
rolls = {3,4},
items = {
["arrow"] = {12,25,1},
["block-of-gold"] = {2,5,1},
["block-of-iron"] = {2,5,1},
["gold-ingot"] = {3,9,1},
["iron-ingot"] = {3,9,1},
["crying-obsidian"] = {3,5,1},
["nether-quartz"] = {8,23,1},
["gilded-blackstone"] = {5,15,1},
["magma-cream"] = {3,8,1},
}
}
},
poolsBedrockUpcoming = {}
},
["ruined-portal"] = { --ruined_portal.json
header = "[[Ruined Portal]]",
link = "[[ruined portal]]",
structure = "Ruined portal",
container = "",
structID = "ruined-portal",
poolsJava = {
{
rolls = {4,8},
items = {
["obsidian"] = {1,2,40},
["flint"] = {1,4,40},
["iron-nugget"] = {9,18,40},
["flint-and-steel"] = {1,1,40},
["fire-charge"] = {1,1,40},
["golden-apple"] = {1,1,15},
["gold-nugget"] = {4,24,15},
["random-enchanted-golden-sword"] = {1,1,15},
["random-enchanted-golden-axe"] = {1,1,15},
["random-enchanted-golden-hoe"] = {1,1,15},
["random-enchanted-golden-pickaxe"] = {1,1,15},
["random-enchanted-golden-shovel"] = {1,1,15},
["random-enchanted-golden-helmet"] = {1,1,15},
["random-enchanted-golden-chestplate"] = {1,1,15},
["random-enchanted-golden-leggings"] = {1,1,15},
["random-enchanted-golden-boots"] = {1,1,15},
["glistering-melon-slice"] = {4,12,5},
["golden-horse-armor"] = {1,1,5},
["light-weighted-pressure-plate"] = {1,1,5},
["golden-carrot"] = {4,12,5},
["clock"] = {1,1,5},
["gold-ingot"] = {2,8,5},
["bell"] = {1,1,1},
["enchanted-golden-apple"] = {1,1,1},
["block-of-gold"] = {1,2,1},
}
}
},
poolsJavaUpcoming = {},
poolsBedrock = {
{
rolls = {4,8},
items = {
["obsidian"] = {1,2,40},
["flint"] = {1,4,40},
["iron-nugget"] = {9,18,40},
["flint-and-steel"] = {1,1,40},
["fire-charge"] = {1,1,40},
["golden-apple"] = {1,1,15},
["gold-nugget"] = {4,24,15},
["random-enchanted-golden-sword"] = {1,1,15},
["random-enchanted-golden-axe"] = {1,1,15},
["random-enchanted-golden-hoe"] = {1,1,15},
["random-enchanted-golden-shovel"] = {1,1,15},
["random-enchanted-golden-pickaxe"] = {1,1,15},
["random-enchanted-golden-boots"] = {1,1,15},
["random-enchanted-golden-chestplate"] = {1,1,15},
["random-enchanted-golden-helmet"] = {1,1,15},
["random-enchanted-golden-leggings"] = {1,1,15},
["glistering-melon-slice"] = {4,12,5},
["golden-horse-armor"] = {1,1,5},
["light-weighted-pressure-plate"] = {1,1,5},
["golden-carrot"] = {4,12,5},
["clock"] = {1,1,5},
["gold-ingot"] = {2,8,5},
["bell"] = {1,1,1},
["enchanted-golden-apple"] = {1,1,1},
["block-of-gold"] = {1,2,1},
}
}
},
poolsBedrockUpcoming = {}
},
["woodland-mansion"] = { -- woodland_mansion.json
header = "[[Woodland Mansion]]",
link = "[[woodland mansion]]",
structure = "Woodland mansion",
container = "",
structID = "woodland-mansion",
poolsJava = {
{
rolls = {1,3},
items = {
["lead"] = {1,1,20},
["golden-apple"] = {1,1,15},
["enchanted-golden-apple"] = {1,1,2},
["disc-13"] = {1,1,15},
["disc-cat"] = {1,1,15},
["name-tag"] = {1,1,20},
["chainmail-chestplate"] = {1,1,10},
["diamond-hoe"] = {1,1,15},
["diamond-chestplate"] = {1,1,5},
["enchanted-book-rnd"] = {1,1,10},
}
},
{
rolls = {1,4},
items = {
["iron-ingot"] = {1,4,10},
["gold-ingot"] = {1,4,5},
["bread"] = {1,1,20},
["wheat"] = {1,4,20},
["bucket"] = {1,1,10},
["redstone"] = {1,4,15},
["coal"] = {1,4,15},
["melon-seeds"] = {2,4,10},
["pumpkin-seeds"] = {2,4,10},
["beetroot-seeds"] = {2,4,10},
}
},
{
rolls = {3,3},
items = {
["bone"] = {1,8,10},
["gunpowder"] = {1,8,10},
["rotten-flesh"] = {1,8,10},
["string"] = {1,8,10},
}
},
},
poolsJavaUpcoming = {},
poolsBedrock = {
{
rolls = {1,3},
items = {
["lead"] = {1,1,100},
["golden-apple"] = {1,1,75},
["enchanted-golden-apple"] = {1,1,10},
["disc-13"] = {1,1,75},
["disc-cat"] = {1,1,75},
["name-tag"] = {1,1,100},
["chainmail-chestplate"] = {1,1,50},
["diamond-hoe"] = {1,1,75},
["diamond-chestplate"] = {1,1,25},
["enchanted-book-rnd"] = {1,1,60},
}
},
{
rolls = {1,4},
items = {
["iron-ingot"] = {1,4,50},
["gold-ingot"] = {1,4,25},
["bread"] = {1,1,100},
["wheat"] = {1,4,100},
["bucket"] = {1,1,50},
["redstone"] = {1,4,75},
["coal"] = {1,4,75},
["melon-seeds"] = {2,4,50},
["pumpkin-seeds"] = {2,4,50},
["beetroot-seeds"] = {2,4,50},
}
},
{
rolls = {3,3},
items = {
["bone"] = {1,8,50},
["gunpowder"] = {1,8,50},
["rotten-flesh"] = {1,8,50},
["string"] = {1,8,50},
}
},
},
poolsBedrockUpcoming = {}
},
["bonus-barrel"] = { -- bonus_barrel.json from Java Edition 3D Shareware v1.34
header = "[[Java Edition 3D Shareware v1.34#Blocks|Bonus barrel]]",
link = "[[Java Edition 3D Shareware v1.34#Blocks|bonus barrel]]",
structure = "Bonus barrel",
container = "",
structID = "day",
poolsJava = {
{
rolls = {1,4},
items = {
["level-enchanted-bow"] = {1,1,1},
["random-effect-arrow"] = {1,20,1},
["random-effect-tipped-arrow"] = {1,20,1},
["random-effect-potion"] = {1,1,1},
["random-effect-splash-potion"] = {1,1,1},
["random-effect-lingering-potion"] = {1,1,1},
["level-enchanted-leather-tunic"] = {1,1,1},
["level-enchanted-leather-boots"] = {1,1,1},
["level-enchanted-leather-cap"] = {1,1,1},
["level-enchanted-leather-pants"] = {1,1,1},
["level-enchanted-iron-chestplate-2"] = {1,1,1},
["level-enchanted-iron-boots-2"] = {1,1,1},
["level-enchanted-iron-helmet-2"] = {1,1,1},
["level-enchanted-iron-leggings-2"] = {1,1,1},
["level-enchanted-diamond-chestplate-2"] = {1,1,1},
["level-enchanted-diamond-boots-2"] = {1,1,1},
["level-enchanted-diamond-helmet-2"] = {1,1,1},
["level-enchanted-diamond-leggings-2"] = {1,1,1},
["level-enchanted-stone-sword"] = {1,1,1},
["level-enchanted-iron-sword-2"] = {1,1,1},
["level-enchanted-diamond-sword-2"] = {1,1,1},
["random-enchanted-crossbow"] = {1,1,1},
}
},
{
rolls = {1,1},
items = {
["blue-key"] = {1,1,1},
["yellow-key"] = {1,1,2},
["red-key"] = {1,1,5},
["empty"] = {1,1,16},
}
},
},
poolsJavaUpcoming = {},
poolsBedrock = {},
poolsBedrockUpcoming = {}
},
},
-- these values are used:
-- * in place of the keys, when the key is used as a parameter
-- chest-param -> internally-valid-chest-param
synonyms = {
["desert"] = "desert-temple",
["jungle"] = "jungle-temple",
["nether"] = "nether-fortress",
["nether-fortress"] = "nether-fortress",
["armorer"] = "village-armorer",
["butcher"] = "village-butcher",
["cartographer"] = "village-cartographer",
["fisherman"] = "village-fisherman",
["fletcher"] = "village-fletcher",
["mason"] = "village-mason",
["shepherd"] = "village-shepherd",
["tannery"] = "village-tannery",
["temple"] = "village-temple",
["toolsmith"] = "village-toolsmith",
["weaponsmith"] = "village-weaponsmith",
["desert-house"] = "village-desert-house",
["plains-house"] = "village-plains-house",
["savanna-house"] = "village-savanna-house",
["snowy-house"] = "village-snowy-house",
["taiga-house"] = "village-taiga-house",
["altar"] = "stronghold-altar",
["storeroom"] = "stronghold-storeroom",
["library"] = "stronghold-library",
["outpost"] = "pillager-outpost",
["mansion"] = "woodland-mansion"
},
-- these values are used:
-- * in the header-description of a table showing only a single chest
-- * if the key is not here, but it is a valid chest parameter,
-- that header-description defaults to use the key string from p.chests,
-- e.g. "nether-fortress"
-- chest-param -> description-string
display_names = {
["nether-fortress"] = "Nether Fortress",
["nether"] = "nether fortress",
["fortress"] = "nether fortress",
["desert"] = "desert pyramid",
["jungle"] = "jungle pyramid",
["desert-temple"] = "desert pyramid",
["jungle-temple"] = "jungle pyramid"
},
-- these descriptions are used:
-- * in column <abbr> titles,
-- * and above the table when only a single column-type is chosen
columns = {
["stacksize"] = 'The size of stacks (or for unstackable items, number) of this item on any given roll.',
["weight"] = 'The weight of this item relative to other items in the pool.',
["chance"] = 'The odds of finding any of this item in a single chest.',
["items"] = 'The number of items expected per chest, averaged over a large number of chests.',
["chests"] = 'The average number of chests the player should expect to search to find any of this item.'
},
current_frame = nil
}
p.base = function( ... )
p.current_frame = mw.getCurrentFrame()
local args = { ... }
if args[1] == p.current_frame then
args = require( 'Module:ProcessArgs' ).merge( true )
else
args = args[1]
end
-- transform args into usable list
local chests, columns = q.massage_args( args )
if #chests == 0 then
return "<span style='font-style:italic; color:red;'>Module:LootChest: no valid arguments</span>"
end
q.fill_in_chest_derivative_data( chests )
-- construct an ordered list dictating the order of the rows
local ordered_item_rows_java = {}
local ordered_item_rows_java_upcoming = {}
local ordered_item_rows_bedrock = {}
local ordered_item_rows_bedrock_upcoming = {}
local ret = {}
local java_specified = args.java and args.java ~= '0';
local java_upcoming_specified = args['java-upcoming'] and args['java-upcoming'] ~= '0';
local bedrock_specified = args.bedrock and args.bedrock ~= '0';
local bedrock_upcoming_specified = args['bedrock-upcoming'] and args['bedrock-upcoming'] ~= '0';
local any_specified = java_specified or java_upcoming_specified or bedrock_specified or bedrock_upcoming_specified
if any_specified then
if java_specified then
ordered_item_rows_java = q.construct_ordered_item_rows( chests, 'Java' )
end
if java_upcoming_specified then
ordered_item_rows_java_upcoming = q.construct_ordered_item_rows( chests, 'JavaUpcoming' )
end
if bedrock_specified then
ordered_item_rows_bedrock = q.construct_ordered_item_rows( chests, 'Bedrock' )
end
if bedrock_upcoming_specified then
ordered_item_rows_bedrock_upcoming = q.construct_ordered_item_rows( chests, 'BedrockUpcoming' )
end
else
local java_excluded = args.java and args.java == '0';
local java_upcoming_excluded = args['java-upcoming'] and args['java-upcoming'] == '0';
local bedrock_excluded = args.bedrock and args.bedrock == '0';
local bedrock_upcoming_excluded = args['bedrock-upcoming'] and args['bedrock-upcoming'] == '0';
if not java_excluded then
ordered_item_rows_java = q.construct_ordered_item_rows( chests, 'Java' )
end
if not java_upcoming_excluded then
ordered_item_rows_java_upcoming = q.construct_ordered_item_rows( chests, 'JavaUpcoming' )
end
if not bedrock_excluded then
ordered_item_rows_bedrock = q.construct_ordered_item_rows( chests, 'Bedrock' )
end
if not bedrock_upcoming_excluded then
ordered_item_rows_bedrock_upcoming = q.construct_ordered_item_rows( chests, 'BedrockUpcoming' )
end
end
if q.tablelength( ordered_item_rows_java ) > 0 then
table.insert( ret, 'In ' .. p.current_frame:preprocess( p.java ) .. ', ' .. q.lcfirst( q.print_table( chests, columns, ordered_item_rows_java, 'Java' ) ) )
end
if q.tablelength( ordered_item_rows_java_upcoming ) > 0 and q.compare_tables( ordered_item_rows_java, ordered_item_rows_java_upcoming ) then
table.insert( ret, 'In ' .. p.current_frame:preprocess( p['java-upcoming'] ) .. ', ' .. q.lcfirst( q.print_table( chests, columns, ordered_item_rows_java_upcoming, 'JavaUpcoming' ) ) )
end
if q.tablelength( ordered_item_rows_bedrock ) > 0 and q.compare_tables( ordered_item_rows_java, ordered_item_rows_bedrock ) then
table.insert( ret, 'In ' .. p.current_frame:preprocess( p.bedrock ) .. ', ' .. q.lcfirst( q.print_table( chests, columns, ordered_item_rows_bedrock, 'Bedrock' ) ) )
end
if q.tablelength( ordered_item_rows_bedrock_upcoming ) > 0 and q.compare_tables( ordered_item_rows_bedrock, ordered_item_rows_bedrock_upcoming ) then
table.insert( ret, 'In ' .. p.current_frame:preprocess( p['bedrock-upcoming'] ) .. ', ' .. q.lcfirst( q.print_table( chests, columns, ordered_item_rows_bedrock_upcoming, 'BedrockUpcoming' ) ) )
end
table.insert( ret, "<div class=mobileonly>" )
table.insert( ret, p.current_frame:expandTemplate{ title = 'FNlist', args = {} } )
table.insert( ret, "</div>" )
return table.concat( ret, '\n\n' )
end
p.doc = function()
local valid_args = {}
for chest_name, val in pairs(p.chests) do
local synonyms = {}
for syn, orig in pairs(p.synonyms) do
if orig == chest_name then
table.insert( synonyms, syn )
end
end
if #synonyms > 0 then
chest_name = chest_name .. " ( " .. table.concat( synonyms, ", " ) .. " )"
end
table.insert( valid_args, chest_name )
end
table.sort( valid_args )
return table.concat( valid_args, ",\n<br>" )
end
p.doc2 = function()
local valid_args = {}
for column_name, val in pairs(p.columns) do
table.insert( valid_args, column_name .. ": " .. val )
end
table.sort( valid_args )
return table.concat( valid_args, ",\n<br>" )
end
p.doc3 = function()
local valid_args = {}
for item_name, val in pairs(p.items) do
table.insert( valid_args, item_name )
end
table.sort( valid_args )
return table.concat( valid_args, ", " )
end
p.base2 = function( ... )
p.current_frame = mw.getCurrentFrame()
local args = { ... }
if args[1] == p.current_frame then
args = require( 'Module:ProcessArgs' ).merge( true )
else
args = args[1]
end
local itemname = args[1]
if p.items[itemname] == nil then
return '<span style="color:red;">unknown item "' .. itemname .. '"</span>'
end
if args.java and args.java ~= '0' then
javaChances = q.single_item_find_values( itemname, 'poolsJava' )
javaUpcomingChances = {}
bedrockChances = {}
bedrockUpcomingChances = {}
else
if args['java-upcoming'] and args['java-upcoming'] ~= '0' then
javaChances = q.single_item_find_values( itemname, 'poolsJavaUpcoming' )
javaUpcomingChances = {}
bedrockChances = {}
bedrockUpcomingChances = {}
else
if args.bedrock and args.bedrock ~= '0' then
javaChances = q.single_item_find_values( itemname, 'poolsBedrock' )
javaUpcomingChances = {}
bedrockChances = {}
bedrockUpcomingChances = {}
else
if args['bedrock-upcoming'] and args['bedrock-upcoming'] ~= '0' then
javaChances = q.single_item_find_values( itemname, 'poolsBedrockUpcoming' )
javaUpcomingChances = {}
bedrockChances = {}
bedrockUpcomingChances = {}
else
javaChances = q.single_item_find_values( itemname, 'poolsJava' )
javaUpcomingChances = q.single_item_find_values( itemname, 'poolsJavaUpcoming', javaChances )
bedrockChances = q.single_item_find_values( itemname, 'poolsBedrock' )
bedrockUpcomingChances = q.single_item_find_values( itemname, 'poolsBedrockUpcoming', javaChances, bedrockChances )
end
end
end
end
local html = {}
local any_current = q.tablelength( javaChances ) > 0
local any_changes_upcoming = q.tablelength( javaUpcomingChances ) > 0 and q.compare_tables( javaChances, javaUpcomingChances )
local any_standard = any_current or any_changes_upcoming
local any_bedrock_current = q.tablelength( bedrockChances ) > 0
local any_bedrock_upcoming = q.tablelength( bedrockUpcomingChances ) > 0 and q.compare_tables( bedrockChances, bedrockUpcomingChances )
local any_bedrock = any_bedrock_current or any_bedrock_upcoming
local change_case = p.items[itemname].preserve_case == nil or p.items[itemname].preserve_case ~= true
if any_current then
table.insert( html, p.base2_sub( itemname, javaChances ) )
end
if any_changes_upcoming then
table.insert( html, p.current_frame:preprocess( p['java-upcoming'] ) .. ( change_case and q.lcfirst( p.base2_sub( itemname, javaUpcomingChances, any_current ) ) or p.base2_sub( itemname, javaUpcomingChances, any_current ) ) )
end
if any_bedrock_current then
table.insert( html, ( any_standard and '\n\n' or '' ) .. p.current_frame:preprocess( p.bedrock ) .. ( change_case and q.lcfirst( p.base2_sub( itemname, bedrockChances, any_standard ) ) or p.base2_sub( itemname, bedrockChances, any_standard ) ) )
end
if any_bedrock_upcoming then
table.insert( html, ( any_standard and not any_bedrock_current and '\n\n' or '' ) .. p.current_frame:preprocess( p['bedrock-upcoming'] ) .. ( change_case and q.lcfirst( p.base2_sub( itemname, bedrockUpcomingChances, any_bedrock_current or any_standard ) ) or p.base2_sub( itemname, bedrockUpcomingChances, any_bedrock_current or any_standard ) ) )
end
if args.nocat then
else
table.insert( html, '[[Category:Pages with loot chest item templates]]' )
if p.items[itemname].category ~= nil and p.items[itemname].category ~= false then
table.insert( html, '[[Category:Pages with specific loot chest items]]' )
end
if any_bedrock and (mw.title.getCurrentTitle().namespace == 0) then
table.insert( html, '[[Category:Bedrock Edition specific information]]' )
end
end
return table.concat( html, ' ' )
end
p.base2_sub = function( itemname, chances, use_they )
local html = {}
local item_display_name = ''
if use_they then
item_display_name = 'they'
else
if p.items[itemname].plural ~= nil and p.items[itemname].plural ~= false then
item_display_name = p.items[itemname].plural
else
if p.items[itemname].title ~= nil then
item_display_name = p.items[itemname].title
else
item_display_name = string.gsub( itemname, '-', ' ' )
end
if p.items[itemname].plural == nil or p.items[itemname].plural ~= false then
item_display_name = q.single_item_plural( item_display_name )
end
end
if p.items[itemname].preserve_case == nil or p.items[itemname].preserve_case ~= true then
item_display_name = q.capitalize( item_display_name )
end
if p.items[itemname].note and p.notes[p.items[itemname].note] then
item_display_name = item_display_name .. p.current_frame:extensionTag( 'ref', p.notes[p.items[itemname].note], { group='FN', name=p.items[itemname].note } )
end
if p.items[itemname].note1 and p.notes[p.items[itemname].note1] then
if p.items[itemname].note == nil or p.notes[p.items[itemname].note] == nil or p.items[itemname].note ~= p.items[itemname].note1 then
item_display_name = item_display_name .. p.current_frame:extensionTag( 'ref', p.notes[p.items[itemname].note1], { group='FN', name=p.items[itemname].note1 } )
end
end
end
table.insert( html, item_display_name )
table.insert( html, ' can be found ' )
local html_stacks = {}
local stack_sep = ', '
local ns = q.tablelength( chances )
local s = 0
for stacksize, chest_details in pairs( chances ) do
s = s + 1
local html_per_stack = { 'in ' }
local c = 0
local nc = q.tablelength( chest_details )
local sep = ( nc > 2 and ', ' or ' ' )
if nc > 2 and s ~= ns then
stack_sep = '; '
end
for k, chest in pairs( chest_details ) do
c = c + 1
if c == nc and nc > 1 then
table.insert( html_per_stack, 'and ' )
end
if chest.chance == 1 then
table.insert( html_per_stack, " all " )
else
table.insert( html_per_stack, string.format("%.1f", chest.chance*100) )
table.insert( html_per_stack, "% of " )
end
if chest.chest_type == 'minecart with chest' then
table.insert( html_per_stack, ' [[Minecart with Chest|chest minecarts]] in ' )
table.insert( html_per_stack, p.chests[chest.chest_name].link )
elseif chest.chest_type == 'dispenser' then
table.insert( html_per_stack, ' [[dispenser]]s in ' )
table.insert( html_per_stack, p.chests[chest.chest_name].link )
else
table.insert( html_per_stack, p.chests[chest.chest_name].link )
table.insert( html_per_stack, ' chests' )
end
table.insert( html_per_stack, sep )
end
if nc > 2 then
table.insert( html_per_stack, 'all ' )
end
table.insert( html_per_stack, 'in ' )
if p.items[itemname].cannot_stack ~= nil then
table.insert( html_per_stack, 'groups of ' )
else
table.insert( html_per_stack, 'stacks of ' )
end
table.insert( html_per_stack, stacksize )
table.insert( html_stacks, table.concat( html_per_stack ) )
end
local stackwise_summaries = ''
if #html_stacks == 1 then
table.insert( html, html_stacks[1] )
else
for i = 1, #html_stacks - 1 do
table.insert( html, html_stacks[ i ] )
table.insert( html, stack_sep )
end
table.insert( html, 'and ' )
table.insert( html, html_stacks[#html_stacks] )
end
table.insert( html, '.' )
return table.concat( html )
end
p.base2_test = function()
items = {}
for item_name, v in pairs( p.items ) do
table.insert( items, p.base2{ item_name, ["nocat"]=true } .. '\n\n' )
end
table.sort( items )
return table.concat(items)
end
p.base3 = function( ... )
p.current_frame = mw.getCurrentFrame()
local args = { ... }
if args[1] == p.current_frame then
args = require( 'Module:ProcessArgs' ).merge( true )
else
args = args[1]
end
local z = args[1]
local html_java = {}
local html_java_u = {}
local html_bedrock = {}
local html_bedrock_u = {}
local rErr = ""
local zT = {}
if args[1] == "!!!ALL!!!" then
for item_name, v in pairs( p.items ) do
table.insert( zT, item_name )
table.sort( zT )
end
else
zT = mw.text.split( args[1], ',' )
end
for x, itemname in pairs( zT ) do
if p.items[itemname] == nil then
rErr = rErr .. "<span class='error'>Unknown item " .. itemname .. ".</span>\n"
else
local javaChances, javaUpcomingChances, bedrockChances, bedrockUpcomingChances
if args.java and args.java ~= '0' then
javaChances = q.single_item_find_values( itemname, 'poolsJava' )
javaUpcomingChances = {}
bedrockChances = {}
bedrockUpcomingChances = {}
else
if args['java-upcoming'] and args['java-upcoming'] ~= '0' then
javaChances = q.single_item_find_values( itemname, 'poolsJavaUpcoming' )
javaUpcomingChances = {}
bedrockChances = {}
bedrockUpcomingChances = {}
else
if args.bedrock and args.bedrock ~= '0' then
javaChances = q.single_item_find_values( itemname, 'poolsBedrock' )
javaUpcomingChances = {}
bedrockChances = {}
bedrockUpcomingChances = {}
else
if args['bedrock-upcoming'] and args['bedrock-upcoming'] ~= '0' then
javaChances = q.single_item_find_values( itemname, 'poolsBedrockUpcoming' )
javaUpcomingChances = {}
bedrockChances = {}
bedrockUpcomingChances = {}
else
javaChances = q.single_item_find_values( itemname, 'poolsJava' )
javaUpcomingChances = q.single_item_find_values( itemname, 'poolsJavaUpcoming', javaChances )
bedrockChances = q.single_item_find_values( itemname, 'poolsBedrock' )
bedrockUpcomingChances = q.single_item_find_values( itemname, 'poolsBedrockUpcoming', javaChances, bedrockChances )
end
end
end
end
local any_current = q.tablelength( javaChances ) > 0
local any_changes_upcoming = q.tablelength( javaUpcomingChances ) > 0 and q.compare_tables( javaChances, javaUpcomingChances )
local any_standard = any_current or any_changes_upcoming
local any_bedrock_current = q.tablelength( bedrockChances ) > 0
local any_bedrock_upcoming = q.tablelength( bedrockUpcomingChances ) > 0 and q.compare_tables( bedrockChances, bedrockUpcomingChances )
local any_bedrock = any_bedrock_current or any_bedrock_upcoming
if any_current then
table.insert( html_java, p.base3_sub( itemname, javaChances ) )
end
if any_changes_upcoming then
table.insert( html_java_u, p.base3_sub( itemname, javaUpcomingChances ) )
end
if any_bedrock_current then
table.insert( html_bedrock, p.base3_sub( itemname, bedrockChances ) )
end
if any_bedrock_upcoming then
table.insert( html_bedrock_u, p.base3_sub( itemname, bedrockUpcomingChances ) )
end
end
end
local output = rErr .. '{| class="wikitable sortable" \n! Item \n! Structure \n! Container \n! Quantity \n! Chance \n'
if q.tablelength( html_java ) > 0 then
output = output .. '|-\n!colspan=5|' .. p['java'] .. ' \n' .. table.concat( html_java )
end
if q.tablelength( html_java_u ) > 0 then
output = output .. '|-\n!colspan=5|' .. p['java-upcoming'] .. ' \n' .. table.concat( html_java_u )
end
if q.tablelength( html_bedrock ) > 0 then
output = output .. '|-\n!colspan=5|' .. p.bedrock .. ' \n' .. table.concat( html_bedrock )
end
if q.tablelength( html_bedrock_u ) > 0 then
output = output .. '|-\n!colspan=5|' .. p['bedrock-upcoming'] .. ' \n' .. table.concat( html_bedrock_u )
end
output = output .. '|}' .. p.current_frame:extensionTag( 'references', "", { group="FN" } )
return output
end
p.base3_sub = function( itemname, chances )
local html = {}
local item_display_name = ''
local output = ""
lang = mw.getContentLanguage()
if p.items[itemname].title ~= nil then
item_display_name = p.items[itemname].title
else
item_display_name = q.titlecase( string.gsub( itemname, '-', ' ' ) )
end
local objectList = {}
local ns = q.tablelength( chances )
local s = 0
local m = 0
local rn = 0
for stacksize, chest_details in pairs( chances ) do
s = s + 1
local nc = q.tablelength( chest_details )
local c = 0
for k, chest in pairs( chest_details ) do
c = c + 1
rn = rn + 1
local containerText = p.chests[chest.chest_name].container
if string.len(containerText) == 0 then
containerText = 'Chest'
end
local r = ""
r = r .. '|' .. string.gsub( containerText, ' ', ' ' ) .. '\n|' .. stacksize .. '\n|' .. lang:formatNum( math.floor( chest.chance*1000 + 0.5 ) /10 ) .. '%' .. '\n'
if ns ~= s or nc ~= c then
r = r
end
table.insert( objectList , { p.chests[chest.chest_name].structID , p.chests[chest.chest_name].structure, r } )
end
m = m + nc
end
table.sort( objectList, function(a,b) return a[1] < b[1] end )
local struct = ""
local t = ""
local nt = 1
local ntt = 0
for v, w in pairs( objectList ) do
ntt = ntt + 1
if w[1] ~= struct then
if t ~= "" then
output = output .. "|rowspan=" .. nt .. t
end
t = "|'''" .. p.current_frame:expandTemplate{ title = 'EnvLink', args = { w[2], id = w[1] } } .. "'''\n" .. w[3]
struct = w[1]
nt = 1
else
t = t .. w[3]
nt = nt + 1
end
if ntt == m then
output = output .. "|rowspan=" .. nt .. t
else
t = t .. '|-' .. '\n'
end
end
return "|-\n| rowspan=" .. m .. "|'''" .. p.getItem(itemname, item_display_name) .. "'''\n" .. output
end
p.getItem = function( itemname, item_display_name )
local s = ""
local k = item_display_name
local link = item_display_name
local m = itemname
if p.items[itemname].title ~= nil then
k = p.items[itemname].title
end
if p.items[itemname].link ~= nil then
link = p.items[itemname].link
end
if p.items[itemname].id ~= nil then
m = p.items[itemname].id
end
if p.items[itemname][1] == "item" then
s = p.current_frame:expandTemplate{ title = 'ItemLink', args = { link , k , id = m } }
elseif p.items[itemname][1] == "block" then
s = p.current_frame:expandTemplate{ title = 'BlockLink', args = { link , k , id = m } }
end
if p.items[itemname].note and p.notes[p.items[itemname].note] then
s = s .. p.current_frame:extensionTag( 'ref', p.notes[p.items[itemname].note], { group='FN', name=p.items[itemname].note } )
end
if p.items[itemname].note1 and p.notes[p.items[itemname].note1] then
if p.items[itemname].note == nil or p.notes[p.items[itemname].note] == nil or p.items[itemname].note ~= p.items[itemname].note1 then
s = s .. p.current_frame:extensionTag( 'ref', p.notes[p.items[itemname].note1], { group='FN', name=p.items[itemname].note1 } )
end
end
return s
end
q = {
tablelength = function(T)
local count = 0
for _ in pairs(T) do count = count + 1 end
return count
end,
deepcopy = function(orig)
local orig_type = type(orig)
local copy
if orig_type == 'table' then
copy = {}
for orig_key, orig_value in next, orig, nil do
copy[q.deepcopy(orig_key)] = q.deepcopy(orig_value)
end
setmetatable(copy, q.deepcopy(getmetatable(orig)))
else -- number, string, boolean, etc
copy = orig
end
return copy
end,
single_item_find_values = function( itemname, poolsKey, exclusions_param, other_exclusions_param )
local chances = {}
local exclusions = q.deepcopy(exclusions_param or {})
local other_exclusions = q.deepcopy(other_exclusions_param or {})
for stacksize, other_exclusion_list in pairs(other_exclusions) do
if exclusions[stacksize] == nil then
exclusions[stacksize] = {}
end
for _, other_exclusion in pairs(other_exclusion_list) do
local already_in_here = false
for _, exclusion in pairs(exclusions[stacksize]) do
if exclusion["chest_name"] == other_exclusion["chest_name"] and exclusion["chance"] == other_exclusion["chance"] then
already_in_here = true
break
end
end
if not already_in_here then
table.insert( exclusions[stacksize], other_exclusion )
end
end
end
for chest_name, chest in pairs( p.chests ) do
local poolchances = {}
for k, pool in pairs( chest[poolsKey] or chest.poolsJava or {} ) do
local poolitem = pool.items[itemname]
if poolitem ~= nil then
local stacksize = poolitem[1]
if poolitem[1] ~= poolitem[2] then
stacksize = stacksize .. "–" .. poolitem[2]
end
local itemweight = poolitem[3]
local pool_total_item_weight = 0
for itemname, item in pairs(pool.items) do
pool_total_item_weight = pool_total_item_weight + item[3]
end
local chance = p.calc_chance_any_of_this_item_per_pool(
pool.rolls[1], pool.rolls[2],
itemweight, pool_total_item_weight )
if poolchances[stacksize] == nil then
poolchances[stacksize] = chance
else
poolchances[stacksize] = poolchances[stacksize] + (1 - poolchances[stacksize]) * chance
end
end
end
for stacksize, chance in pairs( poolchances ) do
local excluded = false
for _, exclusion in pairs( exclusions[stacksize] or {} ) do
if exclusion["chest_name"] == chest_name and exclusion["chance"] == chance then
excluded = true
break
end
end
if not excluded then
if chances[stacksize] == nil then
chances[stacksize] = {}
end
table.insert( chances[stacksize], { ["chance"]=chance, ["chest_name"]=chest_name, ["chest_type"]=( chest.chest_type or "chest" ) } )
end
end
end
return chances
end,
single_item_plural = function( itemname )
if string.sub( itemname, -2 ) == 'ss'
or string.sub( itemname, -2 ) == 'ch'
or string.sub( itemname, -2 ) == 'sh'
or string.sub( itemname, -1 ) == 's' then
return itemname .. 'es'
end
return itemname .. 's'
end,
massage_args = function( args )
-- find what columns to put
local columns = {}
for k, _arg in pairs(args) do
if p.columns[_arg] ~= nil then
columns[_arg] = true
end
end
if q.tablelength(columns) == 0 then
for column_name, v in pairs(p.columns) do
columns[column_name] = true
end
end
-- find what chests to show
local chests = {}
for k, _arg in pairs(args) do
if p.chests[_arg] ~= nil then
table.insert( chests, _arg )
elseif p.synonyms[_arg] ~= nil then
table.insert( chests, p.synonyms[_arg] )
end
if p.display_names[_arg] ~= nil then
local chestname = _arg
if p.chests[chestname] == nil then
chestname = p.synonyms[_arg]
end
p.chests[chestname].display_name = p.display_names[_arg]
end
end
if #chests == 0 then
for chest_name, chest in pairs(p.chests) do
local chest_type = ( chest.chest_type or "chest" )
if chest_type == "chest" or chest_type == "minecart with chest" then
table.insert( chests, chest_name )
end
end
end
table.sort( chests )
return chests, columns
end,
sort_items = function( e1, e2 )
if e1.chanceany ~= e2.chanceany then return ( e1.chanceany > e2.chanceany ) end
if e1.avgamount ~= e2.avgamount then return ( e1.avgamount > e2.avgamount ) end
if e1.material == nil then
e1.material = 0
if string.find( e1.itemname, "leather" ) ~= nil then e1.material = 1 end
if string.find( e1.itemname, "iron" ) ~= nil then e1.material = 2 end
if string.find( e1.itemname, "gold" ) ~= nil then e1.material = 3 end
if string.find( e1.itemname, "diamond" ) ~= nil then e1.material = 4 end
if string.find( e1.itemname, "netherite" ) ~= nil then e1.material = 5 end
e1.armor = 0
if string.find( e1.itemname, "helmet" ) ~= nil or string.find( e1.itemname, "cap" ) ~= nil then e1.armor = 1 end
if string.find( e1.itemname, "chestplate" ) ~= nil or string.find( e1.itemname, "tunic" ) ~= nil then e1.armor = 2 end
if string.find( e1.itemname, "leggings" ) ~= nil or string.find( e1.itemname, "pants" ) ~= nil then e1.armor = 3 end
if string.find( e1.itemname, "boots" ) ~= nil then e1.armor = 4 end
end
if e2.material == nil then
e2.material = 0
if string.find( e2.itemname, "leather" ) ~= nil then e2.material = 1 end
if string.find( e2.itemname, "iron" ) ~= nil then e2.material = 2 end
if string.find( e2.itemname, "gold" ) ~= nil then e2.material = 3 end
if string.find( e2.itemname, "diamond" ) ~= nil then e2.material = 4 end
e2.armor = 0
if string.find( e2.itemname, "helmet" ) ~= nil or string.find( e2.itemname, "cap" ) ~= nil then e2.armor = 1 end
if string.find( e2.itemname, "chestplate" ) ~= nil or string.find( e2.itemname, "tunic" ) ~= nil then e2.armor = 2 end
if string.find( e2.itemname, "leggings" ) ~= nil or string.find( e2.itemname, "pants" ) ~= nil then e2.armor = 3 end
if string.find( e2.itemname, "boots" ) ~= nil then e2.armor = 4 end
end
if e1.material ~= e2.material then return ( e1.material < e2.material ) end
if e1.armor ~= e2.armor then return ( e1.armor < e2.armor ) end
return ( e1.itemname < e2.itemname )
end,
fill_in_chest_derivative_data = function( chest_names )
for k, chest_name in pairs(chest_names) do
local chest = p.chests[chest_name]
if chest == nil then break end
chest.allRollsJava = {}
chest.itemDataJava = {}
for k, pool in pairs( chest.poolsJava or {} ) do
table.insert( chest.allRollsJava, ( pool.rolls[1] == pool.rolls[2] and pool.rolls[1] or pool.rolls[1]..'–'..pool.rolls[2] ) )
local total_weight = 0
for itemname, item in pairs(pool.items) do
total_weight = total_weight + item[3]
end
pool.totalweight = total_weight
q.fill_in_chest_item_details( chest.itemDataJava, pool, #chest.allRollsJava )
end
chest.allRollsJavaUpcoming = {}
chest.itemDataJavaUpcoming = {}
for k, pool in pairs( chest.poolsJavaUpcoming or chest.poolsJava or {} ) do
table.insert( chest.allRollsJavaUpcoming, ( pool.rolls[1] == pool.rolls[2] and pool.rolls[1] or pool.rolls[1]..'–'..pool.rolls[2] ) )
local total_weight = 0
for itemname, item in pairs(pool.items) do
total_weight = total_weight + item[3]
end
pool.totalweight = total_weight
q.fill_in_chest_item_details( chest.itemDataJavaUpcoming, pool, #chest.allRollsJavaUpcoming )
end
chest.allRollsBedrock = {}
chest.itemDataBedrock = {}
for k, pool in pairs( chest.poolsBedrock or chest.poolsJava or {} ) do
table.insert( chest.allRollsBedrock, ( pool.rolls[1] == pool.rolls[2] and pool.rolls[1] or pool.rolls[1]..'–'..pool.rolls[2] ) )
local total_weight = 0
for itemname, item in pairs(pool.items) do
total_weight = total_weight + item[3]
end
pool.totalweight = total_weight
q.fill_in_chest_item_details( chest.itemDataBedrock, pool, #chest.allRollsBedrock )
end
chest.allRollsBedrockUpcoming = {}
chest.itemDataBedrockUpcoming = {}
for k, pool in pairs( chest.poolsBedrockUpcoming or chest.poolsJava or {} ) do
table.insert( chest.allRollsBedrockUpcoming, ( pool.rolls[1] == pool.rolls[2] and pool.rolls[1] or pool.rolls[1]..'–'..pool.rolls[2] ) )
local total_weight = 0
for itemname, item in pairs(pool.items) do
total_weight = total_weight + item[3]
end
pool.totalweight = total_weight
q.fill_in_chest_item_details( chest.itemDataBedrockUpcoming, pool, #chest.allRollsBedrockUpcoming )
end
end
end,
fill_in_chest_item_details = function( data, pool, ct )
for item_name, item in pairs(pool.items) do
if p.items[item_name] then
local min_stacksize = item[1]
local max_stacksize = item[2]
local min_pool_rolls = pool.rolls[1]
local max_pool_rolls = pool.rolls[2]
local item_weight = item[3]
if data[item_name] == nil then
data[item_name] = {
avgamount = 0,
chanceany = 0,
itemname = item_name,
sortsize = {},
sortweight = {},
sizes = {},
weights = {},
}
for i = 1, ct-1 do
data[item_name].sortsize[i] = 0
data[item_name].sortweight[i] = 0
data[item_name].sizes[i] = '—'
data[item_name].weights[i] = '—'
end
end
data[item_name].avgamount = data[item_name].avgamount + p.calc_average_amount_this_item_per_pool(
min_stacksize, max_stacksize,
min_pool_rolls, max_pool_rolls,
item_weight, pool.totalweight )
data[item_name].chanceany = data[item_name].chanceany + (1 - data[item_name].chanceany) * p.calc_chance_any_of_this_item_per_pool(
min_pool_rolls, max_pool_rolls,
item_weight, pool.totalweight )
data[item_name].sortsize[ct] = ( min_stacksize + max_stacksize ) / 2
data[item_name].sortweight[ct] = item_weight;
data[item_name].sizes[ct] = ( min_stacksize == max_stacksize and min_stacksize or min_stacksize .. '–' .. max_stacksize )
data[item_name].weights[ct] = p.current_frame:expandTemplate{ title = 'frac', args = { item_weight, pool.totalweight } }
end
end
for item_name, d in pairs(data) do
if not d.sizes[ct] then
d.sortsize[ct] = 0
d.sortweight[ct] = 0
d.sizes[ct] = '—'
d.weights[ct] = '—'
end
end
end,
construct_ordered_items_from_first_chest = function( chest_names, suffix )
local items_from_first_table = {}
local item_chests = {}
local item_names_ordered = {}
for item_name, item in pairs( p.chests[chest_names[1]]['itemData'..suffix] ) do
table.insert( items_from_first_table, item )
end
table.sort( items_from_first_table, q.sort_items )
for k, item in pairs( items_from_first_table ) do
table.insert( item_names_ordered, item.itemname )
item_chests[item.itemname] = true
end
return item_names_ordered, item_chests
end,
get_ordered_items_from_other_chests = function( chest_names, item_chests, suffix )
local items_not_from_first_table = {}
for chest_idx = 2, #chest_names do
for item_name, item in pairs( p.chests[chest_names[chest_idx]]['itemData'..suffix] ) do
if item_chests[item_name] == nil then
p.items[item_name].itemname = item_name
table.insert( items_not_from_first_table, p.chests[chest_names[chest_idx]]['itemData'..suffix][item_name] )
item_chests[item_name] = true
end
end
end
table.sort( items_not_from_first_table, q.sort_items )
return items_not_from_first_table
end,
add_other_items_to_first_list = function( chest_names, item_names_ordered, item_chests, items_not_from_first_table )
for k, item in pairs( items_not_from_first_table ) do
table.insert( item_names_ordered, item.itemname )
end
return item_names_ordered
end,
set_up_ordered_item_rows = function( chest_names, item_names_ordered, suffix )
for k, itemname in pairs(item_names_ordered) do
item_names_ordered[k] = {itemname}
for chest_idx = 1, #chest_names do
if suffix == 'JavaUpcoming' or p.chests[chest_names[chest_idx]]['pools'..suffix] ~= nil then
local item_data = p.chests[chest_names[chest_idx]]['itemData'..suffix][itemname]
if item_data == nil then
table.insert( item_names_ordered[k], false )
else
table.insert( item_names_ordered[k], item_data )
end
end
end
end
return item_names_ordered
end,
construct_ordered_item_rows = function( chest_names, suffix )
-- for the first chest, sort its by chance desc, then by avg amount desc, then alphabetically asc
local item_names_ordered, item_chests = q.construct_ordered_items_from_first_chest( chest_names, suffix )
if #chest_names > 1 then
-- after that, sort all the remaining items in list order
local items_not_from_first_table = q.get_ordered_items_from_other_chests( chest_names, item_chests, suffix )
item_names_ordered = q.add_other_items_to_first_list( chest_names, item_names_ordered, item_chests, items_not_from_first_table )
end
-- set up item_names_ordered so that each is a row, representing chest values
item_names_ordered = q.set_up_ordered_item_rows( chest_names, item_names_ordered, suffix )
return item_names_ordered
end,
print_table = function( chest_names, columns, ordered_item_rows, suffix )
local html = {}
local use_roll_row = false
local use_superheader = false
local superheader_sizes = {}
for i = 1, #chest_names do
sh = p.chests[chest_names[i]].superheader
if sh ~= nil then
if superheader_sizes[sh] == nil then
superheader_sizes[sh] = 0
end
superheader_sizes[sh] = superheader_sizes[sh] + 1
if #chest_names > 1 then
use_superheader = true
end
end
local allRolls = p.chests[chest_names[i]]['allRolls'..suffix]
if #allRolls > 1 then
use_roll_row = true
end
end
if columns['stacksize'] == nil and columns['weight'] == nil then
use_roll_row = false
end
local rowspan = ( #chest_names > 1 and 1 or 0 ) + ( use_superheader and 1 or 0 ) + 1
local hide_col_description = rowspan > 1 and q.tablelength(columns) == 1
if use_roll_row then
rowspan = rowspan + 1
end
if q.tablelength(columns) == 1 then
for column_name, v in pairs(columns) do
table.insert( html, "Values represent " )
table.insert( html, p.columns[column_name]:lower() )
table.insert( html, "\n" )
end
end
if #chest_names == 1 then
if q.tablelength(columns) == 1 then
table.insert( html, "<br>" )
end
local chest_name = chest_names[1]
local allRolls = p.chests[chest_name]['allRolls'..suffix]
local chest_type = p.chests[chest_name].chest_type or "chest"
local display_name = p.chests[chest_name].display_name
chest_name = chest_name:gsub( "-", " " )
table.insert( html, "Each " )
table.insert( html, display_name or chest_name )
if chest_type ~= 'chest' and chest_type ~= 'minecart with chest' then
table.insert( html, " contains " )
else
table.insert( html, " chest contains " )
end
if #allRolls == 1 then
table.insert( html, allRolls[1] )
table.insert( html, " item stacks, " )
else
table.insert( html, ' items drawn from ' )
table.insert( html, #allRolls )
table.insert( html, ' pools, ' )
end
table.insert( html, " with the following distribution: \n" )
end
table.insert( html, '<div style="overflow:auto">\n' )
table.insert( html, '<table class="wikitable sortable jquery-tablesorter">\n' )
table.insert( html, "<tr>\n" )
table.insert( html, "<th rowspan=" )
table.insert( html, ( rowspan - ( hide_col_description and 1 or 0 ) ) )
table.insert( html, "> Item </th>\n" )
local superheader_cols_used = {}
if #chest_names > 1 then
local row1, row2 = {}, {}
for i = 1, #chest_names do
if suffix == 'JavaUpcoming' or p.chests[chest_names[i]]['pools'..suffix] ~= nil then
local allRolls = p.chests[chest_names[i]]['allRolls'..suffix]
local colspan = q.tablelength(columns)
local allRollsSpan = #allRolls == 0 and 1 or #allRolls
if columns['stacksize'] ~= nil then
colspan = colspan - 1 + allRollsSpan
end
if columns['weight'] ~= nil then
colspan = colspan - 1 + allRollsSpan
end
local row = row1
rowspan = 1
if use_superheader then
sh = p.chests[chest_names[i]].superheader
if sh ~= nil then
if superheader_cols_used[sh] == nil then
table.insert( row, "<th colspan=" )
table.insert( row, ( colspan * superheader_sizes[sh] ) )
table.insert( row, ">" )
table.insert( row, sh )
table.insert( row, "</th>\n" )
superheader_cols_used[sh] = 0
end
row = row2
else
rowspan = rowspan + 1
end
end
if use_roll_row and hide_col_description and #allRolls < 2 then
rowspan = rowspan + 1
end
table.insert( row, "<th colspan=" )
table.insert( row, colspan )
if rowspan > 1 then
table.insert( row, " rowspan=" )
table.insert( row, rowspan )
end
table.insert( row, ">" )
table.insert( row, p.chests[ chest_names[i] ].header )
if #allRolls > 0 then
table.insert( row, ' <br><span style="font-weight:normal; font-style:italic; font-size:11px;">(' )
if #allRolls == 1 then
table.insert( row, allRolls[1] )
else
local s = ( #allRolls > 2 and ', ' or ' ' )
for i = 1, #allRolls-1 do
table.insert( row, allRolls[i] )
table.insert( row, s )
end
table.insert( row, 'and ' )
table.insert( row, allRolls[#allRolls] )
end
table.insert( row, ' stacks)</span>' )
end
table.insert( row, "</th>\n" )
end
end
table.insert( html, table.concat( row1 ) )
table.insert( html, "</tr><tr>\n" )
if #row2 then
table.insert( html, table.concat( row2 ) )
table.insert( html, "</tr><tr>\n" )
end
end
if not hide_col_description then
local headersort_th_open
if use_roll_row then
headersort_th_open = "<th rowspan='2' class='headersort' role='columnheader button' data-sort-type='number'> <abbr title='"
else
headersort_th_open = "<th class='headersort' role='columnheader button' data-sort-type='number'> <abbr title='"
end
for i = 1, #chest_names do
if suffix == 'JavaUpcoming' or p.chests[chest_names[i]]['pools'..suffix] ~= nil then
local allRolls = p.chests[chest_names[i]]['allRolls'..suffix]
local allRollsSpan = #allRolls == 0 and 1 or #allRolls
local headersort_th_colspan_open
if #allRolls > 1 then
headersort_th_colspan_open = "<th colspan='" .. allRollsSpan .. "' role='columnheader'> <abbr title='"
else
headersort_th_colspan_open = headersort_th_open
end
if columns['stacksize'] ~= nil then
table.insert( html, headersort_th_colspan_open )
table.insert( html, p.columns['stacksize'] )
table.insert( html, "'> Stack Size </abbr> <span class=mobileonly>")
table.insert( html, p.current_frame:extensionTag{
name = 'ref', content = p.columns['stacksize'], args = { name = 'stacksize', group = 'FN' }
} )
table.insert( html, "</span></th>\n" )
end
if columns['weight'] ~= nil then
table.insert( html, headersort_th_colspan_open )
table.insert( html, p.columns['weight'] )
table.insert( html, "'> Weight </abbr> <span class=mobileonly> ")
table.insert( html, p.current_frame:extensionTag{
name = 'ref', content = p.columns['weight'], args = { name = 'weight', group = 'FN' }
} )
table.insert( html, "</span></th>\n" )
end
if columns['chance'] ~= nil then
table.insert( html, headersort_th_open )
table.insert( html, p.columns['chance'] )
table.insert( html, "'> Chance </abbr> <span class=mobileonly> ")
table.insert( html, p.current_frame:extensionTag{
name = 'ref', content = p.columns['chance'], args = { name = 'chance', group = 'FN' }
} )
table.insert( html, "</span></th>\n" )
end
if columns['items'] ~= nil then
table.insert( html, headersort_th_open )
table.insert( html, p.columns['items'] )
table.insert( html, "'> Avg.<br>per chest </abbr> <span class=mobileonly> ")
table.insert( html, p.current_frame:extensionTag{
name = 'ref', content = p.columns['items'], args = { name = 'items', group = 'FN' }
} )
table.insert( html, "</span></th>\n" )
end
if columns['chests'] ~= nil then
table.insert( html, headersort_th_open )
table.insert( html, p.columns['chests'] )
table.insert( html, "'> Avg. # chests<br>to search </abbr> <span class=mobileonly> ")
table.insert( html, p.current_frame:extensionTag{
name = 'ref', content = p.columns['chests'], args = { name = 'chests', group = 'FN' }
} )
table.insert( html, "</span></th>\n" )
end
end
end
table.insert( html, "</tr><tr>\n" )
end
if use_roll_row then
local rowcols = ( columns['stacksize'] ~= nil and 1 or 0 ) + ( columns['weight'] ~= nil and 1 or 0 )
for i = 1, #chest_names do
local allRolls = p.chests[chest_names[i]]['allRolls'..suffix]
if #allRolls > 1 then
for j = 1, rowcols do
for k = 1, #allRolls do
table.insert( html, "<th class='headersort' role='columnheader button' data-sort-type='number' style='font-weight:normal'><abbr title='The chest draws " )
table.insert( html, allRolls[k] )
table.insert( html, " stack(s) randomly from this pool.'>" )
table.insert( html, allRolls[k] )
table.insert( html, "×</abbr></th>\n" )
end
end
end
end
table.insert( html, "</tr><tr>\n" )
end
for i = 1, #ordered_item_rows do
if type( ordered_item_rows[i] ) == "table" then
for j = 1, #ordered_item_rows[i] do
local chest_item = ordered_item_rows[i][j]
if type( chest_item ) == "table" then
local avg_amount = string.format("%.3f", chest_item.avgamount)
local chance_any = string.format("%.1f", chest_item.chanceany*100) .. "%"
local num_chests = string.format("%.1f", 1/chest_item.chanceany)
table.insert( html, "\n" )
if columns['stacksize'] ~= nil then
for k = 1, #chest_item.sizes do
table.insert( html, "<td style='text-align:center;' data-sort-value='" )
table.insert( html, ( chest_item.sortsize[k] == 0 and "9e99" or chest_item.sortsize[k] ) )
table.insert( html, "'>" )
table.insert( html, chest_item.sizes[k] )
table.insert( html, "</td>" )
end
end
if columns['weight'] ~= nil then
for k = 1, #chest_item.sizes do
table.insert( html, "<td style='text-align:center;' data-sort-value='" )
table.insert( html, ( chest_item.sortweight[k] == 0 and "9e99" or chest_item.sortweight[k] ) )
table.insert( html, "'>" )
table.insert( html, chest_item.weights[k] )
table.insert( html, "</td>" )
end
end
if columns['chance'] ~= nil then
table.insert( html, "<td style='text-align:center;'>" )
table.insert( html, chance_any )
table.insert( html, "</td>" )
end
if columns['items'] ~= nil then
table.insert( html, "<td style='text-align:center;'>" )
table.insert( html, avg_amount )
table.insert( html, "</td>" )
end
if columns['chests'] ~= nil then
table.insert( html, "<td style='text-align:center;'>" )
table.insert( html, num_chests )
table.insert( html, "</td>" )
end
elseif type( chest_item ) == "boolean" then
local allRolls = p.chests[chest_names[j-1]]['allRolls'..suffix]
local allRollsSpan = #allRolls == 0 and 1 or #allRolls
table.insert( html, "\n" )
if columns['stacksize'] ~= nil then
for k = 1, allRollsSpan do
table.insert( html, "<td data-sort-value='9e99' style='text-align:center;'>—</td>" )
end
end
if columns['weight'] ~= nil then
for k = 1, allRollsSpan do
table.insert( html, "<td data-sort-value='9e99' style='text-align:center;'>—</td>" )
end
end
if columns['chance'] ~= nil then
table.insert( html, "<td data-sort-value='9e99' style='text-align:center;'>—</td>" )
end
if columns['items'] ~= nil then
table.insert( html, "<td data-sort-value='9e99' style='text-align:center;'>—</td>" )
end
if columns['chests'] ~= nil then
table.insert( html, "<td data-sort-value='9e99' style='text-align:center;'>—</td>" )
end
else
if i > 1 then
table.insert( html, "</tr><tr>" )
end
local item = p.items[chest_item]
local s = require( 'Module:Sprite' )
table.insert( html, "\n<td>" )
local image, spriteCat = s.link {
id = item.id or chest_item,
link = item.link or string.gsub(chest_item,'-',' '),
text = item.title or q.titlecase(string.gsub(chest_item,'-',' ')),
wrap = 'true',
data = ( item[1] == 'item' and 'ItemSprite' or 'BlockSprite' )
}
table.insert( html, image )
table.insert( html, spriteCat )
if item.note and p.notes[item.note] then
table.insert( html, p.current_frame:extensionTag( 'ref', p.notes[item.note], { group='FN', name=item.note } ) )
end
if item.note1 and p.notes[item.note1] then
if item.note == nil or p.notes[item.note] == nil or item.note ~= item.note1 then
table.insert( html, p.current_frame:extensionTag( 'ref', p.notes[item.note1], { group='FN', name=item.note1 } ) )
end
end
table.insert( html, "</td>" )
end
if j == #ordered_item_rows[i] then
table.insert( html, "</tr>" )
end
end
table.insert( html, "\n" )
end
end
table.insert( html, "</table></div>")
return table.concat( html )
end,
titlecase = function( str )
local buf = {}
for word in string.gfind(str, "%S+") do
if word == "and" then
table.insert( buf, word )
else
local first, rest = string.sub( word, 1, 1 ), string.sub( word, 2 )
table.insert( buf, string.upper(first) .. string.lower(rest) )
end
end
return table.concat( buf, " " )
end,
capitalize = function( str )
return ( string.lower(str):gsub( "^%l", string.upper ) )
end,
lcfirst = function( str )
return ( string.gsub( str, "^%u", string.lower ) )
end,
compare_tables = function( a, b )
local seen = {}
for k, v in pairs( a ) do
if type( v ) ~= type( b[k] ) then
return true
end
if v ~= b[k] then
return true
end
if type( v ) == 'table' and q.compare_tables( v, b[k] ) then
return true
end
seen[k] = true
end
for k, v in pairs( b ) do
if not seen[k] then
return true
end
end
return false
end,
}
string.lpad = function(str, len, char)
if char == nil then char = ' ' end
return string.rep(char, len - #(''..str)) .. str
end
return p