Skip to content

sc_owned_v1.remove_seat_npc

Fresh seat occupant must match expected actors-owned NPC; foreign/player/unknown occupants are refused. Ticket 0 on refusal; SCO_OK is initiation only.

sco_result (*)(sco_plugin *, uint64_t, uint32_t, uint64_t, uint64_t *)

Service index

Property Value
Symbol sc_owned_v1.remove_seat_npc
Record ID sc-owned-v1-remove-seat-npc
Service game.owned
Table sc_owned_v1
Version macro SC_OWNED_VERSION_1_0
Packed table version 65536
Since / availability size >= 40; 1.0
Complete member extent (x64 bytes) 40
Table size (x64 bytes) 56

Header source

sco_result (*remove_seat_npc)(sco_plugin* self, uint64_t ship, uint32_t seat_index, uint64_t expected_npc, uint64_t* out_ticket);
Fresh seat occupant must match expected actors-owned NPC; foreign/player/unknown occupants are refused. Ticket 0 on refusal; SCO_OK is initiation only.

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 table: query_service NOT_FOUND; prerequisite operations may be UNAVAILABLE.

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.

Game thread only; WRONG_THREAD elsewhere. No recursive reentry.

No caller callbacks. Existing game-pack primitives only.

No recursive reentry.

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.

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_seat_npc)
cpp direct include/sc_owned.h
(*remove_seat_npc)
csharp unsupported docs/design/owned-removal.md
C# game.owned is unsupported
lua unsupported docs/design/owned-removal.md
Lua game.owned is unsupported

None identified in the catalogue; this is not proof none can exist.

ABI pins prove layout, not semantic behavior or a live game session.