aussie battler

[Release] Recruit Ai Bodyguards

201 posts in this topic

Description: Recruit Ai Body guards from your XM8 or from placed objects on the map.

How it works: Recruit an Ai Guard from your Xm8 using beef parts. The ai will auotmatically join the group (controlled by the player who made the party).

Rules: Ai despawns on restarts. Ai only attacks mission ai (only tested on DMS Ai).

Command Ai movement:
1. Press ESC>Configure>Controls>Show:Command

2. Change the "ACTION" of "Select Unit 1" to the key of your choice (I used "semicolon"). Press "OK" and go back to the game.

3. Press "semicolon" to select your Ai, then hit "space bar"

4. Move your mouse to the position you wish the Ai to hold or vehicle you wish the Ai to enter. Now hit the "space bar" :)

Command Ai to drive:

1. Exist a vehicle from a passenger seat.
2. Order the Ai will hop in the vehicle.
3. Get in the vehicle & mark waypoints on the map. You can also take over driving.

(thanks to @TheDaddy for the Ai driving tip)

I would like to change the ai behaviour to help kill other Exile Players out of the players group & also command the Ai. Let me know if you have any ideas.

Install V2: Scroll to the bottom (replaces the XM8 server info button + able to choose between 6 different ai soldiers).

https://github.com/aussie-battler/Salty-Dog-Exile-Recruit-Ai-V2

Install V1: Recruit Ai from your XM8.

  1. Install ExAd by @Janski https://goo.gl/VBxFFa

  2. Drop the DeployVehicle folder into your.mission\ExAdClient\XM8\Apps\DeployVehicle   found here https://github.com/aussie-battler/Salty-Dog-Exile-Recruit-Ai
    Make sure you drop the Deploy Vehicle server file in your @ExileServer/addons folder found here https://github.com/aussie-battler/Salty-Dog-Exile-Recruit-Ai/tree/master/ExileServer/addons

  3. In config.cpp search for class CFGXM8 

         Add the following to extraApps[] = { };
 

Spoiler

"ExAd_Unit"

        The line should now read: extraApps[] = {"ExAd_Unit"};

  1. Underneath the class CfgXM8, edit it to read:

         

Spoiler

class CfgXM8
{
    extraApps[] = {"ExAd_Unit"};
    
        class settings
    {
        controlID = 4070;
        appID = "App01";
        title = "Settings";
    };
    
    class healthScanner
    {
        controlID = 4120;
        appID = "App02";
        title = "Health Scanner";
    };
    
    class slothMachine
    {
        controlID = 4140;
        appID = "App03";
        title = "Sloth Machine";
    };
    
    class ExAd_Unit
    {
        title = "Recruit Soldier: x2 Beef Parts needed";
        logo = "ExAdClient\XM8\Apps\DeployVehicle\dog.paa";
        bambiState = 0;
        vehicleClass = "Land_AncientStatue_01_F";
        recipe[] = {{"Exile_Item_BeefParts",1}};
        packable = 0;
        autoCleanUp = 0;
        quickFunction = "['ExAd_Unit'] call ExAd_XM8_DV_fnc_spawnVehicle";
    };

};

/*
    XM8 Extra apps, the Exile way of doing it
    
    Here is an example app layout:
    class XM8_App01_Button: RscExileXM8AppButton1x1
    {
        textureNoShortcut = "";      // Path to picture. This can be via mission file or client side PBO
        text = "";                    // The name of the app to be display on the button
        onButtonClick = "";            // The code to fire when the app is clicked
        resource = "";                // The name of the resource to load for the app, leave as an empty string if you just want to run code without a GUI, like BOOM or spawning a bike
    };
*/

class XM8_App01_Button: RscExileXM8AppButton1x1
{
    textureNoShortcut = "\exile_assets\texture\ui\xm8_app_settings_ca.paa";
    text = "Settings";
    onButtonClick = "['settings', 0] call ExileClient_gui_xm8_slide";
    resource = "XM8SlideSettings";
};

class XM8_App02_Button: RscExileXM8AppButton1x1
{
    textureNoShortcut = "\exile_assets\texture\ui\xm8_app_health_scanner_ca.paa";
    text = "Health Scanner";
    onButtonClick = "['healthScanner', 0] call ExileClient_gui_xm8_slide";
    resource = "XM8SlideHealthScanner";
};

