// Master config for managing various command aliases and settings
// =================================================================
-// This alias allows for common commands to be executed, even on both
-// dedicated servers and normal clients. If dedicated, then it remains
-// as sv_cmd... If a normal client, then it is changed to menu_cmd.
-alias qc_cmd "sv_cmd $*"
-
// Execute commands based on whether it is dedicated a server or a client.
alias "_detect_dedicated_$qport" "${* asis}"
alias "_detect_dedicated_0" ""
_if_dedicated alias if_client ""
if_client alias if_dedicated ""
+if_client set cmd_prefix "cmd"
+if_dedicated set cmd_prefix "sv_cmd"
+
+if_dedicated "alias" qc_cmd_svmenu "sv_cmd $$*"
+if_client "alias" qc_cmd_svmenu "menu_cmd $$*"
+if_dedicated "alias" qc_cmd_svcl "sv_cmd $$*"
+if_client "alias" qc_cmd_svcl "cl_cmd $$*"
+if_dedicated "alias" qc_cmd_svcmd "sv_cmd $$*"
+if_client "alias" qc_cmd_svcmd "cmd $$*"
+
// ========
// common
// ========
-if_client alias teamstatus "cmd teamstatus"
-if_dedicated alias teamstatus "sv_cmd teamstatus"
-
-if_client alias who "cmd who"
-if_dedicated alias who "sv_cmd who"
-alias w who
-
-alias g_hitplots_add "qc_cmd rpn /g_hitplots_individuals g_hitplots_individuals ${1 !} union def"
-alias g_hitplots_remove "qc_cmd rpn /g_hitplots_individuals g_hitplots_individuals ${1 !} difference def"
-
-alias g_maplist_add "qc_cmd maplist add ${* ?}"
-alias g_maplist_remove "qc_cmd maplist remove ${* ?}"
-alias g_maplist_putfirst "qc_cmd maplist remove ${* ?} ; qc_cmd maplist add ${* ?}"
-alias g_maplist_shufflenow "qc_cmd maplist shuffle"
-alias g_maplist_cleanup "qc_cmd maplist cleanup" // removes maps that don't exist from the map list
-
-alias addfav "qc_cmd addtolist net_slist_favorites ${* ?}"
-alias addvote "qc_cmd addtolist sv_vote_commands ${* ?}"
+alias cvar_changes "qc_cmd_svcmd cvar_changes"
+alias cvar_purechanges "qc_cmd_svcmd cvar_purechanges"
+alias info "qc_cmd_svcmd info ${* ?}"
+alias ladder "qc_cmd_svcmd ladder"
+alias lsmaps "qc_cmd_svcmd lsmaps"
+alias lsnewmaps "qc_cmd_svcmd lsnewmaps"
+alias maplist "qc_cmd_svcmd maplist"
+alias rankings "qc_cmd_svcmd rankings"
+alias records "qc_cmd_svcmd records"
+alias teamstatus "qc_cmd_svcmd teamstatus"
+alias time "qc_cmd_svcmd time"
+alias timein "qc_cmd_svcmd timein"
+alias timeout "qc_cmd_svcmd timeout"
+alias vote "qc_cmd_svcmd vote ${* ?}"
+alias who "qc_cmd_svcmd who ${* ?}"
+
+alias g_hitplots_add "qc_cmd_svmenu rpn /g_hitplots_individuals g_hitplots_individuals ${1 !} union def"
+alias g_hitplots_remove "qc_cmd_svmenu rpn /g_hitplots_individuals g_hitplots_individuals ${1 !} difference def"
+
+alias g_maplist_add "qc_cmd_svmenu maplist add ${* ?}"
+alias g_maplist_remove "qc_cmd_svmenu maplist remove ${* ?}"
+alias g_maplist_putfirst "qc_cmd_svmenu maplist remove ${* ?} ; qc_cmd maplist add ${* ?}"
+alias g_maplist_shufflenow "qc_cmd_svmenu maplist shuffle"
+alias g_maplist_cleanup "qc_cmd_svmenu maplist cleanup" // removes maps that don't exist from the map list
+
+alias addfav "qc_cmd_svmenu addtolist net_slist_favorites ${* ?}"
+alias addvote "qc_cmd_svmenu addtolist sv_vote_commands ${* ?}"
// ========================
// ========================
alias bsp "ls maps/*.bsp"
alias chmap "changelevel ${* ?}"
-alias rec "record demos/${1 !}"
+alias clearmap "disconnect"
alias ply "playdemo $1"
-alias tdem "timedemo $1"
+alias rec "record demos/${1 !}"
alias sv_loadconfig "exec $serverconfig"
alias sv_restart "say \"Server will restart at the end of the match, you will all be reconnected automatically. ${* ?} \"; quit_and_redirect self"
+alias tdem "timedemo $1"
// ===============================================
-// menu_cmd (menu command) - menu/gamecommand.qc
+// menu_cmd (menu command) - menu/command/menu_cmd.qc
// ===============================================
alias menu_showteamselect "menu_cmd directmenu TeamSelect"
alias menu_showhudexit "menu_cmd directmenu HUDExit"
alias menu_showhudoptions "menu_cmd directpanelhudmenu ${* ?}"
alias menu_showsandboxtools "menu_cmd directmenu SandboxTools"
+alias menu_showquitdialog "menu_cmd directmenu Quit"
// command executed before loading a map by the menu
// makes sure maxplayers is at least minplayers or bot_number + 1
alias menu_loadmap_prepare "disconnect; wait; g_campaign 0; menu_cmd rpn /_menu_loadmap_maxplayers menu_maxplayers minplayers bot_number 1 add max max def; _menu_loadmap_prepare_maxpl; g_maplist_shufflenow"
-// =========================================================
-// cl_cmd (client console command) - client/gamecommand.qc
-// =========================================================
-alias radar "cl_cmd hud_panel_radar_maximized"
-alias scoreboard_columns_set "cl_cmd scoreboard_columns_set ${* ?}"
-alias scoreboard_columns_set "" // aliased later
-alias scoreboard_columns_help "cl_cmd scoreboard_columns_help ${* ?}"
-
-
-// ===========================================================
-// cmd (client-to-server command) - server/clientcommands.qc
-// ===========================================================
+// ==========================================================
+// cl_cmd (client local command) - client/command/cl_cmd.qc
+// ==========================================================
+// commented out commands are really only intended for internal use
+if_client alias blurtest "cl_cmd blurtest"
+if_client alias debugmodel "cl_cmd debugmodel ${* ?}"
+//if_client alias handlevote "cl_cmd handlevote ${* ?}"
+if_client alias hud "cl_cmd hud ${* ?}"
+if_client alias localprint "cl_cmd localprint ${* ?}"
+//if_client alias mv_download "cl_cmd mv_download ${* ?}"
+if_client alias sendcvar "cl_cmd sendcvar ${* ?}"
+//if_client alias settemp "cl_cmd settemp ${* ?}"
+//if_client alias settemp_restore "cl_cmd settemp_restore"
+
+// other aliases for local commands
+if_client alias hud_configure "cl_cmd hud configure"
+if_client alias hud_save "cl_cmd hud save ${* ?}"
+if_client alias radar "cl_cmd hud radar ${* ?}"
+if_client alias scoreboard_columns_help "cl_cmd hud scoreboard_columns_help"
+if_client alias scoreboard_columns_set "cl_cmd hud scoreboard_columns_set ${* ?}"
+
+// changes a cvar and reports it to the server (for the client to notify the server about changes)
+alias setreport "set \"$1\" \"$2\" ; sendcvar \"$1\""
+
+
+// ========================================================
+// cmd (client-to-server command) - server/command/cmd.qc
+// ========================================================
set sv_clientcommand_antispam_time 1 "Amount of seconds after a command before another command can be called again without being considered spam. (Use -1 for no antispam limit)"
-set sv_clientcommand_antispam_count 5 "Amount of commands considered spam before commands are rejected.
-
+set sv_clientcommand_antispam_count 8 "Amount of commands considered spam before commands are rejected."
seta sv_status_privacy 1 "hide IP addresses from \"status\" and \"who\" replies shown to clients"
-
seta cl_autoswitch 1 "automatically switch to newly picked up weapons if they are better than what you are carrying"
-alias autoswitch "set cl_autoswitch ${1 ?} ; cmd autoswitch ${1 ?}"
-
-alias records "cmd records"
-alias rankings "cmd rankings"
-alias ladder "cmd ladder"
-
+// commented out commands are really only intended for internal use, or already have declaration in the engine
+alias autoswitch "cmd autoswitch ${* ?}"
+alias checkfail "cmd checkfail ${* ?}"
+alias clientversion "cmd clientversion ${* ?}"
+//alias getmapvotepic "cmd getmapvotepic ${* ?}"
+alias join "cmd join"
alias ready "cmd ready"
-alias cointoss "sv_cmd cointoss"
-alias timeout "cmd timeout" //use this command to call a timeout
-alias timein "cmd timein" //use this command to resume the game before timeout is finished
-
-alias lsmaps "cmd lsmaps" // lists all maps on server (for vmap, suggestmap, vnextmap)
-alias lsnewmaps "cmd lsnewmaps" // lists all maps on server that do not yet have a record set (race/cts)
+alias records "cmd records"
+alias reportcvar "cmd reportcvar ${* ?}"
+//alias say "cmd say ${* ?}" // engine already has this declared as a command
+//alias say_team "cmd say_team ${* ?}" // engine already has this declared as a command
+alias selectteam "cmd selectteam ${* ?}"
+alias sentcvar "cmd sentcvar ${* ?}"
+alias spectate "cmd spectate"
+alias suggestmap "cmd suggestmap ${* ?}"
+//alias tell "cmd tell ${* ?}" // engine already has this declared as a command
+alias voice "cmd voice ${* ?}"
+
+// other aliases for client-to-server commands
+alias autoswitch "set cl_autoswitch ${1 ?} ; cmd autoswitch ${1 ?}" // todo
alias team_red "cmd selectteam red; cmd join"
alias team_blue "cmd selectteam blue; cmd join"
alias team_yellow "cmd selectteam yellow; cmd join"
alias team_auto "cmd selectteam auto; cmd join"
-alias sandbox "cmd g_sandbox ${* ?}"
+alias spec "spectate"
-alias spec "cmd spectate"
-alias suggestmap "cmd suggestmap ${1 ?}"
+// mutator aliases
+alias sandbox "cmd g_sandbox ${* ?}"
-// =========================================================
-// sv_cmd (server console command) - server/gamecommand.qc
-// =========================================================
+// ============================================================
+// sv_cmd (server console command) - server/command/sv_cmd.qc
+// ============================================================
alias adminmsg "sv_cmd adminmsg ${* ?}"
alias allready "sv_cmd allready"
alias allspec "sv_cmd allspec ${* ?}"
alias bbox "sv_cmd bbox"
alias bot_cmd "sv_cmd bot_cmd ${* ?}"
alias cointoss "sv_cmd cointoss ${* ?}"
-alias cvar_changes "sv_cmd cvar_changes"
-alias cvar_purechanges "sv_cmd cvar_purechanges"
alias database "sv_cmd database ${* ?}"
alias defer_clear "sv_cmd defer_clear ${* ?}"
alias defer_clear_all "sv_cmd defer_clear_all"
alias gametype "sv_cmd gametype ${* ?}"
alias gettaginfo "sv_cmd gettaginfo ${* ?}"
alias gotomap "sv_cmd gotomap ${* ?}"
-alias ladder "sv_cmd ladder"
alias lockteams "sv_cmd lockteams"
alias make_mapinfo "sv_cmd make_mapinfo"
alias modelbug "sv_cmd modelbug"
alias playerdemo "sv_cmd playerdemo ${* ?}"
alias printstats "sv_cmd printstats"
alias radarmap "sv_cmd radarmap ${* ?}"
-alias rankings "sv_cmd rankings"
-alias records "sv_cmd records"
alias reducematchtime "sv_cmd reducematchtime"
alias setbots "sv_cmd setbots ${* ?}"
alias shuffleteams "sv_cmd shuffleteams"
alias stuffto "sv_cmd stuffto ${* ?}"
-alias teamstatus "sv_cmd teamstatus"
-alias time "sv_cmd time"
alias trace "sv_cmd trace ${* ?}"
alias unlockteams "sv_cmd unlockteams"
alias warp "sv_cmd warp ${* ?}"
-alias vote "sv_cmd vote ${* ?}"
// other aliases for server commands
alias endmatch "timelimit -1"
alias dumpdb "sv_cmd database dump \"${1 ?}\""
alias loaddb "sv_cmd database load \"${1 ?}\""
-alias movetoteam_red "moveplayer ${1 ?} red"
-alias movetoteam_blue "moveplayer ${1 ?} blue"
-alias movetoteam_pink "moveplayer ${1 ?} pink"
-alias movetoteam_yellow "moveplayer ${1 ?} yellow"
-alias movetoteam_auto "moveplayer ${1 ?} auto"
+alias movetored "moveplayer ${1 ?} red"
+alias movetoblue "moveplayer ${1 ?} blue"
+alias movetopink "moveplayer ${1 ?} pink"
+alias movetoyellow "moveplayer ${1 ?} yellow"
+alias movetoauto "moveplayer ${1 ?} auto"
// =======================================================
// Aliases for settemp subsystem. Warning: Do not touch.
// Usage: settemp variable value, next map resets it.
// =======================================================
-set settemp_list 0
-set settemp_idx 0
-set _settemp_var UNUSED
-alias settemp "_settemp_var \"_settemp_x$settemp_idx\"; qc_cmd rpn /settemp_idx settemp_idx 1 add def; _settemp \"$1\" \"$2\""
-alias _settemp "settemp_list \"1 $1 $_settemp_var $settemp_list\"; set $_settemp_var \"${$1}\"; $1 \"$2\""
-alias settemp_restore "_settemp_restore_${settemp_list asis}"
-alias _settemp_restore_0 "set settemp_var 0; set settemp_list 0"
-alias _settemp_restore_1 "$1 \"${$2}\"; _settemp_restore_${3- asis}"
-
-
-// ===========================
-// banning - server/ipban.qc
-// ===========================
+alias settemp "qc_cmd_svcl settemp $$*"
+alias settemp_restore "qc_cmd_svcl settemp_restore"
+
+
+// ===================================
+// banning - server/command/ipban.qc
+// ===================================
alias bans "sv_cmd bans"
alias ban "sv_cmd ban ${* ?}" // usage: ban address(maybe incomplete, like 1.2.3) bantime(seconds)
alias kickban "sv_cmd kickban ${* ?}" // usage: kickban # playerno bantime(seconds) masksize(bytes)
alias unban "sv_cmd unban ${* ?}" // usage: unban 3 (number from bans)
-// =========================
-// voting - server/vote.qc
-// =========================
+// =================================
+// voting - server/command/vote.qc
+// =================================
set sv_vote_call 1 "Allow users to call a vote for the commands in sv_vote_commands"
set sv_vote_change 1 "Allow voters to change their mind after already voting"
-set sv_vote_commands "restart fraglimit chmap gotomap nextmap endmatch reducematchtime extendmatchtime allready kick cointoss movetoteam_auto" "these commands can be voted"
+set sv_vote_commands "restart fraglimit chmap gotomap nextmap endmatch reducematchtime extendmatchtime allready kick cointoss movetoauto" "these commands can be voted"
set sv_vote_only_commands ""
-set sv_vote_master_commands "movetoteam_red movetoteam_blue movetoteam_yellow movetoteam_pink" "maybe add kickban here (but then sv_vote_master 0)"
+set sv_vote_master_commands "movetored movetoblue movetoyellow movetopink" "Commands which vote masters can execute by themselves" // maybe add kickban here (but then sv_vote_master 0)
set sv_vote_master 1 "Allows the use of the vote master system"
set sv_vote_master_callable 1 "When set, users can use \"vmaster\" to call a vote to become master of voting commands"
set sv_vote_master_password "" "when set, users can use \"vlogin PASSWORD\" to log in as master"
set sv_vote_master_playerlimit 2 "Minimum number of players needed for a player to be allowed to vote for master"
+set sv_vote_no_stops_vote 1 "Allow the vote caller to stop his own vote simply by voting no"
set sv_vote_singlecount 0 "set to 1 to count votes once after timeout or to 0 to count with every vote"
set sv_vote_timeout 30 "a vote will timeout after this many seconds"
set sv_vote_wait 120 "a player can not call a vote again for this many seconds when his vote was not accepted"
alias vmaster "cmd vote master"
alias vlogin "cmd vote login ${* ?}"
alias vdo "cmd vote do ${* ?}"
-alias vyes "cl_cmd vyes"
-alias vno "cl_cmd vno"
+alias vyes "cl_cmd handlevote yes"
+alias vno "cl_cmd handlevote no"
alias vdontcare "cmd vote dontcare"
alias vabstain "cmd vote abstain"
// rcon server commands
// ======================
rcon_secure 1
-set rcon_restricted_commands "restart fraglimit chmap gotomap endmatch reducematchtime extendmatchtime allready kick kickban \"sv_cmd bans\" \"sv_cmd unban *\" status \"sv_cmd teamstatus\" movetoteam_auto movetoteam_red movetoteam_blue movetoteam_yellow movetoteam_pink"
+set rcon_restricted_commands "restart fraglimit chmap gotomap endmatch reducematchtime extendmatchtime allready kick kickban \"sv_cmd bans\" \"sv_cmd unban *\" status \"sv_cmd teamstatus\" movetoauto movetored movetoblue movetoyellow movetopink"
+
+// =============================
+// other miscellaneous aliases
+// =============================
+alias autoscreenshot "screenshot screenshots/autoscreenshot/${1 !}-${2 !}.jpg; echo \"^5A screenshot has been taken at request of the server.\""
+