Command-Line Arguments

Overview
Command line arguments are strings of keywords that you can pass when running the executable via the command line or a shortcut to the executable. Their purpose is to customize the manner in which the engine runs to suit the needs of the developer or user. This can be as simple as causing the editor to run instead of the game, or it can be much more involved such as starting up the game with a certain map running at a specified resolution and framerate while dumping out each frame to individual image files

Modes
These arguments are used to force the main executable to run in a mode other than the normal game mode or to execute one of many commandlets, which are smaller specialized applications that perform common developer-related tasks. They are passed to the executable immediately following the executable name with no additional syntax. These commands are not case sensitive.

Example:

UDK.exe editor
 * Editor: Launch the editor
 * Server: Run the game as a server

Map/Server/Editor URL Parameters
URLs can be passed to the executable to force the game to load a specific map upon startup. These can also be used in conjunction with the SERVER or EDITOR modes to run the editor or a server with a specific map. Passing a URL is optional, but must immediately follow the executable name or any mode switch if one is present.

A URL consists of two parts: a map name or server IP address and a series of optional additional parameters. A map name can be any map located within the Maps directory. The inclusion of a file extension (i.e., .udk or .ut3) here is optional. To load a map not found in the Maps directory, an absolute path or a relative path from the Maps directory can be used. In this case, the inclusion of the file extension is mandatory. The server IP address is a standard 4-part IP address consisting of 4 values between 0 and 255 separated by periods. The additional options are specified by appending them to the map name or server IP address. Each option is prefaced by a ‘?’.

Examples:

UDK.exe MyMap.udk?game=MyPackage.MyGame?class=MyPackage.MyPawn UDK.exe server MyMap.udk?listen=true?bIsLanMatch=true UDK.exe 127.0.0.1

General Options

 * CHARACTER: the player character to use.
 * CLASS: tells the engine what player class to use (overriding default).
 * GAME: tells the engine what GameInfo class to use (overriding default).
 * NAME: player name to use.
 * PASSWORD: password required to join a server.
 * TEAM: the team the player is on (or prefers).

Server Options

 * bHasVoice: Specify that voice support is available.
 * bIsLanMatch: Set whether multiplayer game is on the local network (e.g. bIsLanMatch=0).
 * bRequiresPassword: Set whether online games requires a password (e.g. bRequiresPassword=0).
 * DEDICATED: Specify server as dedicated server.
 * GAMEPASSWORD: Server password passed on travel.
 * LISTEN: Specify server as a listen server (e.g. Listen=...).
 * SERVERDESCRIPTION: The description to be displayed for the server.

UTGame Specific Options
 * DIFFICULTY: Set the skill level for bots in the game.
 * MUTATOR: Specify a mutator to use.
 * NUMPLAY: Number of players to use. (Number of bots +1 for the player)
 * RESTART: Restart the map.
 * SPECTATORONLY: Start the game in spectator mode.

Switches
These arguments can be passed to either the game or the editor, depending on the specific keyword and its intended usage. Some arguments are plain switches (i.e., -UNATTENDED) while others are setting switches which are “key=value” pairs (i.e., -LOG=MyLog.txt). These commands are not case sensitive. The syntax for passing plain switches is to preface each argument with a minus (‘-‘) and then the argument immediately afterward. Setting switches need no leading ‘-‘, with the exception of the server switches.

Example:

UDK.exe –silent LOG=MyLog.txt

