Box
Field cell-object reference. Type tag: box / rare_box. The key words
MUST, MUST NOT, and MAY are
used as in RFC 2119. See the Cell Objects index
and the Field Stage Lifecycle for how
objects are spawned and persisted.
Config schema
Fields authored on this object in the stage JSON:
| Field | Type | Default | Note |
|---|---|---|---|
position | [x, y, z] | — | stage-local spawn position |
rotation | number | 0 | yaw in degrees |
drop_type | string | — | "meseta" | "item" | "material" | "none" |
drop_value | number | string | — | amount (meseta) or item / material id |
Spawn behavior
A breakable container placed at spawn from the stage config. The rare_box variant uses the same model but carries a rarer drop table.
Persisted state
Persisted state is intact → broken. Once broken it MUST NOT reappear on cell re-entry, and it MUST NOT re-roll or re-drop its loot.
Interactions
The player attacks the box to break it. Breaking spawns the configured drop (meseta / item / material) as a ground pickup; the pickup itself is then a normal drop tracked in the cell snapshot.
Notes
The plain container is re-skinned per field: it MUST load oNN_cont for the active area (o02_cont in Ozette Wetlands, o05_cont in Paru, and so on) rather than a fixed Valley model. AreaObjects.model_path resolves it from the area's object folder and falls back to the Valley model only when the area ships no variant. Collision MUST be sized from the model that actually loaded — the containers are not all 1×1×1 (Paru's is 1 × 1.588 × 1, half again as tall), so a fixed box leaves part of the mesh uncollidable. The rare_box model o0c_recont is a shared object, byte-identical in every field, and stays on one path.