How to Improve Performance on Your Arma Reforger Server
The performance of your Arma Reforger server depends mainly on the server FPS, the view distances, the number of AI units and the installed mods. In this guide, we'll show you which settings you can adjust for this in the dashboard and in config.json.
Note
Some values in config.json are overwritten from the Settings of the dashboard on every server start. The entries under gameProperties and operating described here are not among them and are kept. You can find an overview of all entries under Configure Server.
Limit server FPS
The server FPS value determines how many times per second your server simulates the game world. Bohemia Interactive strongly recommends limiting the server FPS to a value between 60 and 120 – without a limit, the server can try to use all available resources.
Open dashboard
Open the dashboard of your server.Open settings
Navigate to the Settings.Enter max FPS
Enter a value between60and120in the Max FPS field. The default is120.Restart the server
Save the setting and restart your server.
Warning
Do not leave the Max FPS field empty. An empty field means no limit – the server can then try to use all available resources.
Measure performance
With the [Advanced] Log FPS Interval field, your server regularly writes a line with performance values to the console and to the server log. This lets you check whether your changes have an effect.
Open dashboard
Open the dashboard of your server.Open settings
Navigate to the Settings.Enter interval
In the [Advanced] Log FPS Interval field, enter after how many seconds a new line should be written, e.g.60for once per minute. With0, the output is disabled.Restart the server
Save the setting and restart your server.
Example
FPS: 60.0, frame time (avg: 16.7 ms, min: 9.3 ms, max: 23.7 ms), Mem: 3291106 kB, Player: 2, AI: 104, Veh: 0 (17), Proj (S: 12, M: 0, G: 0 | 12), RplItemsS: 410, RplItemsC0: 17068Values of the performance statistics
| Value | Meaning |
|---|---|
FPS | Current server FPS |
frame time | Average (avg), minimum (min) and maximum (max) time the server needs for one frame |
Mem | Current memory usage in kilobytes as reported internally by the server |
Player | Number of players on the server |
AI | Number of AI units currently spawned on the server |
Veh | The number in parentheses is the number of vehicles currently spawned on the server |
Note
The Mem value is only an approximation by the server and may differ from the actual memory usage.
Tip
You can find out how to find older output in the server log under Read Server Log.
Adjust view distances in config.json
Under gameProperties in config.json, you define the view distances of your server. Lower values for serverMaxViewDistance and networkViewDistance can reduce the load on your server, as fewer objects are transferred to the players. Keep in mind that objects outside the networkViewDistance are not transferred to the players.
| Entry | Range | EmeraldHost default | Description |
|---|---|---|---|
serverMaxViewDistance | 500 – 10000 | 2500 | Maximum view distance on the server |
networkViewDistance | 500 – 5000 | 1000 | Maximum range in which objects are transferred to the players over the network |
serverMinGrassDistance | 0 or 50 – 150 | 50 | Minimum grass distance in meters that is forced on the players. With 0, no distance is forced. |
Stop the server
Stop your server via the dashboard.Connect via SFTP
Connect to your server via SFTP.Open config.json
Open the fileconfig.jsonin the root directory and find the"gameProperties"section inside"game".Adjust values
Adjust the desired values:json"gameProperties": { "serverMaxViewDistance": 2000, "serverMinGrassDistance": 50, "networkViewDistance": 1000, ... }...stands for the remaining unchanged entries. Only change the numbers and leave the other entries in"gameProperties"unchanged.Tip
Check the file with a JSON formatter like JSONLint after editing – a single missing or extra comma is enough to prevent the server from starting.
Start the server
Save the file and start your server.
Limit the number of AI units
Many AI units significantly increase the load on your server. With the aiLimit entry in the "operating" section, you set an upper limit. Once it is reached, no further AI units can be spawned. By default, no limit is set.
Tip
You can find out how to add aiLimit or disable the AI completely under Disable or Limit AI.
Disable navmesh streaming (optional)
The AI uses a so-called navmesh to move across the map. By default, the server loads this navmesh piece by piece. If you disable streaming, the server loads the entire navmesh into memory. This provides slightly better server performance and faster reactions of moving AI units.
Warning
This setting is meant for advanced users. Depending on the map, your server needs up to several hundred MB more memory. Afterwards, check whether your server has enough memory, e.g. with the Mem value of the performance statistics.
Stop the server
Stop your server via the dashboard.Connect via SFTP
Connect to your server via SFTP.Open config.json
Open the fileconfig.jsonin the root directory.Disable navmesh streaming
Add the"operating"section at the top level after the"game"section. To do this, put a comma after the closing bracket of"game":json"game": { ... }, "operating": { "disableNavmeshStreaming": [] }...stands for the remaining unchanged entries. If the"operating"section already exists, only add the line"disableNavmeshStreaming": []there.Value Effect Entry not present Navmesh streaming is active (default) []Navmesh streaming is disabled for all navmeshes ["Soldiers", "BTRlike"]Navmesh streaming is only disabled for the listed navmeshes Tip
Check the file with a JSON formatter like JSONLint after editing – a single missing or extra comma is enough to prevent the server from starting.
Start the server
Save the file and start your server.
Note
To enable navmesh streaming again, stop your server and remove the "disableNavmeshStreaming" line from config.json. If another entry comes before it in the "operating" section, also remove the comma at the end of that entry. Then check the file with JSONLint.
Reduce mods
Every mod increases the load on your server. Mods that add many objects, vehicles or AI units in particular affect performance. Therefore, only use the mods you really need and remove entries you no longer need from the "mods" section – stop your server beforehand. You can find out how to manage mods under Add Mods.