To get a list of all player-controlled units:
_allPlayers = [];
{
if (isPlayer _x) then
{
_allPlayers pushBack _x;
};
} forEach playableUnits;
Command in Multiplayer, Object Detection
Also available as Markdown and JSON, or read the original wiki page.
Returns a list of playable units in a multiplayer game (occupied by both AI or players), created on the following sides east/opfor, west/blufor, resistance/independent and civilian only. Does not contain units of sideLogic.
Note
This command returns an empty array in Singleplayer; use switchableUnits instead.
Important
This command does not include dead players awaiting for respawn.
playableUnits
{ _x groupChat "I'm a playable unit."; } forEach playableUnits;
_playableInGroup = units group player arrayIntersect playableUnits;
_nonPlayableInGroup = units group player - playableUnits;
playableSlotsNumber · allPlayers · allCurators · allGroups · allDead · switchableUnits · vehicles · allUnitsUAV · allDeadMen · isPlayer · playersNumber
To get a list of all player-controlled units:
_allPlayers = [];
{
if (isPlayer _x) then
{
_allPlayers pushBack _x;
};
} forEach playableUnits;
playableUnits will not return dead players, use allPlayers instead.
Using the Editor (multiplayer attributes) for unchecking "enable AI", or disabling AI(s) in lobby, will make playableUnits as a public variable, updated by each JIP on disabled slot. So, if all slots are disabled AI, playableUnits is same as allPlayers
Furthermore, in this case, non-played slot (playable and disabled AI) units simply don't exist!
i.e. If you name 8 playable units: u1..u8, then 2 players in game: u3 & u6
playableUnits will return [u3,u6], and true for isNil "u1", isNil "u2"... until another player takes the slot.