createVehicle: Difference between revisions
Lou Montana (talk | contribs) m (Text replacement - "<code>([^ ]*)\[\[([a-zA-Z][a-zA-Z0-9_]+)\]\]([^ ]*) ([^ ]*)<\/code>" to "<code>$1$2$3 $4</code>")  | 
				Pabstmirror (talk | contribs)  m (fix example)  | 
				||
| (27 intermediate revisions by 2 users not shown) | |||
| Line 27: | Line 27: | ||
|descr= Creates an empty object of given classname type.  | |descr= Creates an empty object of given classname type.  | ||
See [[Arma 3 Assets]] / [[Arma 3: createVehicle/vehicles]], or [[:Category:CfgVehicles]] for earlier games.  | See [[Arma 3: Assets]] / [[Arma 3: createVehicle/vehicles]], or [[:Category:CfgVehicles]] for earlier games.  | ||
{{Feature|informative|  | {{Feature|informative|  | ||
| Line 34: | Line 34: | ||
}}  | }}  | ||
{{Feature|arma3|To avoid vehicle randomisation in {{arma3}}, set the {{hl|BIS_enableRandomization}} variable immediately after creating the vehicle:  | {{Feature|arma3|  | ||
<  | To avoid vehicle randomisation in {{arma3}}, set the {{hl|BIS_enableRandomization}} variable immediately after creating the vehicle:  | ||
_vehicle setVariable ["BIS_enableRandomization", false];</  | <sqf>  | ||
private "_vehicle";  | |||
isNil { // run [[Scheduler#Unscheduled Environment|unscheduled]]  | |||
	_vehicle = "C_Offroad_01_F" createVehicle getPosATL player;  | |||
	_vehicle setVariable ["BIS_enableRandomization", false];  | |||
};  | |||
// the _vehicle variable is available after that  | |||
</sqf>  | |||
See the [[Arma 3: Vehicle Customisation]] page for more information and settings.  | |||
}}  | |||
|s1= type [[createVehicle]] position  | |s1= type [[createVehicle]] position  | ||
| Line 53: | Line 61: | ||
|p22= position: [[Object]]; [[Array]] format [[Position#Introduction|Position2D]] or [[PositionATL]] ([[PositionAGL]] if watercraft or amphibious) - desired placement position  | |p22= position: [[Object]]; [[Array]] format [[Position#Introduction|Position2D]] or [[PositionATL]] ([[PositionAGL]] if watercraft or amphibious) - desired placement position  | ||
|p23= markers: [[Array]] of [[String]]s - (Optional, default []) if the markers array contains any markers, the position is randomly picked from array of given markers plus desired placement position. If any of the markers were given z coordinate with [[setMarkerPos]], the vehicle will also be created at given z coordinate.  | |p23= markers: [[Array]] of [[String]]s - (Optional, default <sqf inline>[]</sqf>) if the markers array contains any markers, the position is randomly picked from array of given markers plus desired placement position.  | ||
If any of the markers were given z coordinate with [[setMarkerPos]], the vehicle will also be created at given z coordinate.  | |||
|p24= placement: [[Number]] - (Optional, default 0) the vehicle is placed inside a circle with given position as center and placement as its radius.  | |p24= placement: [[Number]] - (Optional, default 0) the vehicle is placed inside a circle with given position as center and placement as its radius.  | ||
| Line 65: | Line 74: | ||
|r2= [[Object]] - created vehicle or [[objNull]] if failed  | |r2= [[Object]] - created vehicle or [[objNull]] if failed  | ||
|x1= <  | |x1= <sqf>_jeep = "Jeep" createVehicle position player;</sqf>  | ||
|x2= <  | |x2= <sqf>_heli = "AH1Z" createVehicle getMarkerPos "hspawn";</sqf>  | ||
|x3= <  | |x3= <sqf>_veh = createVehicle ["ah1w", position player, [], 0, "FLY"];</sqf>  | ||
|x4= <  | |x4= <sqf>_veh = createVehicle ["2S6M_Tunguska", getMarkerPos "marker1", ["marker2", "marker3"], 0, "NONE"];</sqf>  | ||
|x5= Objects such as  | |x5= Objects such as  | ||
| Line 78: | Line 87: | ||
* "test_EmptyObjectForSmoke"  | * "test_EmptyObjectForSmoke"  | ||
create additional emitters, which are stored in "effects" variable on the object. Since {{arma3}} v1.72 these emitters are automatically deleted when object is deleted  | create additional emitters, which are stored in "effects" variable on the object. Since {{arma3}} v1.72 these emitters are automatically deleted when object is deleted  | ||
<  | <sqf>  | ||
0 spawn  | |||
{  | {  | ||
	private _fire = "test_EmptyObjectForFireBig" createVehicle position player;  | |||
	sleep 5;  | |||
	deleteVehicle _fire;  | |||
};</  | };  | ||
</sqf>  | |||
|x6= The following explosives (ending with {{hl|_Scripted}}) can be set off by applying [[setDamage]] 1 to them for ease of scripting:  | |x6= The following explosives (ending with {{hl|_Scripted}}) can be set off by applying [[setDamage]] 1 to them for ease of scripting:  | ||
| Line 89: | Line 100: | ||
* "SatchelCharge_Remote_Ammo_Scripted"  | * "SatchelCharge_Remote_Ammo_Scripted"  | ||
* "ClaymoreDirectionalMine_Remote_Ammo_Scripted"  | * "ClaymoreDirectionalMine_Remote_Ammo_Scripted"  | ||
<  | <sqf>  | ||
_claymore   | _claymore = "ClaymoreDirectionalMine_Remote_Ammo_Scripted" createVehicle position player;  | ||
_claymore spawn  | |||
{  | {  | ||
	sleep 5;  | |||
	_this   | 	_this setDamage 1;  | ||
};</  | };  | ||
</sqf>  | |||
|x7= Add inventory to objects without inventory:  | |x7= Add inventory to objects without inventory:  | ||
<  | <sqf>  | ||
_cargo = "Supply500"   | _boxes = "Land_Pallet_MilBoxes_F" createVehicle position player;  | ||
_cargo   | _cargo = "Supply500" createVehicle [0,0,0];  | ||
_cargo attachTo [_boxes, [0,0,0.85]];  | |||
// optional for objects that can take damage  | // optional for objects that can take damage  | ||
_boxes   | _boxes addEventHandler ["Killed",  | ||
{  | {  | ||
	{  | 	{  | ||
		detach _x;  | |||
		deleteVehicle _x;  | |||
	}  | 	}  | ||
	forEach attachedObjects (_this select 0);  | |||
}];</  | }];  | ||
</sqf>  | |||
|x8= Drop player's weapon:  | |x8= Drop player's weapon:  | ||
<  | <sqf>  | ||
player action ["DropWeapon",   | _weaponHolder = "GroundWeaponHolder_Scripted" createVehicle position player;  | ||
player action ["DropWeapon", _weaponHolder, currentWeapon player];  | |||
</sqf>  | |||
|x9= 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:  | |x9= 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:  | ||
| Line 119: | Line 136: | ||
* "WeaponHolderSimulated_Scripted"  | * "WeaponHolderSimulated_Scripted"  | ||
* "Weapon_Empty" (a special weaponholder that displays only a single weapon, even if it contains magazines for this weapon)  | * "Weapon_Empty" (a special weaponholder that displays only a single weapon, even if it contains magazines for this weapon)  | ||
<  | <sqf>  | ||
_weaponHolder   | 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;  | |||
};  | |||
</sqf>  | |||
|seealso= [[createVehicleLocal]] [[create3DENEntity]] [[createVehicleCrew]] [[createAgent]] [[createTrigger]] [[createUnit]] [[createMine]] [[deleteVehicle]] [[createGroup]] [[createCenter]] [[setVehiclePosition]]  | |seealso= [[createVehicleLocal]] [[create3DENEntity]] [[createVehicleCrew]] [[createAgent]] [[createTrigger]] [[createUnit]] [[createMine]] [[deleteVehicle]] [[createGroup]] [[createCenter]] [[setVehiclePosition]]  | ||
| Line 132: | Line 153: | ||
|user= MrSanchez  | |user= MrSanchez  | ||
|timestamp= 20150822130400  | |timestamp= 20150822130400  | ||
|text= 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.  | |text= 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.  | |||
}}  | }}  | ||
{{Note  | {{Note  | ||
|user=   | |user= AgentRev  | ||
|timestamp= 20170516090500  | |timestamp= 20170516090500  | ||
|text= For the alternative syntax, if the vehicle has   | |text= For the alternative syntax, if the vehicle has <syntaxhighlight lang="cpp" inline>canFloat = 1;</syntaxhighlight> in its config class (e.g. boats and wheeled APCs) the command expects [[Position#PositionAGL|PositionAGL]],  | ||
otherwise always [[Position#PositionATL|PositionATL]].  | |||
}}  | }}  | ||
| Line 145: | Line 168: | ||
|timestamp= 20181102121600  | |timestamp= 20181102121600  | ||
|text= '''WARNING:''' Do not instigate [[createVehicle]] or [[createVehicleLocal]] within a server function executed with [[Arma 3: Functions Library#Pre_and_Post_Init|preInit]] flag.<br>  | |text= '''WARNING:''' Do not instigate [[createVehicle]] or [[createVehicleLocal]] within a server function executed with [[Arma 3: Functions Library#Pre_and_Post_Init|preInit]] flag.<br>  | ||
This will cause ''"You cannot play/edit this mission"'' for a vehicles compiled from a [[  | This will cause ''"You cannot play/edit this mission"'' for a vehicles compiled from a [[Arma 3: Startup Parameters#Modifications|-mod]] and make server skip/loop that mission init.  | ||
}}  | }}  | ||
| Line 152: | Line 175: | ||
|timestamp= 20190810091000  | |timestamp= 20190810091000  | ||
|text= The main syntax creates vehicles at ground level ignoring the Z in ''pos'' and is also faster than the alternative syntax.  | |text= The main syntax creates vehicles at ground level ignoring the Z in ''pos'' and is also faster than the alternative syntax.  | ||
<  | <sqf>"vehclass" createVehicle pos;</sqf>  | ||
This is equivalent to <sqf>createVehicle ["vehclass", [pos select 0, pos select 1, 0], [], 0, "NONE"];</sqf>  | |||
}}  | }}  | ||
| Line 159: | Line 184: | ||
|timestamp= 20220313172236  | |timestamp= 20220313172236  | ||
|text= Objects are created with a [[vectorUp]] of [[surfaceNormal|terrain surface normal]]. If you are creating new buildings to add to the map, you will probably want to call [[setVectorUp]] on the newly-spawned object.  | |text= Objects are created with a [[vectorUp]] of [[surfaceNormal|terrain surface normal]]. If you are creating new buildings to add to the map, you will probably want to call [[setVectorUp]] on the newly-spawned object.  | ||
<  | <sqf>  | ||
_veh = createVehicle [/*etc...*/];  | |||
</  | _veh setVectorUp [0,0,1];  | ||
</sqf>  | |||
}}  | }}  | ||
Latest revision as of 01:59, 11 October 2025
Description
- Description:
 - Creates an empty object of given classname type. See Arma 3: Assets / Arma 3: createVehicle/vehicles, or Category:CfgVehicles for earlier games.
 - Groups:
 - Object Manipulation
 
