# Scenario object identities and model key

The [scenario inspector](../analysis/missions/index.html) now includes a thumbnail key, counts by definition slot, optional model markers on the map, and links from each identity to its bank-specific 3D model and executable definition. Click a key entry to highlight that slot's placements. Select an individual object to inspect its stored setup record.

`definition_slot` selects one of the 33 executable object definitions, not a city building type. The loaded model bank supplies the slot's model pointer. A shared mesh does not imply identical behaviour: motion, callbacks, mission scripts and instance parameters can differ.

## Identifications

These are evidence-based descriptive labels, not recovered symbolic names. Mission references below use resource / record numbers, not displayed level numbers.

| Slot | Delphi identity | Evidence / confidence |
| --- | --- | --- |
| 0–9 | Named player weapons and automatic follow-ups | Previously traced weapon selection and firing paths; see [weapon behaviour](weapon-behaviour.md). |
| 10–12 | Other-craft weapons | Selection mapping recovered; exact names unresolved. |
| 13–18 | Additional projectiles | Models available; exact identities unresolved. |
| 19 | Skimma Supa | Strong: 04_000 / 0 starts with two slot-19 enemies and describes Skimmas; geometry matches the known Skimma. |
| 20 | Oppressor | Strong: 04_001 / 3 introduces Oppressors; repeated later briefings and slot-20 groups agree. |
| 21 | Assassin | Strong: 04_004 / 0 initially has only two slot-21 enemies and explicitly targets Assassins. |
| 22 | Stalker | Strong: 04_004 / 2 initially has only one slot-22 enemy and explicitly requests destroying the Stalker. |
| 23 | Terrablitz | Probable: 04_002 / 4 introduces Terrablitz with the first slot-23 examples; mixed encounters prevent a clean exclusive match. |
| 24–28 | Alternate Skimma, Caero, Skimma, upgraded Skimma, underground player configurations | Configuration/definition mapping; bank substitutions still apply. |
| 29 | Caero-shaped route object | Visual geometry match; compact setup records use the route interpreter. Not necessarily a player craft. |
| 30 | Cargo truck | Visual identification; exact class name unconfirmed. |
| 31 | Flatbed / equipment carrier | Visual identification; exact cargo and purpose unconfirmed. |
| 32 | Mobile missile launcher | Probable: launcher-like geometry; 04_005 / 7 introduces mobile missile launchers and includes six slot-32 route objects. |

## Bank substitutions

- Bank 30 is Delphi. Its aircraft, cargo vehicles and launcher appearances underpin the names above.
- Bank 31 is Halon. Slots 24–32 all resolve to Skimma geometry, including the slots that show trucks in Delphi.
- Bank 32 is underground. Slots 22 and 23 use Skimma geometry instead of the Delphi Stalker and Terrablitz appearances. Slots 29–32 share a wheeled-vehicle model. **Slot 29 is the Wrecker**, a strong mission association identified from the briefing in 04_002 / 0: the briefing names Oppressors and a Wrecker that clears sturdy section doors, and the setup contains slot-20 Oppressors plus exactly one slot-29 object (initial object 4 at cell coordinates 53.5, 56.5). The other three slots’ roles remain unresolved; shared geometry alone does not identify them as Wreckers.

The key therefore uses `(bank, definition_slot)`, not just the slot. Colours also come from each bank's palette. The [identity catalogue](../analysis/gameplay/object-identities.json) exports all 99 combinations with model pool offsets, face counts, confidence, evidence and links. These labels describe model appearance and supported mission associations; they are not a complete AI classification.

Map markers retain stored coordinates and group colours. Reserve and free-list templates need not be active enemies or simultaneously visible. Native setup patches and underground route snapping can change the actual runtime placement.

## Reproduction

`tools/object_identity.py` builds the identity catalogue. `tools/model_viewer.py` incorporates names and supports model deep links with `bank`, `category=special` and `type` query parameters. After building the atlas, run `tools/render_object_thumbnails.js` with Playwright Core and Chromium available to generate the 99 transparent PNGs using its shaded renderer. Finally, `tools/mission_browser.py` embeds the identities in the offline scenario browser.

## Additional Delphi building identities (gameplay observations)

Types 86–89 are office buildings, identified from the office-destruction description cited as `04:011`. Types 30–35 are houses; type 29 appears to be a destroyed house. Type 75 is a warehouse roof; type 76 is the destructible version with a skylight for dropping a bomb inside. These labels apply to bank 30; model IDs in other banks are not assumed to have the same meaning.
