Skip to content
Loading local search…

Try a task like “spawn a ship” or “read inventory”, or an exact API name.

Choose one category, or search all.

sc_inventory_v1_2.base.snapshot

Copy the local player’s current item-port snapshot into out (caller sets out->size; out->count is capacity in, ports filled out, max 128). The ports are the whole attached tree, depth first: each port, then the ports of the container attached to it, empty ports included. Read-only: per valid port, the attached item’s item type id (field item_class_id, an ordinal of the game’s item-type enumeration) and its session-scoped entity id (joins game.entities); generation advances on port-set change. With out->size >= sizeof(sc_inventory_snapshot) (1.1) it also sets flags (TRUNCATED: ports beyond the cap exist; LIMITED: the walk’s own limits cut the tree) and total_seen; a 1.0 caller passing the 1.0 size never sees them. Values are the client’s view of server state at snapshot time; nothing can be written through this ABI.

sco_result (*)(sco_plugin *, sc_inventory_snapshot *)

Service index

Property Value
Symbol sc_inventory_v1_2.base.snapshot
Record ID sc-inventory-v1-2-base-snapshot
Service game.inventory
Table sc_inventory_v1_2
Version macro SC_INVENTORY_SERVICE_VERSION_1_2
Packed table version 65538
Since / availability size >= 16; inherited 1.0; flags and total_seen 1.1
Complete member extent (x64 bytes) 16
Table size (x64 bytes) 24

Header source

sco_result (*snapshot)(sco_plugin* self, sc_inventory_snapshot* out);
Copy the local player’s current item-port snapshot into out (caller sets out->size; out->count is capacity in, ports filled out, max 128). The ports are the whole attached tree, depth first: each port, then the ports of the container attached to it, empty ports included. Read-only: per valid port, the attached item’s item type id (field item_class_id, an ordinal of the game’s item-type enumeration) and its session-scoped entity id (joins game.entities); generation advances on port-set change. With out->size >= sizeof(sc_inventory_snapshot) (1.1) it also sets flags (TRUNCATED: ports beyond the cap exist; LIMITED: the walk’s own limits cut the tree) and total_seen; a 1.0 caller passing the 1.0 size never sees them. Values are the client’s view of server state at snapshot time; nothing can be written through this ABI.

OK snapshot copied, UNAVAILABLE service off, no backend bound, out null, out->size below the 1.0 snapshot size, no local player, no item-port container on the player, or the adapter’s guards failed; BAD_ARG invalid self.

game.inventory.read defaults OFF (a product switch, and every inventory.* signature row must be OK); off, unbound or unready, the service publishes UNAVAILABLE. Adapter grounded on F-4.10.197.2878-011..-016; synthetic evidence only, not run in game.

Provider fills caller-owned storage; a plain copy crosses. No allocation, no engine pointer transfer, nothing retained from out.

Game thread only.

No plugin callback.

Snapshot read; the adapter reads the container’s port vector in place and calls only per-port accessors, each checked against its signature row first.

StopGameInventory withdraws the service; read-only, no engine state to restore.

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_inventory.h
(*snapshot)
cpp direct include/sc_inventory.h
(*snapshot)
csharp unsupported docs/contracts.md
Legacy language snapshot wrappers query the 1.0/1.1 table.
lua unsupported docs/contracts.md
Legacy language snapshot wrappers query the 1.0/1.1 table.

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

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