NativeHub
All NativesModelsArtifactsCFXVehicle

Not affiliated with Rockstar Games or Take-Two Interactive. FiveM and Cfx.re are trademarks of their respective owners. cfxnatives.dev is an independent community project.

Maintained by uz-scripts

© 2026 cfxnatives.dev

contact@cfxnatives.dev
ENTITYClient
Artifact25963
Data sourced from jgscripts artifact-db

SetEntityRotation

Docs
SetEntityRotation(entity, pitch, roll, yaw, rotationOrder, bDeadCheck)

Description

Introduced in build 323

Sets the rotation of a specified entity in the game world.

Parameters

NameTypeDescription
entityEntityThe entity to rotate.
pitchfloatThe pitch (X-axis) rotation in degrees.
rollfloatThe roll (Y-axis) rotation in degrees.
yawfloatThe yaw (Z-axis) rotation in degrees.
rotationOrderintSpecifies the order in which yaw, pitch, and roll are applied, see [`GET_ENTITY_ROTATION`](#\_0xAFBD61CC738D9EB9) for the available rotation orders.
bDeadCheckBOOLUsually set to `true`. Determines whether to check if the entity is dead before applying the rotation.
📍Quick Snippet: Get Coordinates
yaw

Add this command to your client script to retrieve precise locations in-game.

-- Add this to your client.lua. Type /pos in-game to copy coords.
RegisterCommand('pos', function()
    local ped = PlayerPedId()
    local coords = GetEntityCoords(ped)
    local heading = GetEntityHeading(ped)
    local output = string.format("vector4(%.2f, %.2f, %.2f, %.2f)", coords.x, coords.y, coords.z, heading)

    print(output)
    TriggerEvent('chat:addMessage', { args = { '^4[COORD]^0', output } })
end)
🎯Quick Snippet: Get Entity
entity

Use this to obtain an entity handle from the player's aim or crosshair.

-- Get the entity the player is aiming at
local ped = PlayerPedId()
local hit, entity = GetEntityPlayerIsFreeAimingAt(PlayerId())

if hit and entity ~= 0 then
    print("Entity: " .. entity)
    print("Model: " .. GetEntityModel(entity))
    print("Type: " .. GetEntityType(entity)) -- 1=Ped, 2=Vehicle, 3=Object
end

Returns

void

This native does not return a value.

Examples

Official
-- Example of rotating a vehicle 360 degrees
RegisterCommand('360', function()
    local playerPed = PlayerPedId() -- Get the player's Ped
    local vehicle = GetVehiclePedIsIn(playerPed, false) -- Get the vehicle the player is currently in.
    if not vehicle or not DoesEntityExist(vehicle) then
        print("You are not in a vehicle")
        return
    end
    
    local rot = GetEntityRotation(vehicle, 2)
    local roll, pitch, yaw = rot.x, rot.y, rot.z
    local finalYaw = yaw + 360
    local steps = 20 -- Reduced the number of steps so each rotation is larger
    -- Function to perform the rotation gradually
    local function doRotation()
        local currentYaw = yaw
        -- Loop to adjust the rotation in steps
        for i = 1, steps do
            Citizen.Wait(20) -- Increases the delay between each adjustment to make the animation slower
            currentYaw = currentYaw + (360 / steps) -- Increments the rotation
            if currentYaw >= finalYaw then
                currentYaw = finalYaw
            end
            -- Apply the current rotation
            SetEntityRotation(vehicle, roll, pitch, currentYaw % 360, 2, true)
            if currentYaw == finalYaw then
                break -- Stops the loop once the rotation is complete
            end
        end
    end
    -- Execute the rotation in a coroutine to not block the main thread
    Citizen.CreateThread(doRotation)
end, false)

Server Artifacts

Data sourced from jgscripts artifact-db
Recommended25963
Known Issues24
25987-25988Node.js sandboxing seems to be causing issues for people - best to avoid for now
21547Multiple (unconfirmed) reports of server-sided natives throwing errors or causing crashes; best to avoid
17462Failed build, ignore
16276Multiple reports of issues loading JS within resources
14583-14716Crash when using the new onEntityBucketChange
14583-14862Timeouts due to latency units being in nanoseconds
13759-13890Mumble (voice) external connections blocked by default
13380-13458Server crashing due to integer encoding (PR#3235)
13079Failed Linux build (works OK if using Windows!)
12933-13045Still crashes (sometimes) when restarting resources due to Node.js 22
12913-12932Causes a crash when restarting Node.js 22
12767os.date() appends null terminator; can break Lua scripts
12651Failed Linux build, ignore
12509Failed build, ignore
12255Unconfirmed, but several reports of server-side issues that don't persist when downgrading; best to avoid
12160-12165Cannot use entity native calls in entityRemoved
12151Crashing if using newest title update (TU)
12092-12135SetPlayerModel may cause SIGSEGV crashes on some clients due to changes in player handling. 12031 and below works fine.
12078-12083Some clients will fail to connect with 'ReadBulk of header failed' error
10930Failed build, ignore
10268-10309sv_experimentalNetGameEventHandler enabled by default; can cause server crashing and reports of issues downgrading after upgrading
10191GetVehicleNumberPlateText server native broken, will cause issues with scripts involving vehicles
10072Crashing when players join
8509State bags not replicated to clients

CommunitySnippets

No snippets yet. Be the first to contribute!