# loot.ron

> What containers hold, by room and container.

<!-- Generated by `zombye-server --docs`. Do not edit: change the game and generate again. -->

**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`

## About this file

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.


## Fields

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>` |  |

### `TierWeights`

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` |  |

### `LootTable`

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>` |  |

#### `LootEntry`

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

##### `Rarity`

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. |

#### `LootGroup`

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 file

<details>
<summary>The whole file as shipped</summary>

```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.
(
    // 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),
            ]),
        ]),
    ],
)
```

</details>