home news live stats maps rotation cvars contact
How to DJ?!

DJ command reference

· Updated 2026-05-31
77 entries 16 categories
No commands match the current filter.
Command Aliases Parameters Description Access
@acc
Stats command
@acc [clientNumber]
.acc
clientNumberoptional
Optional client number. The source uses it as a direct numeric index.
Displays weapon accuracy percentages for MG, SG, PG, RL, LG, RG, and GL. public
@insertmap
Maps command
@insertmap <mapName>
.insertmap@im.im
mapNamerequired
Map name without .bsp. Must exist in the available map list.
Inserts a map into the rotation before the current next map. admin: @insertmap
@skipnextmap
Maps command
@skipnextmap
.skipnextmap@snm.snm
none Skips the currently configured next map by advancing the nextmap pointer to the following map. admin: @skipnextmap
@insertmapoverwrite
Maps command
@insertmapoverwrite <mapName>
.insertmapoverwrite@imo.imo
mapNamerequired
Map name without .bsp. Must exist in the available map list.
Overwrites an already inserted map in the rotation. admin: @insertmapoverwrite
@nicks
Player Info command
@nicks <player>
.nicks
playerrequired
Client number or partial player name.
Looks up the selected player's past nicknames by GUID, currently labelled as nick history since 2020-01-01. admin: @nicks
@whois
Player Info command
@whois <player>
.whois
playerrequired
Client number or partial player name.
Shows connection details for a player: IP address, reverse DNS hostname, and GeoIP lookup output. admin: @whois
@vpncheck
Player Info command
@vpncheck [player]
.vpncheck
playeroptional
Client number or partial player name. Defaults to yourself.
Checks whether the selected player's IP appears to be a VPN connection and reports the result. public
@help
General command
@help
.help!help
none Points players to the help website and suggests @whoami or .whoami for checking available privileges. public
@maps
Maps command
@maps
.mapsmaps
none Lists available maps in alphabetical order, chunked across multiple whispers, and explains how to call a map. public
@writemaplist
Maps command
@writemaplist
.writemaplist
none Reads the available map list from the server and writes it to availablemapslist_<servernick>.var. admin: @writemaplist
@shuffle
Teams command
@shuffle
.shuffle
none Randomly shuffles active players between red and blue teams and announces that teams are being mixed. admin: @shuffle
@clients
Admin Info command
@clients
.clients
none Whispers a detailed connected-client listing to the caller. admin: @clients
@cn
Player Info command
@cn
.cn
none Lists connected players with their client numbers.
  • Obsolete, since the scoreboard shows client numbers.
public
@balance
Teams command
@balance
.balance
none Runs the simple team balancer, moving a recent player when one team is at least two players larger. admin: @balance
@lock
Teams command
@lock
.lock@l.l
none Locks teams and announces the lock.
  • Players may still switch between Red and Blue teams, but spectators cannot join either active team while the lock is in effect.
admin: @lock
@unlock
Teams command
@unlock
.unlock@u.u@ul.ul
none Unlocks teams and announces the unlock. admin: @unlock
@timeout
Match Control command
@timeout
.timeout@to.to@pause.pause@stop.stop
none Runs the server timeout command and announces that the game is paused.
  • Use /timeout and spam it(!) instead to avoid the misleading "game paused" message that can appear if a @timeout is called just before the previous timeout passes.
  • /timeout is public for active players (spectators cannot call it), while @timeout is admin-only.
admin: @timeout
@last
Teams command
@last
.last
none Switches the most recent active player to the opposite active team. admin: @last
@norail
Match Control command
@norail
.norail
none Disables the railgun and restarts the map. admin: @norail
@yesrail
Match Control command
@yesrail
.yesrail
none Re-enables the railgun and restarts the map. admin: @yesrail
@spawn
Server Control command
@spawn <serverType>
.spawn
serverTyperequired
Formerly one of duel, 1on1ctf, 2on2ctf, raGe, rockets, or ctf4ish.
Former server-spawning command. The active code currently replies that spawning is not available because of migration.
  • The old implementation is present but wrapped in if (false).
