mons00n 3 Posted February 10, 2015 Arma3 Headless Client Guidefor mission makers & server adminsby: Monsoon Today I'd like to share with everyone my Arma3 headless client guide. My Arma2 HC guide is nearly 2 years old and needed a bit of a makeover. I cover a large range of topics including: What is a headless client? When should you use a headless client? How to add a headless client entity to your mission Contextually spawning units on either the server or the headless client spawn units via script spawn units via DAC spawn editor-placed units [*] How to transfer units from the server-->HC [*] Allowing headless clients to connect to your server [*] Starting the headless client on both Windows & Linux I hope that this guide proves useful to both veteran and new mission creators alike. I will do my best to keep it updated as things change throughout the years. If you have any feedback or comments I'd love to hear from you, thanks! Download Arma3 Headless Client Guide A3 HC Example Mission 2 Share this post Link to post Share on other sites
dr death jm 117 Posted February 10, 2015 cool, maybe finaly I can get HC on my server (Linux).. thanks Share this post Link to post Share on other sites
Guest Posted February 10, 2015 Release frontpaged on the Armaholic homepage. Arma3 Headless Client Guide v1.0 ================================================ We have also "connected" these pages to your account on Armaholic. This means soon you will be able to maintain these pages yourself if you wish to do so. Once this new feature is ready we will contact you about it and explain how things work and what options you have. When you have any questions already feel free to PM or email me! Share this post Link to post Share on other sites
zorrobyte 30 Posted February 11, 2015 Important note about owner and setGroupOwner on latest dev: owner is broken as is returning non-whole numbers leading to setGroupOwner not working and rejoined HC has incorrect clientID. BIS is aware and engaged: http://feedback.arma3.com/view.php?id=22649 http://feedback.arma3.com/view.php?id=22653 Excellent guide by the way! Share this post Link to post Share on other sites
Grumpy Old Man 3546 Posted February 11, 2015 HC basically adds more performance to the server if issued properly? Are there any numbers as how many HCs you'd need for a certain number of AI? (I'm guessing at 80-100 AI units per HC would be appropriate?) It'd be nice to know what kind of numbers of AI units could theoretically be reached assuming there are low ping-high performing HCs used in a mission. Other then that, excellent guide, might wanna improve my MP scripting a bit just for what it is! Cheers Share this post Link to post Share on other sites
mons00n 3 Posted February 11, 2015 Important note about owner and setGroupOwner on latest dev: owner is broken as is returning non-whole numbers leading to setGroupOwner not working and rejoined HC has incorrect clientID.BIS is aware and engaged: http://feedback.arma3.com/view.php?id=22649 http://feedback.arma3.com/view.php?id=22653 Excellent guide by the way! I haven't personally done much testing with disconnecting/reconnecting headless client's so I didn't have much to say on that subject =) But glad to hear they are working on it! HC basically adds more performance to the server if issued properly?Are there any numbers as how many HCs you'd need for a certain number of AI? (I'm guessing at 80-100 AI units per HC would be appropriate?) It'd be nice to know what kind of numbers of AI units could theoretically be reached assuming there are low ping-high performing HCs used in a mission. It doesn't add performance to the server, but alleviates strain on the server by reducing the number of things it has to do. In regards to HC performance it's really all a matter of trial and error. Just give it a go and see how strained your HC processor becomes. Obviously the more processing power the better. Share this post Link to post Share on other sites
mons00n 3 Posted February 11, 2015 Guide & Mission Updated: bug fixes regarding errors with moveToHC.sqf added waitUntil{time > 2}; to make sure the HC has properly loaded the mission no longer gives errors when HC is not present, we now use isNull rather than isNil [*] doc update: array returned by playableUnits does not return the headless client Share this post Link to post Share on other sites
yourry 14 Posted February 11, 2015 Regarding the HC, I always wondered one thing. Given the AI HC is good but the HC is not immune to a disconnection or crash. This happens if the AI is managed by a HC and it disconnects? The AI does not work? There is an automatic transfer to the server? If you have an answer, I'm interested. Share this post Link to post Share on other sites
mons00n 3 Posted February 11, 2015 Regarding the HC, I always wondered one thing. Given the AI HC is good but the HC is not immune to a disconnection or crash.This happens if the AI is managed by a HC and it disconnects? The AI does not work? There is an automatic transfer to the server? If you have an answer, I'm interested. The AI should be transferred back to the server as I mention in the guide when discussing ownership. Less chance of disconnect is another reason why having the HC on the same network or in the same datacenter is ideal. Share this post Link to post Share on other sites
mamasan8 11 Posted February 11, 2015 (edited) EDIT: Oh well, posted in the wrong place. Edited February 11, 2015 by mamasan8 Share this post Link to post Share on other sites
Sanchez Milsim 70 Posted February 11, 2015 Many thanks!!! Usefull guide. Share this post Link to post Share on other sites
Guest Posted February 11, 2015 New version frontpaged on the Armaholic homepage. Arma3 Headless Client Guide v1.1 ================================================ We have also "connected" these pages to your account on Armaholic. This means soon you will be able to maintain these pages yourself if you wish to do so. Once this new feature is ready we will contact you about it and explain how things work and what options you have. When you have any questions already feel free to PM or email me! Share this post Link to post Share on other sites
zorrobyte 30 Posted February 11, 2015 Important note about HC, performance may not yet be worth the effort unless steps are taken to minimize impact of AI simulation. See: http://feedback.arma3.com/view.php?id=22676 Share this post Link to post Share on other sites
ohheyitsniel 10 Posted February 11, 2015 Headless clieent just keeps getting kicked from the game. Ingame it says "Player headlessclient kicked off, Steam ticket check failed: (null) Share this post Link to post Share on other sites
zorrobyte 30 Posted February 11, 2015 (edited) Headless clieent just keeps getting kicked from the game. Ingame it says "Player headlessclient kicked off, Steam ticket check failed: (null) That is due to using TADST or having an invalid server.cfg. Read the BIKI: https://community.bistudio.com/wiki/Arma_3_Headless_Client This needs to be in your server.cfg: headlessClients[] = {"127.0.0.1", "192.168.1.100"}; // list of IP addresses allowed to connect using headless clients; example: {"127.0.0.1", "192.168.1.100"}; localClient[] = {"127.0.0.1", "192.168.1.100"}; // list of IP addresses to which are granted unlimited bandwidth; example: {"127.0.0.1", "192.168.1.100"}; Correction to the guide: Transferring units to the headless client after mission start means that you can leave themin the editor. This is not the preferred way of doing things, mainly because these units will lose any waypoints, behaviors, or objects synchronized to them in the transfer. With new setGroupOwner, all appear to be transferred other than eventHandlers in latest dev branch. More testing is needed but I have verified for myself that: waypoints and synchronized objects are maintained. The pitfall is that the FSM state is not transferred meaning that the AI will "reset" behavior. An example of FSM reset is imagine a enemy AI group engaged with a "danger" variable of 2. Upon transfer, the AI will start from the beginning of the FSM with a danger value of 0 (I have no idea what the actual danger variables are but whatever). A workaround would be to only setGroupOwner for AI away from player, feel free to borrow code from ZBE_Cache as it is under CC-BY-SA as I do this to determine when to cache AI. Edited February 11, 2015 by zorrobyte Share this post Link to post Share on other sites
kgino1045 12 Posted February 12, 2015 SO! the ai must spawn from server which is already placed and scripted in editor NOT by Zeus which is client spawn it Share this post Link to post Share on other sites
Grumpy Old Man 3546 Posted February 12, 2015 Important note about HC, performance may not yet be worth the effort unless steps are taken to minimize impact of AI simulation. See: http://feedback.arma3.com/view.php?id=22676 Thanks for pointing this out, voted. Cheers Share this post Link to post Share on other sites
zyg0tic 12 Posted February 24, 2015 (edited) Question about this... In the tutorial monsoon tells us how to integrate it with DAC. I'm using the ALiVE mod for my mission, which has the feature of off-loading the CloseQuartersBattle unit's AI onto the Headless Client. So I'm just trying to get the Headless Client configured without worrying about its affect on all the AI (I think the CQB off-load will help performance enough). Also, the code in the PDF really doesn't work well with copy-paste. Here it is after I typed it out (which isnt the best either but hey im new to this). //define function to spawn units _spawnUnits = { //regular spawn method [] execVM "spawn_viaScript.sqf"; [] execVM "spawn_EditorPlaced.sqf"; //DAC spawning [] execVM "DAC\DAC_Config_Creator.sqf"; [] execVM "spawn_viaDAC.sqf"; True }; //check if HC1 is present HC1Present = if(isNil "HC1") then{False} else{True}; //spawn units on HC1 if present if(HC1Present && isMultiplayer) then{ if(!isServer && !hasInterface) then{ [] call _spawnUnits; }; } //otherwise spawn units on the server else{ if(isServer) then{ [] call _spawnUnits; }; }; Edited February 24, 2015 by zyg0tic Share this post Link to post Share on other sites
Azza FHI 50 Posted February 28, 2015 would really like some advice on this subject and how to set it up to suit our clan. we are an Australian based group with 20 - 30 players and we rent a server from Las Vegas. We rent from US for better $ value, cept we get 150 - 200ms ping. so, if we were to setup the headlesss client on our missions, are we able to use the dedicated server as the headless client or does that defeat the purpose? i asked the same question to someone in our group and they said that it would still be worth it as the AI would use different cores which would result in better performance. the other options as i understand it is to either have a) another server box which is the HC or b) have all clients run their game as a HC any help on this would be greatly appreciated. Share this post Link to post Share on other sites
SilentSpike 84 Posted February 28, 2015 Oh mons00n, I don't know if it's any use to your guide, but I recently finished up writing an SQM to SQF converter specifically for use with a HC. Works with arma 2 & arma 3. Share this post Link to post Share on other sites
manzarek 14 Posted March 6, 2015 (edited) My headless client is getting kicked EDIT: Ok i added my ip (192.168.1.24 in addition of the 127.0.0.1 and now it is working) Edited March 6, 2015 by Manzarek Share this post Link to post Share on other sites
jandrews 116 Posted March 7, 2015 Oh mons00n, I don't know if it's any use to your guide, but I recently finished up writing an SQM to SQF converter specifically for use with a HC. Works with arma 2 & arma 3. Between this and OP HC should be easier for those who need it. I haven't needed to use HC yet, I have yet to press my DS to the point of needing HC. BUT I certainly like this idea and will continue to follow this thread for more information. Thanks guys! Share this post Link to post Share on other sites
manzarek 14 Posted March 7, 2015 (edited) I create the bikey and biprivatekey. I signed my pbo with the private key. I put the bikey in the Keys folder and the bisign in the @hc/addons folder next to the pbo but i still get wrong signature for file @hc\addons\addon.pbo when the HC connect to the server I dont understand? EDIT: It worked when signing whith binpbo but not when signing a pbo packed with pbo manager Edited March 7, 2015 by Manzarek Share this post Link to post Share on other sites
thecoolsideofthepillow 22 Posted March 14, 2015 (edited) Does the HC have to be another machine or can it be the host machine and still alleviate the server calculations? What, if any, benefit would there be to using multiple HCs on the same machine? Edited March 14, 2015 by TheCoolSideofthePillow Share this post Link to post Share on other sites
astrell 3 Posted March 14, 2015 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 :-[ Share this post Link to post Share on other sites