Available Parameters:
Game Loading Speedup
-noSplash | Disables splash screens. |
-world=<string> | Select a world loaded by default. Example: -world=Altis For faster game loading (no default world loaded and world intro in the main menu, only at game start, disabled): -world=Empty |
-skipIntro | Disables world intros in the main menu permanantly. |
Performance
-maxMem=<number> | Defines memory allocation limit to number (in MegaBytes). 256 is hard-coded minimum (anything lower falls backs to 256). 2047 is hard-coded maximum (anything higher falls back to 2047). Engine uses automatic values (512-1536 MB) w/o maxMem parameter. yet FileCache was always excluded from the virtual address limit, see our developers blog: https://www.bistudio.com/blog/breaking-the-32-bit-barrier |
-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
128 is hard-coded minimum (anything lower falls backs to 128). The value is ignored if engine properly detected VRAM size (then it utilize most minus 5 to 10%) |
-winXP | Forces the game to use Direct3D version 9 only, not the extended Vista / Win7 Direct3D 9Ex http://msdn.microsoft.com/en-us/library/windows/desktop/ee890072(v=vs.85).aspx - the most visible feature the Direct3D 9Ex version offers is a lot faster alt-tabing. May help with problems using older drivers on multi-GPU systems. |
-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). Details below. |
-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). Details below. |
-malloc=<string> | Since OA 1.60 - Set the particular allocator to be used. Significantly affects both performance and stability of the game. More details. |
-noLogs | More details 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. |
-enableHT | More details here.
Enables the use of hyper-threading CPU cores which might slightly improve performance in certain scenarios. Note that this option may be overriden by -cpuCount so if you want to use maximum number of CPU cores use -enableHT without -cpuCount. |
Profile Options
-name=<string> | Profile Name |
-profiles=<path> | Location of user-profile folder. Details: -profiles |
Developer Options
-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. |
-noFilePatching | Ensures that only PBOs are loaded and NO unpacked data. It is the default state since Arma 3 1.50. |
-filePatching | Allow the game to load unpacked data. For more info see CMA:DevelopmentSetup (since Arma 3 1.49+). |
-autoTest | Loads automatically a series of defined missions and on error writes to a log file. See below for details. |
-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 | Doesnt lock the VRAM |
-d3dNoMultiCB | D3D uses Single Constant Buffers instead of Multiple Constant Buffers |
Misc.
-bulldozer | Starts Buldozer mode. |
-noLand | Starts with no world loaded. (Used for Buldozer) |
-noSound | Disables sound output. |
-doNothing | Engine closes immediately after detecting this option. |
/sexuexp | Starts securom support for troubleshooting. |
Modifications
-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 arma3 installation folder ("Arma 3\test") (relative path)
- "x\test" is located 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 arma3 executable has been started, and is not always the same where the executablle is, like in betas. Usually this is the same as the installation path and is the same of what's written in Windows registry. But if you copy of symlink the necessary file and folders, you may have different roots. It's useful when you have more than one dedicated server.
Client Network Options
-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 |
Server Options
-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> | Generates a ranking file. See below for details. |
-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. |
-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. |
-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's 0 autoInit skips. |
-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 |
Closer Description
Path Info
There are a few basics to keep in mind when defining paths as part of a parameter.
Spaces
When your path contains spaces, you need to enclose it with quotes, like
"-profiles=C:\arma 3\profiles"Relative vs. Absolute
You can define most, if not all paths in both ways.
Relative
-profiles=profilesAbsolute
-profiles=C:\arma3\profilesThe relative path is normally based on the game main folder, where the exe resides in. Using the beta patches do not change this! However, when you use -profiles, some commands use this path defined here as base.
config
The option -config allows you to specify a specific server.cfg file.
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\Profilesor
"C:\arma3\arma3.exe" -profiles=Profilesranking
-ranking is a startup option allowing you to output ranking info or otherwise known 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.logOutput sample:
class Player1
{
name = "PlayerName";
killsInfantry = 71;
killsSoft = 3;
killsArmor = 5;
killsAir = 5;
killsPlayers = 0;
customScore = 0;
killsTotal = 84;
killed = 3;
};
noSplash
-noSplash is a startup option that allows you to bypass the splash screens on startup of Arma 3
Note: Real speed-up gained with this is likely to be negligible with 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.
cpuCount
-cpuCount= is an option which allows definite number of CPUs/cores available.
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
-exThreads= is an option to define extra threads.
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 implimented was to server as a basement for other thread 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
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 |
autoTest
The parameter can be used to automatically run a series of test missions. For example FPS measurement or scripting validation.
- The game runs in a special mods. 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 a notification by a secondary application
-autoTest=C:\arma3\autotest\autotest.cfgThe 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
};
};
RPT Entry:
NOTE: If you use -profiles, the relative path is relative to your specificity path.
<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.