Cache Skin (nm_cacheSkin)

Forces player models/skins to be loaded into memory, which can reduce future load times.

Usage: nm_cacheSkin <model(s), separated by spaces>

Example: nm_cacheSkin kyle jan desann reborn/boss

If no skin is specified (e.g. red, blue, default), all skins for that model will be loaded.

Use the special argument all to load all detected player models/skins into memory (takes a long time), or use the special argument allteam to load all red/blue player models/skins into memory (takes some time). These are helpful if you are going to be playing for a few hours and want to load all skins into memory before starting.

This command works from the main menu, so you can add it to your autoexec.cfg if you wish.

Client List (clientlist)

Displays a list of all connected clients and their real client numbers.

Helpful for commands that require client numbers, such as nm_playerTracker.

Copy URL (copy)

Open URL (open)

After someone writes a URL in chat, it is assigned an ID number. You can then use open [id] to open the URL in your default browser, or copy [id] to copy it to the clipboard.

You may optionally leave out the argument to simply open the last detected URL.

You can disable this with cg_chatURLs (for example, if trolls are spamming dumb links).

Countdown Timer (nm_timer)

Draws a countdown timer on your screen.

Usage: nm_timer <time in seconds> [optional parameters, separated by spaces]

First argument (time in seconds) is required. Additional optional parameters can be:

Argument: name=​<name>Description: Writes a small label over the timer.
Argument: color=​<color>Description: Changes the color of the timer. For <color>, use any color name or hex code, e.g. purple or #ff00ff.
Argument: replaceDescription: If a timer with this name already exists, it will be replaced with this one.
Argument: onceDescription: If a timer with this name already exists, nothing will happen.
Argument: toggleDescription: If a timer with this name already exists, it will be stopped.
Argument: hideNameDescription: If a name exists for this timer, it will be hidden. This allows the name to simply act as an internal identifier (for replace, once, toggle, and cooldown) rather than actually visible text.
Argument: removeOnDeathDescription: This timer will be automatically removed when you die.
Argument: startSoundDescription: Plays a sound when the timer starts.
Argument: endSoundDescription: Plays a sound when the timer finishes.
Argument: cooldown=​<time in seconds>Description: If a timer with this name already exists and was started more recently than <time in seconds>, nothing will happen. Useful for preventing accidental double presses, e.g. using cooldown=1.5 to match the 1.5-second cooldown of timed force powers.
Argument: vstr=​<arguments>Description: Execute the contents of one or more cvars. This parameter can be used in three ways:
  • With a cvar name as the only argument: executes the contents of a single cvar when the timer reaches zero. Example:

    set myCvar "say_team My timer has expired."
    nm_timer 30 vstr=​myCvar

  • With a number and a cvar name, separated by a colon: executes the contents of a single cvar at a specified time. Example:

    set myCvar "say_team There are 5 seconds left on my timer!"
    nm_timer 30 vstr=​5:myCvar

  • With multiple number+cvar pairs separated by commas: executes the contents of multiple cvars at various times. Example:

    set myCvar "say_team There are 5 seconds left on my timer!"
    set myOtherCvar "say_team My timer has expired."
    nm_timer 30 vstr=​5:myCvar,​0:myOtherCvar
Argument: hideDescription: Do not display the timer. Most useful in combination with vstr.


nm_timer 120

nm_timer 20 name=Protect color=green replace

nm_timer 20 once name=Overboard

Custom Menu (nm_customMenu)

