Jump to content
hellstorm77

Arma 3 Headless Client

Recommended Posts

How much of a performance boost can I expect to see from one HC? Will it reduce the RAM usage by the server? Currently, the only Arma3server instance is using up about 1GB of RAM. It is causing the other Wasteland server to lag too.

Share this post


Link to post
Share on other sites

I've successfully setup the Linux Arma 3 server on our dedicated box (been working really well so far) and am now trying to get a headless client running on it as well. I can get a HC connected remotely (from my PC to the server) and it looks like I can get the HC running on the dedicated server (connect to a different server), but have so far been unable to get the HC to connect to the server on the same box.

 

It appears the client can't connect properly because the ports it wants to use (2302-2304?) are already in use by the server instance of Arma 3, so the client can't even use them to connect. I get the following error:

13:48:58 BattlEye Server: Initialized (v1.207)

13:48:58 Host identity created.

[s_API FAIL] SteamAPI_Init() failed; SteamAPI_IsSteamRunning() failed.

CreateBoundSocket: ::bind couldn't find an open port between 2303 and 2303

Arma 3 Console version 1.52 : port 2314

I am starting the headless client with the following parameters (127.0.0.1 has been added to the headless and local client config options):

./arma3server -client -nosound -connect=127.0.0.1 -password=<redacted> -name=HC -profile=Player -mod="@01;@02;@03;@04;@05;@06;@07;@08;@09;@10;@11;@12"

Any ideas?

Share this post


Link to post
Share on other sites

Set the port for the hc to something else. 2312, 2342, etc whatever you want really

-port=2312;

 

Huh? HC runs as a client, -port in this case is what port the HC is connecting to. HC is not a "server".

Share this post


Link to post
Share on other sites

Huh? HC runs as a client, -port in this case is what port the HC is connecting to. HC is not a "server".

 

Negative, it needs a different port. Or at least it has in mine.

 

The connection port is included in the -connect=xxx.xxx.xxx:2302

Share this post


Link to post
Share on other sites

Also, you may have noticed that if you start your client first and host a local game, then an instance of arma3server.exe it will choose port 2312 instead of 2302. So the client can and does "use" ports.

Share this post


Link to post
Share on other sites

Hi there,

 

i try to setup a HC on a Linux dedi machine atm.

There is NO other Server or HC on same box.

 

1. Problem. I can´t find any rpt logs

2. Problem. HC doesn´t load MPMission File from Server

3. Becouse fault 1 and 2 the HC cant take action and Stops at Loading Profile.

 

Can anybody tell me what folders i have to create to get this working ???

I Think the fault is, that arma3server can´t create the folders themselve. so it is not able to save the files.

 

And NO, there is no -noLogs switch in startparameters

 

Arma3server binary is at

 

./home/serverfiles/

Share this post


Link to post
Share on other sites

Negative, it needs a different port. Or at least it has in mine.

 

The connection port is included in the -connect=xxx.xxx.xxx:2302

 

Utter nonsense:

 

-port on the server declares the port that the server listens on

-port on the client declares the port that the client connects to

 

That is simply the fact, nothing to be debated. 

Share this post


Link to post
Share on other sites

Tobias, seems like BIS have different understanding what is server and client anyway...

So HC client actually starts to listen, in my case on port 2316. Here is netstat output from one of those (PID 18303 is server, PID 26188 is client):

udp        0      0 0.0.0.0:2302            0.0.0.0:*                           18303/arma3server_p  
udp        0      0 0.0.0.0:2303            0.0.0.0:*                           18303/arma3server_p      
udp        0      0 0.0.0.0:2304            0.0.0.0:*                           18303/arma3server_p                                       
udp        0      0 0.0.0.0:2305            0.0.0.0:*                           18303/arma3server_p            
udp        0      0 0.0.0.0:2316            0.0.0.0:*                           26188/arma3server_p

Share this post


Link to post
Share on other sites

So, I've dug around and yet to find any mention of suggested specs to run a HC on.  In my situation I run a simple windows based Dedicated server on a spare box (i5-3570K, 16 GB RAM) for 5-10 friends of mine that we'll jump on and play together.  I've got a few other boxes floating around (AMD A6-5400K and Athlon X4 740) that I can throw together for a Headless Client, but wondering if either of them are up to snuff or whether I should just throw the HC on the server box.

Share this post


Link to post
Share on other sites

Can some one just confirm if i need to have two installs of the dedicated server on the same pc if i run a hc?

So i have one install for dedicated server

And another seprate install for the headless client or can dedi server and headless client share the same server files and exe?

Share this post


Link to post
Share on other sites

Can some one just confirm if i need to have two installs of the dedicated server on the same pc if i run a hc?

So i have one install for dedicated server

