sc_owned_v1.remove_build
Remove a retained caller-owned build placement through existing entities despawn; ticket 0 on refusal, SCO_OK is initiation only.
Signature
Section titled “Signature”sco_result (*)(sco_plugin *, uint64_t, uint64_t *)Service and availability
Section titled “Service and availability”| Property | Value |
|---|---|
| Symbol | sc_owned_v1.remove_build |
| Record ID | sc-owned-v1-remove-build |
| Service | game.owned |
| Table | sc_owned_v1 |
| Version macro | SC_OWNED_VERSION_1_0 |
| Packed table version | 65536 |
| Since / availability | size >= 24; 1.0 |
| Complete member extent (x64 bytes) | 24 |
| Table size (x64 bytes) | 56 |
Parameters and buffers
Section titled “Parameters and buffers”sco_result (*remove_build)(sco_plugin* self, uint64_t entity_id, uint64_t* out_ticket);
Remove a retained caller-owned build placement through existing entities despawn; ticket 0 on refusal, SCO_OK is initiation only.
Results and failures
Section titled “Results and failures”BAD_ARG invalid/released self or arguments; NOT_FOUND foreign/stale authority; UNAVAILABLE missing/partial/null prerequisite method; FAILED changed seat; TOO_MANY full tracking. Underlying refusal propagates; SCO_OK removal is initiation only.
Absent capability
Section titled “Absent capability”Absent table: query_service NOT_FOUND; prerequisite operations may be UNAVAILABLE.
Ownership
Section titled “Ownership”Explicit retained entities ownership while loaded; NPC authority is actors-only. Owner-scoped receipts, caller outputs; fixed global bounds of 1024 each, no cross-boundary allocation.
Thread affinity
Section titled “Thread affinity”Game thread only; WRONG_THREAD elsewhere. No recursive reentry.
Callback context
Section titled “Callback context”No caller callbacks. Existing game-pack primitives only.
Reentrancy
Section titled “Reentrancy”No recursive reentry.
Cleanup and cancellation
Section titled “Cleanup and cancellation”Ordinary unload removes retained placements/NPCs through existing hooks and clears receipts. No across-reload persistence; retained-provider faults require restart and skip resource hooks.
Language mappings
Section titled “Language mappings”Status labels are copied verbatim from the catalogue: direct is native access; typed-wrapper is wrapper-backed; restricted is a subset/adaptation; unsupported means no supported route is established. No status implies universal safety.
| Language | Catalogue status | Source evidence / wrapper tokens |
|---|---|---|
| c | direct | include/sc_owned.h(*remove_build) |
| cpp | direct | include/sc_owned.h(*remove_build) |
| csharp | unsupported | docs/design/owned-removal.mdC# game.owned is unsupported |
| lua | unsupported | docs/design/owned-removal.mdLua game.owned is unsupported |
Examples
Section titled “Examples”None identified in the catalogue; this is not proof none can exist.
ABI pins prove layout, not semantic behavior or a live game session.