Syntax
- Syntax:
 - type createVehicle position
 - Parameters:
 - type: String - vehicle/object className
 - position: Array format Position - desired placement position. If the exact position is occupied, nearest empty position is used.
 - Return Value:
 - Object
 
Alternative Syntax
- Syntax:
 - createVehicle [type, position, markers, placement, special]
 - Parameters:
 - type: String - vehicle/object className
 - position: Object; Array format Position2D or PositionATL (PositionAGL if watercraft or amphibious) - desired placement position
 - markers: Array of Strings - (Optional, default []) if the markers array contains any markers, the position is randomly picked from array of given markers plus desired placement position. If any of the markers were given z coordinate with setMarkerPos, the vehicle will also be created at given z coordinate.
 - placement: Number - (Optional, default 0) the vehicle is placed inside a circle with given position as center and placement as its radius.
 - special: String - (Optional, default "NONE") can be one of the following:
- "NONE" - will look for suitable empty position near given position (subject to other placement params) before placing vehicle there.
 - "CAN_COLLIDE" - places vehicle at given position (subject to other placement params), without checking if others objects can cross its 3D model.
 - "FLY" - if vehicle is capable of flying and has crew, it will be made airborne at default height.
 
 - Return Value:
 - Object - created vehicle or objNull if failed
 
