Skip to content

loot.ron

What containers hold, by room and container. Read by the game’s rules: a change here changes how the game plays, and a world remembers the content it was made with.

File: assets/data/loot.ron

What furniture holds. Schema: zombye_sim::loot::LootData (validated on load against items.ron and containers.ron; unknown fields are refused). All names, weights and odds are our own.

A table is keyed by (room type, container kind), either of which may be “any”. A container uses the first table of: (room, container), (any, container), (room, any), (any, any); with none it holds nothing. So a fridge is a fridge wherever it stands unless a room says otherwise, and furniture whose kind has no “any” table here (shelves, a workbench) holds what its room holds.

A table: empty (chance it holds nothing at all), rolls (how many picks, (min, max)), and entries: an item id, a weight among the table’s entries (default 1), a count per pick ((min, max), default (1, 1)) and a rarity tier: Common (the default), Uncommon, Rare or VeryRare. A tier multiplies the weight by its number in tiers below, so what’s valuable is rare wherever it’s listed, and one number makes a whole tier rarer or commoner. (rare: true, the older way, still works: the weight times rare_scale.) groups are extra lists rolled after the picks, each with a chance and its own rolls. The same item picked twice adds up; a pick that doesn’t fit in the container’s room is cut to what fits, or skipped.

A container is filled the first time anyone opens it, from a hash of the game’s loot seed and its id (never the world’s random stream), so it holds the same whenever and in whatever order houses are searched. Every new game and new run has a fresh loot seed (--loot-seed S fixes it), so the same town holds different things each game. Editing this file only changes containers nobody has opened yet: a save made before loads with a note.

Room types now in the templates: kitchen (offices’ break rooms too), bathroom, bedroom, living, dining, hall, laundry, porch, garage, office, and the shops’ shop, pharmacy and hardware (a shop’s stock is its room type: shelves and workbenches there have no table of their own, so they fill from the room’s). The shed table is ready for a shed.

The file is one LootData.

The whole of loot.ron. The default has no tables: every container holds nothing.

Field Type What it is
scale f32 Sandbox loot abundance: multiplies every table’s and group’s rolls.
rare_scale f32 Multiplies the weight of rare entries and of every Rare and VeryRare one (0: never).
tiers TierWeights Each rarity tier’s weight multiplier.
tables Vec<LootTable>

The weight multiplier of each Rarity tier (tiers in loot.ron).

Field Type What it is
common f32
uncommon f32
rare f32
very_rare f32

What one kind of container holds in one room type.

Field Type What it is
room String A room type (kitchen, …) or any.
container String A container kind (fridge, …) or any.
empty f32 Chance (0..1) it holds nothing at all.
rolls (u8, u8) How many picks from entries, (min, max), uniform, times LootData::scale.
entries Vec<LootEntry> How many picks from entries, (min, max), uniform, times LootData::scale.
groups Vec<LootGroup>

One item a table can give.

Field Type What it is
item String An item id (items.ron).
weight f32 Relative chance among the list’s entries (positive).
count (u16, u16) How many one pick gives, (min, max), uniform.
tier Rarity How rare it is (Rarity): its weight is multiplied by its tier’s in LootData::tiers. Default Common (times 1).
rare bool Its weight is multiplied by LootData::rare_scale (as are Rare and VeryRare ones).

How rare a loot entry is. Each tier multiplies the entry’s weight by its number in LootData::tiers, so the file says outright which things are rare, and one number per tier makes them all rarer or commoner (sandbox, difficulty).

Value What it means
Common Everyday things: food, junk, plain clothes, plasters.
Uncommon Worth a look: better clothes and bags, tools, the plainer weapons, dressings.
Rare Valuable: good clothes and bags, good weapons, antibiotics, rounds and magazines.
VeryRare The best finds: guns, the fire axe.

An extra list rolled after a table’s picks: with chance, rolls picks from entries.