Opens a lightweight, customizable menu. Can be used three different ways:

  • Without any arguments: opens a menu containing up to 36 options (6 submenus of up to 6 options each). To configure the menu, set the cvars cg_customMenu1 through cg_customMenu6 with the following format, using backslashes to separate parameters: title​\label 1​\command 1​\label 2​\command 2...


    cg_customMenu1 "Team chats\Get\say_team Get the flag!\Cap\say_team Capture the flag!"

    cg_customMenu2 "Favorite maps\Homon\callvote map mp/ctf_homon\Elrood\callvote map mp/ctf_elrood"

    This creates the following menu structure:

    1. Team chats
         1. Get
         2. Cap
    2. Favorite maps
         1. Homon
         2. Elrood
  • With an argument containing menu parameters: defines and opens a single menu with up to 6 options.

    Example: nm_customMenu "Team chats\Get\say_team Get the flag!\cap\say_team Capture the flag!"

  • With a numeric argument: opens the cvar-based custom menu directly to a specified submenu.

    Example: nm_customMenu 3 is equivalent to using nm_customMenu and then selecting the third submenu.

Delay/Wait Freely Commands:

Delay (delay)

Waits a specified time (in milliseconds) before executing whatever follows. Unlike the base JKA wait command, other commands may freely execute in the meantime.
Example:say darth;​delay 1000;​say vader

Delay Cancel (delaycancel)

Cancels any pending delay(s) that contain the argument. Use "" to match anything.
Example: delaycancel vader

Wait Freely (waitf)

Waits a specified time (in number of frames) before executing whatever follows. Unlike the base JKA wait command, other commands may freely execute in the meantime.
Example:say darth;​waitf 333;​say vader

Wait Freely Cancel (waitfcancel)

Cancels any pending waitf(s) that contain the argument. Use "" to match anything.
Example: waitfcancel vader

Delete Password (nm_deletePassword)

Manually deletes a saved password from the database; stops automatically using a password for the specified server.

Since Newmod automatically deletes passwords if they are detected to be incorrect, this command shouldn't be needed except for unusual cases where a manual override is necessary, such as switching between the normal server password and the private slot password.

Usage: nm_deletePassword <ip:port>

Demo Restart (demo_restart)

Restarts the current or last-played demo.

Force Model (nm_forceModel)

Forces an individual player to a specified model. Models forced with this command take precedence over those from the Force Models cvar (cg_forceModel), and only last for the current session.

Usage: nm_forceModel <client number or partial name> [model]

To reset a player's forced model, omit the [model] argument.

Example: nm_forceModel onasi reelo/default

FPS Test (nm_fps)

Measures average FPS over time. To ensure accurate testing, it is recommended to keep test conditions consistent (do not look around, move, etc.).

Usage: nm_fps [optional duration in seconds]

Defaults to 30 seconds if no duration argument is specified.

If Cvar (ifCvar)

Executes a certain command based on the current setting of a cvar.

Usage: ifCvar [cvar name] <setting> <number of arguments to execute> <arguments to execute> <some other setting> <some other number of arguments> <some other arguments> ...

Settings can optionally begin with special modifiers prepended with $ dollar sign:

Modifier: $=Description: Convert the setting to a number and compare whether it is equal to another number.
Modifier: $!=Description: Convert the setting to a number and compare whether it is unequal to another number.
Modifier: $>Description: Convert the setting to a number and compare whether it is greater than another number.
Modifier: $<Description: Convert the setting to a number and compare whether it is less than another number.
Modifier: $>=Description: Convert the setting to a number and compare whether it is greater than or equal to another number.
Modifier: $<=Description: Convert the setting to a number and compare whether it is less than or equal to another number.
Modifier: $containsDescription: Compare whether the setting contains some text anywhere in it.
Modifier: $beginswithDescription: Compare whether the setting begins with some text.
Modifier: $endswithDescription: Compare whether the setting ends with some text.
Modifier: $elseDescription: This keyword will cause the comparison to always be true.
Modifier: (No modifier used)Description: Compare whether the setting matches some text.

Settings can also reference the value of another cvar by prepending that cvar's name with $.

Simple example: ifCvar cg_myCvar 0 2 say_team hi 1 2 say_team bye → if cg_myCvar is 0, then say_team hi is executed. If it's 1, then say_team bye is executed.

