Logo 10 Posted December 6, 2014 (edited) My headless client is running on the same maschine as the server and kicked me out all the time. Now i added the Internet Ip from the server in the server.cfg too, looks like this headlessClients[]={"127.0.0.1","5.175.245.45"}; I can connect to the server now without kick. Using this startline on linux ./arma3server -client -connect=5.175.245.45:2302 -nosound -nofilepatching -cpuCount=2 on windows arma3server.exe -client -connect=5.175.245.45:2302 -nosound -nofilepatching -cpuCount=2 Edited December 7, 2014 by Logo Share this post Link to post Share on other sites
Dwarden 1125 Posted December 6, 2014 so silly me, i totally forgot we added new server parameter to autostart mission (no need for HC anymore), the limitation to persistent=1; still do apply -autoinit Share this post Link to post Share on other sites
killjoe_R3F 60 Posted December 6, 2014 (edited) Thx Logo, I'll try your solution... so silly me, i totally forgot we added new server parameter to autostart mission (no need for HC anymore), the limitation to persistent=1; still do apply -autoinit sorry but these means ? could you be clearer ? Edited December 6, 2014 by killjoer3f Share this post Link to post Share on other sites
Dwarden 1125 Posted December 6, 2014 Thx Logo, I'll try your solution...sorry but these means ? could you be clearer ? those are for auto-starting mission on the server w/o need of 1st player to do so Share this post Link to post Share on other sites
bhaz 0 Posted December 7, 2014 (edited) Did the stuff from RC2 make it into stable? This is the error we get when the hc tries to join, same error on 2 different PC's. Used -enableSteamLogs -debug_steamapi on both hc and server. Server logs: STEAM: STC: Requesting validation ticket for player: headlessclient - SteamID:18446744073709551615, Local result: Invalid ticket STEAM: STC: Local ticket check for player: headlessclient - SteamID:18446744073709551615 failed. Code: 1 Server error: Player without identity headlessclient (id 1243704363) STEAM: STC: Client: headlessclient - SteamID:18446744073709551615 - Kicked off because of invalid ticket. LocalResultCode: Invalid ticket, RemoteResultCode: Ticket invalid Headless log: 14:37:45 STEAM: STEAMWORKS: [s_API WARN] CancelAuthTicket called on invalid ticket 14:37:45 STEAM: STEAMWORKS: [s_API WARN] CancelAuthTicket called on invalid ticket We're using a client game folder, not the dedi package. The errors are the same whether steam is open and logged in or closed. Edited December 7, 2014 by bhaz Share this post Link to post Share on other sites
subminuentisch 10 Posted December 7, 2014 ok for everyone using TADST/having issues with the HC being kicked (The info that fixed it for us) the localClient array became a headlessclients array ,make sure you change your serverconfiguration accordingly. Share this post Link to post Share on other sites
bhaz 0 Posted December 8, 2014 ok for everyone using TADST/having issues with the HC being kicked (The info that fixed it for us) the localClient array became a headlessclients array ,make sure you change your serverconfiguration accordingly. Perfect, thanks. :cool: Share this post Link to post Share on other sites
loud 11 Posted December 10, 2014 Does anyone have a working HC implementation? For some reason setOwner does transfer the AI to the HC but the AI then becomes completely stupid. They act weird, laggy and don't follow waypoints. Also ASM shows the AI indeed transfered from server to HC but the load stays on the server and doesn't transfer to the HC. Any tips? Share this post Link to post Share on other sites
BL1P 35 Posted December 15, 2014 Just some info for the Headless clients. We have found that its best to use both :- headlessClients[]={127.0.0.1}; and localClient[]={127.0.0.1}; In the server.cfg if you're using the same box for headless and server as we are. When we only used headlessClients[]={127.0.0.1}; The bandwidth given the HC was insufficient and resulted in very crappy and weird AI behaviour. Hope this helps someone (if it did... GET BL1P A BEER :beeeers: ) Share this post Link to post Share on other sites
Dwarden 1125 Posted December 15, 2014 sorry for not placing both settings into each BIKI page, fixed that now https://community.bistudio.com/wiki/server.cfg#Dedicated_client_in_Headless_Client_mode https://community.bistudio.com/wiki/Arma_3_Headless_Client#Headless_Client_Overview hopefully more clear now :) Share this post Link to post Share on other sites
killzone_kid 1332 Posted December 15, 2014 HC can be kicked or banned by admin from MAP -> PLAYERS menu. When kicked, HC returns back to the game however it duplicates, triplicates etc: before the kick: entities "headlessclient_f"; //[HC1] after 1st kick and reconnect: entities "headlessclient_f"; [HC1,HC1] after 2nd kick and reconnect: entities "headlessclient_f"; [HC1,HC1,HC1] etc... Share this post Link to post Share on other sites
BL1P 35 Posted December 15, 2014 Am I correct in thinking that when using a headless client its the HCs profile which governs the difficulty settings and therefore the AI skill settings and not the servers profile ? Share this post Link to post Share on other sites
maddogx 13 Posted December 15, 2014 Am I correct in thinking that when using a headless client its the HCs profile which governs the difficulty settings and therefore the AI skill settings and not the servers profile ? Yes, the HC's difficulty settings would apply to all AI that are local to it. Share this post Link to post Share on other sites
meatball 25 Posted December 15, 2014 (edited) Anyone run into an issue where Headless Clients connect correctly, but do not populate into the HC slot? Been a while since I monkeyed with it or my missions, but just found out that the HC is no longer automatically dropping into the Civvie HC slot I've got setup. Not sure if it's a mission config issue, or something I'm just out of the loop on with server/HC setup. Edit: <Figured it out on my own, was using the old Headless Client setup and not the new 'Virtual Entity' deal. Seems to be working once I edited my missions and used the new HC config.> Edited December 16, 2014 by Meatball Share this post Link to post Share on other sites
Logo 10 Posted December 16, 2014 (edited) Am I correct in thinking that when using a headless client its the HCs profile which governs the difficulty settings and therefore the AI skill settings and not the servers profile ? and when you set your difficulty, change the file permissions to read only. On my server, everytime it starts, in domination the DCSlot (name of dominations hc client) was always overwritten and had no difficulty inside. Edited December 16, 2014 by Logo Share this post Link to post Share on other sites
meatball 25 Posted December 16, 2014 Has anyone noticed any performance impacts when you have the server/HC on the same box, both using the same arma3server.exe, even though they're being run as two separate calls? It better to have the server run using arma3server.exe and HC using arma3.exe (assuming you have a full copy of the client for the HC, which I do). Share this post Link to post Share on other sites
BL1P 35 Posted December 16, 2014 @Meatball We are doing our first tests with the HC using ArmA3server.exe for both the Server and the HC. We run both Server and HC on High priority with affinity splitting the cores, 1234 for server, 5678 for HC. In our test mission we split the AI 2/3rds on HC and 1/3rd on Server to a max of 450 total. The HC runs the dynamically created AI and the server runs the Static amount AO AI. We do see a performance increase in the servers fps and cps. But... we see more red chains when the AI are created on the HC as the players move about the map, than we did without the HC. Its hard to say atm because the last stable update has caused a lot of desync in general for us and the vehicle lag is a joke. We are now thinking of putting the Static amount AO AI onto the HC and use the server for Dynamic AI As it seems to cause too many red chains creating and removing AI on the HC. Hope that helps :) ---------- Post added at 07:32 AM ---------- Previous post was at 06:01 AM ---------- we always get this error in HC rpt 8:20:31 Error position: <BIS_TotDesatCC ppEffectAdjust [1,1,0,[0,> 8:20:31 Error Undefined variable in expression: bis_totdesatcc 8:20:31 File A3\functions_f\Feedback\fn_feedbackInit.sqf, line 56 8:20:31 Error in expression <tOxygenRemaining player; BIS_SuffCC ppEffectAdjust [1,1,0,[0.0090> 8:20:31 Error position: <BIS_SuffCC ppEffectAdjust [1,1,0,[0.0090> 8:20:31 Error Undefined variable in expression: bis_suffcc Share this post Link to post Share on other sites
meatball 25 Posted December 16, 2014 Yeah, I do something similar, using /affinity on a Windows machine to split the HC and server onto separate cores. In the missions I make I generally leave the static AI on the server as well and just have the HC handle dynamic AI. I'll be honest, I haven't really messed with anything in a few months until someone contacted me that they were having a hard time getting a HC working with one of missions. That's when I found out about all the recent changes. 450 is pretty good AI wise, prior to the new updates my server (i5-3570K/16GB RAM) generally started to bog down around 250-300. I haven't tried to really push it with the new setup, but I did notice the red chains/lag with Dynamic AI spawns now that I hadn't seen before. Share this post Link to post Share on other sites
kremator 1065 Posted December 16, 2014 I recommend you guys also use something like Zorrobyte's ZBE_cache to help with AI numbers. I can get 450 AI and still get 25FPS and 25CPS (on Rydigier's HETMAN missions). No lag etc. Share this post Link to post Share on other sites
BL1P 35 Posted December 16, 2014 (edited) Will take a look at that thanks Kremator. we tend to be at 200-300 ai normally but we get 50fps and 45cps at those numbers. we panic if the server gets to 25fps as we find that too laggy to play. Server = i7 4770, 32 GB of RAM, and 2x 320 GB SSDs in a RAID-0 config. O yer got the mission running on 2HCs today so now HC1 runs AO AI and HC2 runs Dynamic AI Makes the ASM look cool but now we need an ASM with more instances :) Edited December 16, 2014 by BL1P Share this post Link to post Share on other sites
BL1P 35 Posted December 17, 2014 (edited) Has anyone else Noticed that when AI are on the Headless and you shoot next to them but don't hit them, they do not react to the shot/impact. Once you put the same AI on the server they will react to the shot/impact. It seems to us that the reaction parameters of impacts or sounds are not working on the headless. Maybe some type of locality thing ? Can anyone confirm this ? Edited December 17, 2014 by BL1P Share this post Link to post Share on other sites
mons00n 3 Posted December 18, 2014 (edited) I think I found a bug in the linux dedicated server and how it handles Headless Clients with the "kickDuplicate" config parameter. Create a simple mission with 1 playable blufor unit, and one headless client (virtual entity). Now set kickDuplicate = 1; in your server's config file. Join the mission, launch the HC and join. When you attempt to start the mission you will be booted back to the server select screen (I'm launching the HC from the same installation as I'm joining from). If you take the exact same configuration file and try it on a Windows dedicated server, this does not happen. As a temporary workaround, setting kickDuplicate = 0; seems to do the trick. edit: it seems to only work the first time, after launching the mission a second time (or a different HC mission) it boots me back to the server select screen. A server restart allows me to give it another go. edit2: it also only seems to work if I already have the mission file downloaded. If downloading the mission it boots me to the server menu immediately after the download completes. edit3: I get the same behavior on a Windows dedicated with kickDuplicate=1;, not sure exactly what is going on here as there is no related error messages. Edited December 18, 2014 by mons00n Share this post Link to post Share on other sites
mons00n 3 Posted December 18, 2014 (edited) In other news I attempted to auto-detect the headless client and have had very little luck =/ I created a custom function and set postInit=1 via: class HeadlessClient { tag = "HeadlessClient"; class HeadlessClient_functions { file = "HC"; class headlessCheck { postInit = 1; }; }; }; and the file "HC\fn_headlessCheck.sqf" looks like so: if (!hasInterface && !isServer) then{ HeadlessClientPresent = True; publicVariable "HeadlessClientPresent"; }; now inside of init.sqf I have: waitUntil{!(isNil "BIS_fnc_init")}; if(!(isNil "HeadlessClientPresent")) then{ if(!hasInterface && !isServer) then{ [] spawn _spawnUnits; }; } else{ if(isServer) then{ [] spawn _spawnUnits; }; }; However, the units always spawn on the server which results in double spawning (1xServer + 1xHC). When you are dropped into the game HeadlessClientPresent is indeed set to True, but when init.sqf is executed it has yet to be defined on all clients/servers except for the HC. According to the wiki's article on initialization order all functions with postInit=1 should be executed before BIS_fnc_init is defined - this may indeed be happening, but why is publicVariable not broadcasting HeadlessClientPresent until after init.sqf is executed? Or, is this a case of the HC loading the mission after the other clients? Edited December 18, 2014 by mons00n Share this post Link to post Share on other sites
fn_Quiksilver 1636 Posted December 18, 2014 (edited) This is not specifically related to HC, however it shares similar properties. There seems to be an issue with the allDeadMen array, when spawning AI on client, or simply handling remote units. Seems like the server and clients can have different values. Some elements are shared but some are not shared. For instance, in a brief MP test (50 players ingame (invade annex)) just now: on server: dead_count = count allDeadMen; publicVariable "dead_count"; on client: hint str dead_count; // 46 immediately after, on client: hint str count allDeadMen // 61 I have a scripted cap of 30 in the allDeadMen array in a MP scenario, but when I spawn AI on client, the array gets bugged and then stops deleting bodies at all. For instance if I am deleting the allDeadMen array by running running a loop over while {count alldeadmen > body_limit} do { deleteVehicle (allDeadMen select 0); }; Sometimes select 0 is not deletable or there is a locality issue, and the loop get stuck trying to delete a remote object which cannot be deleted. Will have to do more testing to know more before submitting anything to the tracker. Note: The (allDead - allDeadMen) array, which isolates land/air/ship vehicles from man vehicles, has no such issue. The cleanup script in use: http://www.armaholic.com/page.php?id=27333 Edited December 19, 2014 by MDCCLXXVI Share this post Link to post Share on other sites
das attorney 858 Posted December 19, 2014 Same thing with allGroups. allGroups on server != allGroups on HC Only groups local to machine are detected. This doesn't mean you can create more than 144 per side though. Game still detects and vetoes that. Share this post Link to post Share on other sites