public
@kick
Moderation command
@kick <player>
.kick@k.k
playerrequired
Client number or partial player name.
Kicks a matching player from the server and writes the action to kicked-players.log. admin: @kick
@rename
Moderation command
@rename <player> <newName>
.rename
playerrequired
Client number or partial player name.
newNamerequired
New single-token name.
Renames a matching player through the server rcon rename command. admin: @rename
@kickmap
Moderation command
@kickmap <player>
.kickmap
playerrequired
Client number or partial player name.
Kicks a matching player and adds their IP, GUID, name, and kicker to the current map kick list. admin: @kickmap
@kickauto
Moderation command
@kickauto <player>
.kickauto
playerrequired
Client number or partial player name.
Kicks a matching player and stores them in kickauto_<server>.var for automatic future kicking. admin: @kickauto
@kickday
Moderation command
@kickday <player>
.kickday
playerrequired
Client number or partial player name.
Kicks a matching player and stores them in kickday_<server>.var with timestamp metadata. admin: @kickday
@translate
Legacy command
@translate
@t
none Reserved command branch with no active implementation. public
@put
Teams command
@put <player> <team>
.put@p.p
playerrequired
Client number or partial player name.
teamrequired
Target team: red, blue, spectator, r, b, s, 1, 2, or 3.
Moves a matching player to the requested team when teams are not locked. admin: @put
@switch
Teams command
@switch <playerA> [playerB]
.switch
playerArequired
Client number or partial player name.
playerBoptional
Client number or partial player name. Defaults to the caller.
Swaps two matched players between red and blue teams. admin: @switch
@nextmap
Maps command
@nextmap
.nextmap
none Immediately runs the configured next map and resets new-game state. admin: @nextmap
@map_restart
Match Control command
@restart
.map_restart@restart.restart
none Runs map_restart, warns the caller about possible bugs, and resets game state on most servers. admin: @map_restart
@reload
Server Control command
@reload
.reload
none Requests an admin-script reload by setting the internal force-reload flag. The actual reload will be executed at the start of the next map round. admin: @reload
@reread
Server Control command
@reread
.reread
none Reloads the rights database so admin rights are reread without restarting the whole script. admin: @reread
@fgnote
General command
@fgnote <text>
.fgnote@fg.fg@note
textoptional
Any following text.
Sends a note/feedback message to the server owner. The message includes the sender's name, GUID, IP address, and a timestamp for reference. public
@whoami
Player Info command
@whoami
.whoami
none Shows the caller's DJ/admin level and rights when present, otherwise reports a normal party-animal level. public
@red
Teams command
@red [player]
.red@r.r
playeroptional
Client number or partial player name. Defaults to yourself.
Moves the selected player to the red team when teams are not locked. admin: @red
@blue
Teams command
@blue [player]
.blue@b.b
playeroptional
Client number or partial player name. Defaults to yourself.
Moves the selected player to the blue team when teams are not locked. admin: @blue
@bots
Server Control command
@bots <count>
.bots
countrequired
bot_minplayers value clamped from 0 to 3.
Sets the server bot_minplayers value. admin: @bots
@results
Fun command
@results
@euro2016@fixtures@soccer@matches!results!euro2016!fixtures!soccer!matchesresultsfixturesmatches
none Displays UEFA football results/fixtures through display_uefa_results(). public
@time
General command
@time
!time
none Announces the server time, timezone name, and UTC offset. public
@coin
Fun command
@coin
@cointoss@coinflip
none Flips a coin and announces heads or tails. public
@random
Fun command
@random [max]
none
maxoptional
If provided and positive, returns a number between 0 and max. Otherwise returns rand().
Generates and announces a random number. public
@yesorno
Fun command
@yesorno
none
none Randomly answers YES or NO. public
@dice
Fun command
@dice
none
none Rolls one six-sided die and announces the result as a word. public
@redorblue
Fun command
@redorblue
none
none Randomly chooses red or blue. public
@card
Fun command
@card
none
none Draws and announces a random playing card. public
@randomguy
Fun command
@randomguy
@randomdude
none Picks a random connected client and announces the name. public
@randomspectator
Fun command
@randomspectator
@randomspec
none Picks a random spectator and announces the name, or says that no one is spectating. public
@randomblue
Fun command
@randomblue
none
none Picks a random player from the blue team. public
@randomred
Fun command
@randomred
none
none Picks a random player from the red team. public
@players
Server Status command
@players
.players
none Shows live player status across stupid, insta, genius, genius2, and deathmatch servers. public
@stupid
Server Status command
@stupid
.stupid
none Shows live player status for the stupid CTF server. public
@insta
Server Status command
@insta
.insta
none Shows live player status for the instards/insta CTF server. public
@deathmatch
Server Status command
@deathmatch
.deathmatch@dm.dm@ffa.ffa
none Shows live player status for the deathmatch/free-for-all server. public
@genius
Server Status command
@genius
.genius@gen1.gen1@g1.g1
none Shows live player status for the genius CTF server. public
@genius2
Server Status command
@genius2
.genius2@gen2.gen2@genii.genii@g2.g2
none Shows live player status for the genius2 CTF server. public
@btc
External Info command
@btc
@xbt@bitcoin.btc.xbt.bitcoinmessage containing bitcoin
none Fetches the BTCUSDT ticker from Binance and announces the current BTC price in USDT. public
@coronavirus
External Info command
@coronavirus
.coronavirusmessage containing corona
none Fetches global COVID-19 statistics from Worldometer and announces totals, active cases, recovered cases, and deaths. public
@elosold
Ratings command
@elosold
.elosold
none Shows the older ELO summary format with average ELO and per-player ELO for red, blue, and spectators. public
@elosfull
Ratings command
@elosfull
none
none Lists the full ELO leaderboard for players with at least 10 games, including rank, GUID prefix, recent form, win count, rating, and name. public
@elos
Ratings command
@elos
none
none Lists current server players sorted by ELO, with team color, country, recent form, last ELO change, rating, and name. public
@form
Ratings command
@form [player] [count]
.form
playeroptional
Client number or partial player name. Defaults to yourself.
countoptional
Number of recent games to show, clamped to 0..100 and defaulting to 20.
Shows a player's recent win/loss form string and win count over the displayed games. public
@elo
Ratings command
@elo [player]
@e.elo.e@me.me
playeroptional
Client number or partial player name. @me and .me always use yourself. With no player, @elo reports team averages.
With a player, shows rating, ranked games, total games, form, and last ELO change. Without a player, compares average red and blue team ELO. public
@maketeams
Teams command
@maketeams
@mt.maketeams.mt
none Computes an ELO-balanced red/blue assignment when both teams are equal sized and at least 2v2, then force-moves players to that assignment. admin: @shuffle
@games
Ratings command
@games [player]
@g.g.games
playeroptional
Client number or partial player name. Defaults to yourself.
Shows how many recorded games the player has since 2022-01-01. public
@merge
Ratings Admin command
@merge <player> <targetGUIDprefix>
@mergedo
playerrequired
Active client to merge; the in-game help recommends a client number.
targetGUIDprefixrequired
Uppercase hex GUID prefix, 1 to 6 characters, resolved against the ELO array.
@merge performs a dry run showing both GUIDs and recent data. @mergedo confirms and appends the GUID merge rule.
  • Merging is intended for cases like players with multiple accounts or a GUID change who want to consolidate their ELO history. It is not intended for boosting or smurfing purposes. The admin should check the identity and recent games of both GUIDs before approving a merge.
  • Run @merge in-game without parameters for further instructions
