Jump to content
hellstorm77

Arma 3 Headless Client

Recommended Posts

The message speaks for itself. does it not?

if your in a hurry. go to battleye.com and grab the needed dll file and update manually.

else you have to wait until you can connect to BE Master again.

Share this post


Link to post
Share on other sites
The message speaks for itself. does it not?

if your in a hurry. go to battleye.com and grab the needed dll file and update manually.

else you have to wait until you can connect to BE Master again.

AH AH !!

Allready done before asking ...

Share this post


Link to post
Share on other sites

Dwarden,

Still no go Ds+HC+game in the same machine?If i connect to my Dedicated server on the same machine and as HC and game a get kick off or HC gets kick off! Arma 2 there was no problem!Will you guys make a arma3hc.exe?

Share this post


Link to post
Share on other sites

that's not possible in global MP mode, the loopback=true; setting on server is only for local LAN (aka testing) ...

in moment you want to have client and dedicated client on same machine,

they must use different steam accounts for MP authorization ...

also make sure the server runs on non default steam ports ...

the arma3hc.exe is highly unlikey to happen as it can't solve engine limitation... (engine has only 1 client type)

Share this post


Link to post
Share on other sites

I did change the steam ports (Steam port and Query port) and tried in local LAN and did not work!...going to try again...

Share this post


Link to post
Share on other sites

I have a slightly different issue from the .dlls failing to update. I'm wondering if someone can help.

I've got the client connecting so it seems (according to the server console). As seen here: http://puu.sh/4gnbe.png

However, should this join the slot you setup for it. i.e. a rabbit. When I join it still says 0/1 on the HC slot i setup on a test mission.

Then after a few seconds the HC 'administrator' seems to get kicked by BE. See below.

http://puu.sh/4gn9n.png

Anyone know the cause of this? I also have battleyeLicense=1; in the arma3.cfg

Just for test purposes I've also manually updated the BE.dlls in the \BattlEye\ DIR

*edit*

Just disabled BE on the dedi server 'BattlEye=0;' HC connects fine and does not get kicked immediately. However then Disconnects around three minutes in, again any help would be appreciated.

I have a copy of ARMA 3 on a different Steam account for my servers. Just to confirm I'd need a second account for HC on the servers?

Another edit...

Following on from Dwardens reply. I went and purchased a third copy of the game... I now have two different server accounts one for DS and one for the HC/client.

I'm still getting issues maintaining a connection.

15:42:18 > You were kicked off the game.

15:42:18 Player Administrator disconnected.

So... thus far, I don't think its a Steam Authentication issue. However when the HeadlessClient gets kicked, you do get the generic message "steam ticket check timed out"

Edited by Inch

Share this post


Link to post
Share on other sites

@Inch, the battleyeLicense=1; line have to be in your HCXX.Arma3Profile file, where HCXX is the -name=HCXX you assigned in the HC start command line.

Example HC start command line:

"c:\Steam\steamapps\common\Arma 3\arma3.exe" -client -localhost=127.0.0.1 -connect=localhost -noPause -nosound -world=empty -profiles=d:\A3\headlessclient -name=HCXX

You should find the profile here (you have to start the HC once): d:\A3\headlessclient\Users\HCXX\HCXX.Arma3Profile.

This could solve your BE problem.

The automatic slot-occupation/mission-start for your HC vehicle, currently doesn't work correctly (at least at my last try in DEV branch).

Mostly your "rabbit" jumps in a regular west/east player slot, even if it was configured as civilian.

To force a mission start of your HC, before a player connects, you could add the following in the init line of your HC vehicle (mission.sqm):

init="this allowDamage false;if (profileName==""HCXX"") then {selectPlayer this;};";

Hope it will help you,

Fred41

Share this post


Link to post
Share on other sites

Hi Fred,

Thanks for the reply. I'm going to update the mission, shortly. I've just added the -profile and -name switches however the HC is still getting kicked.

I'll update this once I've amended the allowDamage script.

*Update*

We've now updated it however kicks are still occurring. Below is the vehicle class.

 class Vehicles
   {
       items=1;
       class Item0
       {
           position[]={1776.459,5.5,5732.9224};
           id=9;
           side="AMBIENT LIFE";
           vehicle="Rabbit_F";
           player="PLAY CDG";
           skill=0.60000002;
           text="HC";
           init=" init=""this allowDamage false;if (profileName==""""HC"""") then {selectPlayer this;};"";";
       };
   };
};

