Command line options: Difference between revisions

From EDukeWiki
Jump to navigation Jump to search
mNo edit summary
NY00123 (talk | contribs)
m Ensure VoidSW sample commands for P2P mode are listed separately, and use code tags
 
(12 intermediate revisions by 2 users not shown)
Line 32: Line 32:
|-
|-
| <code>-clipmap [file.map]</code>
| <code>-clipmap [file.map]</code>
|Load an additional clipping map to define physical geometry for sprites, voxels and 3d models, for use with [[clipshape]].
| Load an additional clipping map to define physical geometry for sprites, voxels and 3d models, for use with [[clipshape]]  
| Default is <code>_clipshape0.map</code>.
|-
|-
| <code>-d [file.edm][:arg1,arg2]</code>
| <code>-d [file.edm][:arg1,arg2]</code>
| Plays an eduke32 demo. Can take optional parameters "arg1" and "arg2" which represent "frames per tic" and "number of repeats" respectively, and are used for debug performance profiling.
| Plays an eduke32 demo. Can take optional parameters "arg1" and "arg2" which represent "frames per tic" and "number of repeats" respectively, and are used for debug performance profiling.
| By default, the game plays a loop starting at <code>edemo001.dem</code>.
| By default, the game plays a loop starting at <code>edemo001.edm</code>.
|-
|-
| <code>-debughelp</code>  
| <code>-debughelp</code>  
|Displays debug parameters and exits.
|Displays debug parameters and exits.
|
|-
| <code>-forcegl</code>
| Disables GL driver blacklist on Windows.
|
|
|-
|-
Line 47: Line 52:
|-
|-
| <code> -gamegrp [file.grp]</code>
| <code> -gamegrp [file.grp]</code>
|Selects which file to use as main grp.
| Defines which file to use as main grp.
|
|
|-
|-
Line 83: Line 88:
|-
|-
| <code>-noautoload</code>
| <code>-noautoload</code>
| Disable loading content from the [[autoload]] directory.
| Disables loading content from the [[autoload]] directory.
|
|-
| <code>-nocontroller</code>
| Completely disable controller support.
|
|
|-
|-
| <code>-nodinput</code>
| <code>-nodinput</code>
| Disable DirectInput (joystick) support.
| Disable DirectInput (controller) support. (Windows)
|
|-
| <code>-noxinput</code>
| Disable XInput (controller) support. (Linux)
|
|
|-
|-
Line 153: Line 166:
== Multiplayer Parameters ==
== Multiplayer Parameters ==


Note: Multiplayer is currently non-functional in mainline eduke32. For a working implementation, see [https://voidpoint.io/StrikerTheHedgefox/eduke32-csrefactor/-/releases EDuke32-OldMP].
Note: Multiplayer is currently non-functional in mainline eduke32. For a working implementation, see [https://voidpoint.io/StrikerTheHedgefox/eduke32-csrefactor/-/releases NetDuke32].


The corresponding parameters are listed here for the sake of completeness.
The corresponding parameters are listed here for the sake of completeness.
Line 189: Line 202:
|-
|-
| <code>-password [pw]</code>
| <code>-password [pw]</code>
| Password required to authenticate when connecting to server. Default is no password.
| Password required to authenticate when connecting to server.
|
| Default is no password.
|-
|-
| <code>-port</code>
| <code>-port</code>
Line 208: Line 221:
|(see [[multiplayer]])
|(see [[multiplayer]])
|}
|}