admin: @merge
@registerplayer
Registration command
@registerplayer <player> <username>
.registerplayer@forceregisterplayer.forceregisterplayer
playerrequired
Client number or partial player name.
usernamerequired
Lowercase username, 2 to 16 characters, containing only allowed alphanumeric characters.
Registers a selected player by generating a password, setting fm_login, and appending the credentials to the 'registeredusers' database. The force variant bypasses the existing-username restriction, allowing re-registration when credentials are lost. admin: @registerplayer
@approvepasswordchange
Registration command
@approvepasswordchange <player> <username>
.approvepasswordchange
playerrequired
Client number or partial player name.
usernamerequired
Registered username being approved.
Approves a player-specified fm_login password change when the requested username matches and the new password has a valid format. admin: @approvepasswordchange
@register
Registration command
@register
.register
none Self-registration placeholder. The active code refuses self-registering. public
@checkavailableusername
Registration command
@checkavailableusername <username>
.checkavailableusername
usernamerequired
Lowercase username, 2 to 16 characters, containing only allowed alphanumeric characters.
Checks whether a username is syntactically valid and not already present in the registered user file. public
@checkreg
Registration command
@checkreg [player]
@checklogin@cl.checkreg.checklogin.cl
playeroptional
Client number or partial player name. Defaults to yourself.
Checks a player's fm_login state and reports whether they are logged in, missing credentials, using invalid username/password format, bad password, or an unknown registered user. public
@logins
Registration command
@logins
.logins
none Lists connected clients with their registered login name, or marks them as NOT_LOGGED_IN. public
@spec
Teams command
@spec [player]
.spec@s.s
playeroptional
Client number or partial player name. If omitted, targets the last active player who joined in the last 30 seconds.
Moves the selected player to spectator. Without an argument, it specs the most recent late joiner and sends a random rules/welcome message. admin: @spec
team spectator
Teams chat_trigger
team spectator
none
none When a player says exactly team spectator, moves that player to spectator if they are currently active. public
camper
Match Control chat_trigger
message containing camper
campingrailcampcamp
none Handles camper complaints on selected maps. If allowed, announces the complaint and reduces railgun damage for the current map. public on stupid server; admins with @camper bypass some limits
@next
Maps command
@next
.nextnextnext map
none Reports the next map from the current rotation and hints that players can call /cv nextmap. public
@teams
Teams command
@teams
.teamsteamsbalanceunbalanced
none Starts or reports a team-balance request. If the game is eligible and teams are unfair, announces the player to be moved and marks a balance request as active. public on stupid, little, instards, and test; .teams can be admin-gated elsewhere



