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.

sco_widgets_v1.remove_nodes

Atomically removes 1..256 listed nodes of an owned panel, each with its subtree. Every ID must be nonzero and present; a removal that would empty the panel is refused (use remove_panel). The ID array is read during the call only. Failure preserves the tree.

sco_result (*)(sco_plugin *, const char *, const uint32_t *, uint32_t)

Service index

Property Value
Symbol sco_widgets_v1.remove_nodes
Record ID sco-widgets-v1-remove-nodes
Service sco.widgets
Table sco_widgets_v1
Version macro SCO_WIDGETS_VERSION_1_3
Packed table version 65539
Since / availability size >= 40; 1.1
Complete member extent (x64 bytes) 40
Table size (x64 bytes) 48

Header source

sco_result (*remove_nodes)(sco_plugin* self, const char* panel_id, const uint32_t* node_ids, uint32_t count);
Atomically removes 1..256 listed nodes of an owned panel, each with its subtree. Every ID must be nonzero and present; a removal that would empty the panel is refused (use remove_panel). The ID array is read during the call only. Failure preserves the tree.

OK; WRONG_THREAD off game thread; UNAVAILABLE stopped service/host; BAD_ARG invalid owner/ID, NULL or empty array, zero ID or emptied panel; NOT_FOUND absent owned panel or node ID; TOO_MANY more than 256 IDs. Failure atomic.

Check the table size covers the member and the pointer is non-NULL: a 1.0 table (24 bytes) has no 1.1 members. query_service answers UNAVAILABLE for 1.1 against a 1.0 host.

Host releases the removed copies; caller keeps the ID array. fn/ctx unchanged. No allocation transfer.

Game thread only; WRONG_THREAD elsewhere. Callbacks game thread under owner callout guard.

Event, text and panel ID borrowed during callback only; callback ctx is plugin-owned.

Callable from the panel’s own event callback; generation change drops remaining stale events, new tree renders next pass. Registry lock not held during plugin code.

Success starts a new generation: remaining events of the current pass drop and the change renders next pass. Owner release and fault rules as set_panel. No separate cancel token.

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/sco_widgets.h
(*remove_nodes)
cpp typed-wrapper include/scosdk/widgets.hpp
return table_->remove_nodes(self_,
csharp typed-wrapper sdk/csharp/Sco.Sdk/Widgets.cs
_t->remove_nodes(_plugin
lua typed-wrapper plugins/lua/sco_lua.c
service.table->remove_nodes(s->self

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

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