AI Join Player Squad

This script will add a action to AI that will make it possible to add them to your just by looking at them and clicking the action.

First off create a folder in your mission folder called scripts now create a folder in there called AI_JoinSquad.sqf in there copy and paste this code:

if (!isDedicated) then {

	[] spawn {

		while {true} do {
		
		_allAIUnits = allUnits select {_x distanceSqr getpos player < 900};
		
			if (count _allAiUnits > 0) then {{
				if( side player == side _x && alive _x && group _x != group player && leader player == player && _x isKindOf "Man" && vehicle _x == _x && (leader _x != _x || count (units group _x) == 1) ) then {
					if(isNil {_x getVariable "sa_join_squad_action_id"}) then {
						_actionId = _x addAction ["<t color='#FFFFFF' size='1.4'><img image='A3\ui_f\data\map\markers\military\start_CA.paa'></img><t color='#ffd700' size='1.4' font='puristaBold'>Leave My Squad</t>", { 
							if(isNil {(_this select 0) getVariable "sa_original_group"}) then {
								(_this select 0) setVariable ["sa_original_group",group (_this select 0)];
							};
							[_this select 0] join player; 
							(_this select 0) removeAction (_this select 2);
							(_this select 0) setVariable ["sa_join_squad_action_id",nil];
						}, nil, 0, false];
						_x setVariable ["sa_join_squad_action_id",_actionId];
					};
				} else {
					if(!isNil {_x getVariable "sa_join_squad_action_id"}) then {
						_x removeAction (_x getVariable "sa_join_squad_action_id");
						_x setVariable ["sa_join_squad_action_id",nil];
					};
				};
				
				if( side player == side _x && alive _x && group _x == group player && leader player == player && _x isKindOf "Man" && vehicle _x == _x && _x != player ) then {
					if(isNil {_x getVariable "sa_leave_squad_action_id"}) then {
						_actionId = _x addAction ["<t color='#FFFFFF' size='1.4'><img image='A3\ui_f\data\map\markers\military\objective_CA.paa'></img><t color='#ffd700' size='1.4' font='puristaBold'>Leave My Squad</t>", { 
							if(!isNil {(_this select 0) getVariable "sa_original_group"}) then {
								[_this select 0] join ((_this select 0) getVariable "sa_original_group"); 
								(_this select 0) setVariable ["sa_original_group",nil];
							} else {
								[_this select 0] join grpNull; 
							};
							(_this select 0) removeAction (_this select 2);
							(_this select 0) setVariable ["sa_leave_squad_action_id",nil];
						}, nil, 0, false];
						_x setVariable ["sa_leave_squad_action_id",_actionId];
					};
				} else {
					if(!isNil {_x getVariable "sa_leave_squad_action_id"}) then {
						_x removeAction (_x getVariable "sa_leave_squad_action_id");
						_x setVariable ["sa_leave_squad_action_id",nil];
					};
				};
				
			} forEach _allAiUnits;
			sleep 10;
			};

		};

	};

};

Now go to your init.sqf file and copy and paste this code in there:

// AI JOIN PLAYER SQUAD
[] execVM "scripts\AI_JoinSquad.sqf";

Last updated