Examples
- Example 1:
 - Example 2:
 - Example 3:
 - Example 4:
 - Example 5:
 - Objects such as
- "test_EmptyObjectForBubbles"
 - "test_EmptyObjectForFireBig"
 - "test_EmptyObjectForSmoke"
 
 - Example 6:
 - The following explosives (ending with _Scripted) can be set off by applying setDamage 1 to them for ease of scripting:
- "DemoCharge_Remote_Ammo_Scripted"
 - "SatchelCharge_Remote_Ammo_Scripted"
 - "ClaymoreDirectionalMine_Remote_Ammo_Scripted"
 
 - 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:
 - 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:
- "GroundWeaponHolder_Scripted"
 - "WeaponHolderSimulated_Scripted"
 - "Weapon_Empty" (a special weaponholder that displays only a single weapon, even if it contains magazines for this weapon)
 
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; }; 
Additional Information
- See also:
 - createVehicleLocal create3DENEntity createVehicleCrew createAgent createTrigger createUnit createMine deleteVehicle createGroup createCenter setVehiclePosition
 
Notes
- 
Report bugs on the Feedback Tracker and/or discuss them on the Arma Discord or on the Forums.
Only post proven facts here! Add Note 
- Posted on Aug 22, 2015 - 13:04 (UTC)
 - 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.
 
- Posted on May 16, 2017 - 09:05 (UTC)
 - 
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. 
- Posted on Nov 02, 2018 - 12:16 (UTC)
 - 
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. 
- Posted on Aug 10, 2019 - 09:10 (UTC)
 - 
The main syntax creates vehicles at ground level ignoring the Z in pos and is also faster than the alternative syntax.
This is equivalent to"vehclass" createVehicle pos;
 
- Posted on Mar 13, 2022 - 17:22 (UTC)
 - 
Objects are created with a vectorUp of terrain surface normal. If you are creating new buildings to add to the map, you will probably want to call setVectorUp on the newly-spawned object.
 
Categories: 
- Scripting Commands
 - Introduced with Operation Flashpoint version 1.34
 - Operation Flashpoint: New Scripting Commands
 - Operation Flashpoint: Scripting Commands
 - Operation Flashpoint: Elite: Scripting Commands
 - ArmA: Armed Assault: Scripting Commands
 - Arma 2: Scripting Commands
 - Arma 2: Operation Arrowhead: Scripting Commands
 - Take On Helicopters: Scripting Commands
 - Arma 3: Scripting Commands
 - Command Group: Object Manipulation
 - Scripting Commands: Global Effect