Page MenuHomeFeedback Tracker

Newest CD key checking breaks HC
Reviewed, WishlistPublic

Description

When running dev, I can no longer use my headlessclient and join the server as it kicks me from the game immediately due to new "anti piracy" in latest DEV patch.

This issue differs from A2's "have to buy a second copy for HC" debate as it's STEAM only, I cannot purchase a second copy on the same account or run two steam accounts on a single machine. Unless I purchase a second copy and only run it on THE SERVER (IF such dev even has enough resources to afford a second machine/server) for HC then it totally breaks HC in A3.

I also cannot now use multiple headlessclients on the same server as it's impossible to buy more than one copy of A3 per steam account or run more than one copy of steam per server.

Details

Legacy ID
36993017
Severity
None
Resolution
Open
Reproducibility
Always
Category
Multiplayer
Steps To Reproduce

Start server, HC on the same machine then attempt to connect with your client to play; client gets kicked. Additionally, attempt to connect more than one HC to a server for multiple HC load balancing; HC gets kicked. Start server, HC on dedicated server then attempt to join server with local PC on same steam account, client gets kicked.

Additional Information
  1. Add a switch or few to the dedi server binary a3server.exe -client=IP -port=PORT -hcpass=PASSWORD
  2. Put hcpass = PASSWORD in the server cfg, I set allowHC=2 (how many HC are allowed on server, 0 for none)
  3. Server runs checks on all clients currently for cdkey. Let cdkeyless clients connect IF they provide hcpass and pass a HC test (http://pastebin.com/nKHxyLNr) or hasInterface, or simply generate a RSA public/private keypair authenticating the HC as genuine..
  4. Server runs disablesimulation and disableinput on each of these HC connected clients (or via special NEW undocumented command)
  5. If you want to be super anal you could do hcallowed=IPaddress and only HC from these IPs could connect including localhost (127.0.0.1)
  6. Server spawns HC in as a bird. If the Arma 3 dev-stable birdflu crisis is remembered by anyone, it should be noted that it's impossible to change units after being a bird..

An alternative solution is offered in this document for AI pref in general (distributed AI processing): (Link fixed)
https://drive.google.com/file/d/0B3VdHnk7BX1BUGtMRmMyRDRza1U/edit?usp=sharing

Event Timeline

zorrobyte edited Additional Information. (Show Details)
zorrobyte set Category to Multiplayer.
zorrobyte set Reproducibility to Always.
zorrobyte set Severity to None.
zorrobyte set Resolution to Open.
zorrobyte set Legacy ID to 36993017.May 7 2016, 1:34 PM
Xeno added a subscriber: Xeno.May 7 2016, 1:34 PM
Xeno added a comment.Apr 11 2013, 9:11 PM

It completely prevents connecting with a second client (normal or HC) to a dedicated server even if kickduplicate is disabled.

Makes MP testing with two clients on a local machine impossible now.

Irony as forceheadlessclient=1 made it into Dev the same time this did (http://feedback.arma3.com/view.php?id=4662).

*EDIT by Dwarden*
Dwarden has suggested buying another copy should be necessary for HC w/o compromising security layers.

You can use SteamCMD to run multiple times per machine,
as long as you use login to STEAM account which owns arma 3 alpha
each new SteamCMD session of course needs new unique account (with arma 3 ownership)

rest is unrelated ...

My original (apparently unrelated) note stated:
/*

  1. Add a switch to the dedi server binary -client or create a new dedicated client that is cdkeyless or universal (as the dedi server operates in this fashion)
  1. Only allow the HC/Dedicated client to connect to localhost (127.0.0.1) to nullify security issues.

As issues exist with remote HC (https://dev-heaven.net/issues/62500) limiting HC to localhost only shouldn't have a negative impact.

Sure, the admin may hack their own server via this method using an "unbannable client" but such easier ways as proving grounds locked to UID exist already.
*/

Terox added a comment.Apr 13 2013, 1:03 PM

The main concern for a HC would appear to be a security issue.

here's my viewpoint on that

Either utilise a -HC switch parameter on a dedicated server binary
or create a HC.exe
For either option, do not allow any user input

Possibly
Only allow 1 instance of a HC on 1 server at any time. (If they all have the same USER ID, this checking system already exists)
If multiple HC's are allowed , use a HC password for the server

In the server config have some or all of the following optional settings

Define if HC is allowed
Define HC IP address, if not defined, by default it whitelists the server IP
Define a HC password (Would seem a very easy solution to clients trying to cheat)

As an overview, this should prevent any clients abusing a HC for malicious acts

From the perspective of a server admin (with backend access) cheating, its not even worth considering as there are much easier ways to influence the gameplay without going to the extent of installing a HC

Having the ability to kick a HC may be a worthy condideration for additional scenarios other than a cheating one.

So why not
Define all HC's with the same UserID (if using the rule "Only 1 HC allowed per server" why not?) or have an incremental USE ID for the HC;'s via #userlist
Add an admin command #KickHC

dedicated Slave server in relation to Master dedicated server
is definitely one of things on my MP ideas list, but
there might be obstacles, e.g. how Master recognize the Slave portion as client

commandline
Arma3server.exe -slave -masterIP=<IPv4> -masterPort=<number>

Fred41 added a subscriber: Fred41.May 7 2016, 1:34 PM

As long as BI has no native solution for better (multithreaded?) script processing, it should be possible to use this HC (dedicated client) as a workaround.
(I know the Arma 2 engine a bit. A few months ago, i tried to reduce the login-time on full, long running dayz servers :/ )

I think it would be fair to make use of HC possible, without paying for one or more extra licences.

Xeno added a comment.Apr 13 2013, 7:21 PM

So how do people who make MP stuff test now ?

I personally use up to three clients (two normal clients plus HC) beside a dedicated server on my local machine to test MP stuff, but, as already written above, it's no longer possible.

it still possible,
You just need new STEAM account which owns Arma 3 Alpha
next to one running Arma 3 dedicated server
and you can use STEAMcmd for that https://developer.valvesoftware.com/wiki/SteamCMD

Xeno added a comment.Apr 14 2013, 8:42 AM

@Dwarden
Makes absolutely no sense. No one will buy 2 or 3 A3 copies just to test MP content he/she provides for free or invest time into steamcmd whatever just to do a quick test of a change.

I have created a whitepaper of sorts that goes beyond the issues currently plaguing HC that could solve the issue of AI performance within the core game engine. It has fancy graphics and doesn't drone on and on. Most importantly it offers a solution that should be accepted by both parties as it resolves all concerns.

https://www.dropbox.com/s/y5ourdvidcxw6zf/Arma3ServerWorldspaces.pdf

Xeno added a comment.Apr 14 2013, 9:51 AM

@zorrobyte, a better HC implementation won't fix the main problem of the engine. That is, the engine simulates itself to death. If a rice bag falls over 200 miles away from the clients the server will send an update to each client and it will be simulated on each client even if the clients will never see or get near the rice bag.

More objects = more simlations = less FPS. A HC does just offload AI from the server to another instance leaving the server a little bit more room to breathe but does not solve the heart of the problem.

(At least that was afaik the way it worked in A2/OA but I doubt that it has changed seeing that there is a script module in A3 which disabled the simulation of objects more than 2000m away from the player and hide them with hideobject. Please correct me if I'm wrong).

Anyway, still doesn't change the fact that you now need to buy more A3 copies just to do something simple as MP testing.

@Xeno
Point taken. That has been an issue for the longest time (https://dev-heaven.net/issues/6963).

Although with A2 BIS has made the final statement on the issue (https://dev-heaven.net/issues/6963#note-28) maybe things will change for A3.

I feel as if such dialog were to be opened again, a separate ticket would need to be created as this ticket focuses on a stop-gap or addition to your solution.

UGLY58 added a subscriber: UGLY58.May 7 2016, 1:34 PM

0.54 change log reported the forceheadlessclient issue as closed

"0004662: [Engine] Server does not assign player a slot where forceHeadlessClient=1; - closed."

Is this closed for the issue listed here or will it be implemented at a later state ?

Testing this morning and it is not resolved - as per 0004662 slot can be reserved by manual edit of Mission.sqm, but no HC is forced into that slot, nor can any player be moved to that slot.

Still doesnt work as of v.0.72 stabile branch.

Are there any plans for making this work in the future?
It cant be true we will be forced to buy 2 copies of the game, just to do some testing with HC tbh.

I believe the ideal solution would be to have a HC.exe, which you can run 1 instance of on each steam account, similar to the current arma3.exe setup, but dedicated HC executable.
Dunno if its to difficult to implement though, but something has to be done.

Link updated for AI pref suggestions in general and native HC Fix:
https://drive.google.com/file/d/0B3VdHnk7BX1BUGtMRmMyRDRza1U/edit?usp=sharing

Still waiting for the HC DLC (Would be good solution)

Xeno removed a subscriber: Xeno.May 29 2016, 8:04 PM
dedmen added a subscriber: dedmen.Sep 13 2017, 12:38 PM

Not an issue anymore. Should be closed.