Set difficulty = "Custom"; in the server configuration, then define the individual difficulty flags in the profile selected by the server’s -name parameter. The server reads the CustomDifficulty class from that matching .Arma3Profile file. After saving both files, restart the server and verify the active mission and difficulty. A mission cycle can still supply its own difficulty and override forcedDifficulty, so configuration precedence matters.
Playing with friends? Godlike.Host runs hosted Arma 3 servers from 10 data-center locations, with free DDoS protection.
The two files that control Custom difficulty
Arma 3 separates the choice of difficulty preset from the values inside that preset. Treating these as one file is the most common reason a server appears to ignore Custom settings.
As an Amazon Associate I earn from qualifying purchases.
| File or setting | What it controls | How the server finds it |
|---|---|---|
server.cfg |
Selects the difficulty preset and other server-level behavior. | The filename can be chosen by you; the launch argument -config=... tells the server which file to load. If -config is omitted, no server configuration file is loaded. |
Matching .Arma3Profile |
Stores the individual values inside CustomDifficulty. |
The profile is associated with the name supplied through -name. Examples include server.armaprofile, USERNAME.Arma3Profile, or the profile generated for the selected name. |
| Mission cycle | May provide a mission-specific difficulty that takes precedence during the cycle. | Read from the missions configured for the server; this can override a forced server difficulty. |
Because the settings are split, changing only server.cfg selects Custom but does not create the per-option values. Conversely, editing a profile does nothing if the server is still running Recruit, Regular, or Veteran.
Before you edit anything
- Know which dedicated-server instance you are changing. Multiple instances can have different
-namevalues and therefore different profiles. - Identify the exact configuration filename passed with
-config. - Stop the server before editing, or plan a full restart immediately after the changes. A running process may continue using values loaded at startup.
- Make a backup copy of the existing
server.cfgand profile. Keep the backup under a different filename so the server cannot accidentally load it as the active profile. - Use the complete option list from the current official profile reference when building a production profile. The example below shows representative options, not an exhaustive schema.
Step 1: Start the instance with a stable profile name
The -name argument determines which profile the dedicated server uses. Give each instance a stable, unique name and keep that name unchanged when you want settings to persist. The launch arguments should include both a profile name and an explicit configuration file:
#1 Best Overall
- Player-driven story
- More than 70 weapons
- Over 100 different vehicles
- Massive online battles
- Game world of 225 square km
-name=server -config=server.cfg
Append those arguments to the command that starts your dedicated-server executable. The important relationship is not the executable’s filename; it is that the process receives the same -name every time and that -config points to the file you edited.
Why a changed -name looks like a lost configuration
If you start once with -name=server and later start with another name, the server may generate or select a different profile. Your old Custom values can remain intact while the new instance reads another profile. When troubleshooting, record the complete launch command and compare the active -name with the profile filename and directory you are inspecting.
Recommended Free Tools
Step 2: Select Custom in server.cfg
Open the configuration file named by -config and set the difficulty preset to Custom:
difficulty = "Custom";
The documented forcedDifficulty setting can also enforce the same preset:
forcedDifficulty = "Custom";
Use forcedDifficulty only with a clear understanding of precedence. The server-config reference states that a difficulty supplied by the mission cycle overrides forcedDifficulty. Therefore, this line does not guarantee that every mission will run with the server-wide Custom values when the cycle specifies another difficulty.
Do not confuse the two lines
difficulty = "Custom";tells the server to use the Custom preset.forcedDifficulty = "Custom";documents an enforced server preference, but it remains subject to mission-cycle precedence.- Neither line contains the individual tag, indicator, mine-detection, or damage values. Those belong in the matching profile.
Step 3: Edit the profile selected by -name
Open the profile associated with the launch name. Depending on how the instance was created, it may be called server.armaprofile, USERNAME.Arma3Profile, or another generated profile name. The correct file is the one in the profile directory used by that particular server process, not necessarily the file you last edited.
The Tool Desk
Outbyte Driver Updater FREEScan for outdated or missing drivers - takes under a minuteDriver Scan →Outbyte PC Repair FREERepair Windows errors before they cause bigger problemsFix Now →Rank #2
- System: Intel Core i5-13400F 2.5GHz 10 Cores | Intel B760 Chipset | 16GB DDR5 | 1TB PCIe 4.0 NVMe SSD | Windows 11 Home
- Graphics: NVIDIA GeForce RTX 5060 8GB Graphics | 1x HDMI | 2x DisplayPort
- Connectivity: 1 x USB-C 3.2 | 2 x USB-A 3.2 | 6 x USB-A 2.0 | 1 x LAN | WiFi 6 | Bluetooth 5.3 | 7.1 Channel Audio
- Tempered Side Case Panel | Custom RGB Lighting | Keyboard and Mouse
- 1 Year Parts & Labor Warranty, Free Lifetime Tech Support
Inside that file, create or edit the following hierarchy:
class DifficultyPresets
{
class CustomDifficulty
{
class Options
{
reducedDamage = 0;
groupIndicators = 0;
friendlyTags = 0;
enemyTags = 0;
detectedMines = 0;
// Add the remaining documented options you want to control.
};
};
};
Preserve the class hierarchy
Every level is significant: DifficultyPresets contains CustomDifficulty, which contains Options. Putting the options at the root of the profile, under a differently spelled class, or outside the braces means the server will not find them as the Custom definition.
Use the complete current option set
The snippet deliberately lists representative options. The official profile example documents additional difficulty options and the numeric values accepted by each one. Copy the complete option set from that current reference when preparing a production profile, then change only the values you intend to customize. This avoids inheriting an unintended default when a later game version adds or changes an option.
What the representative options address
| Option | Purpose indicated by its name | Example shown above |
|---|---|---|
reducedDamage |
Controls the reduced-damage aid or behavior. | 0 |
groupIndicators |
Controls group-indicator visibility. | 0 |
friendlyTags |
Controls friendly-unit tags. | 0 |
enemyTags |
Controls enemy-unit tags. | 0 |
detectedMines |
Controls visibility or assistance for detected mines. | 0 |
The example uses numeric flags, as required by the profile format. For the documented tag controls, setting friendlyTags = 0; and enemyTags = 0; is the starting point for removing those tag aids. Confirm the permitted values and their exact meanings in the profile reference for the game build you operate rather than assuming that every option uses the same scale.
Step 4: Restart and verify the active configuration
- Stop the dedicated server cleanly.
- Confirm that
server.cfgstill containsdifficulty = "Custom";and, if you use it,forcedDifficulty = "Custom";. - Confirm that the launch command still uses the intended
-nameand-config. - Re-open the profile selected by that
-nameand check theDifficultyPresets > CustomDifficulty > Optionshierarchy. - Start the server again.
- Join or administer the server and check the active mission and displayed difficulty. Review startup or server logs for evidence that the intended configuration and profile were loaded.
- Test one changed aid, such as friendly or enemy tags, in a controlled mission before opening the server to players.
Restarting and checking the UI or logs is operational practice: the configuration relationship is defined by the server documentation, while the verification step confirms that your particular launch command, directory, mission, and files line up.
Custom versus Recruit, Regular, and Veteran
Since version 1.58, Recruit, Regular, and Veteran are predefined presets. Each preset has an exact value for every difficulty option. Custom is the editable combination used when you need per-option control.
Rank #3
- System: Intel i7-10700F 2.9GHz (4.8GHz Max Turbo) | 16GB DDR4 RAM | 480GB SSD | 2TB HDD | Genuine Windows 10 Home 64-bit
- Graphics: NVIDIA GeForce RTX 2060 6GB Dedicated Gaming Video Card | VR Ready | 1x DVI | 1x HDMI | 1x Display Port
- Connectivity: 4 x USB 3.0 | 2 x USB 2.0 | 1x RJ-45 Network Ethernet 10/100/1000 | Audio: 7.1 Channel
- Special Add-Ons: Tempered Glass RGB Gaming Case | 802.11AC Wi-Fi Included | 16 Color RGB Lighting Case | Free iBuyPower Gaming Keyboard and RGB Gaming Mouse | No Bloatware
- Warranty: 1 Year Parts and Labor plus Free Lifetime US Tech Support | Assembled in the U.S.A
| Comparison axis | Recruit, Regular, or Veteran | Custom |
|---|---|---|
| Per-option control | Fixed predefined values. | Individual values are read from CustomDifficulty in the profile. |
| Visibility and awareness aids | Determined by the selected preset’s fixed values. | Can be tailored with options such as groupIndicators, friendlyTags, enemyTags, and detectedMines. |
| Damage or simulation behavior | Uses the preset’s defined value. | Can be adjusted through options such as reducedDamage, subject to the values documented for your build. |
| Portability between instances | Selecting the same named preset is simple, but it does not carry a unique per-server combination. | Requires moving the matching profile definition and reproducing the same -name-to-profile relationship. |
| Mission-cycle precedence | A mission can still provide its own difficulty behavior. | A mission-cycle difficulty can override forcedDifficulty; Custom is not an absolute override for every mission. |
Changing one value away from a predefined preset also makes the preset Custom. The official configuration wording explains that each preset has exactly defined values and that if any option does not match the preset, the preset changes to Custom. This is why a server can appear to switch to Custom after a single per-option edit.
Where is server.armaprofile?
There is no single filename that is correct for every installation. The profile may be server.armaprofile, USERNAME.Arma3Profile, or a generated profile associated with the value passed to -name. Locate the profile directory used by the running instance, then match the filename to the launch name. If you operate several instances, treat each -name and profile directory as a separate configuration set.
What’s actually slowing this PC down?
Pick the symptom - the matching free tool is one click away.
A reliable way to avoid editing the wrong file is to change one harmless, documented Custom option, restart, and check whether the corresponding in-game behavior changes. If it does not, stop and re-check the command line and profile directory before changing more values.
Why Custom difficulty appears to be ignored
The server is not loading the file you edited
- Check that the launch command includes
-config=server.cfg(or the exact filename you use). - Check that the path and spelling in
-configmatch the edited file. - Check that the process uses the expected
-name; a different name selects a different profile.
The profile is in the wrong location or has the wrong name
Find the profile generated for the active -name and edit that file. A correctly formatted Custom block in an unused profile cannot affect the server.
difficulty is not set to Custom
If the configuration still says Recruit, Regular, or Veteran, the server will use that predefined preset rather than your CustomDifficulty values. Confirm the exact line, including the quoted value and semicolon.
The Custom block is malformed
Check braces, class names, and option placement. The options must be inside class Options, which is inside class CustomDifficulty, which is inside class DifficultyPresets. Remove duplicate blocks that could make it unclear which definition is active, then restart.
Rank #4
- System: Intel Core i9-13900KF 3.0GHz (8plus16) Cores | Intel Z690 Chipset | 16GB DDR5 | 1TB PCIe NVMe SSD | Genuine Windows 11 Home 64-bit
- Graphics: NVIDIA GeForce RTX 4070 Ti 12GB Video Card | 1x HDMI | 2x DisplayPorts
- Connectivity: 6 x USB 3.1 | 2 x USB 2.0 | 1x RJ-45 Network Ethernet 10/100/1000 | 802.11AC Wi-Fi | Audio: 7.1 Channel | Keyboard and mouse
- Special feature: Liquid cool CPU | 3-Piece Panoramic Tempered Glass Front/Side Case Panel | Custom RGB Case Lighting | USB Gaming Keyboard | 7 Colors RGB Gaming Mouse
- 1 year parts and labor | Free lifetime tech support
A mission cycle supplies another difficulty
The official server-config reference states that mission-cycle difficulty overrides forcedDifficulty. Test with a mission whose cycle does not impose another value, or inspect the mission-cycle configuration before concluding that the profile failed.
The server was not restarted
Stop and start the process after editing both files. Then verify the active mission and difficulty through the server or administrator interface and logs.
Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Disabling tags, indicators, mine aids, or reduced damage
Use the corresponding numeric options in the Custom profile rather than trying to place them in server.cfg:
Outdated Drivers Are Slowing You Down
One free scan finds every outdated or missing driver and matches the right update for your exact hardware.Free scan · exact hardware matchWindows Errors? Fix Them Before They Spread
Repair common Windows errors and clear accumulated junk for a smoother, more stable PC - no reinstall needed.Free scan · no reinstallclass Options
{
reducedDamage = 0;
groupIndicators = 0;
friendlyTags = 0;
enemyTags = 0;
detectedMines = 0;
};
This pattern addresses the documented representative controls. To disable both friendly and enemy tags in the shown configuration, set both tag options to 0. Apply the same approach to group indicators, mine detection, and reduced damage, using the numeric values documented for the exact option and game version.
About third-person view
The supplied profile example does not identify a third-person option, so do not invent a key based on a forum snippet or place an undocumented name in the profile. Third-person availability may be controlled elsewhere in the game, mission, or server rules. For a supported Custom-profile change, use only options present in the current official profile reference and verify the result in the mission you actually run.
Making a Custom profile portable
Custom difficulty is portable when you move the right definition, not merely the difficulty line. For another server instance, reproduce the same relationship:
Best Value
- Dress in style for duty on Everon. Built to answer the call of military service and survive arma for days at a time, so take a day off the battlefield duty and dress to impress your squad with our low weight but high cool reforger inspired army design.
- Compatible with all versions of arma so PC gamers and console soldiers can spend dayz in reforger gaming in comfort and style on Everon. A great gamer gift for any military army simulator player.
- 8.5 oz, Classic fit, Twill-taped neck
- Choose a stable
-namefor the destination instance. - Ensure the destination launch command points to its intended configuration file with
-config. - Set
difficulty = "Custom";in that configuration. - Copy the complete
DifficultyPresets > CustomDifficulty > Optionsdefinition into the profile selected by the destination-name. - Review the destination’s mission cycle for a difficulty that could override
forcedDifficulty. - Restart and test before inviting players.
Keep a short change log containing the profile name, the options changed, and the date. This makes it easier to determine whether a later edit changed an individual value or whether the server accidentally selected a different profile.
Do these 3 things before closing this tab:
1Scan for outdated or missing drivers - takes under a minute2Repair Windows errors before they cause bigger problems3Fix the driver behind crashes, sound loss and screen glitchesA practical configuration checklist
- Launch identity: The intended
-nameis present and stable. - Config selection:
-configpoints to the file you edited. - Preset:
difficulty = "Custom";is present. - Optional enforcement:
forcedDifficulty = "Custom";is used only with mission-cycle precedence understood. - Profile match: The edited
.Arma3Profilebelongs to the active-name. - Hierarchy: Options are nested under
DifficultyPresets,CustomDifficulty, andOptions. - Values: Every option uses a numeric value permitted by the current profile reference.
- Completeness: The production profile includes the remaining documented options you intend to control.
- Restart: The server was stopped and started after the edits.
- Verification: The active mission, difficulty, and at least one changed behavior were checked.
What Custom difficulty can—and cannot—guarantee
Custom gives the server owner fine-grained control over the documented difficulty options and keeps those values in a profile associated with the server’s launch name. It does not eliminate the need to select Custom in the server configuration, and it does not make forcedDifficulty stronger than a mission cycle that supplies its own difficulty. It also does not provide a universal third-person switch unless that control is documented in the profile options for the relevant game version.
No authoritative published statistic establishes how widely Custom is adopted or what gameplay outcomes it produces. The practical decision is therefore administrative: use a predefined preset when its fixed values are acceptable; use Custom when your community needs a specific combination of visibility aids, damage behavior, mine awareness, and related options.
Recommended end-to-end sequence
For a new dedicated-server instance, the least error-prone order is:
- Pick a stable profile name and launch with
-name=server -config=server.cfg. - Set
difficulty = "Custom";in the selected server configuration. - Open the profile generated for
server. - Add the complete documented
DifficultyPresetshierarchy and set the individual options you need. - Decide whether
forcedDifficulty = "Custom";is appropriate, remembering that mission-cycle difficulty can override it. - Restart the server, inspect logs or the administrator UI, and test the mission that players will actually use.
Following that sequence keeps the preset selection, profile identity, option values, and mission precedence visible as separate checks. When a setting fails, you can isolate the failure to one of those four layers instead of repeatedly editing an unknown file.
Quick wins for a faster PC:
Clear out junk files and repair common Windows errorsFree Scan →Fix the driver behind crashes, sound loss and screen glitchesFind Drivers →Quick Recap
Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.