class XM8_App03_Button: RscExileXM8AppButton1x1
{
    textureNoShortcut = "\exile_assets\texture\ui\xm8_app_slothMachine_ca.paa";
    text = "Sloth Machine";
    onButtonClick = "['slothMachine', 0] call ExileClient_gui_xm8_slide";
    resource = "XM8SlideSlothMachine";
};

class XM8_App04_Button: RscExileXM8AppButton1x1
{
    textureNoShortcut = "\exile_assets\texture\ui\xm8_app_boom_ca.paa";
    text = "BOOM!";
    onButtonClick = "call ExileClient_system_breaching_detonate";
    resource = "";
};


class XM8_App5_Button: RscExileXM8AppButton1x1
{
textureNoShortcut = "ExAdClient\XM8\Apps\Unit\dog.paa";
text = "Recruit Soldier: 1x Beef Parts needed";
onButtonClick = "ExileClientXM8CurrentSlide = 'apps';closeDialog 0;[] execVM 'ExAdClient\XM8\Apps\Unit\bodyguard.sqf'";
resource = "";
};

class XM8_App06_Button: RscExileXM8AppButton1x1
{
    textureNoShortcut = "";
    text = "";
    onButtonClick = "";
    resource = "";
};

class XM8_App07_Button: RscExileXM8AppButton1x1
{
    textureNoShortcut = "";
    text = "";
    onButtonClick = "";
    resource = "";
};

class XM8_App08_Button: RscExileXM8AppButton1x1
{
    textureNoShortcut = "";
    text = "";
    onButtonClick = "";
    resource = "";
};

class XM8_App09_Button: RscExileXM8AppButton1x1
{
    textureNoShortcut = "";
    text = "";
    onButtonClick = "";
    resource = "";
};

class XM8_App10_Button: RscExileXM8AppButton1x1
{
    textureNoShortcut = "";
    text = "";
    onButtonClick = "";
    resource = "";
};

class XM8_App11_Button: RscExileXM8AppButton1x1
{
    textureNoShortcut = "";
    text = "";
    onButtonClick = "";
    resource = "";
};

class XM8_App12_Button: RscExileXM8AppButton1x1
{
    textureNoShortcut = "";
    text = "";
    onButtonClick = "";
    resource = "";
};

class XM8_App13_Button: RscExileXM8AppButton1x1
{
    textureNoShortcut = "";
    text = "";
    onButtonClick = "";
    resource = "";
};

class XM8_App14_Button: RscExileXM8AppButton1x1
{
    textureNoShortcut = "";
    text = "";
    onButtonClick = "";
    resource = "";
};   

      5.  In config.cpp search for BeefParts and change the line to:          

Spoiler

class Exile_Item_BeefParts                                 { quality = 1; price = 50000; sellPrice = 14;};              // change the buy/sell price to whatever suits.

 

Want to make changes?

  1. Change the XM8 logo at:

your.mission\ExAdClient\XM8\Apps\DeployVehicle\dog.paa

In config.cpp under "class ExAd_Unit", change the line to suit your logo name

logo = "ExAdClient\XM8\Apps\DeployVehicle\dog.paa";

  1. Change the soldiers at:

your.mission\ExAdClient\XM8\Apps\DeployVehicle\bodyguard.sqf (line 7)

Here are the classnames: https://community.bistudio.com/wiki/Arma_3_CfgVehicles_GUER

Infistar Settings (thanks to @1Man):
Add "Craft Vehicle" to the allowedActions section:

allowedActions[] = {"Break free","Use AutoLockPicker","Craft Vehicle","Hack UAV"};

Future Updates:

Would love the ai to attack players not in your group. Not sure how to command the ai, I tried keybinding commands (like target) but it didn't work.
Let me know if you have ideas on how to do this.

Thanks to @Janski for making the cool EXAD XM8 Apps and @BetterDeadThanZed for the custom buildings to server addons script.

Enjoy!! aussie

 

OPTIONAL EXTRA:

Spawn the Ai from a mobile phone thanks to @1Man

If you want to allow owners to pick another option I have this if you want to add it.

config.cpp

Spoiler

