Jump to content

A3 Epoch Headless Clients : Walkthrough UPDATED:Dec 22nd


hogscraper

Recommended Posts

The issue right now, is that Epoch filters are catching everything, even if its part of BIS core functions. Not even sure if that's fixable or just an issue with filters in general. I think I ended up deleting that one altogether at some point. I believe in the ai script where I task the groups:

 

[_group1, [8946.34,13758.8],300] call bis_fnc_taskPatrol;

 

has multiple routines inside of it that use waypoints. 

Link to comment
Share on other sites

Got it .. *yeah* 

 

 

now also starting the headlessclient is running .. i got direct the first mission shown as Info on the right and on the map ..

 

have to find out better positions .. first on was on the sea. Is it possible to get these randomly ? 

 

and i have also to diable BE ... scripterror #0 needs to be put into br/script.txt

That's definitely a little more in depth but doable. Later tonight I might work that out.  First I'm going to update the code with random gear on the ai and possibly random skills. The best setup might be:

Set the max coords as your boundaries, pick a random x and y, make sure that position wasn't over water or near buildables or near players or near other active AO's, (for multiple ai missions running at the same time), then have a template for each thing that's spawning, like:

soldier1 position would be {randomlyselectedx-1,randomlyselectedy-1.0}

soldier2 position would be {randomlyselectedx-2,randomlyselectedy-1.0}

building1 position would be {randomlyselectedx-10,randomlyselectedy+10.0}

That way you could always have the right things in the right place around your AO. 

Link to comment
Share on other sites

This was previously stickied but when the forums changed it didn't get moved to the proper thread. Could a mod please move this thread where it needs to go?

 

From Defent in another thread, it appears that the Vehicle_Simulation.FSM has a hand in deleting what we are spawning. If the item is local to a client that is still in the server it is left alone. That would be why my mission seems to work for headless clients and why it doesn't seem to work for spawning by the server. 

Link to comment
Share on other sites

Are the ip's set up correctly? Even if the mission was completely botched somehow the hc should still show a connection attempt in the window that pops up It will look like:

Client connected: 127.0.0.1:2302

or whatever ip you put in the bat file. Make sure you run your bat files in the order I placed in OP as well. At this point tho, it sounds like its not even trying to connect.

Link to comment
Share on other sites

So I've noticed that (for me, at least), you cannot run arma3server.exe dedicated server AND arma3server.exe -client Headless client on the same machine.

I have had to start the headless client using my arma3.exe client with the -client command. To this effect I cannot start my client to play or check in game, so, I am currently setting up on my VPS and will see if it requires its own CD KEY. (apparently it does).

 

edit1-

Ok, so I can only get the HC to run properly with arma3.exe, which requires steam to be logged in. So it seems using headless clients requires it's own CD-KEY.

 

Also tip, if your starting your HC on a server with no soundcard use -sound in command line.

 

edit2-

Remove -ip from startup params

Link to comment
Share on other sites

So I've noticed that (for me, at least), you cannot run arma3server.exe dedicated server AND arma3server.exe -client Headless client on the same machine.

I have had to start the headless client using my arma3.exe client with the -client command. To this effect I cannot start my client to play or check in game, so, I am currently setting up on my VPS and will see if it requires its own CD KEY. (apparently it does).

 

edit1-

Ok, so I can only get the HC to run properly with arma3.exe, which requires steam to be logged in. So it seems using headless clients requires it's own CD-KEY.

 

Also tip, if your starting your HC on a server with no soundcard use -sound in command line.

 

edit2-

Remove -ip from startup params

create a copy of your arma3server.exe

rename it to arma3HCserver.exe and call it then, should be working fine ;)

Link to comment
Share on other sites

Below is my setup process. AI persists and does not shoot through buildings.

 

ARMA3 Headless client setup:

credits:

                hogscraper:

                https://community.bistudio.com/wiki/Arma_3_Headless_Client

 

OS: Windows 7

Root Folder:  C:\Games\Arma3

Server startup params:

  C:\Games\ArmA3\arma3server.exe -mod=@Epoch;@EpochHive; -config=C:\Games\ArmA3\SC\config.cfg -port=2302 -profiles=SC -cfg=C:\Games\ArmA3\SC\basic.cfg -name=SC

HC startup params:

C:\Games\ArmA3\arma3server.exe -client -connect=127.0.0.1 -mod="@Epoch" -profile="HC_HAL" -name="HC_HAL"

 

Note: This uses the arma3server executable, so it DOESNOT require an additional license.

The HC's .rpt file can be found in the following path. You may need it, in the process of troubleshooting more advanced scripts.

C:\Users\<your_windows_login>\AppData\Local\Arma3

 

Edit C:\Games\ArmaA3\mpmissions\'yourmission.pbo'.  Any  code you want executed on ONLY the HC place in the same code block as the execVM "HC\AI_Init.sqf" line.

inti.sqf

//*************************

//** ISO HC

//*************************

if !(hasInterface or isServer) then

{

                HeadlessVariable = true;

                publicVariable "HeadlessVariable";

                execVM "HC\AI_Init.sqf";

};

 

// to enable HC to broadcast messages to other clients

"GlobalHint" addPublicVariableEventHandler

{

                private ["_GHint"];

                _GHint = _this select 1;

                hint parseText format["%1", _GHint];

};

//***************************

//** end HC code

//***************************

 

 

 

description.ext

*increment 'maxPlayers' by one. In my case from 100 to 101.

class Header

{

 gameType = Sandbox;

 minPlayers = 1;

 maxPlayers = 101;

};

 

