createUnit

From Bohemia Interactive Community
Jump to: navigation, search
Introduced with Operation Flashpoint version 1.34
  Effects of this scripting command are broadcasted over the network and happen on every computer in the network

Click on the images for descriptions

Introduced in

Game:
Operation Flashpoint
Version:
1.34

Description

Description:
Create a unit of class that is defined in CfgVehicles.
Introduced with Operation Flashpoint version 1.34
Introduced with Armed Assault version 1.00

This command could be bugged in Operation Flashpoint or Armed Assault ; an additional join may solve the problem.

However, some commands such as setUnitPos only work if run before the join.
The unit won't be created if the passed group doesn't exist (a.k.a grpNull); this can happen if createGroup fails because the group limit has been reached.

Syntax

Syntax:
group createUnit [type, position, markers, placement, special]
Parameters:
group: Group - Existing group new unit will join
[type, position, markers, placement, special]: Array
type: String - Class name of unit to be created as per CfgVehicles
position: Position, Position2D, Object or Group - Location unit is created at. In case of Group position of the group leader is used
markers: Array - Placement markers
placement: Number - Placement radius
special: String - Unit placement special, one of:
  • "NONE" - The unit will be created at the first available free position nearest to given position
  • "FORM" - The unit will be created in formation around the group leader, regardless of the passed position
  • "CAN_COLLIDE" - The unit will be created exactly at passed position
  • "CARGO" - The unit will be created in cargo of the group's vehicle, regardless of the passed position. If group has no vehicle or there is no cargo space available, the unit will be placed according to "NONE". To check available cargo space use:_hasCargo = _veh emptyPositions "CARGO" > 0;
Return Value:
Object - The created unit

Alternative Syntax

Syntax:
type createUnit [position, group, init, skill, rank]
Parameters:
type: String - Class name of unit to be created as per CfgVehicles
[position, group, init, skill, rank]: Array
position: Position, Position2D, Object or Group - Location unit is created at. In case of Group position of the group leader is used
group: Group - Existing group new unit will join
init: String - (Optional, default "") Command to be executed locally upon creation of the unit. Parameter this is set to the created unit and passed to the code.
skill: Number - (Optional, default 0.5) Unit skill
rank: String - (Optional, default "PRIVATE") Unit rank
Return Value:
Nothing - This syntax does NOT return a unit reference!
In order to reference this unit, you can use newUnit = this in the init field

Examples

Example 1:
_unit = group player createUnit ["B_RangeMaster_F", position player, [], 0, "FORM"];
Example 2:
"B_RangeMaster_F" createUnit [position player, group player];
Example 3:
"B_RangeMaster_F" createUnit [getMarkerPos "barracks", _groupAlpha];
Example 4:
"B_RangeMaster_F" createUnit [ getMarkerPos "marker_1", _groupAlpha, "loon1 = this; this addWeapon 'BAF_L85A2_RIS_SUSAT'", 0.6, "corporal" ];

Additional Information

Multiplayer:
-
See also:
createCentercreateGroupcreateVehiclesetVehiclePosition

Notes

Only post proven facts here. Report bugs on the feedback tracker. Use the talk page or the forums for discussions.
Add New Note | How To

Notes

Posted on 27th Nov 2016
Ffur2007slx2_5
Introduced with Arma 3 version 1.64
The side of the created unit by this command uses its config's side and not the side of a passed empty group created by createGroup:

_grp = createGroup east; hint str side _grp; // EAST _ap = _grp createUnit [ “C_man_p_beggar_F”, position player, [], 0, "FORM"]; hint str side _ap; // CIV, not EAST We can use join command or fill the _grp with entities in advance to set _ap to the desired side.

Posted on 8th Dec 2018
oOKexOo

Since
Introduced with Arma 3 version 1.86
: If you want to place a module with createUnit, you have to ensure that the module gets activated automatically by setting BIS_fnc_initModules_disableAutoActivation to false, e.g:

private _grp = createGroup sideLogic; "ModuleSmokeWhite_F" createUnit [ getPos player, _grp, "this setVariable ['BIS_fnc_initModules_disableAutoActivation', false, true];" ];