Under class CfgInteractionMenus

    class Bodyguard
    {
        targetType = 2;
        target = "Land_SatellitePhone_F";
        class Actions
        {
            class Body_guard: ExileAbstractAction
            {
                title = "Deploy AI";
                condition = "('Exile_Item_MobilePhone' in (magazines player) && !ExilePlayerInSafezone)";
                action = "ExAdClient\XM8\Apps\DeployVehicle\bodyguard.sqf";
            };
        };
    };

Under class CfgXM8

    class ExAd_Unit
    {
        title = "AI Support";
        config = "ExAdClient\XM8\Apps\DeployVehicle\guard.sqf";
        logo = "ExAdClient\XM8\Apps\JX\icon_man.paa";
        bambiState = 0;
        vehicleClass = "Land_SatellitePhone_F";
        recipe[] = {{"Exile_Item_MobilePhone",1}};
        autoCleanUp = 1;
        quickFunction = "['ExAd_Unit'] call ExAd_XM8_DV_fnc_spawnVehicle";
        onLoad = "ExAdClient\XM8\Apps\DeployVehicle\guard.sqf";
    };

guard.sqf

Spoiler

ExAd_DV_DESPAWN_IDLE_TIME = 300;

ExAd_XM8_DV_fnc_itemsInCargo = {
    params ["_container","_itemArray","_item","_amount","_response"];

    _item = toLower (_itemArray select 0);
    _amount = _itemArray select 1;

    _response = false;
    {
        if(_item == toLower _x)then{
            _amount = _amount - 1;
        };
        if(_amount <= 0)exitWith{_response = true}
    }forEach magazines player;

    _response    
};

ExAd_XM8_DV_fnc_itemsMissing = {
    params["_recipe","_recipeStr"];
    
    _recipeStr = "";
    {
        private["_amount","_configName","_displayName","_text"];
        _amount = if(count _x > 1)then{_x select 1}else{1};
        _text = [_x select 0] call ExAd_XM8_DV_fnc_getDisplayName;
        _recipeStr = _recipeStr + format["%1x : %2<br />",(if(_amount < 0)then{((-1) * _amount)}else{_amount}), _text];
    }forEach _recipe;
    
    _response = format["You need <br />%1",_recipeStr];

    _response
};

ExAd_XM8_DV_fnc_getDisplayName = {
    params["_class","_configName","_displayName"];
    _configName = _class call ExileClient_util_gear_getConfigNameByClassName;
    _displayName = getText(configFile >> _configName >> _class >> "displayName");
    _text = if(count _displayName > 0)then{_displayName}else{_class};

    _text
};

ExAd_XM8_DV_fnc_canPack = {
    ( ExileClientInteractionObject getVariable["ExAd_DV_Packable", false] )
};

ExAd_XM8_DV_fnc_pack = {
    [ExileClientInteractionObject] spawn {
        params["_obj"];
    
        disableUserInput true;
        player playActionNow "Medic";

        uiSleep 3;
        ["despawnDeployableVehicle", [netId _obj]] call ExAd_fnc_serverDispatch;
        uiSleep 1;

        ["SuccessTitleAndText", ["Vehicle Packed"]] call ExileClient_gui_toaster_addTemplateToast;
        disableUserInput false;
    };
};