All that keeps happening to the HC is the generic Steam Ticket Check Failed. Nothing else.

Thanks,

Inch

Edited by Inch

Share this post


Link to post
Share on other sites
the arma3hc.exe is highly unlikey to happen as it can't solve engine limitation... (engine has only 1 client type)

I m very disappointed to hear this.

I would not have such-a-problem to pay extra for a serious-super_duper-revolutionary feature (or a pack of those) but this..

HC it's just a workaround for most of us to make effective use of our server's power..something that should have been optimized-years now "from the box".

This..is really not good..

Share this post


Link to post
Share on other sites

the comment was that arma3hc.exe would be no different from arma3.exe -client ...

engine knows only one client, there is nothing like dedicated client vs normal client in network identification

so in the end you still need to have separate STEAM account with ownership of Arma 3 game ...

got it?

Share this post


Link to post
Share on other sites

Hi Inch,

your init line locks not that good.

Just use a text editor and insert the original line from my earlier post in your mission.sqm file (dont forget to adapt the HC name in that line).

Currently BIS requests a extra license for the use of HC (you need a full additional license).

That maybe change in future (and i really hope so), but your steam kick could be related to this license restriction.

Also, if you use the loopback=true command in your server.cfg (for testing, developing), you schould know it doesn't work currently.

(I tinkered for hours with loopback=true a few weeks ago and got just steam kicks).

So currently, the only way to make a HC running, is to buy a additional license for HC.

Greets,

Fred41

Hi Fred,

Thanks for the reply. I'm going to update the mission, shortly. I've just added the -profile and -name switches however the HC is still getting kicked.

I'll update this once I've amended the allowDamage script.

*Update*

We've now updated it however kicks are still occurring. Below is the vehicle class.

 class Vehicles
   {
       items=1;
       class Item0
       {
           position[]={1776.459,5.5,5732.9224};
           id=9;
           side="AMBIENT LIFE";
           vehicle="Rabbit_F";
           player="PLAY CDG";
           skill=0.60000002;
           text="HC";
           init=" init=""this allowDamage false;if (profileName==""""HC"""") then {selectPlayer this;};"";";
       };
   };
};

All that keeps happening to the HC is the generic Steam Ticket Check Failed. Nothing else.

Thanks,

Inch

Edited by Fred41

Share this post


Link to post
Share on other sites
Hi Inch,

your init line locks not that good.

Just use a text editor and insert the original line from my earlier post in your mission.sqm file (dont forget to adapt the HC name in that line).

Currently BIS requests a extra license for the use of HC (you need a full additional license).

That maybe change in future (and i really hope so), but your steam kick could be related to this license restriction.

Also, if you use the loopback=true command in your server.cfg (for testing, developing), you schould know it doesn't work currently.

(I tinkered for hours with loopback=true a few weeks ago and got just steam kicks).

So currently, the only way to make a HC running, is to buy a additional license for HC.

Greets,

Fred41

Thanks again for the reply. I've made the amendments and the issue still occurs looks like some-sort of bug to me.

After alot of playing around, given that I was only running this on one of my test machines. I found that the Client of Steam was conflicting with itself. I installed two copies of the game one for *DS and one for *HC both on different steam accounts. I know that *DS does not require authentication, however the conflicts still seemed to have occurred.

I found rolling out the *DS install through SteamCMD seemed to resolve conflict issues, then I used the client for launching *HC 'arma3.exe', however I have one final question, i cannot seem to be able to get the arma 3 client to authenticate through SteamCMD, only through the Steam Client. Has anyone got a solution to this issue?

*DS = Dedicated Server

*HC = Headless Client 'arma3.exe -client'

Edited by Inch

Share this post


Link to post
Share on other sites

Noticed a couple of days ago that my HC can now join my passworded servers. :)

Still a few issues remain though. He dies a minute after a player joins his server when the there's only the HC and the newly joined player in there server and he still doesn't get into his slot automatically.

Share this post


Link to post
Share on other sites

Quick question guys!

It's better to spawn AI units directly locally to the HC or create the AI in the server and then give the control to the HC?

Share this post


Link to post
Share on other sites
Quick question guys!

It's better to spawn AI units directly locally to the HC or create the AI in the server and then give the control to the HC?

... yes, spawn the AI where you want it to be simulated (.fsm processing), normally on HC, if available.

Later changing the locality (setOwner) is possible, but means more effort (e.g. waypoints are lost) ...

