Startup Parameters – Arma 3

From Bohemia Interactive Community
Jump to navigation Jump to search
m (Text replacement - "\{\{( *)Important( *)\|" to "{{$1Feature$2|$2important$2|")
m (Text replacement - "{{Feature|Informative|" to "{{Feature|informative|")
 
(52 intermediate revisions by 8 users not shown)
Line 1: Line 1:
{{TOC|side}}
{{TOC|side}}
These parameters can be configured by creating a new shortcut on your desktop and then adding the appropriate option in the target line.
These parameters can be configured by creating a new shortcut on your desktop and then adding the appropriate option in the target line.
{{Feature|informative|Most of the following parameters can be set with the [[Arma 3: Launcher]].}}


== Steam ==
== Steam ==
# Choose the game in Steam\Library
# Choose the game in Steam\Library
# Right click on the game  
# Right click on the game
# Select properties  
# Select properties
# Hit "Set launch options"
# Hit "Set launch options"


;Example: <tt>-nosplash -mod=test;x\test;c:\arma3\test2</tt>
; Example: {{hl|c= -nosplash -mod=test;x\test;c:\arma3\test2}}
 


== Windows ==
== Windows ==
When working with shortcuts,,cmd launch options: there is max characters limit for the executing line, use '''-par''' (see: [[Startup_Parameters_Config_File|Startup parameters config file]];) to avoid it;


== Available parameters ==
When working with shortcuts, cmd launch options: there is max characters limit for the executing line, use '''-par''' (see: [[Startup Parameters Config File]]) to avoid it.
 
{| class="valign-top"
! Startup Command Line
! parameters file
|-
|
Arma3.exe -par="D:\Arma 3 Startup Parameters.txt"
|
-skipIntro
-noSplash
-enableHT
-hugePages
-noLogs
|}
 
 
== Available Parameters ==
 
{{Columns|5|
* adapter
* autoinit
* autotest
* bandwidthAlg
* bepath
* beta
* buldozer
* cfg
* checkSignatures
* client
* command
* config
* connect
* cpuCount
* crashDiag
* d3dNoLock
* d3dNoMultiCB
* debug
* debugCallExtension
* disableServerThread
* {{GVI|arma3|2.14|size= 0.75}} dumpAddonDependencyGraph
* doNothing
* enableHT
* exThreads
* filePatching
* host
* hugepages
* init
* ip
* {{GVI|arma3|2.04|size= 0.75}} language
* {{GVI|arma3|1.98|size= 0.75}} limitFPS
* loadMissionToMemory
* malloc
* {{GVI|arma3|2.14|size= 0.75}} maxFileCacheSize
* maxMem
* maxVRAM
* mod
* name
* netlog
* noCB
* noFilePatching
* noFreezeCheck
* noLand
* noLogs
* noPause
* {{GVI|arma3|2.10|size= 0.75}} noPauseAudio
* noSound
* noSplash
* par
* password
* pid
* {{GVI|arma3|2.06|size= 0.75}} preprocDefine
* port
* posX
* posY
* profiles
* ranking
* server
* serverMod
* {{GVI|arma3|2.10|size= 0.75}} setThreadCharacteristics
* setupHost
* showScriptErrors
* skipIntro
* unit
* window
* world
* worldCfg
}}
 
=== Display Options ===
=== Display Options ===