mission.sqm

*increment 'items' by one. In my case from 100 to 101.

class Groups

                {

                                items = 101;

                                class Item0

                                {

                                                side = "CIV";

                                                class Vehicles

                                                {

 

*add the following code after the last 'class itemXX' in the above 'class Groups'. Note the class Item100 NOT Item101. This is because the class names start at zero.

 

class Item100

                                {

                                                side="LOGIC";

                                                class Vehicles

                                                {

                                                                items=1;

                                                                class Item0

                                                                {

                                                                                position[]={10720.502,12.714643,11356.243};

                                                                                id=100;

                                                                                side="LOGIC";

                                                                                vehicle="HeadlessClient_F";

                                                                                player="PLAY CDG";

                                                                                leader=1;

                                                                                skill=0.60000002;

                                                                                text="HC_HAL";

                                                                };

                                                };

                                };

C:\Games\ArmaA3\SC\config.cfg

*Battleye throws a fit with an HC. I am working on base filters, but many of those will depend heavily on the version of AI scripts and other files you choose to use. For testing I am running with BE off. You do not want this for your 'open to the public' server! So figure out your filters and get it turned back on.

BattleEye = 0;

 

*add the following line:

localClient[]={127.0.0.1};

headlessClients[] = {127.0.0.1};

battleyeLicense=1;

 

Make all of these changes, repack your PBO. Start the server, start the HC, log in and fight!

 

If you run into an issue with helo signature files, you will need to copy the appropriate files from your CLIENT folder to your SERVER folder. Apparently the new DLC did not update the signatures on the server side or something.

 

If you still have issues with the HC connecting first and making problems, see the link below. In this approach the HC is used to connect, and actually start the mission, then connects the AI HC before disconnecting the 'MissionStarter' HC.

http://www.altisliferpg.com/topic/56-headless-client-development/page-3

 

-Horbin

Fulcrum

Link to comment
Share on other sites

i am testing now a little with the ups script .. got i running with 

 

_lead setVariable ["LASTLOGOUT_EPOCH", diag_tickTime+14400000, true]; 

 

 and the AI did not disapear after some seconds .. but they don´t do damage .. i read in another thread that has to do with Serverside and cleanup - any idea how to work around that issue ? 

Link to comment
Share on other sites

I actually didn't start out wanting a headless client, but after fighting with things continually going wrong while spawning them on the server side, I gave up and went a different route. At this point, the Epoch team knows exactly what we need to do but have refused to clue us in. That tells me they likely have something in the works and don't want to get into the issues it will arise by telling us exactly what's up. 

Later today I am updating my mission to be completely modular, just working out some kinks right now.

Link to comment
Share on other sites

I saw this code snippet from one of the other people on this thread. I apologize for forgetting who it was.

 

//_unit call EPOCH_server_save_vehicle;
_unit call EPOCH_server_savePlayer
//_unit call EPOCH_server_setVToken;
//EPOCH_pushPlayer_PVS = _unit1;
//publicVariableServer "EPOCH_pushPlayer_PVS";
 
I believe setting this variable on the 'leader' of a group that is spawned server side will permit it to pass the serverside cleanup.  I have not had time to test this (working HC issues), but if someone else can confirm, great!
 
I have felt some frustration too, but I know the EPOCH team is working hard on alot of issues.  I know AI of some sort is part of their entire package.  I am taking this time to simply work on my own custom stuff, and when the specifics of their AI come out, I will adapt to it.
 
I have been impressed to date with the stability. All good things will come with time! Keep it up.
Link to comment
Share on other sites

I need help, every time my client tries to connect it says arma3config. player headless client kicked steam ticket check failed [null] any ideas

edit ok so I got it to stop saying the kicked steam ticket, but now ingame it just says player headless client connected.. then a few sec later says headless client disconnected. and in the headless client window it says you cannot play/edit this mission it is dependent on downloadable content a3_epoch_config. im trying to run the headless client of of my computer and connecting to my server that's hosted by someone else. I don't know if that has anything to do with it but when im on my server and I try to connect headless it shows hes connecting and disconnecting so the headless is getting through. not sure why its saying im missing a3_epoch_config

Link to comment
Share on other sites

How to edit the encrypted mission.sqm?

You need mikero's tools. Look for depbo.

 

ok so I got it to connect by using arma3 instead of arma3server but now it connects and everything for a minute then I get Server error: Player without identity headlessclient (id 325958801) in my rpt. any ideas

From the last post, are you sure that the bat file calling the HC is correct? It sounds like the HC hasn't loaded epoch. You will also now have three rpt's to deal with. Inside appdata Arma 3 you will find the client and HC rpts. Not sure of second error. 

Link to comment
Share on other sites

Drsubo,

I had the same issue when starting server with bec .. Just set battleye =0 in sc/config.cfg and dont start bec

just arma3 server and headless.

Bec will kick the HC everytime even when the script.txt is empty like mine (no scripterrors)

Try also to connect first with a player then start the client. I have still little problems with steam tickets

@kr@gen

Eliteness to open mission.sqm -> save as

Link to comment
Share on other sites

Only thing I'm struggling on is spawning vehicles. Anyone got this working?

 

It was working for me at some point and they were not cleaned up but then i've decided not to spawn vehicles because players stumble on vehicles while doing missions which are pretty random cause of "BIS_fnc_findSafePos".

Something with this calls:

_vehicle call EPOCH_server_save_vehicle;
_vehicle call EPOCH_server_setVToken;
Link to comment
Share on other sites

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
×
×
  • Create New...