Share this post


Link to post
Share on other sites

I need some help then ;)

This is what i've in my init.sqf: (BTC_p_HC is a param)

if (BTC_p_HC == 1) then
{
if (!isServer && !hasInterface) then
{
	call compile preprocessFile "=BTC=_fnc_server.sqf";
               "BTC_to_HC" addPublicVariableEventHandler BTC_HC_PVEH;
	BTC_HC_name = name player;
	publicVariable "BTC_HC_name";
};
};

This is part of the script that i use to spawn units:

if (BTC_HC_name != "") then {[bTC_enemy_side,[_city_pos],80,3] call BTC_spawn_inf_group;} else {BTC_to_HC = [0,_city_pos];BTC_HC_id publicVariableClient "BTC_to_HC";};

This is HC side:

BTC_HC_PVEH =//BTC_to_HC  
{
_array = _this select 1;
_type  = _array select 0;
switch (true) do
{
	case (_type == 0) : //Fant
	{
		private ["_city_pos"];
		_city_pos = _array select 1;
		[bTC_enemy_side,[_city_pos],80,3] call BTC_spawn_inf_group;
	};
	case (_type == 1) : //Veh
	{
		private ["_loc_2"];
		_loc_2 = _array select 1;
		[bTC_enemy_side,[_loc_2],"",200,2] call BTC_spawn_veh_group;
	};
	case (_type == 2) : //Patrol
	{
		private ["_loc_2"];
		_loc_2 = _array select 1;
		[bTC_enemy_side,[_loc_2],"",200,2] call BTC_spawn_inf_group;
	};		
};
};

I can't figure out where the error is....

One more tip, i have in my mission.sqm:

	class Item15
	{
		side="CIV";
		class Vehicles
		{
			items=1;
			class Item0
			{
				position[]={4048.9133,3.5471969,7677.6289};
				id=52;
				side="CIV";
				vehicle="C_man_1";
				player="PLAY CDG";
				leader=1;
				skill=0.60000002;
				init="this allowDamage false;";
                                       forceHeadlessClient=1;
				description="HEADLESS CLIENT - LEAVE EMPTY";
			};
		};
	};

But when the HC joins the server it doesn't take its slot...

Share this post


Link to post
Share on other sites

HC's automatic slot occupation is currently not working as expected.

A possible workaround will you find a few posts earlier (inch).

If you add this:

init="this allowDamage false;if (profileName==""HCXX"") then {selectPlayer this;};"; // replace HCXX with the -name param from HC client start line

to your HC vehicle initline, at least your HC should start correctly,

(just in a wrong slot) and should work.

Maybe you also have to replace:

BTC_HC_name = name player;

with:

BTC_HC_name = profileName;

Hope it helps,

Fred41

Edited by Fred41

Share this post


Link to post
Share on other sites

Many thanks for the help, now it's working, with some little problems but we'll resolve them easily!

Got one question.. I've read all the pages and google but I haven't found a real answer to my question:

I need to buy another copy of the game ? By now we are testing HC without BE and don't know what to do, we can wait if this HC will ever work without another cdkey... Or if this HC have to work without another license I'll buy now and I'll give up this ...

Share this post


Link to post
Share on other sites

How does headless client actually work ? To me it is only a program that is running on the same machine as the server exe. Why can't whatever headless client is doing be pushed into the server exe. There is no free lunch so, it is not grabbing extra bandwidth and cpu power from the ether... very strange approach.

Share this post


Link to post
Share on other sites
How does headless client actually work ? To me it is only a program that is running on the same machine as the server exe. Why can't whatever headless client is doing be pushed into the server exe. There is no free lunch so, it is not grabbing extra bandwidth and cpu power from the ether... very strange approach.

Server.exe = use X of Y core available and X of Y RAM.

HC.exe = use X of Y core available and X of Y RAM.

=More use of core and ram available than before.

The limit that server.exe has now can be balanced between two processes.. Either I can't understand why the limit of server.exe can't be breaked and can't be optimized for multicore and 64 like many other, btw by now this is the situation so... :P

Share this post


Link to post
Share on other sites
It Works with any mission!? Or you need to have specifically edited missions for it!?

You have to edit for it... Another thing that still don't understand... Wasn't better only make a param 0;1 and everyone can choose to use HC for AI and connect it? Things are never easy here :P

BTW I need to buy another license for HC or in the future this will be fixed to work without buying another license?!

Edited by ramius86

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

×