Complex example: ifCvar cg_mycvar $>=$cg_someOtherCvar 1 quit $containsbeer 3 set model desann $else 4 bind x say_team "hello there" → if cg_myCvar is greater than or equal to the value of cg_someOtherCvar, then quit is executed. If it contains the word beer anywhere, then set model desann is executed. For anything else, bind x say_team "hello there" is executed.

Minimize (minimize)

Minimizes JKA.

For vanilla executable users, the Allow Minimize cvar (cl_allowMinimize) controls whether your screen resolution is automatically changed when using this command.

Music Controls:

Next Track (mnext)

Previous Track (mprev)

Pause/Play Music (mpause)

Stop Music (mstop)

These commands simulate hardware media buttons. Useful for controlling your music while in-game.

Note that some music players do not support media buttons by default; for example, VLC Media Player requires media button support to be manually enabled in VLC's settings.

Mute (mute)

Toggles playback of all in-game sound.

NM Tell (nm_tell)

Sends a private message to a specified player, using their client number or partial name. Works with both real player names and locally-forced player names. This command is actually just a preprocessor to the base server command tell.

Usage: nm_tell <client number or partial name> <message>


Let's say there is a player in slot 13 named "Onasi" whom you have locally renamed to "Dead Weight." You can use nm_tell dead hey, which in turn sends the command tell 13 hey, which is a serverside command that sends the client in slot 13 a message saying "hey".

Player Tracker (nm_playerTracker)

Allows you to do many things regarding other players. On base_enhanced/base_entranced servers, this persists even after disconnecting.

Usage: nm_playerTracker <argument>

Arguments can be:

Argument: forcename <client number> <name>Description: Forces a player to have a specified name.
Argument: translate <client number> <their language>Description:

Translate chat messages from a player.

Set your native/preferred language using the Translate To cvar (cg_translateTo), which defaults to english.

Argument: mute <client number>Description:

Disables a player's vchat sounds. Their vchat text will still display in the chatbox, and their vchats may still play beep sounds, depending on your "Chat Beep" (cg_beep) setting.

Argument: softignore <client number>Description: Soft-ignores a player's messages (only see them in the console).
Argument: listDescription: Lists all tracked players present on the server + their tracker ID numbers.
Argument: list offlineDescription: Lists all tracked players + their tracker ID numbers.
Argument: del <tracker ID number>Description: Deletes a player from the player tracker. Make sure to use their tracker ID number, which can be found using nm_playerTracker list. Do not use their client number!


nm_playerTracker forcename 6 noob → renames the player in slot 6 to "noob"

nm_playerTracker translate 3 hun → translates the player in slot 3 from Hungarian.

Quiet CFG Execution (execq)

Executes a CFG file without printing the "execing filename.cfg" message.

Random Command (random)

Executes a random command.

Usage: random <number of arguments> <arguments> <some other number of arguments> <some other arguments> ...

Example: random 1 taunt 1 gloat 2 say "hello there"

Save Demo (saveDemo)

Flags the currently-autorecording demo to be saved after the match. Also notes the current game time so that you can keep track of your nice frags. For example, if you press saveDemo after getting a dank stun baton air at 13:37 and your "Demo Filename Format" (cg_demoFormat) setting is %N, the demo filename will be kejim 1337 Later, if you get another dank frag at 16:30 and press saveDemo again, the demo filename will be kejim 1337,1630.

You can optionally manually override the filename with a custom name, e.g. saveDemo dank stun baton air.

See the Demos page for more information.

Save Last Demo (saveLastDemo)

If you forgot to save the demo from the last match, use this command to make sure it gets saved.

Most users will probably never need this.

See the Demos page for more information.

Shell Command (shell)

Executes a shell command. Requires enabling "Open Shell" (cg_openShell) as a safeguard due to the potential security risks (e.g. trolls telling you to enter commands that will shutdown your computer).

JKA will wait to resume execution until your command finishes execution. If your command will take a while, you may wish to use start before your command so that JKA resumes execution immediately.

If the command returns an output, the cvar shellOutput will be set to that output.

Example: shell python C:/ → runs a Python script

