Skip to content

sc_world_control_v1.camera_release

Restore exact pre-acquire shared camera/input/mode state before relinquishing own lease. Foreign owner FAILED; stale/zero token NOT_FOUND. Restore failure FAILED retains provider state and latches restart-required; owner cleanup/release can retry restoration, never re-enable mutations. Recovery release allowed after service stop.

sco_result (*)(sco_plugin *, uint64_t)

Service index

Property Value
Symbol sc_world_control_v1.camera_release
Record ID sc-world-control-v1-camera-release
Service game.world.control
Table sc_world_control_v1
Version macro SC_WORLD_CONTROL_VERSION_1_0
Packed table version 65536
Since / availability size >= 40; 1.0
Complete member extent (x64 bytes) 40
Table size (x64 bytes) 40

Header source

sco_result (*camera_release)(sco_plugin* self, uint64_t lease);
Restore exact pre-acquire shared camera/input/mode state before relinquishing own lease. Foreign owner FAILED; stale/zero token NOT_FOUND. Restore failure FAILED retains provider state and latches restart-required; owner cleanup/release can retry restoration, never re-enable mutations. Recovery release allowed after service stop.

BAD_ARG invalid owner/input; WRONG_THREAD; UNAVAILABLE absent verified adapter or restart-required; FAILED foreign owner/provider refusal; NOT_FOUND stale lease/no hit. See method-specific output contract.

Absent service: query_service NOT_FOUND; present disabled operation: UNAVAILABLE.

Live owner required; call-only copied inputs, host-session borrowed table. No allocation or engine pointers cross boundary. Camera lease exclusive; no steal.

Game thread only; WRONG_THREAD without provider access.

No plugin callbacks. Host-only provider callbacks synchronous, bounded, nonthrowing.

Recursive calls refused with FAILED; no waits or async work.

No persisted ray filter. Ordinary owner unload/service stop restores camera before dropping lease; failure retains backing state and requires restart. Fault-retained native provider cleanup not promised.

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_world_control.h
(*camera_release)
cpp typed-wrapper include/scosdk/game/world_control.hpp
t_->camera_release(
csharp unsupported docs/design/world-control.md
C# and sandboxed Lua: unsupported
lua unsupported docs/design/world-control.md
C# and sandboxed Lua: 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.