And another seprate install for the headless client or can dedi server and headless client share the same server files and exe?

I run HC and arma 3 server on same installation, you dont need install arma 3 client files for hc

Share this post


Link to post
Share on other sites

Thanks for the reply and info :).

 

Me and my bro seem to be having a few issues.

 

We are using a HC on antistasi mission and the server FPS is now awesome.

 

But we seem to get more desync issues now.

 

worst of all some of the AI act realy silly as in wont respond to me fireing at them etc even when 100m away

Share this post


Link to post
Share on other sites

So how do I set affinity to cores given that A2 and A3 are limited to the number of cores they can use.  I want to set them up on their own cores, including the headless client.  I'm running on an Intel X5650 2.66 Ghz with 12 cores and 24 threads... 32 Gb DDR3 memory and am considering upgrading to an X5670 2.93 Ghz with 48Gb of memory.   I've only found sketchy, contradictory information on setting affinity.

Share this post


Link to post
Share on other sites
We are trying to spawn AI directly on HC, instead of delegating from Server to HC.

There seems to be issue of deleting this units, server leaves empty models / ghosts on the map!

Here is a test mission with instruction on bottom.


 

This is what we do

 1. group is created on the server "empty"

2. group locality is changed via setGroupOwner to one of the available HC

3. server send a PVclient to the HC with the empty groups as a parameter

4. the HC create the units locally on his machine

5. the units fight/move (they do ai stuff)

6. upon a timeout, the units are removed from the group

7. the group is deleted

note that 6&7 are performed on the HC (localy)

 


this results in empty "ghost" models


P3D models floating around

note that 6 = deleteVehicle to remove the units


 




 

I'm not sure if 1.58 broke it, but very possible.

 

You can also see it here

BI_hc.jpg

 

Another thing on the picture below you can see HC's does not own any AI

 

now.jpg

 

Here picture of Zeus where you can see gypsy AI

 

1be0e188-102e-11e6-9972-c25b5a1d7587.jpg

 

 

9:30:15 "[CTI (DEBUG)] [frameno:29308 | ticktime:630.613 | fps:45.4545] [FUNCTION: CTI_PVF_Client_OnTownDelegationRemoval] Town [Girna] deleting unit [R Charlie 2-3:7] from group [R Charlie 2-3], local? [true]"

9:30:15 "[CTI (DEBUG)] [frameno:29308 | ticktime:630.613 | fps:45.4545] [FUNCTION: CTI_PVF_Client_OnTownDelegationRemoval] Town [Girna] is unit removed? unit [2d59a040# 165169: ia_soldier_01.p3d]"

Share this post


Link to post
Share on other sites

Bohemia was able to replicate the issue and working on fix.

  • Like 1

Share this post


Link to post
Share on other sites

Hello All, 

 

Although I have and idea of what the headless client does. how to connect one to my server.. I also know there are MANY things I dont know. I have been getting more interested in getting an HC up and running for my server. and am prepairing to ask my provider to help me set one up. 

 

I have a few questions for the community and for any server providers/hosts out there.

 

My under standing is thats its an arma client just like my game... that doesnt process any graphical or visual based info. it is focus is compiling the AI's info from what ever mission off loads "AI" on to it, via script/ect. I would go as far as to sat that In that line of thought, It probably utilizes less processing of the hardware its on then a server would. Being only a client processing One aspect of the whole game(AI)

 

So i guess the first question is How much processing / load would a HC put on a server if it was ran on the same server?

 

 I remember back in ARMA 2 you could test HC missions by launching a server on your desktop, then a HC, connect the HC to the server (both ran on the desktop). Then launch your client on the same desktop and play the mission getting obscenely great frame rate... You cannot do that now because of the steam integration and new security measures(with out using the loopback feature). However, with that train of thought. I would assume that running an HC on a dedicated server box would NOT be too taxing, so that it would not cause failure or the necessity to move to a more powerful machine.

 

If you are a community that utilizes HC's, who hosts the headless client?

is it one of the community members on a dedicated box?

is it your server provider for a nominal fee ( what if you dont mind are the details of the Fee / whats the rate to host and connect a hc to your server?)

 

if you host if from a dedicated box at someones house how is the performance?

and i assume you had to open a second steam account and get another copy of arma?

 

I cant think of anything else right now. I am mostly concerned about the pricing. and type of performance hits the server would be getting by runnig the two instances one server one HC. 

 

Thanks in advance for any answers. 

Share this post


Link to post
Share on other sites

Headless client doesn't really "add" to the load, because it's able to utilise resources (CPU cores) that the server instance can't use. In most communities, including mine, the HC is hosted on the same box as the server, with the core affinities set up. You don't need a second copy to run the HC, just make sure the computer hosting it is logged into steam.