{| class="wikitable"
{| class="wikitable sortable valign-top" width="100%"
| -window || Displays Arma windowed instead of full screen. Screen resolution / window size are set in [[arma3.cfg]].
! Parameter
! class="unsortable" | Description
|-
| -window || Displays {{arma3}} windowed instead of full screen. Screen resolution / window size are set in [[arma3.cfg]].
|-
|-
| -posX=<Integer> || Sets the default X Position of the Window.
| -posX=<Integer> || Sets the default X Position of the Window.
Line 28: Line 122:
=== Game Loading Speedup ===
=== Game Loading Speedup ===


{| class="wikitable"
{| class="wikitable sortable valign-top" width="100%"
| -noSplash || -noSplash is a startup option that allows you to bypass the splash screens on startup of Arma3.
! Parameter
! class="unsortable" | Description
|-
| -noSplash || -noSplash is a startup option that allows you to bypass the splash screens on startup of {{arma3}}.


{{Feature|Informative|Real speed-up gained with this is likely to be negligible with Arma3, as the loading screens are handled in parallel with the game data being loaded, and the loading itself takes quite long thanks to the amount of data needed.}}
{{Feature|informative|Real speed-up gained with this is likely to be negligible in {{arma3}}, as the loading screens are handled in parallel with the game data being loaded, and the loading itself takes quite long thanks to the amount of data needed.}}
|-
|-
| -world=<string> || Select a world loaded by default. Example: -world=Utes.<br> For faster game loading (no default world loaded and world intro in the main menu, ''only at game start'', disabled): -world=empty.
| -world=<string> || Select a world loaded by default. Example: -world=Utes.<br> For faster game loading (no default world loaded and world intro in the main menu, ''only at game start'', disabled): -world=empty.
Line 42: Line 139:
=== Performance ===
=== Performance ===


{| class="wikitable" width = "100%"
{| class="wikitable sortable valign-top" width="100%"
| style="white-space:nowrap;" | -maxMem=''<number>'' || Overrides memory allocation limit to a certain amount (in megabytes).  
! Parameter
<br>1024 MiB is a hard-coded minimum (anything lower falls back to 1024). The maximum is influenced by your operating system (any value over the maximum will be reverted to this value):  
! class="unsortable" | Description
|-
| style="white-space: nowrap" | -maxMem=''<number>'' || Overrides memory allocation limit to a certain amount (in megabytes).
{{Feature|important|
Until {{arma3}} v2.14 there was a bug on the Linux server binary where it parses the maxMem value as a signed integer, therefore making 4096 interpreted as a negative value;<br>
in order to avoid this issue, use values like {{hl|2047}}, {{hl|4095}}, {{hl|8191}}, {{hl|16383}}, {{hl|32767}} (2048 -1, 4096 -1 etc).
}}
1024 MiB is a hard-coded minimum (anything lower falls back to 1024). The maximum is influenced by your operating system (any value over the maximum will be reverted to this value):
* 32-bit Windows + 32-bit game: 2047
* 32-bit Windows + 32-bit game: 2047
* 64-bit Windows + 32-bit game: 3071
* 64-bit Windows + 32-bit game: 3071
* 64-bit Windows + 64-bit game: (physical memory*4)/5
* 64-bit Windows + 64-bit game: (physical memory * 4) / 5
'''Without the -maxMem parameter the engine attempts to set this parameter internaly to a reasonable value often defaulting to max values as described above.''' <br> The file cache is always excluded from the virtual address limit, see our developers blog: https://www.bistudio.com/blog/breaking-the-32-bit-barrier.
'''Without the -maxMem parameter the engine attempts to set this parameter internaly to a reasonable value often defaulting to max values as described above.''' <br> The file cache is always excluded from the virtual address limit, see our developers blog: https://www.bistudio.com/blog/breaking-the-32-bit-barrier.


'''Note that setting maxMem to 2000 does not mean that the game will never allocate more then 2000 MiB. It says that the game will do everything in its power to not cross this limit. <br> In general, it makes sense not using this parameter at all and only resort to it in case you experience issues with memory.'''
'''Note that setting maxMem to 2000 does not mean that the game will never allocate more then 2000 MiB. It says that the game will do everything in its power to not cross this limit. <br> In general, it makes sense not using this parameter at all and only resort to it in case you experience issues with memory.'''
|-
|-
| style="white-space:nowrap;" | -maxVRAM=''<number>'' || Defines Video Memory allocation limit to number (in megabytes). Use to resolve e.g. Windows problem: http://support.microsoft.com/kb/2026022/en-us?p=1.<br>Minimum value is 128 MiB (anything lower falls back to 128). The value is ignored (under DX11) if engine properly detected VRAM size, minus 20% reserve with ceiling limit 300MB max..
| style="white-space: nowrap" | -maxVRAM=''<number>'' || Defines Video Memory allocation limit to number (in megabytes). Use to resolve e.g. Windows problem: http://support.microsoft.com/kb/2026022/en-us?p=1.<br>Minimum value is 128 MiB (anything lower falls back to 128). The value is ignored (under DX11) if engine properly detected VRAM size, minus 20% reserve with ceiling limit 300MB max..
|-
| -maxFileCacheSize || {{GVI|arma3|2.14}} Sets the default filecache size (when files are loaded from disk, they are cached in RAM. If the cache is full, the oldest file is thrown out).
{{Feature|informative|
* Default size was either {{hl|maxMemory - 448 MB}} or if you had more than 2 GB of memory available to {{arma3}}, it would be limited to max 2048 MB.
* Setting lower than 1 GB is not recommended.
* Minimum possible value is 512 MB
}}
|-
|-
| -noCB || Turns off multicore use. It slows down rendering but may resolve visual glitches.
| -noCB || Turns off multicore use. It slows down rendering but may resolve visual glitches.
|-
|-
| -cpuCount=''<number>'' || Change to a number less or equal than numbers of available cores. This will override auto detection (which equate to native cores).  
| -cpuCount=''<number>'' || Change to a number less or equal than numbers of available cores. This will override auto detection (which equate to native cores).
The best way to simulate dual core on quad core is to use -cpuCount=2 when you run the game and then change the affinity to 2 cores to make sure additional cores can never be used when some over-scheduling happens. <br> It might be also possible to set the affinity in the OS before you launch the process, that would work as well.
The best way to simulate dual core on quad core is to use -cpuCount=2 when you run the game and then change the affinity to 2 cores to make sure additional cores can never be used when some over-scheduling happens.<br>
It might be also possible to set the affinity in the OS before you launch the process, that would work as well.
|-
|-
| style="white-space:nowrap;"|-exThreads=''<number>'' || Change to a number 0,1,3,5,7. This will override auto detection (which use 3 for dualcore and 7 for quadcore).  
| style="white-space: nowrap" | -exThreads=''<number>'' || Change to a number 0,1,3,5,7. This will override auto detection (which use 3 for dualcore and 7 for quadcore).
All file operations go through a dedicated thread. This offloads some processing from the main thread, however it adds some overhead at the same time. <br> The reason why threaded file ops were implemented was to serve as a basement for other threads ops. <br> When multiple threads are running at the same time, OS is scheduling them on different cores. <br> Geometry and Texture loading (both done by the same thread) are scheduled on different cores outside the main rendering loop at the same time with the main rendering loop.
All file operations go through a dedicated thread. This offloads some processing from the main thread, however it adds some overhead at the same time.<br>
The reason why threaded file ops were implemented was to serve as a basement for other threads ops. <br> When multiple threads are running at the same time, OS is scheduling them on different cores.<br>
Geometry and Texture loading (both done by the same thread) are scheduled on different cores outside the main rendering loop at the same time with the main rendering loop.


{| class="wikitable" style="text-align: center;"
{| class="wikitable sortable valign-top" width="100%"
|+ Ex(tra)threads table
|+ Ex(tra)threads table
! Parameter
! class="unsortable" | Description
|-
|-
! Number !! Geometry loading !! Texture loading !! File operations
! Number !! Geometry loading !! Texture loading !! File operations
Line 84: Line 200:
|}
|}
|-
|-
| style="white-space:nowrap;"| [[Arma 3: Custom Memory Allocator|-malloc]]=''<string>'' || Sets the particular memory allocator to be used. Significantly affects both performance and stability of the game. [[Arma 3: Custom Memory Allocator|More details]].
| [[Arma 3: Custom Memory Allocator|-malloc]]=''<string>'' || Sets the particular memory allocator to be used. Significantly affects both performance and stability of the game. [[Arma 3: Custom Memory Allocator|More details]].
|-
|-
| -noLogs ||  
| -noLogs || Be aware this means none errors saved to RPT file (report log). Yet in case of crash the fault address block info is saved.<br>More details {{Link|link= http://forums.bistudio.com/showthread.php?159155-quot-nologs-quot-may-improve-performance-no-stuttering-read-details|text= here}}.
Be aware this means none errors saved to RPT file (report log). Yet in case of crash the fault address block info is saved.<br>More details [http://forums.bistudio.com/showthread.php?159155-quot-nologs-quot-may-improve-performance-no-stuttering-read-details here].
|-
|-
| -enableHT ||  
| -enableHT || Enables the use of all logical CPU cores for parallel tasks processing. If your CPU does not support Hyper-Threading or similar technology, this parameter is ignored. When disabled, only physical cores are used.<br>
Enables the use of all logical CPU cores for parallel tasks processing. If your CPU does not support Hyper-Threading or similar technology, this parameter is ignored. When disabled, only physical cores are used.<br> '''Note that enabling this parameter may slightly improve or harm the performance depending on a scenario. This parameter may be overriden by -cpuCount so if you want to use the maximum number of CPU cores use "-enableHT" without "-cpuCount".'''
'''Note that enabling this parameter may slightly improve or harm the performance depending on a scenario'''.
'''This parameter may be overridden by -cpuCount so if you want to use the maximum number of CPU cores use "-enableHT" without "-cpuCount"'''.
|-
|-
| -hugepages ||  
| -hugepages || Enables hugepages with the default memory allocator ([[Arma 3: Custom Memory Allocator|malloc]]) for both client/server (https://forums.bistudio.com/topic/160288-arma-3-stable-server-166-performance-binary-feedback/?page=74#comment-3130011)
Enables hugepages with the default memory allocator ([[Arma 3: Custom Memory Allocator|malloc]]) for both client/server (https://forums.bistudio.com/topic/160288-arma-3-stable-server-166-performance-binary-feedback/?page=74#comment-3130011)
|-
| -setThreadCharacteristics
| {{GVI|arma3|2.10}} Registers the game's executable as "Game" in Windows for performance improvements. {{Feature|warning|This flag can freeze the whole Operating System if running Windows Server!}}
|}
|}


=== Profile Options ===
=== Profile Options ===


{| class="wikitable" width = "100%"
{| class="wikitable sortable valign-top" width="100%"
! Parameter
! class="unsortable" | Description
|-
| -name=<string> || Profile name.
| -name=<string> || Profile name.
|-
|-
| [[-profiles]]=<path> || Location of user-profile folder. If a custom path is set, default files and folders (logFiles, AnimDataCache, DataCache, SteamPreviewCache....) located by default in <tt>%localappdata%/Arma 3</tt> will be created in that new location. However, old files will stay in the old location and will not be copied.
| -profiles=<path> || Location of user-profile folder. If a custom path is set, default files and folders (logFiles, AnimDataCache, DataCache, SteamPreviewCache....) located by default in {{hl|%localappdata%/Arma 3}} will be created in that new location. However, old files will stay in the old location and will not be copied.
|-
|-
| -unit=<number> || parameter passes a unit's ID number to the binary, translates to ''<nowiki>https://units.arma3.com/my-units#?unit=<number></nowiki>''
| -unit=<number> || parameter passes a unit's ID number to the binary, translates to ''<nowiki>https://units.arma3.com/my-units#?unit=<number></nowiki>''
Line 108: Line 229:
=== Developer Options ===
=== Developer Options ===


{| class="wikitable" width = "100%"
{| class="wikitable sortable valign-top" width="100%"
! Parameter
! class="unsortable" | Description
|-
| -noPause || Allow the game running even when its window does not have focus (i.e. running in the background)
| -noPause || Allow the game running even when its window does not have focus (i.e. running in the background)
|-
|-
| -showScriptErrors || Introduced to show errors in scripts on-screen. In [[Eden Editor]], script errors are always shown, even when this parameter is not used.
| -noPauseAudio || {{GVI|arma3|2.10}} Keeps audio running in background while tabbed out. Should be used together with '''-noPause''' to work correctly
|-
|-
| -debug || Enables more verbose error logging. ({{Since|arma3|2.01.146887}})
| -showScriptErrors || Introduced to show errors in scripts on-screen. In [[:Category:Eden Editor|Eden Editor]], script errors are always shown, even when this parameter is not used.
|-
|-
| -noLogs || Be aware this means none errors saved to RPT file (report log). Yet in case of crash the fault address block info is saved.<br>More details [http://forums.bistudio.com/showthread.php?159155-quot-nologs-quot-may-improve-performance-no-stuttering-read-details here].
| -debug || Enables more verbose error logging. See [[Arma 3: Debug Mode]]
|-
|-
| -filePatching|| Allow the game to load unpacked data. For more info see [[CMA:DevelopmentSetup]] (since Arma 3 1.49+).
| -noFreezeCheck || Disables the freeze check. It creates otherwise max 4 dumps per game run in total - 2 per distinct freeze. Similar to [[Crash Files]].
|-
| -noLogs || Be aware this means none errors saved to RPT file (report log). Yet in case of crash the fault address block info is saved.<br>More details {{Link|http://forums.bistudio.com/showthread.php?159155-quot-nologs-quot-may-improve-performance-no-stuttering-read-details|here}}.
|-
| -filePatching || Allow the game to load unpacked data. For more info see [[CMA:DevelopmentSetup]] (since {{arma3}} 1.49+).
|-
|-
| -init=<command> || Run scripting command once in the main menu. For example to start a certain SP mission of choice automatically. Example: -init=playMission["","M04Saboteur.Sara"]. <br> See also [[playMission]]. The Mission has to reside in the "arma3\Missions" folder, NOT the user directory.
| -init=<command> || Run scripting command once in the main menu. For example to start a certain SP mission of choice automatically. Example: -init=playMission["","M04Saboteur.Sara"]. <br> See also [[playMission]]. The Mission has to reside in the "arma3\Missions" folder, NOT the user directory.
|-
|-
| style="white-space:nowrap;" | "<path>\mission.sqm" || Load a mission directly in the editor. Example: "c:\arma3\users\myUser\missions\myMission.intro\mission.sqm"
| style="white-space: nowrap" | "<path>\mission.sqm" || Load a mission directly in the editor. Example: "c:\arma3\users\myUser\missions\myMission.intro\mission.sqm"
|-
|-
| -[[Arma_3_Startup_Parameters#autotest|autotest]] || Loads automatically a series of defined missions and on error writes to a log file.  
| -[[Arma 3: Startup Parameters#autotest|autotest]] || Loads automatically a series of defined missions and on error writes to a log file.


The parameter can be used to automatically run a series of test missions. For example FPS measurement or scripting validation.
The parameter can be used to automatically run a series of test missions. For example FPS measurement or scripting validation.
Line 131: Line 259:
* In case of any fail, the game also returns an errorlevel to DOS. This can be used to issue an notification by a secondary application.
* In case of any fail, the game also returns an errorlevel to DOS. This can be used to issue an notification by a secondary application.


;Launch Arma with: <tt>-autotest=c:\arma3\autotest\autotest.cfg</tt>
; Launch {{arma3}} with: {{hl|c= -autotest=c:\arma3\autotest\autotest.cfg}}


The autotest.cfg looks like:
The {{hl|autotest.cfg}} looks like:
<syntaxhighlight lang="cpp">
class TestMissions
{
class TestCase01
{
campaign = "";
mission = "autotest\TestCase01.Desert_E"; // relative path to the arma directory
};
class TestCase02
{
campaign = "";
mission = "C:\arma3\autotest\TestCase02.Desert_E"; // absolute path
};
};
</syntaxhighlight>


class TestMissions
{{Feature|important|If {{hl|-profiles}} is used, the relative path is relative to the specified profile path.}}
{
class TestCase01
{
campaign = "";
mission = "autotest\TestCase01.Desert_E";//relative path to the arma directory
};
class TestCase02
{
campaign = "";
mission = "c:\arma3\autotest\TestCase02.Desert_E";//absolute path
};
};
 
{{Feature|important|NOTE: If you use -profiles, the relative path is relative to your specificity path.}}


Rpt entry:
Rpt entry:
 
<syntaxhighlight lang="html">
<AutoTest result="FAILED">
<AutoTest result="FAILED">
EndMode = LOSER
EndMode = LOSER
Mission = autotest\TestCase01.Desert_E
Mission = autotest\TestCase01.Desert_E
</AutoTest>
</AutoTest>
</syntaxhighlight>


If possible use simple worlds, like Desert, to keep the loading times short. The [[startLoadingScreen|loading screen]] command might be useful as well to speed up task that need no rendering.
If possible use simple worlds, like Desert, to keep the loading times short. The [[startLoadingScreen|loading screen]] command might be useful as well to speed up task that need no rendering.
Line 170: Line 300:
| -crashDiag || extra crash-logging in performance binary, added on v18 (https://forums.bistudio.com/topic/160288-arma-3-stable-server-154-performance-binary-feedback/?p=2979101)
| -crashDiag || extra crash-logging in performance binary, added on v18 (https://forums.bistudio.com/topic/160288-arma-3-stable-server-154-performance-binary-feedback/?p=2979101)
|-
|-
| -noFilePatching || <span style="color:red;">(deprecated)</span> Ensures that only PBOs are loaded and NO unpacked data. It was replaced in favor of -filePatching parameter.
| -noFilePatching || {{Color|red|(deprecated)}} Ensures that only PBOs are loaded and NO unpacked data. It was replaced in favor of -filePatching parameter.
|-
|-
| -debugCallExtension || Logs extension calls in the rpt log like this: https://i.gyazo.com/afb3f6f89ad6bf51aad01e1c3f9c7eac.png
| -debugCallExtension || Logs extension calls in the rpt log like this: https://i.gyazo.com/afb3f6f89ad6bf51aad01e1c3f9c7eac.png
|-
|-
| -command=<name> || Creates [https://en.wikipedia.org/wiki/Named_pipe named pipe] "\\.\pipe\name" for receiving predefined set of commands. See [[Arma 3 Named Pipe]]
| -command=<name> || Creates {{Link|https://en.wikipedia.org/wiki/Named_pipe|named pipe}} "\\.\pipe\name" for receiving predefined set of commands. See [[Arma 3: Named Pipe]]
|-
|-
| -language=<language> || (Since Arma 3 v2.03.147195) Starts client with preferred language. Recognised languages: english, czech, french, german, hungarian, italian, japanese, korean, original, polish, portuguese, russian, spanish, turkish, chinese, chinesesimp
| -language=<language> || {{GVI|arma3|2.04}} Starts client with preferred language. Recognised languages: english, czech, french, german, hungarian, italian, japanese, korean, original, polish, portuguese, russian, spanish, turkish, chinese, chinesesimp
|-
|-
| -preprocDefine=<macro> || {{GVI|arma3|2.06}} Defines a macro and optionally its value. Multiple macro can be defined by using this parameter multiple times.<br>
-preprocDefine="CMD__MACRONAME=MACROVALUE"
-preprocDefine=CMD__MACRONAME
-preprocDefine=CMD__MACRO1 -preprocDefine=CMD__MACRO2
{{Feature|important|The macro name '''will''' start with {{hl|CMD__}}, the engine automatically adding the prefix if it is not present.
<syntaxhighlight lang="cpp">-preprocDefine=MACRO // will be CMD__MACRO</syntaxhighlight>
}}
|-
| -dumpAddonDependencyGraph || {{GVI|arma3|2.14}} dumps {{Link|https://en.wikipedia.org/wiki/Graphviz|Graphviz}} text file into the RPT directory with a graph of all addon dependencies (<syntaxhighlight lang="cpp" inline>requiredAddons</syntaxhighlight>)
|}


=== Misc. ===
=== Misc. ===


{| class="wikitable"
{| class="wikitable sortable valign-top" width="100%"
! Parameter
! class="unsortable" | Description
|-
| -buldozer || Starts [[Buldozer]] mode.
| -buldozer || Starts [[Buldozer]] mode.
|-
|-
Line 193: Line 336:
=== Modifications ===
=== Modifications ===


{| class="wikitable" width = "100%"
{| class="wikitable sortable valign-top" width="100%"
| [[modfolders|-mod]]=<string> || Loads the specified sub-folders for different mods. Separated by semi-colons. Absolute path and multiple stacked folders are possible.<br>'''In Linux''' multiple folders arguments need the following separation syntax: -mod=mod1\;mod2\;mod3<br>This setting always auto-disable in-game mod/extension management (in UI menu).</br>
! Parameter
! class="unsortable" | Description
|-
| [[Arma: Mod Folders|-mod]]=<string> || Loads the specified sub-folders for different mods. Separated by semi-colons. Absolute path and multiple stacked folders are possible.<br>'''In Linux''' multiple folders arguments need the following separation syntax: -mod=mod1\;mod2\;mod3<br>This setting always auto-disable in-game mod/extension management (in UI menu).<br>


'''Complex example:'''  
'''Complex example:'''
<tt>-mod=test;x\test;c:\arma3\test2</tt>
{{hl|c= -mod=test;x\test;c:\arma3\test2}}


* '''"test"''' is located in the arma3 installation folder ("Arma 3\test") (relative path)
* '''"test"''' is located in the {{arma3}} installation folder ("Arma 3\test") (relative path)
* '''"x\test"''' is in the installation folder ("Arma 3\x\test") (relative path; subfolder)
* '''"x\test"''' is in the installation folder ("Arma 3\x\test") (relative path; subfolder)
* '''"c:\arma3\test2"''' is in "c:\arma3\test2" (absolute path)
* '''"c:\arma3\test2"''' is in "c:\arma3\test2" (absolute path)


"Relative path" starts from, or is rooted at, the directory from where the arma3 executable has been started, and is not always the same where the executable is, like in betas. <br> Usually this is the same as the installation path and the same of what's written in Windows registry. But if you copy or symlink the necessary file and folders, you may have different roots. It's useful when have more dedicated server.
"Relative path" starts from, or is rooted at, the directory from where the {{arma3}} executable has been started, and is not always the same where the executable is, like in betas.<br>
Usually this is the same as the installation path and the same of what is written in Windows registry. But if you copy or symlink the necessary file and folders, you may have different roots.
It is useful when having multiple dedicated servers.
|}
|}


=== Client Network Options ===
=== Client Network Options ===


{| class="wikitable" width = "100%"
{| class="wikitable sortable valign-top" width="100%"
! Parameter
! class="unsortable" | Description
|-
| -connect=<ip> || Server IP to connect to.
| -connect=<ip> || Server IP to connect to.
|-
|-
Line 215: Line 366:
| -password=<string> || Server password to connect to.
| -password=<string> || Server password to connect to.
|-
|-
| -host || Start a non-dedicated multiplayer host.
| -host || Start a non-dedicated multiplayer host. See [[:File:a3_startup_parameters_host.png|reference image]]
|}
|}


=== Server Options ===
=== Server Options ===


{| class="wikitable" width = "100%"
{| class="wikitable sortable valign-top" width="100%"
| -setupHost || Start the game in the setup server display, works with the client exe.
! Parameter
! class="unsortable" | Description
|-
| -setupHost || Start the game in the setup server display, works with the client exe. See [[:File:a3_startup_parameters_createhost.png|reference image]]
|-
|-
| -server || Start a [[Arma 3 Dedicated Server|dedicated server]]. Not needed for the dedicated server exe.
| -server || Start a [[Arma 3 Dedicated Server|dedicated server]]. Not needed for the dedicated server exe.
Line 233: Line 387:
The windows user account would need permissions to write to the folder of choice.
The windows user account would need permissions to write to the folder of choice.


;An example might be like this: <tt>"C:\arma3\Arma3.exe" -ranking=C:\arma3\ranking.log</tt>
;An example might be like this: {{hl|c= "C:\arma3\Arma3.exe" -ranking=C:\arma3\ranking.log}}


Output sample:
Output sample:
 
<syntaxhighlight lang="cpp">
class Player1
class Player1
{
{
name = "PlayerName";
name = "PlayerName";
killsInfantry = 71;
killsInfantry = 71;
killsSoft = 3;
killsSoft = 3;
killsArmor = 5;
killsArmor = 5;
killsAir = 5;
killsAir = 5;
killsPlayers = 0;
killsPlayers = 0;
customScore = 0;
customScore = 0;
killsTotal = 84;
killsTotal = 84;
killed = 3;
killed = 3;
};
};
</syntaxhighlight>
|-
|-
| -netlog || Enables multiplayer network traffic logging. For more details see [[ArmA:_Server_configuration|server configuration]].
| -netlog || Enables multiplayer network traffic logging. For more details see [[ArmA:_Server_configuration|server configuration]].
|-
|-
| -cfg=<filename> || Selects the [[basic.cfg|Server Basic Config file]]. Config file for server specific settings like network performance tuning.
| -cfg=<filename> || Selects the [[basic.cfg|Server Basic Config file]]. Config file for server specific settings like network performance tuning.
{{Feature|important|Using this parameter overrides the game config ({{hl|Documents\Arma 3\Arma3.cfg}}); use at your own risk on clients.}}
|-
|-
| -config=<filename> || Selects the [[server.cfg|Server Config File]]. Config file for server specific settings like admin password and mission selection.
| -config=<filename> || Selects the [[server.cfg|Server Config File]]. Config file for server specific settings like admin password and mission selection.
|-
|-
| -profiles=<path> || Path to the folder containing server profile. By default, server logs are written to server profile folder. If folder doesn't exist, it will be automatically created.
| -profiles=<path> || Path to the folder containing server profile. By default, server logs are written to server profile folder. If folder doesn't exist, it will be automatically created.
Does not work on Linux, no profile will be created or used; instead, remove this parameter and the profile will be created in <tt>~/.local/share/Arma 3 - Other Profiles</tt>.
Does not work on Linux, no profile will be created or used; instead, remove this parameter and the profile will be created in {{hl|~/.local/share/Arma 3 - Other Profiles}}.
|-  
|-
| -bepath=<path> || By default BattlEye will create ''BattlEye'' folder inside server profile folder. With -bepath param it is possible to specify a custom folder. For example:<br>-bepath=C:\MyBattlEyeFolder, or if the path contains spaces, "-bepath=C:\Users\KK\Desktop\Some Folder With Spaces" (enclosed in quotes).
| -bepath=<path> || By default BattlEye will create ''BattlEye'' folder inside server profile folder. With -bepath param it is possible to specify a custom folder. For example:<br>-bepath=C:\MyBattlEyeFolder, or if the path contains spaces, "-bepath=C:\Users\KK\Desktop\Some Folder With Spaces" (enclosed in quotes).
|-
|-
| -ip=<nnn.nnn.nnn.nnn> || Command to enable support for Multihome servers. Allows server process to use defined available IP address. (b1.57.76934)
| -ip=<nnn.nnn.nnn.nnn> || Command to enable support for Multihome servers. Allows server process to use defined available IP address. (b1.57.76934)
Line 278: Line 434:
|-
|-
| -bandwidthAlg=2 || Uses a new experimental networking algorithm that might be better than the default one.
| -bandwidthAlg=2 || Uses a new experimental networking algorithm that might be better than the default one.
|}
=== Use unknown ===
{| class="wikitable" width = "100%"
| -download || Use unknown. (Possibly set auto download of missing Mod pbo's from server.)
|-
| -generateShaders || Use unknown. (Possibly for use with [[Buldozer]])
|-
| style="white-space:nowrap;" | -disableProgramDrawing || Use unknown. (Possibly for use with [[Buldozer]])
|-
| -useProgramDrawing || Use unknown. (Possibly for use with [[Buldozer]])
|-
| -gamerTag= || Use unknown.
|-
| -benchmark || Intended for automated benchmarking, but was never finished and is not working.
|-
|-
| -noTexHeaders || Use unknown. (does seem to prevent error messages like 'Failed to load TextureHeaderManager from file "ca\provinggrounds_pmc\texheaders.bin" - failed to open the file.' on linux dedicated server)
| -limitFPS=300 || {{GVI|arma3|1.98}} Start parameter to adjust server FPS limit between 5-1000 FPS (default 50).
|-
| -autoUpdate || Auto Update?
|-
| -physics=<?> || Unknown
|}
|}


== Closer Description ==
== Closer Description ==
=== [[-profiles|profiles]] ===
 
=== -profiles ===


'''-profiles''' is a startup option allowing you to choose an alternate location for the user profile files, such as downloaded missions and .cfg files.
'''-profiles''' is a startup option allowing you to choose an alternate location for the user profile files, such as downloaded missions and .cfg files.
Line 309: Line 446:
The windows user account would need permissions to write to the folder of choice.
The windows user account would need permissions to write to the folder of choice.


;An example might be like this: <tt>"C:\arma3\arma3.exe" -profiles=C:\arma3\Profiles</tt>
;An example might be like this: {{hl|c= "C:\arma3\arma3.exe" -profiles=C:\arma3\Profiles}}
;or: <tt>"C:\arma3\Arma3.exe" -profiles=Profiles</tt>
;or: {{hl|c= "C:\arma3\Arma3.exe" -profiles=Profiles}}


would store all your profiles/configs/downloaded content into your ROOT Arma folder under the folder name "Profiles"
would store all your profiles/configs/downloaded content into your ROOT {{arma3}} folder under the folder name "Profiles"


== Path Definition ==
== Path Definition ==
Line 320: Line 457:
=== Spaces ===
=== Spaces ===


;When your path contains spaces, you need to enclose it with quotes, like: <tt>"-profiles=c:\arma 3\profiles"</tt>
The path '''and''' -profiles need to be enclosed with quotes if it contains spaces, e.g {{hl|c= "-profiles=c:\arma 3\profiles"}}.


=== Relative vs Absolute ===
=== Relative vs Absolute ===
Line 326: Line 463:
You can define most, if not all path in both ways.
You can define most, if not all path in both ways.


;Relative: <tt>-profiles=profiles</tt>
; Relative
: {{hl|c= -profiles=profiles}}


;Absolute: <tt>-profiles=c:\arma3\profiles</tt>
; Absolute
: {{hl|c= -profiles=C:\arma3\profiles}}


The relative path is normally based on the game main folder, where the exe resides in. Using beta patches does NOT change this!
The relative path is normally based on the game main folder, where the exe resides in. Using beta patches does NOT change this!
However when you use -profiles, some commands use this path defined there as base.
However when you use -profiles, some commands use this path defined there as base.


{{GameCategory|arma3}}
 
[[Category:_Startup_Parameters]]
[[Category: Startup Parameters]]

Latest revision as of 01:24, 2 February 2024

These parameters can be configured by creating a new shortcut on your desktop and then adding the appropriate option in the target line.

Most of the following parameters can be set with the Arma 3: Launcher.


Steam

  1. Choose the game in Steam\Library
  2. Right click on the game
  3. Select properties
  4. Hit "Set launch options"
Example
-nosplash -mod=test;x\test;c:\arma3\test2


Windows

When working with shortcuts, cmd launch options: there is max characters limit for the executing line, use -par (see: Startup Parameters Config File) to avoid it.

Startup Command Line parameters file
Arma3.exe -par="D:\Arma 3 Startup Parameters.txt"
-skipIntro
-noSplash
-enableHT
-hugePages
-noLogs


Available Parameters

  • adapter
  • autoinit
  • autotest
  • bandwidthAlg
  • bepath
  • beta
  • buldozer
  • cfg
  • checkSignatures
  • client
  • command
  • config
  • connect
  • cpuCount
  • crashDiag
  • d3dNoLock
  • d3dNoMultiCB
  • debug
  • debugCallExtension
  • disableServerThread
  • Arma 3 logo black.png2.14 dumpAddonDependencyGraph
  • doNothing
  • enableHT
  • exThreads
  • filePatching
  • host
  • hugepages
  • init
  • ip
  • Arma 3 logo black.png2.04 language
  • Arma 3 logo black.png1.98 limitFPS
  • loadMissionToMemory
  • malloc
  • Arma 3 logo black.png2.14 maxFileCacheSize
  • maxMem
  • maxVRAM
  • mod
  • name
  • netlog
  • noCB
  • noFilePatching
  • noFreezeCheck
  • noLand
  • noLogs
  • noPause
  • Arma 3 logo black.png2.10 noPauseAudio
  • noSound
  • noSplash
  • par
  • password
  • pid
  • Arma 3 logo black.png2.06 preprocDefine
  • port
  • posX
  • posY
  • profiles
  • ranking
  • server
  • serverMod
  • Arma 3 logo black.png2.10 setThreadCharacteristics
  • setupHost
  • showScriptErrors
  • skipIntro
  • unit
  • window
  • world
  • worldCfg

Display Options

Parameter Description
-window Displays Arma 3 windowed instead of full screen. Screen resolution / window size are set in arma3.cfg.
-posX=<Integer> Sets the default X Position of the Window.
-posY=<Integer> Sets the default Y Position of the Window.
-adapter=<Integer> Sets the default Video Adapter.

Game Loading Speedup

Parameter Description
-noSplash -noSplash is a startup option that allows you to bypass the splash screens on startup of Arma 3.
Real speed-up gained with this is likely to be negligible in Arma 3, as the loading screens are handled in parallel with the game data being loaded, and the loading itself takes quite long thanks to the amount of data needed.
-world=<string> Select a world loaded by default. Example: -world=Utes.
For faster game loading (no default world loaded and world intro in the main menu, only at game start, disabled): -world=empty.
-worldCfg=<String> Init Landscape by the given world config
-skipIntro Disables world intros in the main menu permanently.

Performance

Parameter Description
-maxMem=<number> Overrides memory allocation limit to a certain amount (in megabytes).
Until Arma 3 v2.14 there was a bug on the Linux server binary where it parses the maxMem value as a signed integer, therefore making 4096 interpreted as a negative value;
in order to avoid this issue, use values like 2047, 4095, 8191, 16383, 32767 (2048 -1, 4096 -1 etc).

1024 MiB is a hard-coded minimum (anything lower falls back to 1024). The maximum is influenced by your operating system (any value over the maximum will be reverted to this value):

  • 32-bit Windows + 32-bit game: 2047
  • 64-bit Windows + 32-bit game: 3071
  • 64-bit Windows + 64-bit game: (physical memory * 4) / 5

Without the -maxMem parameter the engine attempts to set this parameter internaly to a reasonable value often defaulting to max values as described above.
The file cache is always excluded from the virtual address limit, see our developers blog: https://www.bistudio.com/blog/breaking-the-32-bit-barrier.

Note that setting maxMem to 2000 does not mean that the game will never allocate more then 2000 MiB. It says that the game will do everything in its power to not cross this limit.
In general, it makes sense not using this parameter at all and only resort to it in case you experience issues with memory.

-maxVRAM=<number> Defines Video Memory allocation limit to number (in megabytes). Use to resolve e.g. Windows problem: http://support.microsoft.com/kb/2026022/en-us?p=1.
Minimum value is 128 MiB (anything lower falls back to 128). The value is ignored (under DX11) if engine properly detected VRAM size, minus 20% reserve with ceiling limit 300MB max..
-maxFileCacheSize Arma 3 logo black.png2.14 Sets the default filecache size (when files are loaded from disk, they are cached in RAM. If the cache is full, the oldest file is thrown out).
  • Default size was either maxMemory - 448 MB or if you had more than 2 GB of memory available to Arma 3, it would be limited to max 2048 MB.
  • Setting lower than 1 GB is not recommended.
  • Minimum possible value is 512 MB
-noCB Turns off multicore use. It slows down rendering but may resolve visual glitches.
-cpuCount=<number> Change to a number less or equal than numbers of available cores. This will override auto detection (which equate to native cores).

The best way to simulate dual core on quad core is to use -cpuCount=2 when you run the game and then change the affinity to 2 cores to make sure additional cores can never be used when some over-scheduling happens.
It might be also possible to set the affinity in the OS before you launch the process, that would work as well.

-exThreads=<number> Change to a number 0,1,3,5,7. This will override auto detection (which use 3 for dualcore and 7 for quadcore).

All file operations go through a dedicated thread. This offloads some processing from the main thread, however it adds some overhead at the same time.
The reason why threaded file ops were implemented was to serve as a basement for other threads ops.
When multiple threads are running at the same time, OS is scheduling them on different cores.
Geometry and Texture loading (both done by the same thread) are scheduled on different cores outside the main rendering loop at the same time with the main rendering loop.

Ex(tra)threads table
Parameter Description
Number Geometry loading Texture loading File operations
0 0 0 0
1 0 0 1
3 0 1 1
5 1 0 1
7 1 1 1
-malloc=<string> Sets the particular memory allocator to be used. Significantly affects both performance and stability of the game. More details.
-noLogs Be aware this means none errors saved to RPT file (report log). Yet in case of crash the fault address block info is saved.
More details here.
-enableHT Enables the use of all logical CPU cores for parallel tasks processing. If your CPU does not support Hyper-Threading or similar technology, this parameter is ignored. When disabled, only physical cores are used.

Note that enabling this parameter may slightly improve or harm the performance depending on a scenario. This parameter may be overridden by -cpuCount so if you want to use the maximum number of CPU cores use "-enableHT" without "-cpuCount".

-hugepages Enables hugepages with the default memory allocator (malloc) for both client/server (https://forums.bistudio.com/topic/160288-arma-3-stable-server-166-performance-binary-feedback/?page=74#comment-3130011)
-setThreadCharacteristics Arma 3 logo black.png2.10 Registers the game's executable as "Game" in Windows for performance improvements.
This flag can freeze the whole Operating System if running Windows Server!

Profile Options

Parameter Description
-name=<string> Profile name.
-profiles=<path> Location of user-profile folder. If a custom path is set, default files and folders (logFiles, AnimDataCache, DataCache, SteamPreviewCache....) located by default in %localappdata%/Arma 3 will be created in that new location. However, old files will stay in the old location and will not be copied.
-unit=<number> parameter passes a unit's ID number to the binary, translates to https://units.arma3.com/my-units#?unit=<number>

Developer Options

Parameter Description
-noPause Allow the game running even when its window does not have focus (i.e. running in the background)
-noPauseAudio Arma 3 logo black.png2.10 Keeps audio running in background while tabbed out. Should be used together with -noPause to work correctly
-showScriptErrors Introduced to show errors in scripts on-screen. In Eden Editor, script errors are always shown, even when this parameter is not used.
-debug Enables more verbose error logging. See Arma 3: Debug Mode
-noFreezeCheck Disables the freeze check. It creates otherwise max 4 dumps per game run in total - 2 per distinct freeze. Similar to Crash Files.
-noLogs Be aware this means none errors saved to RPT file (report log). Yet in case of crash the fault address block info is saved.
More details here.
-filePatching Allow the game to load unpacked data. For more info see CMA:DevelopmentSetup (since Arma 3 1.49+).
-init=<command> Run scripting command once in the main menu. For example to start a certain SP mission of choice automatically. Example: -init=playMission["","M04Saboteur.Sara"].
See also playMission. The Mission has to reside in the "arma3\Missions" folder, NOT the user directory.
"<path>\mission.sqm" Load a mission directly in the editor. Example: "c:\arma3\users\myUser\missions\myMission.intro\mission.sqm"
-autotest Loads automatically a series of defined missions and on error writes to a log file.

The parameter can be used to automatically run a series of test missions. For example FPS measurement or scripting validation.

  • The game runs in special mode. It runs all missions from the given list.
  • If any mission fails (ends with other than END1), it is logged into the rpt file (search: <autotest).
  • In case of any fail, the game also returns an errorlevel to DOS. This can be used to issue an notification by a secondary application.
Launch Arma 3 with
-autotest=c:\arma3\autotest\autotest.cfg

The autotest.cfg looks like:

class TestMissions
{
	class TestCase01
	{
		campaign = "";
		mission = "autotest\TestCase01.Desert_E"; // relative path to the arma directory
	};
	class TestCase02
	{
		campaign = "";
		mission = "C:\arma3\autotest\TestCase02.Desert_E"; // absolute path
	};
};
If -profiles is used, the relative path is relative to the specified profile path.

Rpt entry:

<AutoTest result="FAILED">
	EndMode = LOSER
	Mission = autotest\TestCase01.Desert_E
</AutoTest>

If possible use simple worlds, like Desert, to keep the loading times short. The loading screen command might be useful as well to speed up task that need no rendering.

-beta=<string> Loads the specified beta sub-folders. Separated by semi-colons. Absolute path and multiple stacked folders are possible.
In Linux multiple folders arguments need the following separation syntax: -mod=betamod1\;betamod2\;betamod3
This allows use of beta build w/o disabling in-game mod/extension management (in UI menu).
-checkSignatures Introduced to provide thorough test of all signatures of all loaded banks at the start game. Output is in .rpt file.
-d3dNoLock Doesn't lock the VRAM
-d3dNoMultiCB D3D uses Single Constant Buffers instead of Multiple Constant Buffers
-crashDiag extra crash-logging in performance binary, added on v18 (https://forums.bistudio.com/topic/160288-arma-3-stable-server-154-performance-binary-feedback/?p=2979101)
-noFilePatching (deprecated) Ensures that only PBOs are loaded and NO unpacked data. It was replaced in favor of -filePatching parameter.
-debugCallExtension Logs extension calls in the rpt log like this: https://i.gyazo.com/afb3f6f89ad6bf51aad01e1c3f9c7eac.png
-command=<name> Creates named pipe "\\.\pipe\name" for receiving predefined set of commands. See Arma 3: Named Pipe
-language=<language> Arma 3 logo black.png2.04 Starts client with preferred language. Recognised languages: english, czech, french, german, hungarian, italian, japanese, korean, original, polish, portuguese, russian, spanish, turkish, chinese, chinesesimp
-preprocDefine=<macro> Arma 3 logo black.png2.06 Defines a macro and optionally its value. Multiple macro can be defined by using this parameter multiple times.
-preprocDefine="CMD__MACRONAME=MACROVALUE"
-preprocDefine=CMD__MACRONAME
-preprocDefine=CMD__MACRO1 -preprocDefine=CMD__MACRO2
The macro name will start with CMD__, the engine automatically adding the prefix if it is not present.
-preprocDefine=MACRO // will be CMD__MACRO
-dumpAddonDependencyGraph Arma 3 logo black.png2.14 dumps Graphviz text file into the RPT directory with a graph of all addon dependencies (requiredAddons)

Misc.

Parameter Description
-buldozer Starts Buldozer mode.
-noLand Starts with no world loaded. (Used for Buldozer)
-noSound Disables sound output.
-doNothing Engine closes immediately after detecting this option.

Modifications

Parameter Description
-mod=<string> Loads the specified sub-folders for different mods. Separated by semi-colons. Absolute path and multiple stacked folders are possible.
In Linux multiple folders arguments need the following separation syntax: -mod=mod1\;mod2\;mod3
This setting always auto-disable in-game mod/extension management (in UI menu).

Complex example: -mod=test;x\test;c:\arma3\test2

  • "test" is located in the Arma 3 installation folder ("Arma 3\test") (relative path)
  • "x\test" is in the installation folder ("Arma 3\x\test") (relative path; subfolder)
  • "c:\arma3\test2" is in "c:\arma3\test2" (absolute path)

"Relative path" starts from, or is rooted at, the directory from where the Arma 3 executable has been started, and is not always the same where the executable is, like in betas.
Usually this is the same as the installation path and the same of what is written in Windows registry. But if you copy or symlink the necessary file and folders, you may have different roots. It is useful when having multiple dedicated servers.

Client Network Options

Parameter Description
-connect=<ip> Server IP to connect to.
-port=<number> Server port to connect to.
-password=<string> Server password to connect to.
-host Start a non-dedicated multiplayer host. See reference image

Server Options

Parameter Description
-setupHost Start the game in the setup server display, works with the client exe. See reference image
-server Start a dedicated server. Not needed for the dedicated server exe.
-port=<number> Port to have dedicated server listen on.
-pid=<filename> File to write the server's PID (process ID) to. The file is removed automatically when the exe is stopped. Only works for dedicated servers.
-ranking=<filename> -ranking is a startup option allowing you to output ranking info or otherwise know as player stats.

The windows user account would need permissions to write to the folder of choice.

An example might be like this
"C:\arma3\Arma3.exe" -ranking=C:\arma3\ranking.log

Output sample:

class Player1
{
	name = "PlayerName";
	killsInfantry = 71;
	killsSoft = 3;
	killsArmor = 5;
	killsAir = 5;
	killsPlayers = 0;
	customScore = 0;
	killsTotal = 84;
	killed = 3;
};
-netlog Enables multiplayer network traffic logging. For more details see server configuration.
-cfg=<filename> Selects the Server Basic Config file. Config file for server specific settings like network performance tuning.
Using this parameter overrides the game config (Documents\Arma 3\Arma3.cfg); use at your own risk on clients.
-config=<filename> Selects the Server Config File. Config file for server specific settings like admin password and mission selection.
-profiles=<path> Path to the folder containing server profile. By default, server logs are written to server profile folder. If folder doesn't exist, it will be automatically created.

Does not work on Linux, no profile will be created or used; instead, remove this parameter and the profile will be created in ~/.local/share/Arma 3 - Other Profiles.

-bepath=<path> By default BattlEye will create BattlEye folder inside server profile folder. With -bepath param it is possible to specify a custom folder. For example:
-bepath=C:\MyBattlEyeFolder, or if the path contains spaces, "-bepath=C:\Users\KK\Desktop\Some Folder With Spaces" (enclosed in quotes).
-ip=<nnn.nnn.nnn.nnn> Command to enable support for Multihome servers. Allows server process to use defined available IP address. (b1.57.76934)
-par=<filename> Command to read startup parameters from a file. For more details see Startup parameters config file
-client Launch as client (console). Useful for headless clients.
-loadMissionToMemory Server will load mission into memory on first client downloading it. Then it keeps it pre-processed pre-cached in memory for next clients, saving some server CPU cycles,
-autoInit Automatically initialize mission just like first client does.

Note: Server config file (server.cfg) must contain "Persistent=1;", if it is 0 autoInit skips.
Warning: This will break the Arma_3_Mission_Parameters function, so do not use it when you work with mission parameters, only default values are returned!

-serverMod=<string> Loads the specified sub-folders for different server-side (not broadcasted to clients) mods. Separated by semi-colons. Absolute path and multiple stacked folders are possible.

In Linux multiple folders arguments need the following separation syntax: -mod=mod1\;mod2\;mod3.

-disableServerThread Option to disable the server send messaging thread in case of random crashing (may also decrease performance of server on multicore CPUs)
-bandwidthAlg=2 Uses a new experimental networking algorithm that might be better than the default one.
-limitFPS=300 Arma 3 logo black.png1.98 Start parameter to adjust server FPS limit between 5-1000 FPS (default 50).

Closer Description

-profiles

-profiles is a startup option allowing you to choose an alternate location for the user profile files, such as downloaded missions and .cfg files.

The windows user account would need permissions to write to the folder of choice.

An example might be like this
"C:\arma3\arma3.exe" -profiles=C:\arma3\Profiles
or
"C:\arma3\Arma3.exe" -profiles=Profiles

would store all your profiles/configs/downloaded content into your ROOT Arma 3 folder under the folder name "Profiles"

Path Definition

There are a few basics to keep in mind when defining path as part of a parameter.

Spaces

The path and -profiles need to be enclosed with quotes if it contains spaces, e.g "-profiles=c:\arma 3\profiles".

Relative vs Absolute

You can define most, if not all path in both ways.

Relative
-profiles=profiles
Absolute
-profiles=C:\arma3\profiles

The relative path is normally based on the game main folder, where the exe resides in. Using beta patches does NOT change this! However when you use -profiles, some commands use this path defined there as base.