Developer

 * ABSLOG: Same as LOG= but without a filename length check.
 * ALLUSERS: Add the game for all users when INSTALLGE is specified.
 * AUTO: Assume yes on all questions (for example during compile).
 * AUTOCHECKOUTPACKAGES: Automatically checkout packages that need to be saved.
 * AUTODEBUG: Perform auto debugging. Attach the UnrealScript debugger and break at the first bytecode encountered.
 * AutomatedMapBuild: Perform an automated build of a specified map. Automated Map Build
 * BIASCOMPRESSIONFORSIZE: Override compression settings with respect to size.
 * BUILDMACHINE: Set as build machine. Used for deciding if debug output is enabled.
 * BULKIMPORTINGSOUNDS: Use when importing sounds in bulk (Generic Browser specific)
 * CHECK_NATIVE_CLASS_SIZES: Enable checking of native class sizes. Note: Native classes on console platforms will cause native class size checks to fail even though they are assumed to be correct.
 * CODERMODE: Enables Coder mode.
 * COMPATSCALE: Set compatibility settings manually to override PCCompat tool settings.
 * CONFORMDIR: Directory to use when conforming packages.
 * COOKFORDEMO: Specify as cooking packages for the demo.
 * COOKPACKAGES: tag to specify cooking packages.
 * CRASHREPORTS: Always report crashes of the engine.
 * D3DDEBUG: Use a d3d debug device.
 * DEBUG: Tells the engine to send debug info to the debugger, or build debug packages during script compile.
 * DEBUGFACEFX: Trace FaceFX animations.
 * DEVCON: Disable secure connections for developers (uses unencrypted sockets).
 * DUMPFILEIOSTATS: track and log File IO statistics.
 * DUMPUDKSURVEY: Simply dump UDK hardware survey. No upload.
 * FATALSCRIPTWARNINGS: treat script warnings from debugging as fatal.
 * FINAL_RELEASE: Set the FINAL_RELEASE macro for script compiling.
 * FIXEDSEED: Initialize the random number generator with a fixed value, 0.
 * FIXUPTANGENTS: Fix legacy tangents in distributions automatically.
 * FORCELOGFLUSH: Force a log flush after each line.
 * FORCEPVRTC: force pvrtc texture compression for mobile platform.
 * FORCESOUNDRECOOK: Force a complete re-cook of all sounds.
 * GENERICBROWSER: Use the Generic Browser.
 * INCLUDEUTGAMECONTENT: Set UTGameContent packages to be loaded.
 * INSTALLED: For development purposes, run the game as if installed.
 * INSTALLFW / UNINSTALLFW: Set whether the handling of the firewall integration should be performed.
 * INSTALLGE: Add the game to the Game Explorer
 * LANGUAGEFORCOOKING: Set language to be used for cooking.
 * LIGHTMASSDEBUG: Launch lightmass manually with –debug and allows lightmass to be executed multiple times.
 * LIGHTMASSSTATS: Force all lightmass agents to report detailed stats to the log.
 * LOG: When used as a switch (-log), opens a seperate window to display the contents of the log in real time. When used as a setting (LOG=filename.log), tells the engine to use the log filename of the string which immediately follows.
 * LOGTIMES: Print time with log output. (Default, same as setting LogTimes=True in the [LogFiles] section of *Engine.ini)
 * NOCONFORM: tells the engine not to conform packages as they are compiled.
 * NOCONTENTBROWSER: Disable the Content Browser.
 * NOINNEREXCEPTION: Disables the exception handler within native C++.
 * NOLOADSTARTUPPACKAGES: Force startup packages not to be loaded. You can use this if objects in a startup package must be deleted from within the editor.
 * NOLOGTIMES: Do not print time with log output. (Same as setting LogTimes=False in the [LogFiles] section of *Engine.ini)
 * NOMODAUTOLOAD: Do not automatically load mod classes.
 * NOPAUSE: Close the log window automatically on exit.
 * NOPAUSEONSUCCESS: Close the log window automatically on exit as long as no errors were present.
 * NOREMOTECONTROL: Disable the remote control. Used for dedicated servers.
 * NORC: Disable the remote control. Used for dedicated servers.
 * NOVERIFYGC: Do not verify garbage compiler assumptions.
 * NOWRITE: Disable output to log.
 * OUTPUTHEADERS: Force output of headers on script patch export.
 * RC: Force remote control to be visible.
 * REMOTECONTROL: Force remote control to be visible.
 * REPAIR: Automatically fix any problems with game asset database.
 * SCRIPTSTACKONWARNINGS: Display script stack for warnings during debugging
 * SEEKFREELOADING: Only use cooked data.
 * SEEKFREEPACKAGEMAP: Override the package map with the seekfree (cooked) version.
 * SEEKFREELOADINGPCCONSOLE: only use cooked data for PC console mode.
 * SEEKFREELOADINGSERVER: Only use cooked data for server.
 * SETTHREADNAMES: (Xbox only) Force thread names to be set. This can mess up the XDK COM API which is why it must be explicitly set to be performed if desired.
 * SHOWMISSINGLOC: if missing localized text, return error string instead of English text.
 * SILENT: Disable output and feedback.
 * SKIPDOWNLOADER: For development purposes on Android, skip Google Play expansion downloader and use manually synced data.
 * TRACEANIMUSAGE: Trace animation usage.
 * TREATLOADWARNINGSASERRORS: Force load warnings to be treated as errors.
 * UNATTENDED: Set as unattended. Disable anything requiring feedback from user.
 * UNINSTALLGE: Remove the game from the Game Explorer.
 * USEUNPUBLISHED: Force packages in the Unpublished folder to be used (deprecated?)
 * UTRACE: Enable script tracing features.
 * VADEBUG: Use the Visual Studio debugger interface.
 * VERBOSE: Set script compiler to use verbose output.
 * VERIFYGC: Force garbage compiler assumptions to be verified.
 * WAITFORDEBUGSERVER: Force game to wait until UnrealConsole attaches.
 * WARNINGSASERRORS: Treat warnings as errors
 * WXWINDOWS: Must be passed to enable property windows and the remote control

