SetCameraPos
Jump to navigation
Jump to search
setCameraPos
AVAILABLE FROM UPDATE 0.1.3
This function is available in G1R:MP 0.1.3 and later. The contract below includes the compatibility guarantees introduced in that update.
Sets the local scripted camera's world position while preserving its current rotation and FOV.
Syntax
-- Client-side
number|false setCameraPos(number x, number y, number z)
-- Server-side
bool setCameraPos(int playerId, number x, number y, number z)
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
playerId |
int |
yes | Server-side only: the connected player whose local camera receives the command. |
x |
number |
yes | World-space X coordinate in metres; finite and within -1,000,000 to 1,000,000. |
y |
number |
yes | World-space Y coordinate in metres; finite and within -1,000,000 to 1,000,000. |
z |
number |
yes | World-space Z coordinate in metres; finite and within -1,000,000 to 1,000,000. |
Returns
Client-side: a positive requestId, or false when validation or queuing fails. Wait for onClientCameraCommandResult to learn the execution result. Server-side: true only means validated and queued for the connected player; false means rejected. A server return value is not a client acknowledgement.
Examples
Read the local camera/player state before issuing the command. The command's own result arrives separately in onClientCameraCommandResult.
-- Client-side: run after the local world and player camera are ready.
local query
addEventHandler("onClientCameraCommandResult", resourceRoot,
function(requestId, ok, phase, errorText, stateJson)
if requestId ~= query then return end
query = nil
if not ok or phase ~= "state" then
outputDebugString("Camera query failed: " .. tostring(errorText), 2)
return
end
local state = getCameraState()
if not state or not state.ready then return end
local request = setCameraPos(state.playerX - 5, state.playerY, state.playerZ + 3)
if not request then outputDebugString("Camera position was not queued", 2) end
end)
query = requestCameraState()
if not query then outputDebugString("Camera query was not queued", 2) end
Notes
- Available in client-side and server-side resource scripts. Equivalent PascalCase spelling:
SetCameraPos. - Client success phase:
applied. - Server-side also accepts
setCameraPosition; this extra alias is not available client-side. - Only the owning resource may change an already controlled camera. Server and client ownership are distinct, even when resource names match; use one side consistently for a camera sequence.
- Camera positions, paths and orbits have no distance limit relative to the local character. All world coordinates must remain finite and within -1,000,000 to 1,000,000 metres; the complete orbit extent is validated too. Camera control does not move the character, change replication distance, freeze input, or enable remote-player spectating.
- Use resetCameraPos to restore gameplay view. Resource stop, disconnect and world/character changes release camera ownership; see onClientCameraReset.
- An applied acknowledgement confirms command handling, not rendering or completion of world streaming. For a fresh read-back, request state after another frame or a short timer. See Scripted camera for distant scenes, lifecycle, acknowledgement and state-cache details.