Skip to content

sc_world_v1.camera

The camera you see through: *out_pos in the world frame (metres), *out_rot_xyzw the same frame’s rotation (x, y, z, w), *out_zone_id the zone your player is in (so you can convert with teleport.spatial). No fov (see above). Any pointer may be NULL to skip it, not all. SCO_NOT_FOUND: you haven’t spawned yet. SCO_UNAVAILABLE: game.world.camera isn’t ready. SCO_FAILED: the game faulted. Outputs are zeroed on failure.

sco_result (*)(double *, double *, uint64_t *)

Service index

Property Value
Symbol sc_world_v1.camera
Record ID sc-world-v1-camera
Service game.world
Table sc_world_v1
Version macro SC_WORLD_VERSION_1_1
Packed table version 65537
Since / availability size >= 24; 1.0
Complete member extent (x64 bytes) 24
Table size (x64 bytes) 40

Header source

sco_result (*camera)(double out_pos[3], double out_rot_xyzw[4], uint64_t* out_zone_id);
The camera you see through: *out_pos in the world frame (metres), *out_rot_xyzw the same frame’s rotation (x, y, z, w), *out_zone_id the zone your player is in (so you can convert with teleport.spatial). No fov (see above). Any pointer may be NULL to skip it, not all. SCO_NOT_FOUND: you haven’t spawned yet. SCO_UNAVAILABLE: game.world.camera isn’t ready. SCO_FAILED: the game faulted. Outputs are zeroed on failure.

Absent table: query_service NOT_FOUND; missing operation capability: UNAVAILABLE; BAD_ARG for invalid required outputs. Additional failures/output state unspecified unless described in the buffer contract.

Absent table: query_service NOT_FOUND

Caller buffers; no allocation crosses boundary; queries do not own entities. Internal allocation unspecified.

Game thread only (WRONG_THREAD elsewhere); last_error any thread. Recursive reentrancy unspecified.

unspecified

unspecified

No cancellation entrypoint; synchronous query.

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.h
(*camera)
cpp typed-wrapper include/scosdk/game/world.hpp
return t_->camera(pos, rot, &zone);
csharp typed-wrapper sdk/csharp/Sco.Sdk/Game/World.cs
ScoResult r = _t->camera(pos, rot, &zone);
lua typed-wrapper plugins/lua/sco_lua_game.c
const sco_result r = GAME_MEMBER(w, sc_world_v1, camera) ? w->camera(pos, rot, &zone) : SCO_UNAVAILABLE;

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

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