Share this post


Link to post
Share on other sites

Hi, Does it makes any sense to have headless client on the same computer where the dedicated server is hosted? For some reason, dedi-server is not able to use the max power of cpus (utilizing around 30-40%) and server is dropping FPS. So would it be possible to use HC from same server to utilize CPU's more?

Share this post


Link to post
Share on other sites

indeed it does. It helps quite a bit as is, but you can always play around with setting affinity on the running processes.

Share this post


Link to post
Share on other sites

Thanks, seems to increase utilization around 60-70 % so definately a boost.

 

Another thing, I have server set up so that missions is not started if no players are connected. However the server is handling headless client as a player, so if the HC is online then the mission will be started as well. Is this something that can be configured from server-side or probably mission design?

Share this post


Link to post
Share on other sites
i have problem with HC it show me for a split a second that the HC is ready and back to hourglass icon any idea? i running the werthless headless module

its on the same machine do i need to open port? firewall? use "-port" on different port then the server?

Share this post


Link to post
Share on other sites

Hello everyone! I was asked to post my guide here for those that might benefit from the following method of connecting a headless client from your own personal computer to a rented server like Host Havoc. 

 

For connecting a Headless Client that is based on the same machine as your server, please refer to those guides. This one specifically covers connecting a Headless Client from your own home/personal based computer to a rented or hosted server OUTSIDE of your network.

 

If any questions, please feel free to ask!

 

Thank you everyone who helped out with my issues in setting up the Headless Clients!

 

I do not know why I was making it so hard and so complicated when in all reality, it is super easy and fairly straightforward! So thank you to all for your help and patience!  :)

 

I wanted to provide a step-by-step guide on how to setup headless clients for the Liberation Tanoa mission. There are many guides out there, but a lot of them focus on server admins who have full access and permissions to their server, something that unfortunately not all of us have with our rented and hosted servers we use. This guide is going to specifically detail how to get Headless Clients on your home/personal computer to connect to your rented or hosted server. I am doing this option for the time being as I am currently working with my hosting company to see if they can let me submit a file to be built and they build it for me. Once I am able to, I will move my Headless Clients over to the server itself as that is the most ideal setup and way to connect.

 

So without much further delay, let's go ahead and jump right into it! This setup will be based on a Windows-based home computer that is going to be connecting Headless Clients to a Linux-based hosted environment.

 

 

Sil's Guide to Connecting Headless Clients via Home Based computer to Hosted/Rented Linux Server for Liberation mission

 

Step 1:     Go to google.com.

 

Step 2:     Type in the question "What is my external IP address?" This is your public IP, write this number down and save for future steps.

 

Step 3:     In your server, find server.cfg (this is your server config file).

 