ExAd_XM8_DV_fnc_spawnVehicle = {
    params["_slideClass","_bambiState","_delopyRecipe","_vehicleClass"];

    try
    {    
        _bambiState = if(isNumber(missionConfigFile >> "CfgXM8" >> _slideClass >> "bambiState")) then
        {
            if(getNumber(missionConfigFile >> "CfgXM8" >> _slideClass >> "bambiState") > 0)then{true}else{false}
        } else {true};

        if(_bambiState && !ExileClientPlayerIsBambi) then { throw "You can only spawn vehicles as a bambi!"};

        _delopyRecipe = getArray(missionConfigFile >> "CfgXM8" >> _slideClass >> "recipe");
        if(count _delopyRecipe > 0) then
        {
            {
                if(count _x > 1) then
                {
                    _amount = if(_x select 1 == -1)then{1}else{_x select 1};
                    if!([player, [_x select 0, _amount]] call ExAd_XM8_DV_fnc_itemsInCargo) then
                    {
                        throw ([_delopyRecipe] call ExAd_XM8_DV_fnc_itemsMissing);
                    };
                } else {
                    if!([player, _x select 0] call ExileClient_util_playerEquipment_contains) then
                    {
                        throw ([_delopyRecipe] call ExAd_XM8_DV_fnc_itemsMissing);
                    }
                }
            }forEach _delopyRecipe;

            {
                _count = if(count _x > 1)then{(_x select 1)}else{1};
                for "_i" from 1 to _count do {
                    [player, _x select 0] call ExileClient_util_playerCargo_remove
                }
            }forEach _delopyRecipe;
        };

        _vehicleClass = getText(missionConfigFile >> "CfgXM8" >> _slideClass >> "vehicleClass");
        if!(isClass(configFile >> "CfgVehicles" >> _vehicleClass ))then { throw "The vehicle class doesn't exist"};

        [_slideClass] spawn {
            params["_slideClass"];
            disableUserInput true;
            player playActionNow "Medic";

            uiSleep 3;
            ["spawnDeployableVehicle", [netId player, _slideClass]] call ExAd_fnc_serverDispatch;
            uiSleep 1;
            ["SuccessTitleAndText", ["Request AI w/ scroll option"]] call ExileClient_gui_toaster_addTemplateToast;
            ExileClientXM8CurrentSlide = "extraApps";
            disableUserInput false;
        };    

        ["extraApps", 1] call ExileClient_gui_xm8_slide;
        closeDialog 0;


    }
    catch{
        [_exception] spawn {
            UISleep 0.5;
            ["ErrorTitleAndText", ["ExAd - Deploy Vehicle", _this select 0]] call ExileClient_gui_toaster_addTemplateToast;
            ["extraApps", 1] call ExileClient_gui_xm8_slide;
        };
    };
};

bodyguard.sqf

Spoiler

/** Salty Dog Exile: Recruit Ai V.2
**  by aussie 2017
** https://github.com/aussie-battler/Salty-Dog-Exile-Recruit-Ai

    Thanks to geekm0nkey for updating the following:
 +  Fixed toast message not displaying when you didn't have beef parts.. Hint: ( }; else { wont work.. take out the ; )
 +  Added delay during animation so the solider doesn't show till after.. Just my personal preference.
 +  No spawn in safezone.
**/

private ["_statue","_unit","unitList"];
    if(ExilePlayerInSafezone) exitWith {
        ["ErrorTitleAndText", ["Deployment Failed!", "You can't deploy soldier in trader!"]] call ExileClient_gui_toaster_addTemplateToast;
    };
    if ("Exile_Item_BeefParts" in (magazines player)) then
    {
    player removeItem "Exile_Item_BeefParts";
    disableUserInput true;
    player playMove "AinvPknlMstpSnonWnonDr_medic3"; 
    uisleep 10;
    unitList = ["I_Soldier_AT_F","I_ghillie_lsh_F","I_ghillie_sard_F","I_G_Sharpshooter_F"];
    _unit = group player createUnit [unitList select (round(random ((count unitList) - 1))), getPos player, [], 0, "FORM"];
    _unit setskill ["aimingAccuracy",0.9];
    _unit setskill ["aimingShake",0.9];
    _unit setskill ["aimingSpeed",0.9];
    _unit setskill ["spotDistance",0.9];
    _unit setskill ["spotTime",0.9];
    _unit setskill ["courage",1.0];
    _unit setskill ["reloadSpeed",1.0];
    _unit setskill ["commanding",1.0];
    _unit setskill ["general",0.9];
    _unit setCombatMode "RED";
    _unit allowFleeing 0;
    _unit setVariable ["ExileMoney",15000,true];
    ["SuccessTitleAndText",["Bodyguard Deployed, shoot him before restart to get his money."]] call ExileClient_gui_toaster_addTemplateToast;
    _statue = nearestObject [player, "Land_AncientStatue_01_F"];
    deleteVehicle _statue;
    disableUserInput false;
    }
    else
    {
       ["ErrorTitleAndText", ["Deployment Failed!", "You need beef parts..."]] call ExileClient_gui_toaster_addTemplateToast;
    }; 
}; 

Changelog:

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

6.09.17 Updated the Ai skill level which can be set in Exile.Mission/ExAdClient/XM8/Apps/DeployVehicle/bodyguard.sqf

Currently it is set to:

