A profile's `loot` block (D290-D301):
- the corpse's start: Rust's scientist loot (the default), the kit it
carried, or nothing at all, clothes included (D290, D300);
- a table of rows that always roll, each with its chance and amount,
and a pool that draws at most `pick` rows by weight, with a "nothing"
weight, so a kill never pays out more than the cap (D291);
- the table into Rust's wooden box, military crate, elite crate or
hackable locked crate instead of the corpse, with Rust's loot and
refresh off; it stays until emptied (D292, D301);
- a locked crate's hack time, through its starting count (D297);
- the corpse's time: Rust's own, seconds, or none (D294);
- `dropTable`, for an event step that switches the table off (D296).
The corpse is filled in OnCorpsePopulate, which answers with the corpse
for a kit or empty start so Rust's ApplyLoot is skipped: ApplyLoot is
protected on Oxide and public on Carbon, so no one override fits both.
A kit start takes the items as the NPC dies, because Rust has emptied
its inventory by the time the corpse is filled.
The harness's s7 group (25 checks): refusals, about 100 kills read back
against the always-rows, the chance, the pool's weights and its cap,
each start, both crates and the locked crate's timer, the corpse's time
and the event switch. 25/25 on both rigs.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01E14m6SuuY6i1vASFeGDBeY