From 2bbe6b8e912bbc5f4a61a33988fb27aca7bd5eb3 Mon Sep 17 00:00:00 2001 From: historia <[not public]> Date: Wed, 8 Jul 2026 02:23:59 -0400 Subject: feat: object and mob steal tables can include both tables and items --- building_guide/objects.md | 40 +++++++++++++++++++++++++++------------- 1 file changed, 27 insertions(+), 13 deletions(-) (limited to 'building_guide/objects.md') diff --git a/building_guide/objects.md b/building_guide/objects.md index d377f23..a8877a7 100644 --- a/building_guide/objects.md +++ b/building_guide/objects.md @@ -275,25 +275,39 @@ use_interactions: ## Stealable Objects -Objects can be stealable via the `steal` command. These use the same drop table system as mobs and searches. +Objects can be stealable via the `steal` command. These use drop entries — either +item IDs or drop table references — resolved by weighted pick. The `steal` command +supports auto-selection when only one target is available, or `steal ` for +explicit targeting, including `steal .` to disambiguate identical defs. ```yaml name: Market Stall description: "A wooden stall piled with food and sundries." -steal_table: market_stall_steal -steal_level: 5 -steal_xp: 12 -steal_speed: 5 -guard_mob: guard +steal: + drops: + - table: market_stall_steal + weight: 1 + level: 5 + xp: 12 + speed: 5 + guard_mob: guard ``` -| Field | Description | -| ------------- | ------------------------------------------------ | -| `steal_table` | Drop table ID for loot when stealing | -| `steal_level` | Required thieving level | -| `steal_xp` | XP awarded per successful steal | -| `steal_speed` | Ticks per steal attempt (base wait) | -| `guard_mob` | Mob def ID that guards this object (watches it) | +| Field | Description | +| ---------------- | ------------------------------------------------ | +| `steal.drops` | Array of drop entries (item_id + weight, or table + weight) | +| `steal.level` | Required thieving level | +| `steal.xp` | XP awarded per successful steal | +| `steal.speed` | Ticks per steal attempt (base wait) | +| `steal.guard_mob`| Mob def ID that guards this object (watches it) | + +Each drop entry: +| Field | Description | +| ------------ | ------------------------------------------------ | +| `item_id` | Item ID (mutually exclusive with `table`) | +| `table` | Drop table ID to sub-resolve (mutually exclusive with `item_id`) | +| `weight` | Weight in the weighted-pick pool | +| `quantity` | Override quantity (0 = use sub-item's own qty for tables, or 1 for items) | When `guard_mob` is set, a mob with that def ID in the same room watches the object on a tick-based cycle (8 ticks watching, 4 ticks looking away). While the guard is -- cgit v1.2.3