== Removed Parameters ==
== Removed Parameters ==
Line 216: Line 228:
{| {{prettytable}}
{| {{prettytable}}
!Parameter!!Description!!Notes!!
!Parameter!!Description!!Notes!!
|-
| <code>-stun</code>
| Use UDP hole punching for multiplayer connections.
|
|-
|-
| <code>-#</code>
| <code>-#</code>
Line 225: Line 233:
| EDuke32 no longer uses a fixed number of save slots, hence no longer works.
| EDuke32 no longer uses a fixed number of save slots, hence no longer works.
|-
|-
| <code>-rmnet</code>
| <code> -conversion [YYYYMMDD] </code>  
| Use network config file.
| Selects CON script version for compatibility with older mods.
| (OBSOLETE, see -net)
|
|-
| <code>-f#</code>
|Send fewer packets in multiplayer (1, 2, 4)
|(deprecated)
|-
|-
| <code>-i#</code>
| <code>-i#</code>
Line 236: Line 248:
| Dump default gamevars to gamevars.txt
| Dump default gamevars to gamevars.txt
|
|
|-
| <code>-rmnet</code>
| Use network config file.
| (OBSOLETE, see -net)
|-
| <code>-stun</code>
| Use UDP hole punching for multiplayer connections.
|
|-
|}
= Mapster32 Parameters =
Usage: <code>mapster32 [files] [options]</code><br>
Example: <code>mapster32 nukeland.map -usecwd -cfg myconfig.cfg </code>
Files can be of types <code>{grp | zip | map | con | def}</code>.
* Specifying a <code>{grp|zip}</code> file is equivalent to using the <code>-j</code> parameter.
* If a .map file is specified, it is directly opened in the editor.
* If a .con file is specified, it is used as the main resource for M32 CON commands.
* If a .def file is specified, it is used as the main DEF script.
The set of parameters for mapster32 has some overlap with eduke32. Below is the complete list.
== Shared Parameters ==
{| {{prettytable}}
!Parameter!!Description!!Notes!!
|-
| <code>-?</code><br><code>--help</code>
| Displays a help message listing the available parameters, then exits.
|
|-
| <code> -addon {0,1,2,3}</code>
| Load addon data like eduke32 equivalent.
| 0 = none, 1 = DukeDC, 2 = DukeNW, 3 = Duke Caribbean
|-
| <code>-cachesize [size]</code>
| Sets initial cache size in KB.
| Unlike eduke32, this parameter has an upper limit of 1 MB.
|-
| <code>-cfg [cfg_path]</code>
| Use an alternate configuration file.
| Default is "mapster32.cfg".
|-
| <code>-clipmap [file.map]</code>
| Load an additional clipping map to define physical geometry for sprites, voxels and 3d models, for use with [[clipshape]].
| Default is <code>_clipshape0.map</code>.
|-
| <code>-forcegl</code>
| Disables GL driver blacklist on Windows.
|
|-
| <code>-grp [path]</code><br><code>-g [path]</code>
| Use an extra group (or .pk3 or .zip) file to load data from.
|
|-
| <code>-game_dir [dir]</code>
| Set the directory from which to load files, which also changes where the cfg is created.
|
|-
| <code> -gamegrp [file.grp]</code>
| Defines which file to use as main grp.
|
|-
| <code>-h [file.def]</code>
| Specifies the main DEF file.
|
|-
| <code>-j [dir]</code>
|Adds a directory to Mapster32's search list.
|
|-
| <code> -mh [file.def]</code>
|Include an additional DEF module, appended after the main DEF code.
|
|-
| <code> -mx [file.con]</code>
| Include an additional M32 script module.
| See also the [[Console_commands#Editor-Specific| include command]].
|-
| <code>-nam</code><br><code>-napalm</code><br><code>-ww2gi</code>
|Run in [[NAM]] or [[WWII GI]] -compatible mode.
|
|-
| <code>-noautoload</code>
| Disables loading content from the [[autoload]] directory.
|
|-
| <code>-usecwd</code>
| Force mapster32 to read game data and configuration files from the current working directory.
| See also [[user_profiles_disabled]].
|-
| <code>-x [game.con]</code>
| Replace the main GAME.CON with the specified file.
| GAME.CON code is only needed for sound definitions.
|-
|}
== Unique Parameters ==
{| {{prettytable}}
!Parameter!!Description!!Notes!!
|-
| <code>-check</code> <br> <code> -nocheck </code>
| Enables/Disables map pointer checking when saving.
| Default is disabled.
|-
| <code> -namesfile [names.h]</code>
| Path to a different names file for tile numbers.
| Default is 'names.h'.
|-
|}
= VoidSW Parameters =
Usage: <code>voidsw [options]</code><br>
Example: <code>voidsw -addon1 -level3 -cheat</code>
VoidSW currently does not take files directly as arguments.
{| {{prettytable}}
!Parameter!!Description!!Notes!!
|-
| <code>-?</code>
|Displays a help message listing the available parameters, then exits.
|
|-
| <code>-addon#</code>
| Launch one of the expansions included in Shadow Warrior Classic Complete.
| 0 = SW v1.2,  1 = Wanton Destruction, 2 = Twin Dragon
|-
| <code>-cheat</code>
| If combined with <code>-level#</code>, starts the game with all weapons, inventory items and god mode on.
|
|-
| <code>-dr[filename]</code>
| Records a demo with the given filename. Requires the <code>-level#</code> parameter to also be set.
| No space between param and filename!
|-
| <code>-dp[filename]</code>
| Starts playback of the given demo file.
| No space between param and filename!
|-
| <code>-extcompat </code>
| Controller compatibility mode. Multiplies movescale and turnscale by 5.
|
|-
| <code>-g[file.grp]</code>
| Load the specified GRP or ZIP file as main data.
| No space between param and filename!
|-
| <code>-h[file.def]</code>
| Load the specified file as the main DEF.
| No space between param and filename!
|-
| <code>-j [dir]</code>
| Adds the given directory to look for game data.
|
|-
| <code>-level# </code>
| Load the specified level on startup (0-27).
| Does not use episodic structure unlike Duke.
|-
| <code>-map [file.map]</code>
| Launch the specified usermap.
|
|-
| <code>-mh[file.def]</code>
| Load the specified file as DEF module.
| No space between param and filename!
|-
| <code>-monst </code>
| Disables monsters.
|
|-
| <code>-movescale [val]</code>
| Adjusts the movement scale: 256 = 1 unit
|
|-
| <code>-nodemo </code>
| Disables demo playback on the title screen.
|
|-
| <code>-noinstancechecking</code>
| Prevents voidsw from checking whether another instance is already running.
|
|-
| <code>-nologo</code> <br> <code>-quick</code>
| Skip all the startup animations and logos.
|
|-
| <code>-nometers</code>
| Prevents boss health bars and the air meter from being drawn onscreen.
|
|-
| <code>-s# </code>
| Defines the skill level (1-4).
|
|-
| <code>-setup </code> <br> <code>-nosetup</code>
| Enable/Disable the setup dialog.
|
|-
| <code>-turnscale [val]</code>
| Adjusts the turning scale: 256 = 1 unit
|
|-
| <code>-usecwd</code>
| Force VoidSW to read game data and configuration files from working directory.
| See also [[user_profiles_disabled]].
|-
|}
== Multiplayer Parameters ==
=== Options ===
The following parameters define multiplayer game options and must be listed first.
{| {{prettytable}}
!Parameter!!Description!!Notes!!
|-
| <code>-autonet [params]</code>
| The autonet parameter defines multiplayer game options, and takes exactly 10 arguments, separated by commas.
These are, in order:
* <code>[game_type]</code>: 0=WangBang, 1=WangBang (no item respawn), 2=Coop
* <code>[level]</code>: Which level should be played (0-27). No episodic separation.
* <code>[skill]</code>: Skill level (0-4). (0 being "no monsters")
* <code>[markers]</code>: If set to 1, will enable item respawn markers (0/1).
* <code>[team]</code>: Whether WangBang is Free-For-All (0) or Team Deathmatch (1).
* <code>[hurtteam]</code>: If set to 1, friendly fire is on (coop or TDM).
* <code>[kill]</code>: Defines the frag limit for Commbat.
* <code>[time]</code>: Index that defines the time limit, 0 being no limit. Available limits: <code>{0,3,5,10,15,20,30,45,60} minutes</code>.
* <code>[color]</code>: Player palette value. This determines the team colors.
* <code>[nuke]</code>: If 0, will replace nuke pickups with railgun ammo. (0/1)
| Example Use: <code> -autonet 0,0,1,1,1,0,3,2,1,1 </code>
|-
| <code>-col #</code>
| Forces the player palette for joining players.
| Workaround because <code>-autonet</code> fails to do so.
|-
|-
| <code>-f#</code>
| <code>-f#</code>
|Send fewer packets in multiplayer (1, 2, 4)
| Packet duplication, i.e. how many "moves" are sent per packet. Choose higher values for lossy connections.
|(deprecated)
| Valid values: <code>{2,4,8}</code>
|-
| <code>-name [pname]</code>
| Sets the connecting player's name to the given value.
|
|-
| <code>-nopredict</code>
| Disables network prediction method, i.e., player position is no longer predicted.
|
|-
| <code>-short </code>
| Divides the frag limit by 10 and halves the time limit.
|
|-
|}
 
=== Connection Establishment ===
 
The following parameters define which game to connect to, and MUST be listed last.
 
Any other parameters that follow <code>-net</code> will be ignored.
 
{| {{prettytable}}
!Parameter!!Description!!Notes!!
|-
| <code>-net</code>
| Required to use the parameters listed below.
|
|-
| <code>[ip]:[port]</code> <br> <code>[hostname]:[port]</code>
| Connect to the given IP/hostname and port.
|
|-
| <code>-n0:# </code> <br> <code>-i0:#</code>
| Host a netgame in master-slave mode, expecting # players to join before launch.
|
|-
| <code>-n1</code> <br> <code>-i1</code>
| Use in peer-to-peer mode. The [hostname]:[port] pairs must be listed in the same order for all players, with the exception that -N1 has to be specified instead of the current player's [hostname]:[port] pair.
|
|-
| <code>-p#</code>
| Defines the port # to use for hosting. Valid range: 1025-65534
|
|-
|}
 
Usage example for 3-players game in peer-to-peer mode:
 
Player 1: <code>voidsw -net -n1 &lt;hostname2:port2&gt; &lt;hostname3:port3&gt;</code>
 
Player 2: <code>voidsw -net &lt;hostname1:port1&gt; -n1 &lt;hostname3:port3&gt;</code>
 
Player 3: <code>voidsw -net &lt;hostname1:port1&gt; &lt;hostname2:port2&gt; -n1</code>
 
== Debug Parameters ==
 
The following parameters are used to debug VoidSW.
 
{| {{prettytable}}
!Parameter!!Description!!Notes!!
|-
| <code>-allsync </code>
| Sets sync bytes to 8 outside of demo recording. (purpose?)
|
|-
| <code>-cam</code>
| Enables camera view during normal gameplay, as if a demo recording is playing.
|
|-
| <code>-commbat#</code>
| Enables fake WangBang with the specified number of players.
|
|-
| <code>-coop#</code>
| Enables fake coop with the specified number of players.
|-
| <code>-debug </code>
| Only enabled for DEBUG builds. Shows debug help options.
|
|-
| <code>-debugactor</code>
| Disables all monsters. (same as <code>-monst</code>)
|
|-
| <code>-debuganim</code>
| Disables all animations.
|
|-
| <code>-debugpanel</code>
| Disables panel update. (?)
|  
|-
| <code>-debugsecret</code>
| Displays debug info whenever an enemy is killed.
|
|-
| <code>-debugsector</code>
| Disables sector movement.
|
|-
| <code>-debugso</code>
| Disables sector objects.
|
|-
| <code>-ddr[filename]</code>
| Records a demo in debug mode with the given filename. Requires the <code>-level#</code> parameter to also be set.
|
|-
| <code>-demosyncrecord </code>
| Sets sync bytes to 8, records demo sync information to a file.
|
|-
| <code>-demosynctest</code>
| Sets sync bytes to 8, reads previously recorded demo sync information and errors out if demo playback doesn't match.
|
|-
| <code>-randprint</code>
| Prints the output of krand() functions whenever they are called.
|
|-
| <code>-mono</code>
| Enables some debug output during gameplay.
|
|-
| <code>-nosyncprint</code>
| Disables the "out-of-sync" message in multiplayer.
|
|-
|}
 
 
== Inactive Parameters ==
 
The following SW parameters are disabled, or have been removed.
 
{| {{prettytable}}
!Parameter!!Description!!Notes!!
|-
| <code>-bots</code>
| Disabled. Would have added bots to fake multiplayer games.
|
|-
| <code>-broadcast</code>
| Replaced by -net
|
|-
| <code>-cacheprint</code>
| Used to print to stdout whenever a sound effect is cached/loaded.
|
|-
| <code>-de[arg]</code>
| Demo editing? Disabled.
|
|-
| <code>-dt[arg]</code>
| Temporary demo? Disabled.
|
|-
| <code>-m </code>
| Replaced by -monst.
|
|-
| <code>-masterslave</code>
| Replaced by -net
|
|-
| <code>-nocdaudio</code>
| Originally disabled the Redbook music.
|
|-
| <code>-setupfile [arg]</code>
| Originally used by setup.exe
|
|-
|-
|}
|}

Latest revision as of 22:09, 19 September 2024

EDuke32 Parameters

Usage: eduke32 [files] [options]
Example: eduke32 nukeland.map -usecwd -cfg myconfig.cfg

Files can be of types {grp | zip | pk3 | pk4 | map | con | def | rts}.

  • Specifying a {grp|zip|pk3|pk4} file is equivalent to using the -g parameter.
  • If a .map file is specified, it is immediately loaded and launched as a usermap (equivalent to -map).
  • If a .con file is specified, it replaces GAME.CON (equivalent to -x).
  • If a .def file is specified, it is used as the main DEF file (equivalent to -h).
  • If a .rts file is specified, it is used as the main RTS soundbank (equivalent to -rts).
Parameter Description Notes
-?
--help
Displays a help message listing the available parameters, then exits.
-addon {0,1,2,3} Launch one of the addons for Duke 3D (if present), packaged with the Megaton Edition release. 0 = none, 1 = Duke it out in D.C., 2 = Duke: Nuclear Winter, 3 = Duke Caribbean: Life's a Beach
-cachesize [size] Sets initial cache size, in kilobytes. Usually not needed, as cache size is adjusted dynamically. See also cachesize (DEF).
-cfg [cfg_path] Use an alternate configuration file. Default is "eduke32.cfg".
-clipmap [file.map] Load an additional clipping map to define physical geometry for sprites, voxels and 3d models, for use with clipshape Default is _clipshape0.map.
-d [file.edm][:arg1,arg2] Plays an eduke32 demo. Can take optional parameters "arg1" and "arg2" which represent "frames per tic" and "number of repeats" respectively, and are used for debug performance profiling. By default, the game plays a loop starting at edemo001.edm.
-debughelp Displays debug parameters and exits.
-forcegl Disables GL driver blacklist on Windows.
-game_dir [dir] Duke3d_w32 compatibility option. Set the directory from which to load files, which also changes where the cfg is created. See also '-j'
-gamegrp [file.grp] Defines which file to use as main grp.
-grp [path]
-g [path]
Use an extra group (or .pk3 or .zip) file to load data from.
-h [file.def] Specify the main DEF file. By default uses 'duke3d.def' if present in the folder.
-j [dir] Adds a directory to EDuke32's search list. Does not alter the directory for config files.
-map [file.map] Starts the specified usermap on launch.
-mh [file.def] Include an additional DEF module, appended after the main DEF code.
-mx [file.con] Include an additional CON script module, appended after the GAME.CON code.
-m Disable monsters (m_monsters_off = 1) and sets m_player_skill and player_skill to 0.
-nam
-napalm
-ww2gi
Run in NAM or WWII GI -compatible mode.
-noautoload Disables loading content from the autoload directory.
-nocontroller Completely disable controller support.
-nodinput Disable DirectInput (controller) support. (Windows)
-noxinput Disable XInput (controller) support. (Linux)
-noinstancechecking Prevents eduke32 from checking whether another instance is already running.
-nologo
-quick
Skip all the startup animations and logos.
-nosteam Disables Steam community API integrations (such as achievements) if binary is compiled with parameter EDUKE32_STANDALONE. Currently only relevant for Ion Fury builds.
-ns -nm Disable sound and music respectively.
-r Enables demo recording.
-rotatesprite-no-widescreen Debug parameter. If set, screen tiles (such as weapons) logos and menu tiles will be stretched horizontally.
-s# Set the skill level (0-4). Cannot exceed 4 even when more skill levels are defined. Setting this to 4 is hardcoded to enable respawn_monsters and m_respawn_monsters, regardless of what the skill itself defines.
-setup
-nosetup
Enables/disables startup window [only on Windows, SDL, and/or GTK2 environments]
-t# Set respawn mode: 1 = Monsters, 2 = Items, 3 = Inventory, x = All
-usecwd Force eduke32 to read game data and configuration files from working directory. See also user_profiles_disabled.
-u######### Define the weapon switch order, as a string of 10 digits. (Default: 3425689071)
-v[X] -l[Y] Warp to episode X, level Y if used together. If either is omitted, then warp assumes episode 1, resp. level 1.
-w Show coordinates as well as other debug information, including current sector num, lotag and hitag.
-x [game.con] Replace the main GAME.CON with the specified script file.
-z#
-condebug
Enable line-by-line CON compile debugging at level #, and print the number of labels, variables and arrays used.

Multiplayer Parameters

Note: Multiplayer is currently non-functional in mainline eduke32. For a working implementation, see NetDuke32.

The corresponding parameters are listed here for the sake of completeness.

Parameter Description Notes
-a Use fake player AI (dukebots) (fake multiplayer only). Sets playerai to 1, which doesn't do anything as of r9392.
-c# Changes the value of m_coop to set the multiplayer mode.
-connect [ip] Connect to the specified IP address. (see multiplayer)
-dedicated Start eduke32 in dedicated server mode. (see multiplayer)
-name [name] Set the player name on startup. Can also be changed ingame.
-net Legacy P2P networking. Disabled as of r9392. Will exit with an error message.
-noffire Disables friendly fire in coop games (i.e. m_ffire set to 0).
-password [pw] Password required to authenticate when connecting to server. Default is no password.
-port Specify which UDP port to use for hosting the game or connecting.
-q# Fake multiplayer with # (2-16) players.
-rts [file.rts] Use the specified RTS soundbank for remote ridicule sounds. Defaults: {DUKE.RTS, NAM.RTS, NAPALM.RTS, WW2GI.RTS}
-server Start multiplayer server for network games. (see multiplayer)

Removed Parameters

The following parameters used to exist, but are no longer referenced in current eduke32 revisions.

Parameter Description Notes
-# Load and run a game from slot # (0-9) EDuke32 no longer uses a fixed number of save slots, hence no longer works.
-conversion [YYYYMMDD] Selects CON script version for compatibility with older mods.
-f# Send fewer packets in multiplayer (1, 2, 4) (deprecated)
-i# Use networking mode (1/0)
-nD Dump default gamevars to gamevars.txt
-rmnet Use network config file. (OBSOLETE, see -net)
-stun Use UDP hole punching for multiplayer connections.

Mapster32 Parameters

Usage: mapster32 [files] [options]
Example: mapster32 nukeland.map -usecwd -cfg myconfig.cfg

Files can be of types {grp | zip | map | con | def}.

  • Specifying a {grp|zip} file is equivalent to using the -j parameter.
  • If a .map file is specified, it is directly opened in the editor.
  • If a .con file is specified, it is used as the main resource for M32 CON commands.
  • If a .def file is specified, it is used as the main DEF script.

The set of parameters for mapster32 has some overlap with eduke32. Below is the complete list.

Shared Parameters

Parameter Description Notes
-?
--help
Displays a help message listing the available parameters, then exits.
-addon {0,1,2,3} Load addon data like eduke32 equivalent. 0 = none, 1 = DukeDC, 2 = DukeNW, 3 = Duke Caribbean
-cachesize [size] Sets initial cache size in KB. Unlike eduke32, this parameter has an upper limit of 1 MB.
-cfg [cfg_path] Use an alternate configuration file. Default is "mapster32.cfg".
-clipmap [file.map] Load an additional clipping map to define physical geometry for sprites, voxels and 3d models, for use with clipshape. Default is _clipshape0.map.
-forcegl Disables GL driver blacklist on Windows.
-grp [path]
-g [path]
Use an extra group (or .pk3 or .zip) file to load data from.
-game_dir [dir] Set the directory from which to load files, which also changes where the cfg is created.
-gamegrp [file.grp] Defines which file to use as main grp.
-h [file.def] Specifies the main DEF file.
-j [dir] Adds a directory to Mapster32's search list.
-mh [file.def] Include an additional DEF module, appended after the main DEF code.
-mx [file.con] Include an additional M32 script module. See also the include command.
-nam
-napalm
-ww2gi
Run in NAM or WWII GI -compatible mode.
-noautoload Disables loading content from the autoload directory.
-usecwd Force mapster32 to read game data and configuration files from the current working directory. See also user_profiles_disabled.
-x [game.con] Replace the main GAME.CON with the specified file. GAME.CON code is only needed for sound definitions.

Unique Parameters

Parameter Description Notes
-check
-nocheck
Enables/Disables map pointer checking when saving. Default is disabled.
-namesfile [names.h] Path to a different names file for tile numbers. Default is 'names.h'.

VoidSW Parameters

Usage: voidsw [options]
Example: voidsw -addon1 -level3 -cheat

VoidSW currently does not take files directly as arguments.

Parameter Description Notes
-? Displays a help message listing the available parameters, then exits.
-addon# Launch one of the expansions included in Shadow Warrior Classic Complete. 0 = SW v1.2, 1 = Wanton Destruction, 2 = Twin Dragon
-cheat If combined with -level#, starts the game with all weapons, inventory items and god mode on.
-dr[filename] Records a demo with the given filename. Requires the -level# parameter to also be set. No space between param and filename!
-dp[filename] Starts playback of the given demo file. No space between param and filename!
-extcompat Controller compatibility mode. Multiplies movescale and turnscale by 5.
-g[file.grp] Load the specified GRP or ZIP file as main data. No space between param and filename!
-h[file.def] Load the specified file as the main DEF. No space between param and filename!
-j [dir] Adds the given directory to look for game data.
-level# Load the specified level on startup (0-27). Does not use episodic structure unlike Duke.
-map [file.map] Launch the specified usermap.
-mh[file.def] Load the specified file as DEF module. No space between param and filename!
-monst Disables monsters.
-movescale [val] Adjusts the movement scale: 256 = 1 unit
-nodemo Disables demo playback on the title screen.
-noinstancechecking Prevents voidsw from checking whether another instance is already running.
-nologo
-quick
Skip all the startup animations and logos.
-nometers Prevents boss health bars and the air meter from being drawn onscreen.
-s# Defines the skill level (1-4).
-setup
-nosetup
Enable/Disable the setup dialog.
-turnscale [val] Adjusts the turning scale: 256 = 1 unit
-usecwd Force VoidSW to read game data and configuration files from working directory. See also user_profiles_disabled.

Multiplayer Parameters

Options

The following parameters define multiplayer game options and must be listed first.

Parameter Description Notes
-autonet [params] The autonet parameter defines multiplayer game options, and takes exactly 10 arguments, separated by commas.

These are, in order:

  • [game_type]: 0=WangBang, 1=WangBang (no item respawn), 2=Coop
  • [level]: Which level should be played (0-27). No episodic separation.
  • [skill]: Skill level (0-4). (0 being "no monsters")
  • [markers]: If set to 1, will enable item respawn markers (0/1).
  • [team]: Whether WangBang is Free-For-All (0) or Team Deathmatch (1).
  • [hurtteam]: If set to 1, friendly fire is on (coop or TDM).
  • [kill]: Defines the frag limit for Commbat.
  • [time]: Index that defines the time limit, 0 being no limit. Available limits: {0,3,5,10,15,20,30,45,60} minutes.
  • [color]: Player palette value. This determines the team colors.
  • [nuke]: If 0, will replace nuke pickups with railgun ammo. (0/1)
Example Use: -autonet 0,0,1,1,1,0,3,2,1,1
-col # Forces the player palette for joining players. Workaround because -autonet fails to do so.
-f# Packet duplication, i.e. how many "moves" are sent per packet. Choose higher values for lossy connections. Valid values: {2,4,8}
-name [pname] Sets the connecting player's name to the given value.
-nopredict Disables network prediction method, i.e., player position is no longer predicted.
-short Divides the frag limit by 10 and halves the time limit.

Connection Establishment

The following parameters define which game to connect to, and MUST be listed last.

Any other parameters that follow -net will be ignored.

Parameter Description Notes
-net Required to use the parameters listed below.
[ip]:[port]
[hostname]:[port]
Connect to the given IP/hostname and port.
-n0:#
-i0:#
Host a netgame in master-slave mode, expecting # players to join before launch.
-n1
-i1
Use in peer-to-peer mode. The [hostname]:[port] pairs must be listed in the same order for all players, with the exception that -N1 has to be specified instead of the current player's [hostname]:[port] pair.
-p# Defines the port # to use for hosting. Valid range: 1025-65534

Usage example for 3-players game in peer-to-peer mode:

Player 1: voidsw -net -n1 <hostname2:port2> <hostname3:port3>

Player 2: voidsw -net <hostname1:port1> -n1 <hostname3:port3>

Player 3: voidsw -net <hostname1:port1> <hostname2:port2> -n1

Debug Parameters

The following parameters are used to debug VoidSW.

Parameter Description Notes
-allsync Sets sync bytes to 8 outside of demo recording. (purpose?)
-cam Enables camera view during normal gameplay, as if a demo recording is playing.
-commbat# Enables fake WangBang with the specified number of players.
-coop# Enables fake coop with the specified number of players.
-debug Only enabled for DEBUG builds. Shows debug help options.
-debugactor Disables all monsters. (same as -monst)
-debuganim Disables all animations.
-debugpanel Disables panel update. (?)
-debugsecret Displays debug info whenever an enemy is killed.
-debugsector Disables sector movement.
-debugso Disables sector objects.
-ddr[filename] Records a demo in debug mode with the given filename. Requires the -level# parameter to also be set.
-demosyncrecord Sets sync bytes to 8, records demo sync information to a file.
-demosynctest Sets sync bytes to 8, reads previously recorded demo sync information and errors out if demo playback doesn't match.
-randprint Prints the output of krand() functions whenever they are called.
-mono Enables some debug output during gameplay.
-nosyncprint Disables the "out-of-sync" message in multiplayer.


Inactive Parameters

The following SW parameters are disabled, or have been removed.

Parameter Description Notes
-bots Disabled. Would have added bots to fake multiplayer games.
-broadcast Replaced by -net
-cacheprint Used to print to stdout whenever a sound effect is cached/loaded.
-de[arg] Demo editing? Disabled.
-dt[arg] Temporary demo? Disabled.
-m Replaced by -monst.
-masterslave Replaced by -net
-nocdaudio Originally disabled the Redbook music.
-setupfile [arg] Originally used by setup.exe