Step 4:     Open up server.cfg in text program of your choice, I personally use Notepad++ (https://notepad-plus...plus-plus.org/)

 

Step 5:     Anywhere in the server.cfg file, you will want to add the following three lines:

 

headlessClients[]    = {"xxx.xxx.xxx.xxx"};
localClients[]           = {"xxx.xxx.xxx.xxx"};
battleyeLicense      = 1;
 
Step 6:     Take the number we wrote down in previous Step 2, and replaced the xxx.xxx.xxx.xxx with your external IP address that Google gave you. Replace both headlessClients and localClients to reflect your external IP address. 
 
Step 7:     Save your file and restart server
 
Step 8:     Go to your main Arma3 directory, mine is the default location for Steam (C:\Program Files (x86)\Steam\SteamApps\common\Arma 3)
 
Step 9:     Find the file arma3server.exe, and right click one time on the entry to bring up the right click menu options
 
Step 10:   In the right click menu options, click option to "Create Shortcut" for arma3server.exe. Rename shortcut HC orHeadlessClient
 
Step 11:   Place the shortcut you created wherever you wish for convenience, I keep mine on my desktop right below the icon to launch Arma 3. We will use this shortcut to launch our Headless Clients. We only need one shortcut. Each instance that we open up (double clicking three times to bring up three copies of the program) will effectively connect HC1, HC2, and HC3 which have been predefined in the Liberation mission by zbug and McKeewa.
 
Step 12:   Right click on the shortcut you just created and choose Properties
 
Step 13:   In the Target field, add the following line to your entry:     -client -connect=xxx.xxx.xxx.xxx -port=xxxx -mod=
 
Step 14:   Replace the xxx.xxx.xxx.xxx with your RENTED SERVER IP ADDRESS. Make sure to include the correct PORT as well (Example: -client -connect=172.123.88.123 -port=2307 -mod=(any mods you normally run on your server go here, don't forget the -mod= format. So if you have ACE, you'll put -mod=@ace)
 
Step 15:   Accept changes
 
Step 16:   Double click the HC shortcut, a little white box should pop up that says Dedicated client created. Wait a few moments and you'll notice that "headlessclient connected" and will be under profile HC1,  HC2, or HC3. 
 
 
If any problems or questions with this guide, please let me know. I wanted to share this though because of the lack of clear guides that are available out there. The problem I ran into quite frequently was clashing and conflicting information. 
 
I hope this helps!

Share this post


Link to post
Share on other sites

 

Hello everyone! I was asked to post my guide here for those that might benefit from the following method of connecting a headless client from your own personal computer to a rented server like Host Havoc. 

 

For connecting a Headless Client that is based on the same machine as your server, please refer to those guides. This one specifically covers connecting a Headless Client from your own home/personal based computer to a rented or hosted server OUTSIDE of your network.

 

If any questions, please feel free to ask!

 

Thank you everyone who helped out with my issues in setting up the Headless Clients!

 

I do not know why I was making it so hard and so complicated when in all reality, it is super easy and fairly straightforward! So thank you to all for your help and patience!  :)

 

I wanted to provide a step-by-step guide on how to setup headless clients for the Liberation Tanoa mission. There are many guides out there, but a lot of them focus on server admins who have full access and permissions to their server, something that unfortunately not all of us have with our rented and hosted servers we use. This guide is going to specifically detail how to get Headless Clients on your home/personal computer to connect to your rented or hosted server. I am doing this option for the time being as I am currently working with my hosting company to see if they can let me submit a file to be built and they build it for me. Once I am able to, I will move my Headless Clients over to the server itself as that is the most ideal setup and way to connect.

 

So without much further delay, let's go ahead and jump right into it! This setup will be based on a Windows-based home computer that is going to be connecting Headless Clients to a Linux-based hosted environment.

 

 

Sil's Guide to Connecting Headless Clients via Home Based computer to Hosted/Rented Linux Server for Liberation mission

 

Step 1:     Go to google.com.

 

Step 2:     Type in the question "What is my external IP address?" This is your public IP, write this number down and save for future steps.

 

Step 3:     In your server, find server.cfg (this is your server config file).

 

Step 4:     Open up server.cfg in text program of your choice, I personally use Notepad++ (https://notepad-plus...plus-plus.org/)

 

Step 5:     Anywhere in the server.cfg file, you will want to add the following three lines:

 

headlessClients[]    = {"xxx.xxx.xxx.xxx"};
localClients[]           = {"xxx.xxx.xxx.xxx"};
battleyeLicense      = 1;
 
Step 6:     Take the number we wrote down in previous Step 2, and replaced the xxx.xxx.xxx.xxx with your external IP address that Google gave you. Replace both headlessClients and localClients to reflect your external IP address. 
 
Step 7:     Save your file and restart server
 
Step 8:     Go to your main Arma3 directory, mine is the default location for Steam (C:\Program Files (x86)\Steam\SteamApps\common\Arma 3)
 
Step 9:     Find the file arma3server.exe, and right click one time on the entry to bring up the right click menu options
 
Step 10:   In the right click menu options, click option to "Create Shortcut" for arma3server.exe. Rename shortcut HC orHeadlessClient
 
Step 11:   Place the shortcut you created wherever you wish for convenience, I keep mine on my desktop right below the icon to launch Arma 3. We will use this shortcut to launch our Headless Clients. We only need one shortcut. Each instance that we open up (double clicking three times to bring up three copies of the program) will effectively connect HC1, HC2, and HC3 which have been predefined in the Liberation mission by zbug and McKeewa.
 
Step 12:   Right click on the shortcut you just created and choose Properties
 
Step 13:   In the Target field, add the following line to your entry:     -client -connect=xxx.xxx.xxx.xxx -port=xxxx -mod=
 
Step 14:   Replace the xxx.xxx.xxx.xxx with your RENTED SERVER IP ADDRESS. Make sure to include the correct PORT as well (Example: -client -connect=172.123.88.123 -port=2307 -mod=(any mods you normally run on your server go here, don't forget the -mod= format. So if you have ACE, you'll put -mod=@ace)
 
Step 15:   Accept changes
 
Step 16:   Double click the HC shortcut, a little white box should pop up that says Dedicated client created. Wait a few moments and you'll notice that "headlessclient connected" and will be under profile HC1,  HC2, or HC3. 
 
 
If any problems or questions with this guide, please let me know. I wanted to share this though because of the lack of clear guides that are available out there. The problem I ran into quite frequently was clashing and conflicting information. 
 
I hope this helps!

 

 

One thing I forgot to note:

 

-You will need to start your instance of Arma 3 that you will be playing on FIRST before the headless clients. If you start the headless clients first, then try to start your actual game, it will fail.

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

×