Author: Werthles
Author Website:

Requirements: No addons required

Version: 2.3

Short description: Complete headless client setup kit. Script/server config/HC setup/guide included.

Date: 2015-08-17 13:02


Comments: (0)
Rating:



 



Werthles' Headless Kit

by
Werthles


Description:
Complete headless client setup kit. Up-to-date, configurable script, server config files, headless client setup all ready to go with only minor alterations required.

The script transfers units to any number of HCs, and interacts with Arma such that:
  • trigger/waypoint syncs are re-established,
  • units can be ignored by the script (for use with other scripts etc.),
  • units can be split evenly among multiple HCs,
  • units linked to Arma support modules automatically stay on the server (otherwise these modules break),
  • checks for units to be transferred to HCs are made according to the user's specifications, to ease server demand,
  • script sits mostly idle if no units need to be transferred,
  • many AI enhancements work alongside this script (if setup correctly!),
  • debug mode can be (de)activated during the mission, to show real-time info on HC activity.

The headless client/dedicated server setup files are designed to work with little or no alteration, but can be easily customised to achieve even the most complex setup.

Benchmarking missions to demonstrate the performance difference with/without HCs are a part of v2.1.

There is a guide included along with other useful files to get IP address, live HC info etc.

I can't think of much else to add to/fix this kit so I am keen to hear other suggestions to improve it.


Features:
-Editor/script/Zeus AIs auto-transferred to HC control
-AI waypoints/scripts/trigger sync preserved
-Splits AIs evenly among multiple HC
-**3D** debug mode
-HC test/benchmark missions
-Server/HC configurations and shortcut examples

I wanted to create a kit with everything needed to get HCs to work without having recreate units as scripts and work through many long guides.


Installation / Usage:
HCs allow AI processing to be performed by separate machines to speed up server performance. This guide works for Arma 3 and Arma 3 Server.
I wanted to create a kit with everything needed to get HCs to work without having recreate units in scripts and work through several long guides. If this kit helps you, please rate it so I know it has worked!

Setup Guide
Contents
1. How to add scripts to your multiplayer mission
2. How to use the test mission
3. How to start a server and connect HCs
4. Other information

Subscribing puts "@Werthles Headless Kit" in the Arma 3 game folder, or download here.

Arma 3 Server can by downloaded via Steam Library tools.

1. How to add scripts to your multiplayer mission
a)
Create HC(s) in your mission.
-Insert Unit->Game Logic->Virtual Entities->Headless Client
-Give it a unique name
-Set it as playable

b)
Add "init.sqf" and "WerthlesHeadless.sqf" from:
@Werthles Headless Kit\Mission Scripts
to the mission folder, usually:
Documents\Arma 3 - Other Profiles\<profile name here>\MPMissions\<mission name.map>

The parameters in "init.sqf" configure:
-Repeat on/off
-Repeat delay
-Debug on/off
-Balancing mode
-Start delay
-Sync delay

Use simple balancing with 1 HC or to ignore balancing.

c)
If WH may transfer AIs while they are waiting at trigger-synced waypoints, add a non-overlapping waypoint before it, and sync this to the same trigger. HC transfer causes a temporary desync.

d)Re-save your mission as a multiplayer mission.

2. How to use the test mission
Move @Werthles Headless Kit\Test Mission\HeadlessTest.Altis.pbo into Arma 3( Server)\MPMissions or
subscribe here.

3. How to start a server and connect HCs
Copy:
Arma 3\@Werthles Headless Kit\My Headless Kit
Arma 3\@Werthles Headless Kit\steam_appid
and paste as:
Arma 3( Server)\My Headless Kit
Arma 3( Server)\steam_appid
on the machines you will use as HCs or servers.

Then choose your next step:
a) Set up LAN game
b) Set up dedicated server game

Headless clients cannot connect to game clients hosting internet games.

a) Set up LAN game
i)
Start Arma 3 and host a LAN multiplayer game, with the password:
arma
If you will run the HC on the same machine, go to iii), then enter:
connect="-connect=localhost";

ii)
Open:
Arma 3\@Werthles Headless Kit\Get LAN IP then note the machine's IPv4 address.

iii)
On your HC machine, open this with a text editor: Arma 3( server)\My Headless Kit\Headless Client\ArmA2OA.par

iv)
Put the IP from ii) after connect="-connect= E.g. connect="-connect=192.168.0.10";

v)
If you have Arma 3( Server) installed on C:\ in the default location, start the HC using the appropriate shortcut from: Arma 3( Server)\My Headless Kit\Example Shortcuts

vi)
If not, create a shortcut to: Arma 3( Server)\arma3server.exe

vii)
Right click it and select properties.

viii)
At the end of "Target", add a space, then paste:
"-par=@My Headless Kit\Headless Client\ArmA2OA.par"

ix)
Double click on the shortcut to run the HC.

x)
You can start more than one HC per machine, or repeat this process on multiple machines Your HCs should join HC slots on your server.

b) Set up dedicated server game
You will need various internal and external IP addresses for this. To get them, open the folder:
Arma 3( Server)\My Headless Kit\
on the appropriate machine and run either
Get My Internal IP
(IPv4) or
Get My External IP
to get its IPs.

i)
On the server machine, in notepad, open:
Arma 3( Server)\My Headless Kit\Server\WerthlesHeadless_config.cfg

ii)
Add the external IPs of all external HCs and the internal IPs for all internal HCs to the headlessClients line, e.g.:
headlessClients[]={"81.46.54.91","192.168.0.55","56.45.87.19"...};

