Minecraft Wiki
Advertisement

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 = pool_total_item_weight local cur_divisor = pool_total_item_weight * (max_pool_rolls - min_pool_rolls + 1) for i = 0, 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.20[upcoming]", bedrock = "Bedrock Edition", ['bedrock-upcoming'] = "Bedrock Edition 1.20.0[upcoming]",

-- 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 = { ["Акацієва колода"] = { "block", link="Колода" }, ["Саджанець акації"] = { "block", link="Sapling" }, ["activator-rail"] = { "block" }, ["Уламок аметисту"] = { "item" }, ["ancient-debris"] = { "block", plural=false }, ["Яблуко"] = { "item" }, ["Стріла"] = { "item" }, ["Запечена картопля"] = { "item" }, ["Бамбук"] = { "item", plural=false }, ["Бочка"] = { "block" }, ["Базальт"] = { "block", plural=false }, ["Буряк"] = { "item" }, ["Насіння буряка"] = { "item", plural=false }, ["Борщ"] = { "item", plural=false, cannot_stack=true }, ["Дзвін"] = { "block" }, ["Березова колода"] = { "block", link="Колода" }, ["Саджанець берези"] = { "block", link="Sapling" }, ["Чорна вовна"] = { "block", link="Wool", plural=false }, ["Золотий блок"] = { "block", title="Block of Gold", link="Block of Gold", plural="blocks of gold" }, ["Залізний блок"] = { "block", title="Block of Iron", link="Block of Iron", plural="blocks of iron" }, ["Синій лід"] = { "block", plural=false }, ["Кістка"] = { "item" }, ["Кістяний блок"] = { "block" }, ["Книга"] = { "item" }, ["Книга й перо"] = { "item", plural=false, title="Book and Quill" }, ["bottle-o'-enchanting"] = { "item", title="Bottle o' Enchanting", plural="bottles o' enchanting" }, ["Хліб"] = { "item", plural=false }, ["Коричневий гриб"] = { "block", link="Mushroom" }, ["Коричнева вовна"] = { "block", link="Wool", plural=false }, ["Відро"] = { "item" },

       ["buried-treasure-map"] = { "item", link="Explorer Map" },

["Кактус"] = { "block", plural=false }, ["Торт"] = { "block", plural=false }, ["candle"] = { "item" }, ["Морква"] = { "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 }, ["Глиняна кулька"] = { "item", link="Clay Ball", plural=false }, ["Годинник"] = { "item" }, ["Вугілля"] = { "item", plural=false }, ["Какао-боби"] = { "item", plural=false }, ["Смажена тріска"] = { "item", plural=false}, ["Смажена свинина"] = { "item" }, ["Смажений лосось"] = { "item", plural=false}, ["Компас"] = { "item" }, ["crimson-fungus"] = { "block", link="Fungus", plural= "crimson fungi" }, ["crimson-nylium"] = { "block", link="Nylium", plural=false}, ["crimson-roots"] = { "block", link="Roots", plural=false}, ["Арбалет"] = { "item", cannot_stack=true }, ["crying-obsidian"] = { "block" }, ["dandelion"] = { "block", link="Flower" }, ["dark-oak-log"] = { "block", link="Колода" }, ["dark-oak-sapling"] = { "block", link="Sapling" }, ["Мертвий кущ"] = { "block", link="Dead Bush" }, ["detector-rail"] = { "block" }, ["Діамант"] = { "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 }, ["Діамантова лопата"] = { "item", link="Shovel", cannot_stack=true }, ["Діамантовий меч"] = { "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-fragment-5"] = { "item", title="Disc Fragment (5)", link="Disc Fragment" }, ["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 }, ["echo-shard"] = { "item" }, ["Яйце"] = { "item" }, ["Смарагд"] = { "item" }, ["Порожня мапа"] = { "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" }, ["Перлина Енду"] = { "item" }, ["Перо"] = { "item" }, ["Папороть"] = { "block", link="Grass" }, ["fire-charge"] = { "item" }, ["Кремінь"] = { "item", plural=false }, ["flint-and-steel"] = { "item", cannot_stack=true, plural=false }, ["flower-pot"] = { "item" }, ["Піч"] = { "block" }, ["gilded-blackstone"] = { "block", plural=false }, ["glistering-melon-slice"] = { "item" }, ["glowstone"] = { "block" }, ["glow-berries"] = { "item", plural=false }, ["goat-horn"] = { "item", cannot_stack=true, note="regular-goat-horn" }, ["golden-apple"] = { "item" }, ["golden-boots"] = { "item", link="Armor", cannot_stack=true, plural=false }, ["Золота морква"] = { "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 }, ["Золотий меч"] = { "item", link="Sword", cannot_stack=true }, ["Золотий зливок"] = { "item" }, ["Золотий самородок"] = { "item" }, ["grass"] = { "block", link="Grass", plural=false }, ["Сіра вовна"] = { "block", link="Wool", plural=false }, ["Зелений барвник"] = { "item", link="Dye", plural=false }, ["Порох"] = { "item", plural=false }, ["Серце моря"] = { "item", plural=false, link="Heart of the Sea" }, ["Чорнильний мішок"] = { "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 }, ["Залізний зливок"] = { "item" }, ["iron-leggings"] = { "item", link="Armor", cannot_stack=true, plural=false }, ["Залізний самородок"] = { "item" }, ["Залізне кайло"] = { "item", link="Pickaxe", cannot_stack=true }, ["Залізна лопата"] = { "item", link="Shovel", cannot_stack=true }, ["Залізний меч"] = { "item", link="Sword", cannot_stack=true }, ["jungle-log"] = { "block", link="Колода" }, ["jungle-sapling"] = { "block", link="Sapling" }, ["Лазурит"] = { "item", plural=false }, ["Велика папороть"] = { "block", link="Grass" }, ["lead"] = { "item" }, ["Шкіра"] = { "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 }, ["Світло-сіра вовна"] = { "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" }, ["mangrove-log"] = { "block", link="Колода" }, ["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="Колода" }, ["oak-planks"] = { "block", link="Planks", id="oak-wood-planks", plural=false }, ["Саджанець дубу"] = { "block", link="Sapling" }, ["Дубова табличка"] = { "item", link="Sign" }, ["Обсидіан"] = { "block", plural=false }, ["Сухий лід"] = { "block" }, ["Папір"] = { "item", plural=false }, ["Отруйна картопля"] = { "item", plural="poisonous potatoes" }, ["Полірований базальт"] = { "block", plural=false }, ["Мак"] = { "block", link="Flower", plural="poppies" }, ["Картопля"] = { "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 }, ["Гарбуз"] = { "block" }, ["Гарбузовий пиріг"] = { "item", plural=false }, ["Насіння гарбуза"] = { "item", plural=false }, ["Рейки"] = { "block", title="Rails", plural=false }, ["Сира яловичина"] = { "item", link="Raw Beef", plural=false }, ["Сира тріска"] = { "item", link="Raw Cod", plural=false }, ["Сира баранина"] = { "item", link="Raw Mutton", plural=false }, ["Сира свинина"] = { "item", link="Raw Porkchop" }, ["Сирий лосось"] = { "item", link="Raw Salmon", plural=false }, ["Редстоун"] = { "item", id="redstone-dust", title="Redstone Dust", plural=false }, ["Гнила плоть"] = { "item", plural=false }, ["Сідло"] = { "item", cannot_stack=true }, ["Пісок"] = { "block", plural=false }, ["sculk"] = { "block" }, ["sculk-catalyst"] = { "block" }, ["sculk-sensor"] = { "block" }, ["Ножиці"] = { "item", plural=false, cannot_stack=true }, ["Гладкий камінь"] = { "block", plural=false }, ["snowball"] = { "item", link="Snowball" }, ["Блок снігу"] = { "block", link="Snow Block" }, ["snout-banner-pattern"] = { "item", id="banner-pattern", link="Banner Pattern", cannot_stack=true }, ["Пісок душ"] = { "block" }, ["Смолоскип душ"] = { "block", link="Torch" }, ["spectral-arrow"] = { "item" }, ["Павуче око"] = { "item" }, ["spruce-log"] = { "block", link="Колода" }, ["spruce-sapling"] = { "block", link="Sapling" }, ["spruce-sign"] = { "item", link="Sign" }, ["Палиця"] = { "item" }, ["Камінь"] = { "block", plural=false }, ["Дерев'яна сокира"] = { "item", link="Axe", cannot_stack=true }, ["Кам'яна цегла"] = { "block", plural=false }, ["Кам'яне кайло"] = { "item", link="Pickaxe", cannot_stack=true }, ["Нитка"] = { "item", plural=false }, ["Підозріла юшка"] = { "item", plural=false, note="suspicious-stew" }, ["Підозріла юшка-2"] = { "item", plural=false, note="suspicious-stew-2", id="suspicious-stew", link="Suspicious Stew", title="Suspicious Stew" }, ["Солодкі ягоди"] = { "item", plural=false }, ["Висока трава"] = { "block", plural=false, link="Grass" }, ["Динаміт"] = { "block", title="TNT", plural=false, preserve_case=true }, ["Смолоскип"] = { "block" }, ["Гак для розтяжки"] = { "block" }, ["Відро води"] = { "item", cannot_stack=true }, ["Пшениця"] = { "item", plural=false }, ["Насіння пшениці"] = { "item", plural=false }, ["Біла вовна"] = { "block", link="Wool", plural=false }, ["Дерев'яна сокира"] = { "item", link="Axe", cannot_stack=true }, ["Дерев'яна мотика"] = { "item", link="Hoe", cannot_stack=true }, ["Дерев'яне кайло"] = { "item", link="Pickaxe", cannot_stack=true }, ["Жовтий барвник"] = { "item", link="Dye", plural=false }, ["Мапа"] = { "item", link="Map", note="map" },

["coast-armor-trim-smithing-template"] = { "item", link="Smithing Template" }, ["dune-armor-trim-smithing-template"] = { "item", link="Smithing Template" }, ["eye-armor-trim-smithing-template"] = { "item", link="Smithing Template" }, ["netherite-upgrade-smithing-template"] = { "item", link="Smithing Template" }, ["rib-armor-trim-smithing-template"] = { "item", link="Smithing Template" }, ["sentry-armor-trim-smithing-template"] = { "item", link="Smithing Template" }, ["snout-armor-trim-smithing-template"] = { "item", link="Smithing Template" }, ["spire-armor-trim-smithing-template"] = { "item", link="Smithing Template" }, ["tide-armor-trim-smithing-template"] = { "item", link="Smithing Template" }, ["vex-armor-trim-smithing-template"] = { "item", link="Smithing Template" }, ["ward-armor-trim-smithing-template"] = { "item", link="Smithing Template" }, ["wild-armor-trim-smithing-template"] = { "item", link="Smithing Template" },

["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 enchantments (except Soul Speed, and Swift Sneak), 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 would be on an enchantment table that was able to apply treasure enchantments (except Soul Speed, and Swift Sneak), 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 would be on an enchantment table that was able to apply treasure enchantments (except Soul Speed, and Swift Sneak), 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 would be on an enchantment table that was able to apply treasure enchantments (except Soul Speed, and Swift Sneak), 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 would be on an enchantment table that was able to apply treasure enchantments (except Soul Speed, and Swift Sneak), 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 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 Swift Sneak), 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 enchantments (except Soul Speed, and Swift Sneak), 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 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 Swift Sneak), 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.", ["Підозріла юшка"] = "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.", ["Підозріла юшка-2"] = "The stew grants one of the following effects: 5-7 seconds of Blindness, or 7-10 seconds of Night Vision.", ["Мапа"] = "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.", ["regular-goat-horn"] = "Does not contain goat horn variants that drop from screaming goats.",

-- 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 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 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 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 /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 header = "Ancient City", link = "Ancient City", structure = "Ancient City", container = "", structID = "ancient city", poolsJava = { { rolls = {5,10}, items = { ["enchanted-golden-apple"] = {1,2,1}, ["disc-otherside"] = {1,1,1}, ["Компас"] = {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}, ["Сідло"] = {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}, ["Уламок аметисту"] = {1,15,3}, ["bottle-o'-enchanting"] = {1,3,3}, ["glow-berries"] = {1,15,3}, ["level-enchanted-iron-leggings"] = {1,1,3}, ["echo-shard"] = {1,3,4}, ["disc-fragment-5"] = {1,3,4}, ["potion-of-regeneration"] = {1,3,5}, ["enchanted-book-rnd"] = {1,1,5}, ["Книга"] = {3,10,5}, ["Кістка"] = {1,15,5}, ["Смолоскип душ"] = {1,15,5}, ["Вугілля"] = {6,15,7}, } }, }, poolsJavaUpcoming = {

               {

rolls = {5,10}, items = { ["enchanted-golden-apple"] = {1,2,1}, ["disc-otherside"] = {1,1,1}, ["Компас"] = {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}, ["Сідло"] = {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}, ["Уламок аметисту"] = {1,15,3}, ["bottle-o'-enchanting"] = {1,3,3}, ["glow-berries"] = {1,15,3}, ["level-enchanted-iron-leggings"] = {1,1,3}, ["echo-shard"] = {1,3,4}, ["disc-fragment-5"] = {1,3,4}, ["potion-of-regeneration"] = {1,3,5}, ["enchanted-book-rnd"] = {1,1,5}, ["Книга"] = {3,10,5}, ["Кістка"] = {1,15,5}, ["Смолоскип душ"] = {1,15,5}, ["Вугілля"] = {6,15,7}, } }, { rolls = {1,1}, items = { ["ward-armor-trim-smithing-template"] = {1,1,1}, ["empty"] = {1,1,19} } } }, poolsBedrock = { { rolls = {5,10}, items = { ["enchanted-golden-apple"] = {1,2,1}, ["disc-otherside"] = {1,1,1}, ["Компас"] = {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}, ["Сідло"] = {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}, ["Уламок аметисту"] = {1,15,3}, ["bottle-o'-enchanting"] = {1,3,3}, ["glow-berries"] = {1,15,3}, ["level-enchanted-iron-leggings"] = {1,1,3}, ["echo-shard"] = {1,3,4}, ["disc-fragment-5"] = {1,3,4}, ["potion-of-regeneration"] = {1,3,5}, ["enchanted-book-rnd"] = {1,1,5}, ["Книга"] = {3,10,5}, ["Кістка"] = {1,15,5}, ["Смолоскип душ"] = {1,15,5}, ["Вугілля"] = {6,15,7}, } }}, poolsBedrockUpcoming = {} }, ["ancient-city-ice-box"] = { -- ancient_city_ice_box.json header = "Ancient City", link = "Ancient City", structure = "Ancient City", container = "Ice box chest", structID = "ancient city", poolsJava = { { rolls = {4,10}, items = { ["Підозріла юшка-2"] = {2,6,1}, ["Золота морква"] = {1,10,1}, ["Запечена картопля"] = {1,10,1}, ["Сухий лід"] = {2,6,2}, ["snowball"] = {2,6,4}, } }, }, poolsJavaUpcoming = {}, poolsBedrock = { { rolls = {4,10}, items = { ["Підозріла юшка-2"] = {2,6,1}, ["Золота морква"] = {1,10,1}, ["Запечена картопля"] = {1,10,1}, ["Сухий лід"] = {2,6,2}, ["snowball"] = {2,6,4}, } }, }, 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 = { ["Компас"] = {1,1,1}, ["Порожня мапа"] = {1,1,1}, ["Годинник"] = {1,1,1}, ["Папір"] = {1,10,20}, ["Перо"] = {1,5,10}, ["Книга"] = {1,5,5}, } }, }, poolsJavaUpcoming = { { rolls = {1,1}, items = { ["buried-treasure-map"] = {1,1,1}, } }, { rolls = {3,3}, items = { ["Компас"] = {1,1,1}, ["Порожня мапа"] = {1,1,1}, ["Годинник"] = {1,1,1}, ["Папір"] = {1,10,20}, ["Перо"] = {1,5,10}, ["Книга"] = {1,5,5}, } },{ rolls = {1,1}, items = { ["coast-armor-trim-smithing-template"] = {2,2,1}, ["empty"] = {1,1,5} } } }, poolsBedrock = { { rolls = {1,1}, items = { ["buried-treasure-map"] = {1,1,1}, } }, { rolls = {3,3}, items = { ["Компас"] = {1,1,1}, ["Мапа"] = {1,1,1}, ["Годинник"] = {1,1,1}, ["Папір"] = {1,10,20}, ["Перо"] = {1,5,10}, ["Книга"] = {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 = { ["Папір"] = {1,12,8}, ["Картопля"] = {2,6,7}, ["moss-block"] = {1,4,7}, ["Отруйна картопля"] = {2,6,7}, ["Морква"] = {4,8,7}, ["Пшениця"] = {8,21,7}, ["Вугілля"] = {2,8,6}, ["Гнила плоть"] = {5,24,5}, ["Бамбук"] = {1,3,2}, ["Підозріла юшка"] = {1,1,10}, ["Гарбуз"] = {1,3,2}, ["Порох"] = {1,5,3}, ["Динаміт"] = {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 = { { rolls = {3,10}, items = { ["Папір"] = {1,12,8}, ["Картопля"] = {2,6,7}, ["moss-block"] = {1,4,7}, ["Отруйна картопля"] = {2,6,7}, ["Морква"] = {4,8,7}, ["Пшениця"] = {8,21,7}, ["Вугілля"] = {2,8,6}, ["Гнила плоть"] = {5,24,5}, ["Бамбук"] = {1,3,2}, ["Підозріла юшка"] = {1,1,10}, ["Гарбуз"] = {1,3,2}, ["Порох"] = {1,5,3}, ["Динаміт"] = {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}, } },{ rolls = {1,1}, items = { ["coast-armor-trim-smithing-template"] = {2,2,1}, ["empty"] = {1,1,5} } } }, poolsBedrock = { { rolls = {3,10}, items = { ["Папір"] = {1,12,8}, ["Картопля"] = {2,6,7}, ["Отруйна картопля"] = {2,6,7}, ["moss-block"] = {1,4,7}, ["Морква"] = {4,8,7}, ["Пшениця"] = {8,21,7}, ["Вугілля"] = {2,8,6}, ["Гнила плоть"] = {5,24,5}, ["Бамбук"] = {1,3,2}, ["Підозріла юшка"] = {1,1,10}, ["Гарбуз"] = {1,3,2}, ["Порох"] = {1,5,3}, ["Динаміт"] = {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 = { ["Залізний зливок"] = {1,5,90}, ["Золотий зливок"] = {1,5,10}, ["Смарагд"] = {1,5,40}, ["Діамант"] = {1,1,5}, ["bottle-o'-enchanting"] = {1,1,5}, } }, { rolls = {2,5}, items = { ["Залізний самородок"] = {1,10,50}, ["Золотий самородок"] = {1,10,10}, ["Лазурит"] = {1,10,20}, } }, }, poolsJavaUpcoming = { { rolls = {3,6}, items = { ["Залізний зливок"] = {1,5,90}, ["Золотий зливок"] = {1,5,10}, ["Смарагд"] = {1,5,40}, ["Діамант"] = {1,1,5}, ["bottle-o'-enchanting"] = {1,1,5}, } }, { rolls = {2,5}, items = { ["Залізний самородок"] = {1,10,50}, ["Золотий самородок"] = {1,10,10}, ["Лазурит"] = {1,10,20}, } },{ rolls = {1,1}, items = { ["coast-armor-trim-smithing-template"] = {2,2,1}, ["empty"] = {1,1,5} } } }, poolsBedrock = { { rolls = {3,6}, items = { ["Залізний зливок"] = {1,5,90}, ["Золотий зливок"] = {1,5,10}, ["Смарагд"] = {1,5,40}, ["Діамант"] = {1,1,5}, ["bottle-o'-enchanting"] = {1,1,5}, } }, { rolls = {2,5}, items = { ["Залізний самородок"] = {1,10,50}, ["Золотий самородок"] = {1,10,10}, ["Лазурит"] = {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 = { ["Серце моря"] = {1,1,1}, } }, { rolls = {5,8}, items = { ["Залізний зливок"] = {1,4,20}, ["Золотий зливок"] = {1,4,10}, ["Динаміт"] = {1,2,5}, } }, { rolls = {1,4}, items = { ["Смарагд"] = {4,8,5}, ["Діамант"] = {1,2,5}, ["prismarine-crystals"] = {1,5,5}, } }, { rolls = {0,1}, items = { ["leather-tunic"] = {1,1,1}, ["Залізний меч"] = {1,1,1}, } }, { rolls = {2,2}, items = { ["Смажена тріска"] = {2,4,1}, ["Смажений лосось"] = {2,4,1}, } }, { rolls = {0,2}, items = { ["potion-of-water-breathing"] = {1,1,1}, } }, }, poolsJavaUpcoming = {}, poolsBedrock = { { rolls = {1,1}, items = { ["Серце моря"] = {1,1,1}, } }, { rolls = {5,12}, items = { ["prismarine-crystals"] = {1,5,5}, ["Залізний зливок"] = {3,5,20}, ["Золотий зливок"] = {1,5,10}, ["Динаміт"] = {1,2,10}, ["Діамант"] = {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}, ["Книга й перо"] = {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}, ["Торт"] = {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 = { ["Вугілля"] = {1,4,10}, ["Золотий самородок"] = {1,3,10}, ["Смарагд"] = {1,1,1}, ["Пшениця"] = {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 = { ["Вугілля"] = {1,4,10}, ["Золотий самородок"] = {1,3,10}, ["Смарагд"] = {1,1,1}, ["Пшениця"] = {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 = { ["Вугілля"] = {1,4,10}, ["Дерев'яна сокира"] = {1,1,2}, ["Гнила плоть"] = {1,1,5}, ["Смарагд"] = {1,1,1}, ["Пшениця"] = {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 = { ["Вугілля"] = {1,4,10}, ["Дерев'яна сокира"] = {1,1,2}, ["Гнила плоть"] = {1,1,5}, ["Смарагд"] = {1,1,1}, ["Пшениця"] = {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 = { ["Залізний зливок"] = {1,3,2}, ["Хліб"] = {1,4,4}, ["iron-helmet"] = {1,1,1}, ["Смарагд"] = {1,1,1} } }, }, poolsJavaUpcoming = {}, poolsBedrock = { { rolls = {1,5}, items = { ["Залізний зливок"] = {1,3,2}, ["Хліб"] = {1,4,4}, ["iron-helmet"] = {1,1,1}, ["Смарагд"] = {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 = { ["Смарагд"] = {1,1,1}, ["Сира свинина"] = {1,3,6}, ["Пшениця"] = {1,3,6}, ["Сира яловичина"] = {1,3,6}, ["Сира баранина"] = {1,3,6}, ["Вугілля"] = {1,3,3} } }, }, poolsJavaUpcoming = {}, poolsBedrock = { { rolls = {1,5}, items = { ["Смарагд"] = {1,1,1}, ["Сира свинина"] = {1,3,6}, ["Пшениця"] = {1,3,6}, ["Сира яловичина"] = {1,3,6}, ["Сира баранина"] = {1,3,6}, ["Вугілля"] = {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 = { ["Порожня мапа"] = {1,3,10}, ["Папір"] = {1,5,15}, ["Компас"] = {1,1,5}, ["Хліб"] = {1,4,15}, ["Палиця"] = {1,2,5} } }, }, poolsJavaUpcoming = {}, poolsBedrock = { { rolls = {1,5}, items = { ["Мапа"] = {1,3,10}, ["Папір"] = {1,5,15}, ["Компас"] = {1,1,5}, ["Хліб"] = {1,4,15}, ["Саджанець дубу"] = {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 = { ["Смарагд"] = {1,1,1}, ["Сира тріска"] = {1,3,2}, ["Сирий лосось"] = {1,3,1}, ["Відро води"] = {1,3,1}, ["Бочка"] = {1,3,1}, ["Насіння пшениці"] = {1,3,3}, ["Вугілля"] = {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 = { ["Смарагд"] = {1,1,1}, ["Стріла"] = {1,3,2}, ["Перо"] = {1,3,6}, ["Яйце"] = {1,3,2}, ["Кремінь"] = {1,3,6}, ["Палиця"] = {1,3,6} } }, }, poolsJavaUpcoming = {}, poolsBedrock = { { rolls = {1,5}, items = { ["Смарагд"] = {1,1,1}, ["Стріла"] = {1,3,2}, ["Перо"] = {1,3,6}, ["Яйце"] = {1,3,2}, ["Кремінь"] = {1,3,6}, ["Палиця"] = {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 = { ["Глиняна кулька"] = {1,3,1}, ["flower-pot"] = {1,1,1}, ["Камінь"] = {1,1,2}, ["Кам'яна цегла"] = {1,1,2}, ["Хліб"] = {1,4,4}, ["Жовтий барвник"] = {1,1,1}, ["Гладкий камінь"] = {1,1,1}, ["Смарагд"] = {1,1,1} } }, }, poolsJavaUpcoming = {}, poolsBedrock = { { rolls = {1,5}, items = { ["Глиняна кулька"] = {1,3,1}, ["flower-pot"] = {1,1,1}, ["Камінь"] = {1,1,2}, ["Кам'яна цегла"] = {1,1,2}, ["Хліб"] = {1,4,4}, ["Жовтий барвник"] = {1,1,1}, ["Гладкий камінь"] = {1,1,1}, ["Смарагд"] = {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 = { ["Біла вовна"] = {1,8,6}, ["Чорна вовна"] = {1,3,3}, ["Сіра вовна"] = {1,3,2}, ["Коричнева вовна"] = {1,3,2}, ["Світло-сіра вовна"] = {1,3,2}, ["Смарагд"] = {1,1,1}, ["Ножиці"] = {1,1,1}, ["Пшениця"] = {1,6,6} } }, }, poolsJavaUpcoming = {}, poolsBedrock = { { rolls = {1,5}, items = { ["Біла вовна"] = {1,8,6}, ["Чорна вовна"] = {1,3,3}, ["Сіра вовна"] = {1,3,2}, ["Коричнева вовна"] = {1,3,2}, ["Світло-сіра вовна"] = {1,3,2}, ["Смарагд"] = {1,1,1}, ["Ножиці"] = {1,1,1}, ["Пшениця"] = {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 = { ["Шкіра"] = {1,3,1}, ["leather-tunic"] = {1,1,2}, ["leather-boots"] = {1,1,2}, ["leather-cap"] = {1,1,2}, ["Хліб"] = {1,4,5}, ["leather-pants"] = {1,1,2}, ["Сідло"] = {1,1,1}, ["Смарагд"] = {1,4,1} } }, }, poolsJavaUpcoming = {}, poolsBedrock = { { rolls = {1,5}, items = { ["Шкіра"] = {1,3,1}, ["leather-tunic"] = {1,1,2}, ["leather-boots"] = {1,1,2}, ["leather-cap"] = {1,1,2}, ["Хліб"] = {1,4,5}, ["leather-pants"] = {1,1,2}, ["Сідло"] = {1,1,1}, ["Смарагд"] = {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 = { ["Редстоун"] = {1,4,2}, ["Хліб"] = {1,4,7}, ["Гнила плоть"] = {1,4,7}, ["Лазурит"] = {1,4,1}, ["Золотий зливок"] = {1,4,1}, ["Смарагд"] = {1,4,1} } }, }, poolsJavaUpcoming = {}, poolsBedrock = { { rolls = {3,8}, items = { ["Редстоун"] = {1,4,2}, ["Хліб"] = {1,4,7}, ["Гнила плоть"] = {1,4,7}, ["Лазурит"] = {1,4,1}, ["Золотий зливок"] = {1,4,1}, ["Смарагд"] = {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 = { ["Діамант"] = {1,3,1}, ["Залізний зливок"] = {1,5,5}, ["Золотий зливок"] = {1,3,1}, ["Хліб"] = {1,3,15}, ["Залізне кайло"] = {1,1,5}, ["Вугілля"] = {1,3,1}, ["Палиця"] = {1,3,20}, ["Залізна лопата"] = {1,1,5} } }, }, poolsJavaUpcoming = {}, poolsBedrock = { { rolls = {3,8}, items = { ["Діамант"] = {1,3,1}, ["Залізний зливок"] = {1,5,5}, ["Золотий зливок"] = {1,3,1}, ["Хліб"] = {1,3,15}, ["Залізне кайло"] = {1,1,5}, ["Вугілля"] = {1,3,1}, ["Палиця"] = {1,3,20}, ["Залізна лопата"] = {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 = { ["Діамант"] = {1,3,3}, ["Залізний зливок"] = {1,5,10}, ["Золотий зливок"] = {1,3,5}, ["Хліб"] = {1,3,15}, ["Яблуко"] = {1,3,15}, ["Залізне кайло"] = {1,1,5}, ["Залізний меч"] = {1,1,5}, ["iron-chestplate"] = {1,1,5}, ["iron-helmet"] = {1,1,5}, ["iron-leggings"] = {1,1,5}, ["iron-boots"] = {1,1,5}, ["Обсидіан"] = {3,7,5}, ["Саджанець дубу"] = {3,7,5}, ["Сідло"] = {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 = { ["Діамант"] = {1,3,3}, ["Залізний зливок"] = {1,5,10}, ["Золотий зливок"] = {1,3,5}, ["Хліб"] = {1,3,15}, ["Яблуко"] = {1,3,15}, ["Залізне кайло"] = {1,1,5}, ["Залізний меч"] = {1,1,5}, ["iron-chestplate"] = {1,1,5}, ["iron-helmet"] = {1,1,5}, ["iron-leggings"] = {1,1,5}, ["iron-boots"] = {1,1,5}, ["Обсидіан"] = {3,7,5}, ["Саджанець дубу"] = {3,7,5}, ["Сідло"] = {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 = { ["Глиняна кулька"] = {1,1,1}, ["Зелений барвник"] = {1,1,1}, ["Кактус"] = {1,4,10}, ["Пшениця"] = {1,7,10}, ["Хліб"] = {1,4,10}, ["Книга"] = {1,1,1}, ["Мертвий кущ"] = {1,3,2}, ["Смарагд"] = {1,3,1} } }, }, poolsJavaUpcoming = {}, poolsBedrock = { { rolls = {3,8}, items = { ["Глиняна кулька"] = {1,1,1}, ["Зелений барвник"] = {1,1,1}, ["Кактус"] = {1,4,10}, ["Пшениця"] = {1,7,10}, ["Хліб"] = {1,4,10}, ["Книга"] = {1,1,1}, ["Мертвий кущ"] = {1,3,2}, ["Смарагд"] = {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 = { ["Золотий самородок"] = {1,3,1}, ["dandelion"] = {1,1,2}, ["Мак"] = {1,1,1}, ["Картопля"] = {1,7,10}, ["Хліб"] = {1,4,10}, ["Яблуко"] = {1,5,10}, ["Книга"] = {1,1,1}, ["Перо"] = {1,1,1}, ["Смарагд"] = {1,4,2}, ["Саджанець дубу"] = {1,2,5} } }, }, poolsJavaUpcoming = {}, poolsBedrock = { { rolls = {3,8}, items = { ["Золотий самородок"] = {1,3,1}, ["dandelion"] = {1,1,2}, ["Мак"] = {1,1,1}, ["Картопля"] = {1,7,10}, ["Хліб"] = {1,4,10}, ["Яблуко"] = {1,5,10}, ["Книга"] = {1,1,1}, ["Перо"] = {1,1,1}, ["Смарагд"] = {1,4,2}, ["Саджанець дубу"] = {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 = { ["Золотий самородок"] = {1,3,1}, ["grass"] = {1,1,5}, ["Висока трава"] = {1,1,5}, ["Хліб"] = {1,4,10}, ["Насіння пшениці"] = {1,5,10}, ["Смарагд"] = {1,4,2}, ["Саджанець акації"] = {1,2,10}, ["Сідло"] = {1,1,1}, ["Смолоскип"] = {1,2,1}, ["Відро"] = {1,1,1} } }, }, poolsJavaUpcoming = {}, poolsBedrock = { { rolls = {3,8}, items = { ["Золотий самородок"] = {1,3,1}, ["grass"] = {1,1,5}, ["Висока трава"] = {1,1,5}, ["Хліб"] = {1,4,10}, ["Насіння пшениці"] = {1,5,10}, ["Смарагд"] = {1,4,2}, ["Саджанець акації"] = {1,2,10}, ["Сідло"] = {1,1,1}, ["Смолоскип"] = {1,2,1}, ["Відро"] = {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 = { ["Синій лід"] = {1,1,1}, ["Блок снігу"] = {1,1,4}, ["Картопля"] = {1,7,10}, ["Хліб"] = {1,4,10}, ["Насіння буряка"] = {1,5,10}, ["Борщ"] = {1,1,1}, ["Піч"] = {1,1,1}, ["Смарагд"] = {1,4,1}, ["snowball"] = {1,7,10}, ["Вугілля"] = {1,4,5} } }, }, poolsJavaUpcoming = {}, poolsBedrock = { { rolls = {3,8}, items = { ["Синій лід"] = {1,1,1}, ["Блок снігу"] = {1,1,4}, ["Картопля"] = {1,7,10}, ["Хліб"] = {1,4,10}, ["Насіння буряка"] = {1,5,10}, ["Борщ"] = {1,1,1}, ["Піч"] = {1,1,1}, ["Смарагд"] = {1,4,1}, ["snowball"] = {1,7,10}, ["Вугілля"] = {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 = { ["Залізний самородок"] = {1,5,1}, ["Папороть"] = {1,1,2}, ["Велика папороть"] = {1,1,2}, ["Картопля"] = {1,7,10}, ["Солодкі ягоди"] = {1,7,5}, ["Хліб"] = {1,4,10}, ["Насіння гарбуза"] = {1,5,5}, ["Гарбузовий пиріг"] = {1,1,1}, ["Смарагд"] = {1,4,2}, ["spruce-sapling"] = {1,5,5}, ["spruce-sign"] = {1,1,1}, ["spruce-log"] = {1,5,10} } }, }, poolsJavaUpcoming = {}, poolsBedrock = { { rolls = {3,8}, items = { ["Залізний самородок"] = {1,5,1}, ["Папороть"] = {1,1,2}, ["Велика папороть"] = {1,1,2}, ["Картопля"] = {1,7,10}, ["Хліб"] = {1,4,10}, ["Насіння гарбуза"] = {1,5,5}, ["Гарбузовий пиріг"] = {1,1,1}, ["Смарагд"] = {1,4,2}, ["spruce-sapling"] = {1,5,5}, ["Дубова табличка"] = {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 = { ["Перлина Енду"] = {1,1,10}, ["Діамант"] = {1,3,3}, ["Залізний зливок"] = {1,5,10}, ["Золотий зливок"] = {1,3,5}, ["Редстоун"] = {4,9,5}, ["Хліб"] = {1,3,15}, ["Яблуко"] = {1,3,15}, ["Залізне кайло"] = {1,1,5}, ["Залізний меч"] = {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}, ["Сідло"] = {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 = { { rolls = {2,3}, items = { ["Перлина Енду"] = {1,1,10}, ["Діамант"] = {1,3,3}, ["Залізний зливок"] = {1,5,10}, ["Золотий зливок"] = {1,3,5}, ["Редстоун"] = {4,9,5}, ["Хліб"] = {1,3,15}, ["Яблуко"] = {1,3,15}, ["Залізне кайло"] = {1,1,5}, ["Залізний меч"] = {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}, ["Сідло"] = {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}, } }, { rolls = {1,1}, items = { ["eye-armor-trim-smithing-template"] = {1,1,1}, ["empty"] = {1,1,9} } } }, poolsBedrock = { { rolls = {2,3}, items = { ["Перлина Енду"] = {1,1,50}, ["Смарагд"] = {1,3,15}, ["Діамант"] = {1,3,15}, ["Залізний зливок"] = {1,5,50}, ["Золотий зливок"] = {1,3,25}, ["Редстоун"] = {4,9,25}, ["Хліб"] = {1,3,75}, ["Яблуко"] = {1,3,75}, ["Залізне кайло"] = {1,1,25}, ["Залізний меч"] = {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}, ["Сідло"] = {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 = { ["Книга"] = {1,3,20}, ["Папір"] = {2,7,20}, ["Порожня мапа"] = {1,1,1}, ["Компас"] = {1,1,1}, ["enchanted-book"] = {1,1,10}, } }, }, poolsJavaUpcoming = { { rolls = {2,10}, items = { ["Книга"] = {1,3,20}, ["Папір"] = {2,7,20}, ["Порожня мапа"] = {1,1,1}, ["Компас"] = {1,1,1}, ["enchanted-book"] = {1,1,10}, } }, { rolls = {1,1}, items = { ["eye-armor-trim-smithing-template"] = {1,1,1}, } } }, poolsBedrock = { { rolls = {2,10}, items = { ["Книга"] = {1,3,100}, ["Папір"] = {2,7,100}, ["Мапа"] = {1,1,5}, ["Компас"] = {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 = { ["Залізний зливок"] = {1,5,10}, ["Золотий зливок"] = {1,3,5}, ["Редстоун"] = {4,9,5}, ["Вугілля"] = {3,8,10}, ["Хліб"] = {1,3,15}, ["Яблуко"] = {1,3,15}, ["Залізне кайло"] = {1,1,1}, ["enchanted-book"] = {1,1,1}, } }, }, poolsJavaUpcoming = {}, poolsBedrock = { { rolls = {1,4}, items = { ["Залізний зливок"] = {1,5,50}, ["Золотий зливок"] = {1,3,25}, ["Редстоун"] = {4,9,25}, ["Вугілля"] = {3,8,50}, ["Хліб"] = {1,3,75}, ["Яблуко"] = {1,3,75}, ["Залізне кайло"] = {1,1,5}, ["enchanted-book"] = {1,1,6}, ["Чорнильний мішок"] = {1,3,75}, } }, }, poolsBedrockUpcoming = {} }, ["bonus"] = { -- spawn_bonus_chest.json header = "Bonus", link = "bonus", structure = "Bonus chest", container = "", structID = "day", poolsJava = { { rolls = {1,1}, items = { ["Дерев'яна сокира"] = {1,1,1}, ["Дерев'яна сокира"] = {1,1,3}, } }, { rolls = {1,1}, items = { ["Кам'яне кайло"] = {1,1,1}, ["Дерев'яне кайло"] = {1,1,3} } }, { rolls = {3,3}, items = { ["Яблуко"] = {1,2,5}, ["Хліб"] = {1,2,3}, ["Сирий лосось"] = {1,2,3}, } }, { rolls = {4,4}, items = { ["Палиця"] = {1,12,10}, ["oak-planks"] = {1,12,10}, ["oak-log"] = {1,3,3}, ["spruce-log"] = {1,3,3}, ["Березова колода"] = {1,3,3}, ["jungle-log"] = {1,3,3}, ["Акацієва колода"] = {1,3,3}, ["dark-oak-log"] = {1,3,3}, ["mangrove-log"] = {1,3,3}, } }, }, poolsJavaUpcoming = {}, poolsBedrock = { { rolls = {1,1}, items = { ["Дерев'яна сокира"] = {1,1,1}, ["Дерев'яна сокира"] = {1,1,3}, } }, { rolls = {1,1}, items = { ["Кам'яне кайло"] = {1,1,1}, ["Дерев'яне кайло"] = {1,1,3} } }, { rolls = {1,1}, items = { ["Яблуко"] = {1,2,1} } }, { rolls = {1,1}, items = { ["Хліб"] = {1,2,1} } }, { rolls = {1,1}, items = { ["Сирий лосось"] = {1,2,1} } }, { rolls = {1,1}, items = { ["Палиця"] = {1,12,1} } }, { rolls = {1,1}, items = { ["oak-planks"] = {1,12,1} } }, { rolls = {1,1}, items = { ["dark-oak-log"] = {1,3,1}, ["Акацієва колода"] = {1,3,1}, } }, { rolls = {1,1}, items = { ["oak-log"] = {1,3,1}, ["spruce-log"] = {1,3,1}, ["Березова колода"] = {1,3,1}, ["jungle-log"] = {1,3,1}, } }, { rolls = {1,1}, items = { ["Картопля"] = {1,2,3}, ["Морква"] = {1,2,3}, } }, { rolls = {1,1}, items = { ["Саджанець дубу"] = {4,4,2}, ["spruce-sapling"] = {4,4,2}, ["Саджанець берези"] = {4,4,2}, ["jungle-sapling"] = {4,4,4}, ["dark-oak-sapling"] = {4,4,2}, ["Саджанець акації"] = {4,4,2}, } }, { rolls = {1,1}, items = { ["melon-seeds"] = {1,2,3}, ["Насіння гарбуза"] = {1,2,3}, ["Насіння буряка"] = {1,2,3}, } }, { rolls = {1,1}, items = { ["Кактус"] = {1,2,3}, ["Какао-боби"] = {1,2,2}, } }, { rolls = {1,1}, items = { ["Коричневий гриб"] = {1,2,2}, } }, }, poolsBedrockUpcoming = {} }, ["dungeon"] = { -- simple_dungeon.json header = "Dungeon", link = "dungeon", structure = "Dungeon", container = "", structID = "Dungeon", poolsJava = { { rolls = {1,3}, items = { ["Сідло"] = {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 = { ["Залізний зливок"] = {1,4,10}, ["Золотий зливок"] = {1,4,5}, ["Хліб"] = {1,1,20}, ["Пшениця"] = {1,4,20}, ["Відро"] = {1,1,10}, ["Редстоун"] = {1,4,15}, ["Вугілля"] = {1,4,15}, ["melon-seeds"] = {2,4,10}, ["Насіння гарбуза"] = {2,4,10}, ["Насіння буряка"] = {2,4,10}, } }, { rolls = {3,3}, items = { ["Кістка"] = {1,8,10}, ["Порох"] = {1,8,10}, ["Гнила плоть"] = {1,8,10}, ["Нитка"] = {1,8,10}, } }, }, poolsJavaUpcoming = {}, poolsBedrock = { { rolls = {1,3}, items = { ["Сідло"] = {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 = { ["Залізний зливок"] = {1,4,10}, ["Золотий зливок"] = {1,4,5}, ["Хліб"] = {1,1,20}, ["Пшениця"] = {1,4,20}, ["Відро"] = {1,1,10}, ["Редстоун"] = {1,4,15}, ["Вугілля"] = {1,4,15}, ["melon-seeds"] = {2,4,10}, ["Насіння гарбуза"] = {2,4,10}, ["Насіння буряка"] = {2,4,10}, } }, { rolls = {3,3}, items = { ["Кістка"] = {1,8,10}, ["Порох"] = {1,8,10}, ["Гнила плоть"] = {1,8,10}, ["Нитка"] = {1,8,10}, } }, }, poolsBedrockUpcoming = {} }, ["mineshaft"] = { -- abandoned_mineshaft.json chest_type = "minecart with chest", header = "Mineshaft", link = "Mineshafts", 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}, ["Залізне кайло"] = {1,1,5}, ["empty"] = {1,1,5}, } }, { rolls = {2,4}, items = { ["Залізний зливок"] = {1,5,10}, ["Золотий зливок"] = {1,3,5}, ["Редстоун"] = {4,9,5}, ["Лазурит"] = {4,9,5}, ["Діамант"] = {1,2,3}, ["Вугілля"] = {3,8,10}, ["Хліб"] = {1,3,15}, ["glow-berries"] = {3,6,15}, ["melon-seeds"] = {2,4,10}, ["Насіння гарбуза"] = {2,4,10}, ["Насіння буряка"] = {2,4,10}, } }, { rolls = {3,3}, items = { ["Рейки"] = {4,8,20}, ["powered-rail"] = {1,4,5}, ["detector-rail"] = {1,4,5}, ["activator-rail"] = {1,4,5}, ["Смолоскип"] = {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}, ["Залізне кайло"] = {1,1,5}, ["empty"] = {1,1,5}, } }, { rolls = {2,4}, items = { ["Залізний зливок"] = {1,5,10}, ["Золотий зливок"] = {1,3,5}, ["Редстоун"] = {4,9,5}, ["Лазурит"] = {4,9,5}, ["Діамант"] = {1,2,3}, ["Вугілля"] = {3,8,10}, ["Хліб"] = {1,3,15}, ["melon-seeds"] = {2,4,10}, ["Насіння гарбуза"] = {2,4,10}, ["Насіння буряка"] = {2,4,10}, ["glow-berries"] = {3,6,15}, } }, { rolls = {3,3}, items = { ["Рейки"] = {4,8,20}, ["powered-rail"] = {1,4,5}, ["detector-rail"] = {1,4,5}, ["activator-rail"] = {1,4,5}, ["Смолоскип"] = {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 = { ["Діамант"] = {1,3,5}, ["Залізний зливок"] = {1,5,5}, ["Золотий зливок"] = {1,3,15}, ["Золотий меч"] = {1,1,5}, ["golden-chestplate"] = {1,1,5}, ["flint-and-steel"] = {1,1,5}, ["nether-wart"] = {3,7,5}, ["Сідло"] = {1,1,10}, ["golden-horse-armor"] = {1,1,8}, ["iron-horse-armor"] = {1,1,5}, ["diamond-horse-armor"] = {1,1,3}, ["Обсидіан"] = {2,4,2}, } }, }, poolsJavaUpcoming = { { rolls = {2,4}, items = { ["Діамант"] = {1,3,5}, ["Залізний зливок"] = {1,5,5}, ["Золотий зливок"] = {1,3,15}, ["Золотий меч"] = {1,1,5}, ["golden-chestplate"] = {1,1,5}, ["flint-and-steel"] = {1,1,5}, ["nether-wart"] = {3,7,5}, ["Сідло"] = {1,1,10}, ["golden-horse-armor"] = {1,1,8}, ["iron-horse-armor"] = {1,1,5}, ["diamond-horse-armor"] = {1,1,3}, ["Обсидіан"] = {2,4,2}, } }, { rolls = {1,1}, items = { ["rib-armor-trim-smithing-template"] = {1,1,1}, ["empty"] = {1,1,14} } } }, poolsBedrock = { { rolls = {2,4}, items = { ["Діамант"] = {1,3,5}, ["Залізний зливок"] = {1,5,5}, ["Золотий зливок"] = {1,3,15}, ["Золотий меч"] = {1,1,5}, ["golden-chestplate"] = {1,1,5}, ["flint-and-steel"] = {1,1,5}, ["nether-wart"] = {3,7,5}, ["Сідло"] = {1,1,10}, ["golden-horse-armor"] = {1,1,8}, ["iron-horse-armor"] = {1,1,5}, ["diamond-horse-armor"] = {1,1,3}, ["Обсидіан"] = {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 = { ["Діамант"] = {1,3,5}, ["Залізний зливок"] = {1,5,15}, ["Золотий зливок"] = {2,7,15}, ["Смарагд"] = {1,3,15}, ["Кістка"] = {4,6,25}, ["Павуче око"] = {1,3,25}, ["Гнила плоть"] = {3,7,25}, ["Сідло"] = {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 = { ["Кістка"] = {1,8,10}, ["Порох"] = {1,8,10}, ["Гнила плоть"] = {1,8,10}, ["Нитка"] = {1,8,10}, ["Пісок"] = {1,8,10}, } }, }, poolsJavaUpcoming = { { rolls = {2,4}, items = { ["Діамант"] = {1,3,5}, ["Залізний зливок"] = {1,5,15}, ["Золотий зливок"] = {2,7,15}, ["Смарагд"] = {1,3,15}, ["Кістка"] = {4,6,25}, ["Павуче око"] = {1,3,25}, ["Гнила плоть"] = {3,7,25}, ["Сідло"] = {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 = { ["Кістка"] = {1,8,10}, ["Порох"] = {1,8,10}, ["Гнила плоть"] = {1,8,10}, ["Нитка"] = {1,8,10}, ["Пісок"] = {1,8,10}, } }, { rolls = {1,1}, items = { ["dune-armor-trim-smithing-template"] = {2,2,1}, ["empty"] = {1,1,6} } } }, poolsBedrock = { { rolls = {2,4}, items = { ["Діамант"] = {1,3,5}, ["Залізний зливок"] = {1,5,15}, ["Золотий зливок"] = {2,7,15}, ["Смарагд"] = {1,3,15}, ["Кістка"] = {4,6,25}, ["Павуче око"] = {1,3,25}, ["Гнила плоть"] = {3,7,25}, ["Сідло"] = {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 = { ["Кістка"] = {1,8,10}, ["Порох"] = {1,8,10}, ["Гнила плоть"] = {1,8,10}, ["Нитка"] = {1,8,10}, ["Пісок"] = {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 = { ["Діамант"] = {1,3,3}, ["Залізний зливок"] = {1,5,10}, ["Золотий зливок"] = {2,7,15}, ["Смарагд"] = {1,3,2}, ["Кістка"] = {4,6,20}, ["Бамбук"] = {1,3,15}, ["Гнила плоть"] = {3,7,16}, ["Сідло"] = {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 = { { rolls = {2,6}, items = { ["Діамант"] = {1,3,3}, ["Залізний зливок"] = {1,5,10}, ["Золотий зливок"] = {2,7,15}, ["Смарагд"] = {1,3,2}, ["Кістка"] = {4,6,20}, ["Бамбук"] = {1,3,15}, ["Гнила плоть"] = {3,7,16}, ["Сідло"] = {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} } }, { rolls = {1,1}, items = { ["wild-armor-trim-smithing-template"] = {2,2,1}, ["empty"] = {1,1,2} } } }, poolsBedrock = { { rolls = {2,6}, items = { ["Діамант"] = {1,3,15}, ["Залізний зливок"] = {1,5,50}, ["Золотий зливок"] = {2,7,75}, ["Смарагд"] = {1,3,10}, ["Кістка"] = {4,6,100}, ["Гнила плоть"] = {3,7,80}, ["Бамбук"] = {1,3,75}, ["Сідло"] = {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 temples", structure = "Jungle temple", container = "Dispenser", structID = "jungle-temple", poolsJava = { { rolls = {1,2}, items = { ["Стріла"] = {2,7,30} } }, }, poolsJavaUpcoming = {}, poolsBedrock = { { rolls = {2,2}, items = { ["Стріла"] = {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 = { ["Діамант"] = {2,7,5}, ["Залізний зливок"] = {4,8,10}, ["Золотий зливок"] = {2,7,15}, ["Смарагд"] = {2,6,2}, ["Насіння буряка"] = {1,10,5}, ["Сідло"] = {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 = { { rolls = {2,6}, items = { ["Діамант"] = {2,7,5}, ["Залізний зливок"] = {4,8,10}, ["Золотий зливок"] = {2,7,15}, ["Смарагд"] = {2,6,2}, ["Насіння буряка"] = {1,10,5}, ["Сідло"] = {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}, } }, { rolls = {1,1}, items = { ["spire-armor-trim-smithing-template"] = {1,1,1}, ["empty"] = {1,1,14} } } }, poolsBedrock = { { rolls = {2,6}, items = { ["Діамант"] = {2,7,5}, ["Залізний зливок"] = {4,8,10}, ["Золотий зливок"] = {2,7,15}, ["Смарагд"] = {2,6,2}, ["Насіння буряка"] = {1,10,5}, ["Сідло"] = {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 = { ["Яблуко"] = {1,3,15}, ["Вугілля"] = {1,4,15}, ["Золотий самородок"] = {1,3,10}, ["Дерев'яна сокира"] = {1,1,2}, ["Гнила плоть"] = {1,1,10}, ["Смарагд"] = {1,1,1}, ["Пшениця"] = {2,3,10} } }, { rolls = {1,1}, items = { ["golden-apple"] = {1,1,1}, } }, }, poolsJavaUpcoming = {}, poolsBedrock = { { rolls = {2,8}, items = { ["Яблуко"] = {1,3,15}, ["Вугілля"] = {1,4,15}, ["Золотий самородок"] = {1,3,10}, ["Дерев'яна сокира"] = {1,1,2}, ["Гнила плоть"] = {1,1,10}, ["Смарагд"] = {1,1,1}, ["Пшениця"] = {2,3,10} } }, { rolls = {1,1}, items = { ["golden-apple"] = {1,1,1}, } }, }, poolsBedrockUpcoming = {} }, ["pillager-outpost"] = { -- pillager_outpost.json header = "Pillager outpost", link = "pillager outpost", structure = "Pillager Outpost", container = "", structID = "pillager-outpost", poolsJava = { { rolls = {0,1}, items = { ["Арбалет"] = {1,1,1}, } }, { rolls = {2,3}, items = { ["Пшениця"] = {3,5,7}, ["Картопля"] = {2,5,5}, ["Морква"] = {3,5,5} } }, { rolls = {1,3}, items = { ["dark-oak-log"] = {2,3,1} } }, { rolls = {2,3}, items = { ["bottle-o'-enchanting"] = {1,1,7}, ["Нитка"] = {1,6,4}, ["Стріла"] = {2,7,4}, ["Гак для розтяжки"] = {1,3,3}, ["Залізний зливок"] = {1,3,3}, ["enchanted-book-rnd"] = {1,1,1} } }, { rolls = {0,1}, items = { ["goat-horn"] = {1,1,1}, } } }, poolsJavaUpcoming = { { rolls = {0,1}, items = { ["Арбалет"] = {1,1,1}, } }, { rolls = {2,3}, items = { ["Пшениця"] = {3,5,7}, ["Картопля"] = {2,5,5}, ["Морква"] = {3,5,5} } }, { rolls = {1,3}, items = { ["dark-oak-log"] = {2,3,1} } }, { rolls = {2,3}, items = { ["bottle-o'-enchanting"] = {1,1,7}, ["Нитка"] = {1,6,4}, ["Стріла"] = {2,7,4}, ["Гак для розтяжки"] = {1,3,3}, ["Залізний зливок"] = {1,3,3}, ["enchanted-book-rnd"] = {1,1,1} } }, { rolls = {0,1}, items = { ["goat-horn"] = {1,1,1}, } }, { rolls = {1,1}, items = { ["sentry-armor-trim-smithing-template"] = {2,2,1}, ["empty"] = {1,1,3} } } }, poolsBedrock = { { rolls = {0,1}, items = { ["Арбалет"] = {1,1,1}, } }, { rolls = {2,3}, items = { ["Пшениця"] = {3,5,7}, ["Картопля"] = {2,5,5}, ["Морква"] = {3,5,5} } }, { rolls = {1,3}, items = { ["dark-oak-log"] = {2,3,1} } }, { rolls = {2,3}, items = { ["bottle-o'-enchanting"] = {1,1,7}, ["Нитка"] = {1,6,4}, ["Стріла"] = {2,7,4}, ["Гак для розтяжки"] = {1,3,3}, ["Залізний зливок"] = {1,3,3}, ["enchanted-book-rnd"] = {1,1,1} } }, { rolls={0,1}, items={ ["goat-horn"] = {1,1,1} } } }, poolsBedrockUpcoming = {} }, ["bastion-bridge"] = { -- bastion_bridge.json header = "Bastion bridge", link = "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}, ["Золотий блок"] = {1,1,1}, ["Золотий зливок"] = {4,9,1}, ["Залізний зливок"] = {4,9,1}, ["Золотий меч"] = {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 = { ["Нитка"] = {1,6,1}, ["Шкіра"] = {1,3,1}, ["Стріла"] = {5,17,1}, ["Залізний самородок"] = {2,6,1}, ["Золотий самородок"] = {2,6,1}, } } }, poolsJavaUpcoming = { { 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}, ["Золотий блок"] = {1,1,1}, ["Золотий зливок"] = {4,9,1}, ["Залізний зливок"] = {4,9,1}, ["Золотий меч"] = {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 = { ["Нитка"] = {1,6,1}, ["Шкіра"] = {1,3,1}, ["Стріла"] = {5,17,1}, ["Залізний самородок"] = {2,6,1}, ["Золотий самородок"] = {2,6,1}, } }, { rolls = {1,1}, items = { ["snout-armor-trim-smithing-template"] = {1,1,1}, ["empty"] = {1,1,11} } }, { rolls = {1,1}, items = { ["netherite-upgrade-smithing-template"] = {1,1,1}, ["empty"] = {1,1,9} } } }, poolsBedrock = { { rolls = {1,1}, items = { ["lodestone"] = {1,1,1}, } }, { rolls = {1,2}, items = { ["damaged-random-enchanted-crossbow"] = {1,1,1}, ["Стріла"] = {10,28,1}, ["gilded-blackstone"] = {8,12,1}, ["crying-obsidian"] = {3,8,1}, ["Золотий блок"] = {1,1,1}, ["Золотий зливок"] = {4,9,1}, ["Залізний зливок"] = {4,9,1}, ["Золотий меч"] = {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 = { ["Нитка"] = {1,6,1}, ["Шкіра"] = {1,3,1}, ["Стріла"] = {5,17,1}, ["Залізний самородок"] = {2,6,1}, ["Золотий самородок"] = {2,6,1}, } } }, poolsBedrockUpcoming = {} }, ["bastion-hoglin-stable"] = { -- bastion_hoglin_stable.json header = "Bastion hoglin stable", link = "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}, ["Сідло"] = {1,1,12}, ["Золотий блок"] = {2,4,16}, ["Золота морква"] = {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}, ["Пісок душ"] = {2,7,1}, ["crimson-nylium"] = {2,7,1}, ["Золотий самородок"] = {2,8,1}, ["Шкіра"] = {1,3,1}, ["Стріла"] = {5,17,1}, ["Нитка"] = {3,8,1}, ["Сира свинина"] = {2,5,1}, ["Смажена свинина"] = {2,5,1}, ["crimson-fungus"] = {2,7,1}, ["crimson-roots"] = {2,7,1}, } } }, poolsJavaUpcoming = { { 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}, ["Сідло"] = {1,1,12}, ["Золотий блок"] = {2,4,16}, ["Золота морква"] = {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}, ["Пісок душ"] = {2,7,1}, ["crimson-nylium"] = {2,7,1}, ["Золотий самородок"] = {2,8,1}, ["Шкіра"] = {1,3,1}, ["Стріла"] = {5,17,1}, ["Нитка"] = {3,8,1}, ["Сира свинина"] = {2,5,1}, ["Смажена свинина"] = {2,5,1}, ["crimson-fungus"] = {2,7,1}, ["crimson-roots"] = {2,7,1}, } }, { rolls = {1,1}, items = { ["snout-armor-trim-smithing-template"] = {1,1,1}, ["empty"] = {1,1,11} } }, { rolls = {1,1}, items = { ["netherite-upgrade-smithing-template"] = {1,1,1}, ["empty"] = {1,1,9} } } }, 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}, ["Сідло"] = {1,1,12}, ["Золотий блок"] = {2,4,16}, ["Золота морква"] = {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}, ["Пісок душ"] = {2,7,1}, ["crimson-nylium"] = {2,7,1}, ["Золотий самородок"] = {2,8,1}, ["Шкіра"] = {1,3,1}, ["Стріла"] = {5,17,1}, ["Нитка"] = {3,8,1}, ["Сира свинина"] = {2,5,1}, ["Смажена свинина"] = {2,5,1}, ["crimson-fungus"] = {2,7,1}, ["crimson-roots"] = {2,7,1}, } } }, poolsBedrockUpcoming = {} }, ["bastion-generic"] = { -- bastion_other.json header = "Bastion", link = "bastion remnant", structure = "Bastion remnant", container = "Generic chest", structID = "bastion-remnant", poolsJava = { { rolls = {1,1}, items = { ["random-enchanted-diamond-pickaxe"] = {1,1,6}, ["Діамантова лопата"] = {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}, ["Золота морква"] = {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}, ["Залізний блок"] = {1,1,2}, ["soul-speed-enchanted-golden-boots"] = {1,1,1}, ["random-enchanted-golden-axe"] = {1,1,1}, ["Золотий блок"] = {1,1,2}, ["Арбалет"] = {1,1,1}, ["Золотий зливок"] = {1,6,2}, ["Залізний зливок"] = {1,6,2}, ["Золотий меч"] = {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}, ["Кістяний блок"] = {3,6,1}, ["Залізний самородок"] = {2,8,1}, ["Обсидіан"] = {4,6,1}, ["Золотий самородок"] = {2,8,1}, ["Нитка"] = {4,6,1}, ["Стріла"] = {5,17,2}, ["Смажена свинина"] = {1,1,1}, } } }, poolsJavaUpcoming = { { rolls = {1,1}, items = { ["random-enchanted-diamond-pickaxe"] = {1,1,6}, ["Діамантова лопата"] = {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}, ["Золота морква"] = {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}, ["Залізний блок"] = {1,1,2}, ["soul-speed-enchanted-golden-boots"] = {1,1,1}, ["random-enchanted-golden-axe"] = {1,1,1}, ["Золотий блок"] = {1,1,2}, ["Арбалет"] = {1,1,1}, ["Золотий зливок"] = {1,6,2}, ["Залізний зливок"] = {1,6,2}, ["Золотий меч"] = {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}, ["Кістяний блок"] = {3,6,1}, ["Залізний самородок"] = {2,8,1}, ["Обсидіан"] = {4,6,1}, ["Золотий самородок"] = {2,8,1}, ["Нитка"] = {4,6,1}, ["Стріла"] = {5,17,2}, ["Смажена свинина"] = {1,1,1}, } }, { rolls = {1,1}, items = { ["snout-armor-trim-smithing-template"] = {1,1,1}, ["empty"] = {1,1,11} } }, { rolls = {1,1}, items = { ["netherite-upgrade-smithing-template"] = {1,1,1}, ["empty"] = {1,1,9} } } }, poolsBedrock = { { rolls = {1,1}, items = { ["random-enchanted-diamond-pickaxe"] = {1,1,6}, ["Діамантова лопата"] = {1,1,6}, ["damaged-random-enchanted-crossbow-2"] = {1,1,6}, ["ancient-debris"] = {1,1,12}, ["netherite-scrap"] = {1,1,4}, ["Стріла"] = {10,22,10}, ["snout-banner-pattern"] = {1,1,9}, ["disc-pigstep"] = {1,1,5}, ["Золота морква"] = {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}, ["Залізний блок"] = {1,1,2}, ["soul-speed-enchanted-golden-boots"] = {1,1,1}, ["random-enchanted-golden-axe"] = {1,1,1}, ["Золотий блок"] = {1,1,2}, ["Арбалет"] = {1,1,1}, ["Золотий зливок"] = {1,6,2}, ["Залізний зливок"] = {1,6,2}, ["Золотий меч"] = {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}, ["Кістяний блок"] = {3,6,1}, ["Залізний самородок"] = {2,8,1}, ["Обсидіан"] = {4,6,1}, ["Золотий самородок"] = {2,8,1}, ["Нитка"] = {4,6,1}, ["Стріла"] = {5,17,2}, ["Смажена свинина"] = {1,1,1}, } } }, poolsBedrockUpcoming = {} }, ["bastion-treasure"] = { -- bastion_treasure.json header = "Bastion treasure", link = "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}, ["Діамантовий меч"] = {1,1,6}, ["diamond-chestplate"] = {1,1,5}, ["diamond-helmet"] = {1,1,5}, ["diamond-leggings"] = {1,1,5}, ["diamond-boots"] = {1,1,5}, ["Діамант"] = {2,6,5}, ["enchanted-golden-apple"] = {1,1,2}, } }, { rolls = {3,4}, items = { ["spectral-arrow"] = {12,25,1}, ["Золотий блок"] = {2,5,1}, ["Залізний блок"] = {2,5,1}, ["Золотий зливок"] = {3,9,1}, ["Залізний зливок"] = {3,9,1}, ["crying-obsidian"] = {3,5,1}, ["nether-quartz"] = {8,23,1}, ["gilded-blackstone"] = {5,15,1}, ["magma-cream"] = {3,8,1}, } } }, poolsJavaUpcoming = { { 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}, ["Діамантовий меч"] = {1,1,6}, ["diamond-chestplate"] = {1,1,5}, ["diamond-helmet"] = {1,1,5}, ["diamond-leggings"] = {1,1,5}, ["diamond-boots"] = {1,1,5}, ["Діамант"] = {2,6,5}, ["enchanted-golden-apple"] = {1,1,2}, } }, { rolls = {3,4}, items = { ["spectral-arrow"] = {12,25,1}, ["Золотий блок"] = {2,5,1}, ["Залізний блок"] = {2,5,1}, ["Золотий зливок"] = {3,9,1}, ["Залізний зливок"] = {3,9,1}, ["crying-obsidian"] = {3,5,1}, ["nether-quartz"] = {8,23,1}, ["gilded-blackstone"] = {5,15,1}, ["magma-cream"] = {3,8,1}, } }, { rolls = {1,1}, items = { ["snout-armor-trim-smithing-template"] = {1,1,1}, ["empty"] = {1,1,11} } }, { rolls = {1,1}, items = { ["netherite-upgrade-smithing-template"] = {1,1,1}, } } }, 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}, ["Діамантовий меч"] = {1,1,6}, ["diamond-chestplate"] = {1,1,5}, ["diamond-helmet"] = {1,1,5}, ["diamond-leggings"] = {1,1,5}, ["diamond-boots"] = {1,1,5}, ["Діамант"] = {2,6,5}, ["enchanted-golden-apple"] = {1,1,2}, } }, { rolls = {3,4}, items = { ["Стріла"] = {12,25,1}, ["Золотий блок"] = {2,5,1}, ["Залізний блок"] = {2,5,1}, ["Золотий зливок"] = {3,9,1}, ["Залізний зливок"] = {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 = { ["Обсидіан"] = {1,2,40}, ["Кремінь"] = {1,4,40}, ["Залізний самородок"] = {9,18,40}, ["flint-and-steel"] = {1,1,40}, ["fire-charge"] = {1,1,40}, ["golden-apple"] = {1,1,15}, ["Золотий самородок"] = {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}, ["Золота морква"] = {4,12,5}, ["Годинник"] = {1,1,5}, ["Золотий зливок"] = {2,8,5}, ["Дзвін"] = {1,1,1}, ["enchanted-golden-apple"] = {1,1,1}, ["Золотий блок"] = {1,2,1}, } } }, poolsJavaUpcoming = {}, poolsBedrock = { { rolls = {4,8}, items = { ["Обсидіан"] = {1,2,40}, ["Кремінь"] = {1,4,40}, ["Залізний самородок"] = {9,18,40}, ["flint-and-steel"] = {1,1,40}, ["fire-charge"] = {1,1,40}, ["golden-apple"] = {1,1,15}, ["Золотий самородок"] = {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}, ["Золота морква"] = {4,12,5}, ["Годинник"] = {1,1,5}, ["Золотий зливок"] = {2,8,5}, ["Дзвін"] = {1,1,1}, ["enchanted-golden-apple"] = {1,1,1}, ["Золотий блок"] = {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 = { ["Залізний зливок"] = {1,4,10}, ["Золотий зливок"] = {1,4,5}, ["Хліб"] = {1,1,20}, ["Пшениця"] = {1,4,20}, ["Відро"] = {1,1,10}, ["Редстоун"] = {1,4,15}, ["Вугілля"] = {1,4,15}, ["melon-seeds"] = {2,4,10}, ["Насіння гарбуза"] = {2,4,10}, ["Насіння буряка"] = {2,4,10}, } }, { rolls = {3,3}, items = { ["Кістка"] = {1,8,10}, ["Порох"] = {1,8,10}, ["Гнила плоть"] = {1,8,10}, ["Нитка"] = {1,8,10}, } }, }, poolsJavaUpcoming = { { 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 = { ["Залізний зливок"] = {1,4,10}, ["Золотий зливок"] = {1,4,5}, ["Хліб"] = {1,1,20}, ["Пшениця"] = {1,4,20}, ["Відро"] = {1,1,10}, ["Редстоун"] = {1,4,15}, ["Вугілля"] = {1,4,15}, ["melon-seeds"] = {2,4,10}, ["Насіння гарбуза"] = {2,4,10}, ["Насіння буряка"] = {2,4,10}, } }, { rolls = {3,3}, items = { ["Кістка"] = {1,8,10}, ["Порох"] = {1,8,10}, ["Гнила плоть"] = {1,8,10}, ["Нитка"] = {1,8,10}, } }, { rolls = {1,1}, items = { ["vex-armor-trim-smithing-template"] = {1,1,1}, ["empty"] = {1,1,1} } } }, 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 = { ["Залізний зливок"] = {1,4,50}, ["Золотий зливок"] = {1,4,25}, ["Хліб"] = {1,1,100}, ["Пшениця"] = {1,4,100}, ["Відро"] = {1,1,50}, ["Редстоун"] = {1,4,75}, ["Вугілля"] = {1,4,75}, ["melon-seeds"] = {2,4,50}, ["Насіння гарбуза"] = {2,4,50}, ["Насіння буряка"] = {2,4,50}, } }, { rolls = {3,3}, items = { ["Кістка"] = {1,8,50}, ["Порох"] = {1,8,50}, ["Гнила плоть"] = {1,8,50}, ["Нитка"] = {1,8,50}, } }, }, poolsBedrockUpcoming = {} }, ["bonus-barrel"] = { -- bonus_barrel.json from Java Edition 3D Shareware v1.34 header = "Bonus barrel", link = "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 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 "Module:LootChest: no valid arguments" 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, "

" )

table.insert( ret, p.current_frame:expandTemplate{ title = 'FNlist', args = {} } )

table.insert( ret, "

" )

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
" )

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
" )

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 'unknown item "' .. itemname .. '"' 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, ) if p.items[itemname].category ~= nil and p.items[itemname].category ~= false then table.insert( html, ) end if any_bedrock and (mw.title.getCurrentTitle().namespace == 0) then table.insert( html, ) 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, ' 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, ' dispensers 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 .. "Unknown item " .. itemname .. ".\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, "
" ) 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, '

\n' ) table.insert( html, '\n' ) table.insert( html, "\n" ) table.insert( html, "\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, "\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, "\n" ) end end table.insert( html, table.concat( row1 ) ) table.insert( html, "\n" ) if #row2 then table.insert( html, table.concat( row2 ) ) table.insert( html, "\n" ) end end if not hide_col_description then local headersort_th_open if use_roll_row then headersort_th_open = "\n" ) end if columns['weight'] ~= nil then table.insert( html, headersort_th_colspan_open ) table.insert( html, p.columns['weight'] ) table.insert( html, "'> Weight ") table.insert( html, p.current_frame:extensionTag{ name = 'ref', content = p.columns['weight'], args = { name = 'weight', group = 'FN' } } ) table.insert( html, "\n" ) end if columns['chance'] ~= nil then table.insert( html, headersort_th_open ) table.insert( html, p.columns['chance'] ) table.insert( html, "'> Chance ") table.insert( html, p.current_frame:extensionTag{ name = 'ref', content = p.columns['chance'], args = { name = 'chance', group = 'FN' } } ) table.insert( html, "\n" ) end if columns['items'] ~= nil then table.insert( html, headersort_th_open ) table.insert( html, p.columns['items'] ) table.insert( html, "'> Avg.
per chest ") table.insert( html, p.current_frame:extensionTag{ name = 'ref', content = p.columns['items'], args = { name = 'items', group = 'FN' } } ) table.insert( html, "\n" ) end if columns['chests'] ~= nil then table.insert( html, headersort_th_open ) table.insert( html, p.columns['chests'] ) table.insert( html, "'> Avg. # chests
to search ") table.insert( html, p.current_frame:extensionTag{ name = 'ref', content = p.columns['chests'], args = { name = 'chests', group = 'FN' } } ) table.insert( html, "\n" ) end end end table.insert( html, "\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, "\n" ) end end end end table.insert( html, "\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, "" ) end end if columns['weight'] ~= nil then for k = 1, #chest_item.sizes do table.insert( html, "" ) end end if columns['chance'] ~= nil then table.insert( html, "" ) end if columns['items'] ~= nil then table.insert( html, "" ) end if columns['chests'] ~= nil then table.insert( html, "" ) 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, "" )

end end if columns['weight'] ~= nil then for k = 1, allRollsSpan do

table.insert( html, "" )

end end if columns['chance'] ~= nil then

table.insert( html, "" )

end if columns['items'] ~= nil then

table.insert( html, "" )

end if columns['chests'] ~= nil then

table.insert( html, "" )

end else if i > 1 then

table.insert( html, "" ) end local item = p.items[chest_item] local s = require( 'Module:Sprite' ) table.insert( html, "\n" ) end if j == #ordered_item_rows[i] then table.insert( html, "" ) end end table.insert( html, "\n" ) end end table.insert( html, "
Item " )

table.insert( row, sh )

table.insert( row, "
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, '
(' ) 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)' ) end

table.insert( row, "
<abbr title='"

else

headersort_th_open = "
1 then headersort_th_colspan_open = " Stack Size ")

table.insert( html, p.current_frame:extensionTag{ name = 'ref', content = p.columns['stacksize'], args = { name = 'stacksize', group = 'FN' } } )

table.insert( html, "
" )

table.insert( html, allRolls[k] )

table.insert( html, "×
" )

table.insert( html, chest_item.sizes[k] )

table.insert( html, "
" )

table.insert( html, chest_item.weights[k] )

table.insert( html, "
" )

table.insert( html, chance_any )

table.insert( html, "
" )

table.insert( html, avg_amount )

table.insert( html, "
" )

table.insert( html, num_chests )

table.insert( html, "
" )

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, "

")

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

Advertisement