Jump to content
Sign in to follow this  

PSA: Linux Dedicated Server - Custom difficulty settings through custom server name

Recommended Posts

Hi everyone,

Just a heads-up regarding custom difficulty settings, as specified in the .Arma3Profile, on a Linux dedicated server. Some people out there may have had problems getting these to load. At the very least I had.
I did some testing and eventually got the settings to load through the creation of a custom server profile with a new name. It is quite a strange story, so I apologise in advance for approaching this from an entirely empirical perspective. I absolutely can not give any insights as to why this is working. And I am probably embarrassing myself a little with such a superficial post (BIS difficulty programmer guy, are you reading this?) - but perhaps it does help a few people out there.

The problem:

The Linux dedicated server would routinely ignore changes to the entries made in $HOME/.local/share/Arma 3 - Other Profiles/server.Arma3Profile. The custom difficulty could be enforced through the server.cfg but "default" values for "class CustomDifficulty" were loaded regardless1.

The solution:

Launched the server under a new name, using the parameter "-name=servername", then replaced the automatically created "servername/servername.Arma3Profile"2 with the user-modified Arma wiki template. Subsequently restarted the server and selected/enforced "Custom" difficulty.



Originally, I would launch the server via:

./arma3server -name=server -config=server.cfg -mod=@mod1;@mod2;@mod3;

In this case, any user-made changes specified under "class CustomDifficulty" were not used, even when saved in a write-protected .Arma3profile.
After some tinkering, the server would be launched under a new name using "-name=" - and, optionally, with the additional "-profiles=" parameter:

./arma3server -profiles=/home/apps/steam/arma3/profiles -name=custom -config=server.cfg -mod=@mod1;@mod2;@mod3;

By launching the server a new folder ("/arma3/profiles/home/custom") was created in arma3 root. It contained a tiny "custom.Arma3Profile", ordinarily consisting of 6-10 lines of basic option entries (soundFX=1, etc.)2.
The content of .Arma3Profile would now be replaced with a test profile using exclusively the exact example server difficulty profile template, but with all values set to 1 (or 2, if applicable) to easily check for changes.

class DifficultyPresets

class CustomDifficulty


class Options


/* Simulation */

reducedDamage = 1; // Reduced damage

/* Situational awareness */

groupIndicators = 2; // Group indicators (0 = never, 1 = limited distance, 2 = always)

friendlyTags = 2; // Friendly name tags (0 = never, 1 = limited distance, 2 = always)

enemyTags = 2; // Enemy name tags (0 = never, 1 = limited distance, 2 = always)

detectedMines = 2; // Detected mines (0 = never, 1 = limited distance, 2 = always)

commands = 2; // Commands (0 = never, 1 = fade out, 2 = always)

waypoints = 2; // Waypoints (0 = never, 1 = fade out, 2 = always)

/* Personal awareness */

weaponInfo = 2; // Weapon info (0 = never, 1 = fade out, 2 = always)

stanceIndicator = 2; // Stance indicator (0 = never, 1 = fade out, 2 = always)

staminaBar = 1; // Stamina bar

weaponCrosshair = 1; // Weapon crosshair

visionAid = 1; // Vision aid

squadRadar = 1; // Squad radar

/* View */

thirdPersonView = 1; // 3rd person view

cameraShake = 1; // Camera shake

/* Multiplayer */

scoreTable = 1; // Score table

deathMessages = 1; // Killed by

vonID = 1; // VoN ID

/* Misc */

mapContent = 1; // Extended map content

autoReport = 1; // Automatic reporting

multipleSaves = 1; // Multiple saves


// aiLevelPreset defines AI skill level and is counted from 0 and can have following values: 0 (Low), 1 (Normal), 2 (High), 3 (Custom).

// when 3 (Custom) is chosen, values of skill and precision are taken from the class CustomAILevel.

aiLevelPreset = 2;


class CustomAILevel


skillAI = 1;

precisionAI = 1;



The server would then be restarted, which automatically reformatted the "custom.Arma3Profile" to this:

class DifficultyPresets

class CustomDifficulty


class Options


























class CustomAILevel






Running a test mission at custom difficulty, all settings were loaded correctly. There was a crosshair, third person mode (yuck!), a stance indicator, and a score table. In previous tests, using the original .local/share/[name].Arma3Profile none of these options were ever loaded3. Repeating this process, a new "freshly"-named server was then created with our desired custom difficulty setup.

Is anybody able to reproduce this? I would like to hear some feedback, in particular from people who tried to make changes to their Linux dedicated server .Arma3Profile.


1 It is not clear to me where these defaults are coming from.
2 Oddly enough, the number of lines in this file varied each time a new profile is created.
3 However, changing entries within this file a second time and restarting the server would always result in reverting to the reformatted file and its settings. A new server name ("-name=custom_2") had to be created to enforce new custom difficulty settings.

  • Like 2

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
Sign in to follow this