iii)[/h1]On the HC machine, in notepad, open:
Arma 3( Server)\My Headless Kit\Headless Client\ArmA2OA.par

iv)
Put the server's IP in this file after connect="-connect=
E.g. if connecting the HC to the server via LAN: connect="-connect=192.168.0.10";
E.g. if connecting the HC to the server via the internet: connect="-connect=81.46.54.91";

v)
If you have Arma 3( Server) installed on C:\ in the default location, start the server/HC using the appropriate shortcut from: Arma 3( Server)\My Headless Kit\Example Shortcuts

vi)
If not, create shortcuts to: Arma 3( Server)\arma3server.exe for a HC and for the server.

vii)
Right click it and select properties.

viii)
At the end of "Target", add a space, then paste: "-par=@My Headless Kit\Headless Client\ArmA2OA.par"
for the HC shortcut and: "-par=@My Headless Kit\Server\ArmA2OA.par" for the dedicated server shortcut.

ix)
Double click on the shortcuts to run the HCs and server.

x)
You can start more than one HC per machine, or repeat this process on multiple machines Your HCs should join HC slots on your server.
Type this into Arma 3 chat to check this: #login three

4. Other information
a) Opening Ports
To host an Arma 3 dedicated server, forwarded these ports to your computer (UDP):
2302, 2303, 3478, 4379, 4380, 27000 - 27050
Here is a good video of this.

b) Mods and CustomisationThe files to alter are in: Arma 3( Server)\My Headless Kit\Server or: Arma 3( Server)\My Headless Kit\Headless

To launch your server/HC with mods, open the related:
Arma2OA.par
file and replace:
@Example mod 1
etc. with your mods' folder names, separating with a ;

Full details of other parameters:
https://community.bistudio.com/wiki/Startup_Parameters_Config_File
https://community.bistudio.com/wiki/Arma_3_Startup_Parameters
https://community.bistudio.com/wiki/server.cfg
https://community.bistudio.com/wiki/basic.cfg

c) Arma 3 Launcher
You can start HCs and servers with Arma 3 Launcher, however Arma 3 Server currently doesn't have this, and for HCs connecting via the internet, you would still need to alter .cfg files (possibly for LAN HCs too).

d) Compatibility
i)Works alongside DAC, if set up as described by Monsoon.
Set a long enough WH start delay so DAC set up finishes first.
Enter DAC zone group numbers as: (max total groups)/(No. of HCs).
DAC and WH scripts shouldn't affect each other. WH script will control editor/Zeus/other script created AIs, DAC will control DAC units only.
ii)
WH script changes AI unit locality. This could break some scripts where local commands are issued for units that are no longer local.
iii)
Compatible with UPSMON. Add a long enough start delay for UPSMON to set up first.


Media:


Armaholic.com has its own Youtube channel where we will cover the Community made releases.
Subscribe to the Armaholic.com Youtube channel


Steam Workshop:
- Subscribe


Notes:
Please let me know if you think there is an error somewhere.


Credits & Thanks:
Thanks to ian for much help with testing and improvements.


Changelog:
v2.3
New Features/Improvements:
Rebalancing added. If one HC has control of more units than another, script will attempt to even the load. However, if a HC disconnects, trigger syncs will still be lost.
Fixes:
More efficient code.

v2.2
Waypoint duplication workaround no longer required. If a group is waiting for trigger activation while HC transfer occurs, the group will not ignore this trigger.

v2.1
New Features/Improvements:
- Server performance benchmarking mission added.
Fixes:
- Unit count code amended.

v2.0
New Features/Improvements:
- 3D debug mode. Shows groups transfer to HCs. Gives description of where each group is local to, if not on a HC.
- Debug mode can be turned on/off while the mission is in progress, via an option on the action menu. Debug mode script parameter now relates to who can activate debug mode: everyone - true, admin/host only - false.
- Arma 3 support modules automatically compatible, no work around required. Units/groups can still be ignored using script parameter 8, as before.
Fixes:
- Small efficiencies made and improved variable naming.

v1.2
New Features/Improvements:
Units can now be ignored by the transfer script by specifying either their name, class name, group name, synced module name, vehicle name or vehicle class name. This is done in the init.sqf file. There is a new parameter for this.
This can also be achieved by putting "ignore" as part of any of the above names.

v1.1
New Features/Improvements:
Units can now be ignored by the transfer to HC script. Put "ignore" as part of the unit's name, e.g.: CSAT1ignore2. The whole group will be ignored if one unit of the group is named.
Initial setup report added. This shows the number of units transfered to the HC after the first cycle. Can be turned off within the init.sqf file.
Debug mode now visually improved. Also, debug is switched off by default.
Support modules, and other modules, can be ignored by the transfer to HC script. Put "ignore" as part of the module's name, e.g.: Supportignore1. Required step for using support modules.
List of web links added to the mod, for easy access to the files and guide.
More features demonstrated in the Headless Test Mission.
Fixes:
Hints now display silently.
VerifySignatures and RequiredSecureId now set to 0, to allow for unsigned mods by default.
Non-recurring mode fixed.
Improved algorithm.

v1.0.1
Fixes:
No longer displays errors in the Arma Launcher.

v1.0
- first release


Forum topic:
- Armaholic forums




Enable javascript to be able to download from Armaholic please!



Tags: Client,   Editor,   Headless,   Headless Client,   Kit,   Tutorial