Spoiler

    _unit setskill ["aimingAccuracy",0.9];
    _unit setskill ["aimingShake",0.9];
    _unit setskill ["aimingSpeed",0.9];
    _unit setskill ["spotDistance",0.9];
    _unit setskill ["spotTime",0.9];
    _unit setskill ["courage",1.0];
    _unit setskill ["reloadSpeed",1.0];
    _unit setskill ["commanding",1.0];
    _unit setskill ["general",0.9];
    _unit setCombatMode "RED";
    _unit allowFleeing 0;

To learn more about Ai skill settings head to http://www.exilemod.com/topic/13096-guide-how-to-configure-the-ai-properly/
by Tobias Solem

Thanks to @TheDaddy for the idea.

Control your ai with this mod: http://steamcommunity.com/sharedfiles/filedetails/?id=491016790 

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

6.09.17 Updated instructions on commanding the Ai to move & stay.

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
12.03.18 Updated for Exile 1.0.4's new XM8 apps.
+ Removed the deploy statue, it confused players.
+ Updated the script to only deploy cool ai units.
+ Ai can now be recruited in a safe zone.

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

UPDATE 21.11.18:

In your description.ext turn on the commanding menu (change to 1):

showHUD[] =
{
    1,   // Scripted HUD (same as showHUD command)
    1,   // Vehicle + soldier info
    1,   // Vehicle radar
    1,   // Vehicle compass
    1,   // Tank direction indicator
    1,  // Commanding menu
    0,  // Group Bar
    1,   // HUD Weapon Cursors
    1   // Squad Radar
};

 

Then players can see the command ai menu.

20181121164817_1.thumb.jpg.3936be67ea98205f1237340bc59039f4.jpg

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

20170731154131_1.jpg

20170731153857_1.jpg

20170731154509_1.jpg

20170731154233_1.jpg

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

I have updated recruit Ai to V2.

https://github.com/aussie-battler/Salty-Dog-Exile-Recruit-Ai-V2

This version uses XM8Apps by @Shix to spawn the Ai. You will replace the "Server Info" button with an apps button.
You can now choose what type of Ai you would like to spawn (AT, AA, Sniper Ghillie, Sharpshooter or Machine Gunner):

20190403102351_1.thumb.jpg.311d30daf9cd406dfd1a63c83dd97be9.jpg

I left in some other apps that I use:
@Shix : Created XM8Apps, eBase XM8 App, View Distance. Lunchbox: Created XM8 App Base Location Markers.

@happydayz - Enigma: created ExileSecurity.

Brun: created BRAma Recipes.

@Unkown_GTX : created voyagerCompass.

@Johno: created Player_Light ( I think JohnO created this. I modified it to work in Cherno Redux in daytime.)

I am not sure who made the server info script or the selfie, but thanks.

Hints & Tricks by @Runewulv
 

Spoiler

Hints & Tricks by Runewulv

I've been doing extensive testing with Recruit AI and will walk you through what menus are the needed and how to control your ai. So let's start out with the basics.

Menus:

You will have to rebind most of the items you will be using under the Command options in your control's config.

Most of the menus are completely useless or simply do not work in Exile. There are two in particular that you will have to get at the very least. SELECT ALL should be rebound to a key and the MOUNT menu should be bound to a key. You should also bind the FORMATION menu. The TARGET menu works as well but honestly I've never really used it much.

Besides SELECT ALL I suggest you rebind UNIT 2-8 SELECT, which allows you to individually select your AI based on their position in your group. (you are only allowed 6 at a time but when 1 AI dies sometimes it tends to keep one of your unit slots until the corpse despawns). Personally I bound 2, 3, and 4 to my Shift+Z, +X, and +C, then 5, 6, and 7 to my CTRL+ Z, +X, +C. This is just what works for me. I do bind Unit 1 to a key as well but most often this will not be filled because the player actually takes up the Unit 1 slot most of the time. Unless you die and then spawn another AI as you could fill another slot.

Next bind that MOUNT menu. Once you select all you can then press your bind for the MOUNT menu which will open only when an AI is selected. This menu will let you tell the AI which seat to fill. Most often I select AI individually so I can better disperse them among whatever vehicles I am bringing.

