Arma 3 Scripting

Command in Object Manipulation

createVehicle

Also available as Markdown and JSON, or read the original wiki page.

Description

Creates an empty object of given classname type. See Arma 3: Assets / Arma 3: createVehicle/vehicles, or Category:CfgVehicles for earlier games.

Note

Note

Arma 3: To avoid vehicle randomisation in Arma 3, set the BIS_enableRandomization variable immediately after creating the vehicle:

private "_vehicle";
isNil { // run unscheduled
    _vehicle = "C_Offroad_01_F" createVehicle getPosATL player;
    _vehicle setVariable ["BIS_enableRandomization", false];
};
// the _vehicle variable is available after that

See the Arma 3: Vehicle Customisation page for more information and settings.

Syntax

Syntax 1

type createVehicle position

Parameters:

Returns: Object

Syntax 2

createVehicle [type, position, markers, placement, special]

Parameters:

Returns: Object - created vehicle or objNull if failed

Examples

Example 1

_jeep = "Jeep" createVehicle position player;

Example 2

_heli = "AH1Z" createVehicle getMarkerPos "hspawn";

Example 3

_veh = createVehicle ["ah1w", position player, [], 0, "FLY"];

Example 4

_veh = createVehicle ["2S6M_Tunguska", getMarkerPos "marker1", ["marker2", "marker3"], 0, "NONE"];

Example 5

Objects such as

0 spawn
{
    private _fire = "test_EmptyObjectForFireBig" createVehicle position player;
    sleep 5;
    deleteVehicle _fire;
};

Example 6

The following explosives (ending with _Scripted) can be set off by applying setDamage 1 to them for ease of scripting:

_claymore = "ClaymoreDirectionalMine_Remote_Ammo_Scripted" createVehicle position player;
_claymore spawn
{
    sleep 5;
    _this setDamage 1;
};

Example 7

Add inventory to objects without inventory:

_boxes = "Land_Pallet_MilBoxes_F" createVehicle position player;
_cargo = "Supply500" createVehicle [0,0,0];
_cargo attachTo [_boxes, [0,0,0.85]];

// optional for objects that can take damage
_boxes addEventHandler ["Killed",
{
    {
        detach _x;
        deleteVehicle _x;
    }
    forEach attachedObjects (_this select 0);
}];

Example 8

Drop player's weapon:

_weaponHolder = "GroundWeaponHolder_Scripted" createVehicle position player;
player action ["DropWeapon", _weaponHolder, currentWeapon player];

Example 9

The following weapon holders (ending with _Scripted) do not auto-delete when empty. It is up to the mission maker to take care of these:

0 spawn 
{
    private _weaponHolder = createVehicle ["Weapon_Empty", getPosATL player, [], 0, "CAN_COLLIDE"];
    _weaponHolder addWeaponCargo ["arifle_Katiba_F", 1];
    hint "You have 5 seconds to grab this weapon";
    sleep 5;
    deleteVehicle _weaponHolder;
};

See also

createVehicleLocal · create3DENEntity · createVehicleCrew · createAgent · createTrigger · createUnit · createMine · deleteVehicle · createGroup · createCenter · setVehiclePosition

Community notes

MrSanchez

GroundWeaponHolder class is automatically deleted when empty after 0.5 to 1 seconds in A3 1.48. The exact delay is random but never lower than 0.50 secs after creation. You can stop deletion by adding something (cargo) to it within 0.5 seconds.

AgentRev

For the alternative syntax, if the vehicle has canFloat = 1; in its config class (e.g. boats and wheeled APCs) the command expects PositionAGL, otherwise always PositionATL.

demellion

WARNING: Do not instigate createVehicle or createVehicleLocal within a server function executed with preInit flag.

This will cause "You cannot play/edit this mission" for a vehicles compiled from a -mod and make server skip/loop that mission init.

R3vo

The main syntax creates vehicles at ground level ignoring the Z in pos and is also faster than the alternative syntax.

"vehclass" createVehicle pos;

This is equivalent to

createVehicle ["vehclass", [pos select 0, pos select 1, 0], [], 0, "NONE"];