This is some very old stale shit:

Here be the comprehensive DJ guide for each server some day. The commands and guidelines on how to be a proper DJ.

A quick summary of the commands:

@put clientnumber team
Puts player with clientnumber in desired team. team should be: r b s
Shorter version is @p cnum team, even more shorter versions are: @r <cnum>, @b <cnum> and @s <cnum>.

@kick clientnumber
Kicks the player from server. @kickmap kicks for the duration of current map. @kickauto kicks automatically forever.

@lock, @unlock
Locks or unlocks the teams. Note: this is a soft-lock which means it locks spectators out (disallow join when called as vote). Players can switch and mix and go spec freely. It is a feature!
short versions are @l and @u (or @ul)

@shuffle
Use this when /cv shuffle is bugged as usual!

@map_restart
Restart the current map with this one in case of a bad /ready or bad teams, etc! @restart is shorter.

@spec
The universal swiss army spec knife!
Without an arg it forces the last joiner to spec: use it when teams are unlocked but someone joins without asking or without a pair! You don't have to fiddle with cnums and @put commands in the heat of the game!
It has a global cool-off period (5seconds, that's plenty in this game!) to prevent the racecondition between two or more djs! (ie: they are both typing @s at the same time. the slower one would force a valid player to spec too not just the offender without the cool off)
It also has a 30 seconds safety mechanism to prevent the race condition between the dj and the offender! ie: while you are typing @spec, just before pressing enter the offender leaves or joins spec you would force a legit benevolent player to spec! (hopefully the flagman at 7:7 overtime!)
The safety mechanism gives immunity to players in a team already for more than 30 seconds (but @spec cnum works ofc!). 30 seconds are more than enough to notice someone has joined illegally and type @s.
You can even bind it and spam it every second without causing any turmoil! shorter version is @s you don't even need @lock with this one! (and the offender will receive a polite hint)
maybe still needs some testing, do it during warmup!


There are many more commands depending on your DJ Level. Check them with @whoami. Do not apply them if you aren't sure in their effects!

Type the commands with a dot instead of the 'at' sign if you don't want to be exposed. Like this: .put 4 s ; .kick 13 ; .whoami The commands won't be printed for everyone.

These few are already enough for proper dj'ing, the list will be complete and formatted SOON.

Apologies for current ugliness here.....

Note: practicing djing on bots does not work. (for example they won't go spec)

Guidelines for each server
In general DJs want to win, just like any ordinary party animal but they want to win with the underdog team! Keep that in mind when issuing commands!

:F normal ctf for stupids
Most of the time you should just leave this untouched ecosystem as is. If someone's only purpose is to fuck up the game (shooting teammates into void, or does nothing else but insults) ofc you can kick them. Do not try to argue or reason, just silently kick. No drama please. Do a shuffle right when the game starts if previous game ended in a disaster (8:1 or worse).
You can insert some more exotic maps if there are a lot of players once in a while to try them too. Maybe they get the hang of it.
Always use dotcommands please (ie: start them with a ' . ' not with a '@'), no need to advertise your dj powers!
You can .last occasionally the wrong joiners but do it fast immediately after a join, not when they were playing for their team for minutes.

:F instantgib
You can do a bit more aggressive and straightforward with djing here. But please do not overdo it or you risk alienating the players.
However when it is a balanced 3vs3 for example and someone just connects and joins you can ask to spec or join in pairs (like it is written in the server rules) you can even put him in spec. It was fun for 6 guys, do not let him ruin.
During busier times, no need to force them, ppl will come and go anyway. anti winjoin will keep the teams relatively balanced at least regarding teamsize.
Another thing is when the server has too few players. 1on1 for example. Let them join, you need players for next game. If you keep them in spec they will leave and so will you.
Do a shuffle on next map if the previous result was ugly or you see an oncoming unbalance BEFORE the game starts.

:F deathmatch
Kickban botters, tell players to enable autodownload and insert some exotic maps when there are many players online.

:F ctf for geniuses
Make them stick to the server rules displayed in motd! Use '@' prefix for commands please, so others know what is going on!