Next is the FORMATION menu. Select this menu and choose which formation they will follow you in other vehicles or on foot. I've convoyed as many as 4 vehicles at once. It's tedious and can be dangerous but very possible. Selecting Column will have them follow you in a line and will keep them on the road. Any other formation seems to make them want to drive off road and will stop at every rock in their path.
 
Now that the required menus are covered, let's talk about garrisons. Select all or Unit select and looking at even the tallest part of a patrol tower will allow you to send the selected unit but you have to highlight a building position to do so. Regroup calls them back as always.

AI are decent drivers but they are not efficient at following you in convoy. If you select Column under the formation menu they will follow you in a vehicle in regroup but they are likely to stop at some point if something obstructs their path or you get too far away from them. Then you have to get back within range to get them moving again.

Instead I find it best to send AI ahead of me by opening the map and selecting the vehicle's driver then highlight "Move There" on his action menu then left click the map. The AI, most often with a slight delay, will then travel the best route to that point. You have to drive at least one vehicle though. If you are not in the driver's seat of at least one vehicle, the AI tend to bug out and stop. This usually causes disaster because the AI driving your vehicle wont navigate around him and a rear end collision will occur.

Alternatively in a convoy you can micro manage them a little more. Instead of clicking the map you can lead the pack and use select all and use the cursor to MOVE THERE in front of you. You will basically have to keep re-updating the Move There spot to keep them moving with you.

It's usually wisest to have the AI drive the slowest vehicle in the convoy and then follow them. Going slow is the most optimal way to get another AI regroup following you to not break follow. So let the AI drive that tank or that URAL. Follow him in your fast vehicle and have whatever vehicle you want in regroup following you. Or have the third vehicle AI go on ahead.

I do not know the exact range but if it's tied to you like UAVs are then there is about a 1000m range the AI will travel away from you. Moving back within this range before their waypoint times out will get them to move again without prompting but if you are out of range for too long they will go into idle and you will need to regroup and reset their waypoint.

Sometimes AI will refuse to acknowledge your commands. This is a fault in the game itself, some times the AI gets stuck in an idle loop. In these cases the best way to break them of it is to click Regroup and that SHOULD get them moving again on your waypoint clicks.

They will fight AI, they will fight zeds, and they will friendly fire you trying to save your life.

Medics will heal you and other AI by selecting the medic individually. The medic will heal you if you click "Injured" at the bottom of the menu. They will treat other AI by choosing the medic and then highlighting another AI with the crosshair.

Mechanic/Engineers will fix your vehicles a percentage. I notice they will not always fix your vehicle 100% but it will always get them moving again.

Kill the surviving AI before restart to get 1000 pops and their gear. Doing so can get you your money back and then some in most cases.

Utilize Move There to position your AI safely, they will remain in that spot and even try to seek cover if next to an object.

Selecting Regroup will stop a vehicle from visiting any way point you select. This has saved several rear end collisions in my convoys.

Military vehicles allow you to use the WSAD keys to drive from any seat as long as an AI is in the driver's seat. So you can essentially gun and drive at the same time.

Civilian vehicles like quads and cars and trucks will not respond to WSAD. The AI will only drive the vehicle when a map waypoint or cursor waypoint is issued.

AI fly pretty well. I've had as many as three mozzie AI following me in my mozzie on my way to Terminal. Just dont get too far ahead or behind them or they will stop following you and land.

Unfortunately there's no way to really tell where your AI is but they will respond to a regroup command as far as 500m away.

Be careful and happy hunting out there.



20190403102130_1.thumb.jpg.5be0d5a185e8fe1d87dcd232114a7760.jpg20190403102134_1.thumb.jpg.e6d5007ad5c8d72360b1c7fa4ab1c7e4.jpg

unknown.png

Edited by aussie battler
Updated for Exile 1.0.4's new XM8 apps.
  • Like 9

Share this post


Link to post
Share on other sites
Advertisement

@Its me ZovkT I have lifted the ping kick for you. Let me know when you are done so I can change it back. You spawn in with 100k in your locker.

Spawn a quad from your XM8, head to trader & buy x2 packets of beef parts. Head outside of the safezone & hit 6, more and hit the recruit ai button.

Probably worth heading towards a mission before you spawn one.

Good luck.

Share this post


Link to post
Share on other sites
Advertisement

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Recently Browsing   0 members

    No registered users viewing this page.