Rendering

 * ConsolePosX: Horizontal position for console output window.
 * ConsolePosY: Vertical position for console output window.
 * PosX: Set the horizontal position of the game window on the screen.
 * PosY: Set the vertical position of the game window on the screen.
 * WindowPosX: Set the horizontal position of the game window on the screen.
 * WindowPosY: Set the vertical position of the game window on the screen.
 * ResX: Set horizontal resolution for game window.
 * ResY: Set vertical resolution for game window.
 * VSync: Activate the VSYNC via command line (prevents tearing of the image but costs fps and causes input latency)
 * NoVSync: Deactivate the VSYNC via command line
 * BENCHMARK: Run game at fixed-step in order to process each frame without skipping any frames. This is useful in conjunction with DUMPMOVIE options.
 * DUMPMOVIE: Dump rendered frames to files using current resolution of game.
 * DUMPMOVIE_TILEDSHOT: Dump rendered frames to files using the specified resolution multiplier. Uses tiled shots for high resolution frames (e.g. DUMPMOVIE_TILEDSHOT=4).
 * EXEC: executes the specified exec file.
 * FORCESHADERMODEL2: Force shader model 2 rendering path even on shader model 3 hardware.
 * FORCESHADERMODEL3: Force the use of shader model 3.
 * FPS: set the frames per second for benchmarking.
 * FULLSCREEN: Set game to run in fullscreen mode.
 * PIXO: Use pixomatic software rendering.
 * SECONDS: Set the maximum tick time.
 * SM3: Force the use of shader model 3.
 * SM4 / D3D10: Force use of DirectX 10 if available.
 * WINDOWED: Set game to run in windowed mode.

Network

 * LANPLAY: tells the engine to not cap client bandwidth when connecting to servers. Causes double the amount of server updates and can saturate client’s bandwidth.
 * Limitclientticks: Force throttling of network updates.
 * LIVEMACADDRESS: Specify a MAC address to use for Panorama connection.
 * LIVEPORT: Specify a port to use for Panorama connection.
 * LIVEREGKEY: Specify a registration key.
 * MPGAMETYPE: Specify single gametype to be used for cooking.
 * MULTIHOME: Tells the engine to use a multihome address for networking.
 * NETWORKPROFILER: Enable network profiler tracking.
 * NOLIVE: Disable Panorama.
 * NOSTEAM: Set steamworks to not be used.
 * PORT: tells the engine to use a specific port number.
 * PRIMARYNET: affects how the engine handles network binding.

User

 * NOHOMEDIR: Override use of My Documents folder as home directory.
 * NOFORCEFEEDBACK: Disable force feedback in the engine.
 * NOSOUND: Disable any sound output from the engine.
 * NOSPLASH: Disable use of splash image when loading game.
 * NOTEXTURESTREAMING: Disable texture streaming. Highest quality textures are always loaded.
 * ONETHREAD: Run the engine using a single thread instead of multi-threading.
 * PATHS: set what paths to use for testing wrangled content. Not used for shipping releases.
 * PREFERREDPROCESSOR: Set the thread affinity for a specific processor.
 * USEALLAVAILABLECORES: Force the use of all available cores on the target platform.

Server Switches

 * LOGIN: set username to use when logging in.
 * PASSWORD: set password to use when logging in.

Game Stats/Database

 * CSVSTATS: Write stats to file using comma separated format.
 * GAMESTATS: Use game stats visualization.
 * NODATABASE: Do not use database. Ignore database connection errors.
 * NOGADWARNING: Disable game asset database warning on editor startup.
 * NOLIVETAGS: Skip loading unverified tag changes from SQL database. Only load for current user.
 * STARTSTATSFILE: Begin writing to the stats file.
 * STATFILE: Set the name of the file to output stats to.
 * XMLSTATS: Write stats to file using XML format.

INI/Config Files
Another command line argument may be used to temporarily override which INIs are loaded by the game or editor. For example, if a custom 'MyGame.ini' is to be used instead of 'UDKGame.ini', the argument would be (i.e., -GAMEINI=MyGame.ini). This table lists the arguments used to override the different INI files used in UE3:
 * ENGLISHCOALESCED: Revert to the default (English) coalesced .ini if the language-localized version cannot be found.
 * NOAUTOINIUPDATE: Suppress prompts to update .ini files.
 * NOINI: Do not update the .ini files.
 * REGENERATEINIS: forces .ini files to be regenerated.

Available in builds after May 2012

Individual .ini file values for basic data types (arrays and structs not handled) can also be overridden on the commandline now (in Debug/Release/Test, not Shipping/FINAL_RELEASE).

This feature is generally meant for mobile (or console), where it's easy to change the commandline, but can be hard to recook your data just to update a .ini setting. It works like this:

-ini:IniName:Section1.Key1=Value1,Section2.Key2=Value2,... For example:

-ini:PS3-UDKEngine:Engine.Engine.bSmoothFrameRate=False,TextureStreaming.PoolSize=100 -ini:ExoGame:AwesomeBoss.HitPoints=100000 It's important to use the proper .ini name!! This has only been tested with the generated .ini files (UDKEngine, not DefaultEngine), so I suggest sticking with those.

IMPORTANT: Using this feature on PC will cause your local generated .ini files to be updated. On consoles/mobile, those .inis are read only, so it will only affect that run of the game.

Debugging

 * BugLoc (e.g. BugLoc=(X=1798.8569,Y=475.9513,Z=-8.8500))
 * BugRot (e.g. BugRot=(Pitch=-1978,Yaw=-7197,Roll=0))

Misc.

 * timelimit (e.g. timelimit=[time])
 * goalscore (e.g. goalscore=[score])
 * numbots (e.g. numbots=[num])

Source
Unreal Engine 3 Command-Line Arguments