Jump to content
mons00n

Arma3 Headless Client Guide

Recommended Posts

Mons00n, do you know if the new setgroupowner command also transfer waypoints, behavior, or sync objects now?

Share this post


Link to post
Share on other sites
Simply: More CPU usage and Ressource management. No AI on dedi : all the power for the player connection. Every HC can support an individual amount of ai till it breaks depending on Mods and scripts. Beware of the cps and fps. Shouldn't lower then 20. Every additional HC can support scripts and ai,too. Of course you need to set the CPU affinity per server and client manually otherwise everything is running on CPU 0+1 :-[

So if I have a 6 core CPU, and I use 6 HC's would I be maximizing my performance?

Share this post


Link to post
Share on other sites

If your have a 6 core I would try 0+1 dedi, 2+3 HC and 4+5 HC. No hyper threading. Then all empty objects and "ambient ai" to hc1 and the rest on hc2. Silent map converter is very useful to select your wished configuration.

I didn't make benchmarks for the best results in core using, but I have the feeling arma supports at least two cores.

In the next time I'm trying the "auto balance ai to HC" script from the MCC thread with a cloud of HC with different locations. Maybe I have luck and it works stable, that would be a jackpot. So if different clans working together they could have some... Serious fun :-P

Share this post


Link to post
Share on other sites

hey monsoon,

I have a problem with the Headless Client and DAC. My HC will not spawn any DAC units even if I do the same thinks like you in your example Mission. Do you have any ideas how I can fix it??

Share this post


Link to post
Share on other sites

Hi, im having issue using DAC with HC in dedicated, when player respawn AI dont fire him. Im using Afghan militia of Leights Opfor, independent. When i start without HC no problem. 

 

Thanks!!

Share this post


Link to post
Share on other sites

I have found that there has been a change in the password flag used to startup the headless client. Your tutorial shows using the -pass flag. That doesn't work, but the -password flag does work. This is for running on a linux dedicated server with a linux HC.  Also, putting the startup option flags within single quotes ' ' makes it work for me as it doesn't without.

For version 1.54

./arma3server '-client -connect=127.0.0.1 -password=XXXX -port=2302 mods=@mod1;@mod2'

Share this post


Link to post
Share on other sites

Is it possible to check if a e.q. spawn script is executet on the HC ?

Share this post


Link to post
Share on other sites

Is it possible to check if a e.q. spawn script is executet on the HC ?

If you mean to check locality of units (after transfer from server to HC for instance) than yes. You can add the 'Local’ EH. The EH fires up when locality changes.

Share this post


Link to post
Share on other sites

Can it be that this:

- doc update: array returned by playableUnits does not return the headless client

 

 

Is not the case anymore? the count playableUnits includes the HC as far as i can tell. 

Share this post


Link to post
Share on other sites

Try this:

{alive _x} count (allPlayers - entities "HeadlessClient_F");

Share this post


Link to post
Share on other sites

Hello,

 

Without any HC, in my tests isNil "HC1" return false when I tried on hosted server. Also isNul HC1. So my servers think they have an HC when they are not there.

 

It's not a big problem because at the end the owner is the server and any [] remoteExec ["whatever",HC1] will work on the server

 

But I want to know a good way to know if the user has mounted the HC or not, for support purposes.

 

I tried isPlayer HC1 and that returned false, is it correct?

 

EDIT: I have disabledAI=1; in description.ext

Share this post


Link to post
Share on other sites

I've muddled around with HC for years. After 5 minutes in the manual, I'm hopeful that I might be able to wrap my head around the concepts better due to your clear writing and good examples. Thanks for taking the time to write this up for the community!

Share this post


Link to post
Share on other sites


if (count (entities "HeadlessClient_F") > 0) then {

// HC is active

};

Share this post


Link to post
Share on other sites

Thanks whiztler, but I need to check each of them (I have 3) to assigne one or another specific duties.

 

EDIT: Sorry, Sunday morning, I'm idiot, will check your method.

 

EDIT: Nope. Entities are detected no matter if a real HC has been assigned or not.

Share this post


Link to post
Share on other sites

In your HC script you could populate an array with all slotted HC's:

if (player in (entities "HeadlessClient_F")) then {
	HC_array pushBackUnique name player; 
};

Don't forget to init the array first

Share this post


Link to post
Share on other sites

Your code is to be made from HC and I want to do it from server.

 

I've done this on initServer.sqf:

 

hcArray = [];
{if (owner _x != owner server) then {hcArray pushBack _x} else {deleteVehicle _x}} forEach entities "HeadlessClient_F";

 

"server" is a GL I use for lots of things and which will remain local for the server but not for anyone else.

 

But not 100% sure it will work (my two last tries didn't) as I do not have any HC setup on my PC.

 

EDIT:

 

Had the chance to test that with negative results. Server still thinks the HC object is local when that check is done, so it does not add any of them to the array.

 

So it seems a client sided way is a must.

Share this post


Link to post
Share on other sites

You can run it client(HC0 side and then remoteExec or PVServer the results to the server.

Share this post


Link to post
Share on other sites

yes, I see. Thanks a lot!!!!

 

A question

 

I have lots of stuff on initPlayerLocal.sqf, all real player related. I assume the HC will execute the script too.

 

There are the typical checks on them:

 

waitUntil {!isNull player};
waitUntil {player == player};

 

Will the HC pass those checks?

 

Share this post


Link to post
Share on other sites

anybody had any issues with running a HC on the same dedicated box as the arma 3 server? I host with gtx gaming, rent a dedicated box. If i run a HC from my home pc to the dedicated box's arma 3 server the HC connects. When i create a HC on the same dedicated box. The hc never tries to connect.

echo Starting ARMA 3 HC Server...

start "arma3" /min /high "arma3HCserver.exe" -client -connect=127.0.0.1 -port=2362 "-mod=@Zombies and Demons;@Epoch" -nosound
timeout 2
echo Started ARMA 3 HC Server...
timeout 5
exit

the white window comes up showing the client is running, but never goes beyond that.

Share this post


Link to post
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now

×