Field Type What it is
name String What it is, for people reading the file and the MCP preview (“cutlery drawer”).
chance f32
rolls (u8, u8)
entries Vec<LootEntry>
The whole file as shipped
// What furniture holds. Schema: zombye_sim::loot::LootData (validated on load against items.ron
// and containers.ron; unknown fields are refused). All names, weights and odds are our own.
//
// A table is keyed by (room type, container kind), either of which may be "any". A container uses
// the first table of: (room, container), (any, container), (room, any), (any, any); with none it
// holds nothing. So a fridge is a fridge wherever it stands unless a room says otherwise, and
// furniture whose kind has no "any" table here (shelves, a workbench) holds what its room holds.
//
// A table: `empty` (chance it holds nothing at all), `rolls` (how many picks, (min, max)), and
// `entries`: an item id, a `weight` among the table's entries (default 1), a `count` per pick
// ((min, max), default (1, 1)) and a rarity `tier`: Common (the default), Uncommon, Rare or
// VeryRare. A tier multiplies the weight by its number in `tiers` below, so what's valuable is
// rare wherever it's listed, and one number makes a whole tier rarer or commoner. (`rare: true`,
// the older way, still works: the weight times `rare_scale`.)
// `groups` are extra lists rolled after the picks, each with a `chance` and its own `rolls`. The
// same item picked twice adds up; a pick that doesn't fit in the container's room is cut to what
// fits, or skipped.
//
// A container is filled the first time anyone opens it, from a hash of the game's loot seed and
// its id (never the world's random stream), so it holds the same whenever and in whatever order
// houses are searched. Every new game and new run has a fresh loot seed (`--loot-seed S` fixes
// it), so the same town holds different things each game. Editing this file only changes containers nobody has opened yet: a save made
// before loads with a note.
//
// Room types now in the templates: kitchen (offices' break rooms too), bathroom, bedroom, living,
// dining, hall, laundry, porch, garage, office, and the shops' shop, pharmacy and hardware (a shop's
// stock is its room type: shelves and workbenches there have no table of their own, so they fill
// from the room's). The shed table is ready for a shed.
(
// Sandbox loot abundance: multiplies every table's and group's rolls (0.25 scarce ... 2 plenty).
scale: 1.0,
// Multiplies the weight of Rare and VeryRare entries (0: never found).
rare_scale: 1.0,
// Each tier's weight multiplier. Roughly: a Common entry of weight 1 in a table of everyday
// things turns up in one container in eight or so, an Uncommon one in one in twenty, a Rare one
// in one in fifty, a VeryRare one in one in a hundred and more: a gun or two in a town.
tiers: (common: 1.0, uncommon: 0.35, rare: 0.15, very_rare: 0.08),
tables: [
// ---- Kitchen -------------------------------------------------------------------------
(room: "kitchen", container: "fridge", empty: 0.15, rolls: (1, 4), entries: [
(item: "soda_can", weight: 3, count: (1, 4)),
(item: "milk", weight: 3),
(item: "cheese", weight: 3),
(item: "apple", weight: 3, count: (1, 4)),
(item: "juice_carton", weight: 2, count: (1, 2)),
(item: "water_bottle", weight: 2, count: (1, 2)),
(item: "bread", weight: 1),
(item: "raw_chicken", weight: 2),
(item: "sausages", weight: 2),
(item: "egg", weight: 2, count: (2, 6)),
]),
(room: "kitchen", container: "kitchen_cupboard", empty: 0.1, rolls: (2, 5), entries: [
(item: "tinned_beans", weight: 4, count: (1, 3)),
(item: "tinned_soup", weight: 4, count: (1, 3)),
(item: "tinned_fruit", weight: 3, count: (1, 2)),
(item: "crackers", weight: 3),
(item: "cereal", weight: 3),
(item: "crisps", weight: 2),
(item: "mug", weight: 4, count: (1, 2)),
(item: "empty_bottle", weight: 2),
(item: "plastic_bag", weight: 2, count: (1, 3)),
(item: "matches", weight: 1),
(item: "dry_pasta", weight: 2),
(item: "dry_rice", weight: 2),
(item: "cooking_pot", weight: 1.5),
(item: "peanut_butter", weight: 3, tier: Uncommon),
(item: "frying_pan", weight: 2, tier: Uncommon),
], groups: [
// One cupboard in three is the one with the cutlery drawer.
(name: "cutlery drawer", chance: 0.35, rolls: (1, 1), entries: [
(item: "tin_opener", weight: 3),
(item: "kitchen_knife", weight: 4, tier: Uncommon),
(item: "scissors", weight: 2, tier: Uncommon),
]),
]),
(room: "kitchen", container: "under_sink", empty: 0.3, rolls: (1, 2), entries: [
(item: "plastic_bag", weight: 3, count: (1, 3)),
(item: "rag", weight: 2, count: (1, 2)),
(item: "candle", weight: 2),
(item: "empty_bottle", weight: 1),
(item: "duct_tape", weight: 3, tier: Uncommon),
(item: "antiseptic", weight: 2, tier: Uncommon),
]),
// Any shelves in a kitchen: the pantry.
(room: "kitchen", container: "any", empty: 0.2, rolls: (1, 4), entries: [
(item: "tinned_beans", weight: 3, count: (1, 2)),
(item: "tinned_soup", weight: 3, count: (1, 2)),
(item: "cereal", weight: 2),
(item: "crackers", weight: 2),
(item: "mug", weight: 2),
(item: "baking_tray", weight: 1),
(item: "dry_pasta", weight: 2),
(item: "dry_rice", weight: 2),
]),
// ---- Containers that are the same in any room -----------------------------------------
(room: "any", container: "fridge", empty: 0.3, rolls: (1, 3), entries: [
(item: "soda_can", weight: 4, count: (1, 4)),
(item: "water_bottle", weight: 3, count: (1, 2)),
(item: "milk", weight: 1),
(item: "cheese", weight: 1),
(item: "sausages", weight: 1),
(item: "egg", weight: 1, count: (2, 6)),
]),
(room: "any", container: "kitchen_cupboard", empty: 0.3, rolls: (1, 3), entries: [
(item: "mug", weight: 3, count: (1, 2)),
(item: "plastic_bag", weight: 2, count: (1, 3)),
(item: "crisps", weight: 2),
(item: "chocolate_bar", weight: 2),
(item: "empty_bottle", weight: 2),
]),
(room: "any", container: "oven", empty: 0.7, rolls: (1, 1), entries: [
(item: "baking_tray", weight: 2),
(item: "cooking_pot", weight: 3),
(item: "frying_pan", weight: 3, tier: Uncommon),
]),
(room: "any", container: "under_sink", empty: 0.35, rolls: (1, 2), entries: [
(item: "rag", weight: 3, count: (1, 2)),
(item: "plastic_bag", weight: 2, count: (1, 2)),
(item: "empty_bottle", weight: 2),
(item: "candle", weight: 1),
(item: "duct_tape", weight: 2, tier: Uncommon),
]),
(room: "any", container: "bathroom_cabinet", empty: 0.2, rolls: (1, 3), entries: [
(item: "plasters", weight: 4),
(item: "towel", weight: 2),
(item: "painkillers", weight: 4, tier: Uncommon),
(item: "gauze", weight: 3, tier: Uncommon),
(item: "antiseptic", weight: 3, tier: Uncommon),
(item: "scissors", weight: 2, tier: Uncommon),
(item: "sewing_kit", weight: 2, tier: Rare),
(item: "antibiotics", weight: 2, tier: Rare),
]),
// A wardrobe, in a bedroom or anywhere but a hall (there it's a coat cupboard). Plain
// clothes are everywhere; good ones (leather, boots, a hiking pack) are a real find.
(room: "any", container: "wardrobe", empty: 0.1, rolls: (2, 5), entries: [
(item: "t_shirt", weight: 4, count: (1, 2)),
(item: "jumper", weight: 3),
(item: "jeans", weight: 3),
(item: "trainers", weight: 2),
(item: "bed_sheet", weight: 2),
(item: "hoodie", weight: 4, tier: Uncommon),
(item: "beanie", weight: 2, tier: Uncommon),
(item: "baseball_cap", weight: 2, tier: Uncommon),
(item: "scarf", weight: 2, tier: Uncommon),
(item: "bandana", weight: 1.5, tier: Uncommon),
(item: "tote_bag", weight: 2, tier: Uncommon),
(item: "school_backpack", weight: 2, tier: Uncommon),
(item: "work_boots", weight: 2, tier: Rare),
(item: "leather_jacket", weight: 2, tier: Rare),
(item: "balaclava", weight: 1.5, tier: Rare),
(item: "duffel_bag", weight: 1.5, tier: Rare),
(item: "baseball_bat", weight: 2, tier: Rare),
(item: "hiking_pack", weight: 2, tier: VeryRare),
// The gun at the back of the wardrobe (#72): very rare, and rarely with much in it.
(item: "pistol", weight: 2, tier: VeryRare),
(item: "pistol_magazine", weight: 1, tier: Rare),
(item: "pistol_rounds", weight: 2, count: (4, 12), tier: Rare),
]),
// The coat cupboard in a hall: outdoor gear.
(room: "any", container: "coat_cupboard", empty: 0.15, rolls: (1, 3), entries: [
(item: "umbrella", weight: 3),
(item: "trainers", weight: 2),
(item: "woolly_hat", weight: 2),
(item: "hoodie", weight: 3, tier: Uncommon),
(item: "scarf", weight: 3, tier: Uncommon),
(item: "baseball_cap", weight: 2, tier: Uncommon),
(item: "beanie", weight: 2, tier: Uncommon),
(item: "tote_bag", weight: 2, tier: Uncommon),
(item: "flashlight", weight: 3, tier: Uncommon),
(item: "batteries", weight: 2, tier: Uncommon),
(item: "work_gloves", weight: 2, tier: Uncommon),
(item: "golf_club", weight: 2, tier: Uncommon),
(item: "leather_jacket", weight: 3, tier: Rare),
(item: "balaclava", weight: 1.5, tier: Rare),
(item: "baseball_bat", weight: 2, tier: Rare),
(item: "shotgun", weight: 2, tier: VeryRare),
(item: "shotgun_shells", weight: 2, count: (2, 5), tier: Rare),
]),
(room: "any", container: "desk_drawers", empty: 0.25, rolls: (1, 3), entries: [
(item: "pen", weight: 4, count: (1, 3)),
(item: "magazine", weight: 3),
(item: "chocolate_bar", weight: 2),
(item: "alarm_clock", weight: 1),
(item: "batteries", weight: 3, tier: Uncommon),
(item: "scissors", weight: 3, tier: Uncommon),
(item: "painkillers", weight: 2, tier: Uncommon),
(item: "flashlight", weight: 2, tier: Uncommon),
(item: "school_backpack", weight: 2, tier: Uncommon),
(item: "glasses", weight: 2, tier: Uncommon),
(item: "pistol", weight: 1.5, tier: VeryRare),
(item: "pistol_rounds", weight: 1.5, count: (4, 12), tier: Rare),
]),
// The drawer in a coffee table.
(room: "any", container: "drawer", empty: 0.3, rolls: (1, 2), entries: [
(item: "tv_remote", weight: 4),
(item: "magazine", weight: 3),
(item: "chocolate_bar", weight: 2),
(item: "candle", weight: 2),
(item: "pen", weight: 2),
(item: "lighter", weight: 3, tier: Uncommon),
(item: "batteries", weight: 3, tier: Uncommon),
(item: "painkillers", weight: 2, tier: Uncommon),
]),
(room: "any", container: "tv_shelf", empty: 0.4, rolls: (1, 2), entries: [
(item: "magazine", weight: 3),
(item: "candle", weight: 2),
(item: "picture_frame", weight: 2),
(item: "tv_remote", weight: 1),
(item: "batteries", weight: 3, tier: Uncommon),
(item: "flashlight", weight: 2, tier: Uncommon),
]),
// A washer's or dryer's drum.
(room: "any", container: "drum", empty: 0.5, rolls: (1, 2), entries: [
(item: "t_shirt", weight: 3),
(item: "towel", weight: 3),
(item: "jeans", weight: 2),
(item: "jumper", weight: 2),
(item: "bed_sheet", weight: 2),
(item: "rag", weight: 2, count: (1, 3)),
(item: "hoodie", weight: 2, tier: Uncommon),
]),
// ---- Rooms, for furniture that holds what its room holds (shelves, benches) ------------
(room: "bathroom", container: "any", empty: 0.3, rolls: (1, 2), entries: [
(item: "towel", weight: 3),
(item: "plasters", weight: 2),
(item: "rag", weight: 2, count: (1, 2)),
(item: "painkillers", weight: 2, tier: Uncommon),
]),
(room: "bedroom", container: "any", empty: 0.3, rolls: (1, 3), entries: [
(item: "magazine", weight: 3),
(item: "roller_blind", weight: 1),
(item: "alarm_clock", weight: 2),
(item: "picture_frame", weight: 2),
(item: "t_shirt", weight: 2),
(item: "candle", weight: 1),
(item: "cushion", weight: 1),
(item: "batteries", weight: 2, tier: Uncommon),
(item: "glasses", weight: 2, tier: Uncommon),
(item: "bandana", weight: 1.5, tier: Uncommon),
// The gun in the bedside drawer (#72): very rare, and rarely with much in it.
(item: "pistol", weight: 2, tier: VeryRare),
(item: "pistol_magazine", weight: 1, tier: Rare),
(item: "pistol_rounds", weight: 2, count: (4, 12), tier: Rare),
]),
(room: "living", container: "any", empty: 0.3, rolls: (1, 3), entries: [
(item: "picture_frame", weight: 3),
(item: "magazine", weight: 3),
(item: "candle", weight: 2),
(item: "cushion", weight: 2),
(item: "batteries", weight: 2, tier: Uncommon),
(item: "lighter", weight: 2, tier: Uncommon),
(item: "golf_club", weight: 1, tier: Uncommon),
]),
// A dresser or sideboard in a dining room.
(room: "dining", container: "any", empty: 0.3, rolls: (1, 3), entries: [
(item: "mug", weight: 3, count: (1, 2)),
(item: "candle", weight: 3, count: (1, 2)),
(item: "matches", weight: 2),
(item: "picture_frame", weight: 2),
(item: "bed_sheet", weight: 1),
(item: "kitchen_knife", weight: 2, tier: Uncommon),
]),
(room: "hall", container: "any", empty: 0.3, rolls: (1, 2), entries: [
(item: "umbrella", weight: 3),
(item: "plastic_bag", weight: 2, count: (1, 3)),
(item: "flashlight", weight: 3, tier: Uncommon),
(item: "batteries", weight: 3, tier: Uncommon),
(item: "work_gloves", weight: 2, tier: Uncommon),
]),
// Laundry shelves: cleaning things and the odd tool.
(room: "laundry", container: "any", empty: 0.2, rolls: (1, 3), entries: [
(item: "roller_blind", weight: 2),
(item: "towel", weight: 2),
(item: "rag", weight: 3, count: (1, 3)),
(item: "candle", weight: 1),
(item: "duct_tape", weight: 3, tier: Uncommon),
(item: "screwdriver", weight: 3, tier: Uncommon),
(item: "batteries", weight: 3, tier: Uncommon),
(item: "nails", weight: 2, tier: Uncommon),
(item: "rope", weight: 2, tier: Uncommon),
(item: "flashlight", weight: 2, tier: Uncommon),
(item: "work_gloves", weight: 2, tier: Uncommon),
], groups: [
(name: "toolbox", chance: 0.35, rolls: (1, 1), entries: [
(item: "wooden_plank", weight: 2),
(item: "claw_hammer", weight: 6, tier: Uncommon),
(item: "crowbar", weight: 6, tier: Rare),
(item: "fire_axe", weight: 6, tier: VeryRare),
]),
]),
// The shed's shelves and bench: tools and materials.
(room: "shed", container: "any", empty: 0.15, rolls: (2, 4), entries: [
(item: "nails", weight: 3),
(item: "nail", weight: 2, count: (6, 20)),
(item: "roller_blind", weight: 1),
(item: "wooden_plank", weight: 3, count: (1, 3)),
(item: "firewood", weight: 4, count: (1, 3)),
(item: "rope", weight: 2),
(item: "empty_bottle", weight: 1),
(item: "claw_hammer", weight: 4, tier: Uncommon),
(item: "saw", weight: 4, tier: Uncommon),
(item: "hatchet", weight: 3, tier: Uncommon),
(item: "screwdriver", weight: 4, tier: Uncommon),
(item: "duct_tape", weight: 4, tier: Uncommon),
(item: "cable_tie", weight: 3, count: (2, 5), tier: Uncommon),
(item: "work_gloves", weight: 4, tier: Uncommon),
(item: "dust_mask", weight: 2, count: (1, 3), tier: Uncommon),
(item: "batteries", weight: 2, tier: Uncommon),
(item: "crowbar", weight: 3, tier: Rare),
(item: "fire_axe", weight: 3, tier: VeryRare),
(item: "shotgun", weight: 2, tier: VeryRare),
(item: "shotgun_shells", weight: 2, count: (2, 5), tier: Rare),
]),
// Like a shed, with a lot more junk.
(room: "garage", container: "any", empty: 0.15, rolls: (2, 5), entries: [
(item: "empty_bottle", weight: 3, count: (1, 3)),
(item: "roller_blind", weight: 2),
(item: "rag", weight: 3, count: (1, 3)),
(item: "nails", weight: 2),
(item: "nail", weight: 2, count: (6, 20)),
(item: "wooden_plank", weight: 2, count: (1, 2)),
(item: "firewood", weight: 2, count: (1, 2)),
(item: "newspaper", weight: 1),
(item: "plastic_bag", weight: 2, count: (1, 3)),
(item: "rope", weight: 1.5),
(item: "magazine", weight: 1),
(item: "screwdriver", weight: 4, tier: Uncommon),
(item: "duct_tape", weight: 4, tier: Uncommon),
(item: "cable_tie", weight: 3, count: (2, 5), tier: Uncommon),
(item: "work_gloves", weight: 3, tier: Uncommon),
(item: "dust_mask", weight: 2, count: (1, 3), tier: Uncommon),
(item: "claw_hammer", weight: 3, tier: Uncommon),
(item: "saw", weight: 2, tier: Uncommon),
(item: "hatchet", weight: 2, tier: Uncommon),
(item: "batteries", weight: 2, tier: Uncommon),
(item: "flashlight", weight: 2, tier: Uncommon),
(item: "golf_club", weight: 2, tier: Uncommon),
(item: "crowbar", weight: 3, tier: Rare),
(item: "baseball_bat", weight: 2, tier: Rare),
(item: "fire_axe", weight: 2, tier: VeryRare),
(item: "hunting_rifle", weight: 2, tier: VeryRare),
(item: "rifle_rounds", weight: 2, count: (3, 8), tier: Rare),
]),
(room: "office", container: "desk_drawers", empty: 0.2, rolls: (1, 3), entries: [
(item: "pen", weight: 4, count: (1, 3)),
(item: "magazine", weight: 2),
(item: "chocolate_bar", weight: 2),
(item: "mug", weight: 2),
(item: "scissors", weight: 3, tier: Uncommon),
(item: "painkillers", weight: 2, tier: Uncommon),
(item: "batteries", weight: 2, tier: Uncommon),
(item: "school_backpack", weight: 1.5, tier: Uncommon),
(item: "flashlight", weight: 1.5, tier: Uncommon),
(item: "glasses", weight: 1.5, tier: Uncommon),
(item: "pistol", weight: 1.5, tier: VeryRare),
(item: "pistol_rounds", weight: 1.5, count: (4, 12), tier: Rare),
]),
(room: "office", container: "any", empty: 0.3, rolls: (1, 2), entries: [
(item: "pen", weight: 3, count: (1, 3)),
(item: "magazine", weight: 3),
(item: "mug", weight: 2),
(item: "picture_frame", weight: 1),
(item: "umbrella", weight: 1),
]),
// ---- Shops: worth the noise of getting in ----------------------------------------------
// A corner shop's shelves.
(room: "shop", container: "any", empty: 0.05, rolls: (3, 8), entries: [
(item: "tinned_beans", weight: 4, count: (1, 4)),
(item: "tinned_soup", weight: 4, count: (1, 4)),
(item: "crisps", weight: 4, count: (1, 3)),
(item: "chocolate_bar", weight: 4, count: (1, 5)),
(item: "soda_can", weight: 4, count: (1, 6)),
(item: "tinned_fruit", weight: 3, count: (1, 3)),
(item: "crackers", weight: 3, count: (1, 2)),
(item: "water_bottle", weight: 3, count: (1, 3)),
(item: "cereal", weight: 2),
(item: "dry_pasta", weight: 2, count: (1, 3)),
(item: "dry_rice", weight: 2, count: (1, 3)),
(item: "newspaper", weight: 1, count: (1, 3)),
(item: "plastic_bag", weight: 2, count: (1, 4)),
(item: "matches", weight: 1),
(item: "candle", weight: 1, count: (1, 2)),
(item: "magazine", weight: 1, count: (1, 2)),
(item: "peanut_butter", weight: 3, tier: Uncommon),
(item: "batteries", weight: 3, count: (1, 2), tier: Uncommon),
(item: "lighter", weight: 2, tier: Uncommon),
(item: "painkillers", weight: 2, tier: Uncommon),
]),
(room: "shop", container: "fridge", empty: 0.05, rolls: (3, 8), entries: [
(item: "soda_can", weight: 4, count: (2, 6)),
(item: "water_bottle", weight: 3, count: (1, 3)),
(item: "juice_carton", weight: 2, count: (1, 2)),
(item: "milk", weight: 2, count: (1, 2)),
(item: "cheese", weight: 1, count: (1, 2)),
(item: "raw_chicken", weight: 2, count: (1, 2)),
(item: "sausages", weight: 2, count: (1, 2)),
(item: "egg", weight: 1, count: (6, 12)),
]),
(room: "pharmacy", container: "any", empty: 0.05, rolls: (3, 8), entries: [
(item: "plasters", weight: 4, count: (1, 3)),
(item: "painkillers", weight: 4, count: (1, 2)),
(item: "gauze", weight: 3, count: (1, 2)),
(item: "antiseptic", weight: 3, count: (1, 2)),
(item: "chocolate_bar", weight: 1, count: (1, 3)),
(item: "water_bottle", weight: 1),
(item: "thread", weight: 3, count: (1, 2), tier: Uncommon),
(item: "sewing_kit", weight: 3, tier: Uncommon),
(item: "antibiotics", weight: 4, tier: Rare),
]),
(room: "hardware", container: "any", empty: 0.05, rolls: (3, 8), entries: [
(item: "duct_tape", weight: 3, count: (1, 2)),
(item: "roller_blind", weight: 3, count: (1, 2)),
(item: "nails", weight: 3, count: (1, 3)),
(item: "batteries", weight: 3, count: (1, 3)),
(item: "rope", weight: 2),
(item: "cable_tie", weight: 3, count: (3, 8)),
(item: "dust_mask", weight: 2, count: (1, 4)),
(item: "wooden_plank", weight: 1, count: (1, 2)),
(item: "screwdriver", weight: 4, tier: Uncommon),
(item: "work_gloves", weight: 4, tier: Uncommon),
(item: "flashlight", weight: 4, tier: Uncommon),
(item: "saw", weight: 3, tier: Uncommon),
(item: "hatchet", weight: 3, tier: Uncommon),
(item: "claw_hammer", weight: 3, tier: Uncommon),
(item: "crowbar", weight: 4, tier: Rare),
(item: "fire_axe", weight: 3, tier: VeryRare),
(item: "rifle_rounds", weight: 2, count: (4, 10), tier: Rare),
(item: "shotgun_shells", weight: 2, count: (4, 10), tier: Rare),
]),
// ---- Anywhere else: everyday clutter ----------------------------------------------------
(room: "any", container: "any", empty: 0.4, rolls: (1, 2), entries: [
(item: "magazine", weight: 3),
(item: "newspaper", weight: 2),
(item: "mug", weight: 2),
(item: "pen", weight: 2, count: (1, 2)),
(item: "plastic_bag", weight: 2),
(item: "candle", weight: 1),
(item: "picture_frame", weight: 1),
(item: "batteries", weight: 2, tier: Uncommon),
]),
// ---- A dead zombie's pockets: what someone had on them when they died (what it wore is
// added by the game, from population.ron's outfits). Mostly little things; now and then a
// tool, a bag or something to fight with, rarely a gun.
(room: "any", container: "corpse", empty: 0.45, rolls: (1, 2), entries: [
(item: "chocolate_bar", weight: 4),
(item: "crisps", weight: 2),
(item: "soda_can", weight: 2),
(item: "water_bottle", weight: 1),
(item: "apple", weight: 1),
(item: "lighter", weight: 3),
(item: "matches", weight: 2),
(item: "pen", weight: 3),
(item: "painkillers", weight: 4, tier: Uncommon),
(item: "plasters", weight: 2),
(item: "rag", weight: 1),
(item: "cable_tie", weight: 3, count: (1, 3), tier: Uncommon),
(item: "batteries", weight: 3, tier: Uncommon),
(item: "candle", weight: 3, tier: Uncommon),
], groups: [
// What they were carrying or fighting with.
(name: "carried", chance: 0.12, rolls: (1, 1), entries: [
(item: "plastic_bag", weight: 3),
(item: "screwdriver", weight: 6, tier: Uncommon),
(item: "flashlight", weight: 6, tier: Uncommon),
(item: "scissors", weight: 4, tier: Uncommon),
(item: "duct_tape", weight: 4, tier: Uncommon),
(item: "tin_opener", weight: 4, tier: Uncommon),
(item: "tote_bag", weight: 3, tier: Uncommon),
(item: "kitchen_knife", weight: 4, tier: Uncommon),
(item: "claw_hammer", weight: 3, tier: Rare),
(item: "pistol_rounds", weight: 3, count: (1, 4), tier: Rare),
(item: "pistol", weight: 2, tier: VeryRare),
]),
]),
],
)