RedM Natives

CREATE_OBJECT

Creates an object (prop) with the specified model at the specified position, offset on the Z axis by the radius of the object's model.

Hash0x2F7AA05C
Runtime nameCreateObject
NamespaceCFX
SideServer
NameOfficial
Docs

Signature

Entity CREATE_OBJECT(Hash modelHash, float x, float y, float z, BOOL isNetwork, BOOL netMissionEntity, BOOL doorFlag);

Parameters

NameTypeDescription
modelHashHash

The model to spawn.

xfloat

Spawn coordinate X component.

yfloat

Spawn coordinate Y component.

zfloat

Spawn coordinate Z component, 'ground level'.

isNetworkBOOL

Whether to create a network object for the object. If false, the object exists only locally.

netMissionEntityBOOL

Whether to register the object as pinned to the script host in the R* network model.

doorFlagBOOL

False to create a door archetype (archetype flag bit 26 set) as a door. Required to be set to true to create door models in network mode.

Returns Entity — A script handle (fwScriptGuid index) for the object, or `0` if the object failed to be created.

Description

Cfx.re native reference

Creates an object (prop) with the specified model at the specified position, offset on the Z axis by the radius of the object's model. This object will initially be owned by the creating script as a mission entity, and the model should be loaded already (e.g. using REQUEST_MODEL).

This is the server-side RPC native equivalent of the client native CREATE_OBJECT.

Usage

Lua
local retval = CreateObject(modelHash, x, y, z, isNetwork, netMissionEntity, doorFlag)

-- always works, by hash
local retval = Citizen.InvokeNative(0x2f7aa05c, modelHash, x, y, z, isNetwork, netMissionEntity, doorFlag, Citizen.ResultAsInteger())
JavaScript and C#
JavaScript
const retval = CreateObject(modelHash, x, y, z, isNetwork, netMissionEntity, doorFlag);

// by hash
const retval = Citizen.invokeNative('0x2f7aa05c', modelHash, x + 0.0000001, y + 0.0000001, z + 0.0000001, isNetwork, netMissionEntity, doorFlag, Citizen.returnResultAnyway(), Citizen.resultAsInteger());
C#
int retval = Function.Call<int>((Hash)0x2f7aa05c, modelHash, x, y, z, isNetwork, netMissionEntity, doorFlag);
  • Hash parameters: the named function also accepts a string and hashes it for you; Citizen.InvokeNative needs the number — pass joaat("name") or a backtick literal like `name`.
  • Float parameters: Lua integers (10, or whole numbers decoded from NUI/JSON) are sent as ints and read as garbage. Write 10.0 or value + 0.0. The generated JS wrappers add 0.0000001 to non-zero floats for the same reason.

Sources

Cfx.re native reference

Something wrong or missing? Contribute a verified note — corrections ship through pull requests.