Stopwatch (nm_stopwatch)

Draws a timer on your screen that counts up from zero until stopped. Useful for measuring timings, etc.

Optional parameters, separated by spaces, can be:

Argument: (none)Description: Timer toggles start/stop.
Argument: startDescription: Timer (re)starts at zero.
Argument: pauseDescription: Timer pauses.
Argument: stopDescription: Timer stops.
Argument: x=​<percent>Description: Overrides the x-axis location of the timer on your screen. For example, 50 results in the middle of your screen.
Argument: y=​<percent>Description: Overrides the y-axis location of the timer on your screen. For example, 50 results in the middle of your screen.

Strafe Helper Tweaker (strafe)

Configures your setting for the Strafe Helper cvar (cg_strafeHelper).


strafe → views your current settings.

strafe sound on → enables the sound parameter.

strafe sasd blue → enables the sasd parameter with blue color.

strafe 2 → sets cg_strafeHelper to 2 (race preset).

String Substitution (strSub)

Executes a command, substituting in the contents of cvar(s). Surround cvar names with $ dollar signs.

Example: strsub say "Hello, I am $name$"

Use Toggle (nm_useToggle)

Toggles +use and -use. Useful for playing tech in Siege (allows automatic dispensing of ammo/health).

Vchat (nm_vchat)

Command for sending voice chats (vchats). Can be used several ways:

  • Without any arguments: opens a menu of all installed vchat packs. If you only have one pack installed, the menu just opens directly to that pack.

  • With the argument download, followed by a vchat pack name: attempts to download a vchat pack from the current server, if the server supports it.

    Usage: nm_vchat download <vchat pack name>

  • With a vchat pack name as the argument: opens the vchat menu directly to the specified pack.

    Usage: nm_vchat <vchat pack name>

  • With 2+ arguments: opens the vchat menu directly to the specified pack, and then inputs the specified hotkey sequence.

    Usage: nm_vchat <vchat pack name> <hotkey sequence> [optional team/global]

    For example, nm_vchat vgs gca team opens the "vgs" pack menu, inputs the hotkey sequence G C A, and sends the corresponding message to teammates only.

Custom vchats are added to your JKA via separate add-on mods; they are not included in Newmod. Custom vchats only work on servers that explicitly support this feature. When playing on a non-supporting server, your vchats will instead be sent as standard chat messages.

Vchats are divided into three categories: teamwork, general, and meme. Teamwork and general vchats are processed as standard chat messages on non-Newmod clients. Meme vchats are not processed whatsoever on non-Newmod clients.

By default, you can hold Ctrl when selecting a vchat to send it to allies only, or hold Shift to send it globally. You can customize these keys with the Vchat Modifiers cvar (cg_vchatModifiers). When sending a teamwork vchat globally, or as a spectator, the category is automatically changed to meme (since there's no legitimate reason to give teamwork instructions globally, or as a spectator).

Note to modders: see the "instructions for creating vchat packs.txt" file in the Newmod assets for instructions on how to create your own packs.

VSTR Queue (vstrq)

Queues a VSTR to be executed after a certain delay.

Usage: vstrq <VSTR name> <delay in milliseconds>

For example, if you do vstrq action 5000, the game will wait 5000 milliseconds and then perform vstr action. The advantage of this over the old wait command is that it doesn't block commands from being executed in the mean time; for example, in the past, if you did wait 5000; action, you couldn't do anything for 5 seconds. Now you can do vstrq action 5000 and perform other commands in the mean time.

VSTR Queue Cancel (vstrqcancel)

Cancels a queued VSTR from the vstrq command (see above).

Usage: vstrqcancel <VSTR name>

Weapon Group (nm_weaponGroup)

Cycles through a specified set of weapons. If you aren't currently equipping one of them, you will switch to the first one in the list that you have.

Usage: nm_weaponGroup <weapon names, separated by spaces>

Example: nm_weaponGroup conc rocket golan thermal detpack