idCVarsi_name("si_name","DOOM Server",CVAR_GAME|CVAR_SERVERINFO|CVAR_ARCHIVE,"name of the server");
#ifdef CTF
idCVarsi_gameType("si_gameType",si_gameTypeArgs[0],CVAR_GAME|CVAR_SERVERINFO|CVAR_ARCHIVE,"game type - singleplayer, deathmatch, Tourney, Team DM, Last Man or CTF",si_gameTypeArgs,idCmdSystem::ArgCompletion_String<si_gameTypeArgs>);
#else
idCVarsi_gameType("si_gameType",si_gameTypeArgs[0],CVAR_GAME|CVAR_SERVERINFO|CVAR_ARCHIVE,"game type - singleplayer, deathmatch, Tourney, Team DM or Last Man",si_gameTypeArgs,idCmdSystem::ArgCompletion_String<si_gameTypeArgs>);
#endif
idCVarsi_map("si_map","game/mp/d3dm1",CVAR_GAME|CVAR_SERVERINFO|CVAR_ARCHIVE,"map to be played next on server",idCmdSystem::ArgCompletion_MapName);
idCVarsi_maxPlayers("si_maxPlayers","8",CVAR_GAME|CVAR_SERVERINFO|CVAR_ARCHIVE|CVAR_INTEGER,"max number of players allowed on the server",1,8);
idCVarsi_pure("si_pure","1",CVAR_GAME|CVAR_SERVERINFO|CVAR_BOOL,"server is pure and does not allow modified data");
idCVarsi_spectators("si_spectators","1",CVAR_GAME|CVAR_SERVERINFO|CVAR_ARCHIVE|CVAR_BOOL,"allow spectators or require all clients to play");
idCVarsi_serverURL("si_serverURL","",CVAR_GAME|CVAR_SERVERINFO|CVAR_ARCHIVE,"where to reach the server admins and get information about the server");
#ifdef CTF
//idCVar si_pointLimit( "si_pointlimit", "8", CVAR_GAME | CVAR_SERVERINFO | CVAR_ARCHIVE | CVAR_INTEGER, "team points limit to win in CTF" );
idCVarsi_flagDropTimeLimit("si_flagDropTimeLimit","30",CVAR_GAME|CVAR_SERVERINFO|CVAR_ARCHIVE|CVAR_INTEGER,"seconds before a dropped CTF flag is returned");
idCVarsi_midnight("si_midnight","0",CVAR_GAME|CVAR_INTEGER|CVAR_SERVERINFO,"Start the game up in midnight CTF (completely dark)" );
idCVarr_aspectRatio("r_aspectRatio","0",CVAR_RENDERER|CVAR_INTEGER|CVAR_ARCHIVE,"aspect ratio of view:\n0 = 4:3\n1 = 16:9\n2 = 16:10",0,2);
idCVarg_cinematic("g_cinematic","1",CVAR_GAME|CVAR_BOOL,"skips updating entities that aren't marked 'cinematic' '1' during cinematics");
idCVarg_cinematicMaxSkipTime("g_cinematicMaxSkipTime","600",CVAR_GAME|CVAR_FLOAT,"# of seconds to allow game to run when skipping cinematic. prevents lock-up when cinematic doesn't end.",0,3600);
idCVarg_disasm("g_disasm","0",CVAR_GAME|CVAR_BOOL,"disassemble script into base/script/disasm.txt on the local drive when script is compiled");
idCVarg_debugBounds("g_debugBounds","0",CVAR_GAME|CVAR_BOOL,"checks for models with bounds > 2048");
idCVarg_debugAnim("g_debugAnim","-1",CVAR_GAME|CVAR_INTEGER,"displays information on which animations are playing on the specified entity number. set to -1 to disable.");
idCVarg_damageScale("g_damageScale","1",CVAR_GAME|CVAR_FLOAT|CVAR_ARCHIVE,"scale final damage on player by this factor");
idCVarg_armorProtection("g_armorProtection","0.3",CVAR_GAME|CVAR_FLOAT|CVAR_ARCHIVE,"armor takes this percentage of damage");
idCVarg_armorProtectionMP("g_armorProtectionMP","0.6",CVAR_GAME|CVAR_FLOAT|CVAR_ARCHIVE,"armor takes this percentage of damage in mp");
idCVarg_useDynamicProtection("g_useDynamicProtection","1",CVAR_GAME|CVAR_BOOL|CVAR_ARCHIVE,"scale damage and armor dynamically to keep the player alive more often");
idCVarg_healthTakeTime("g_healthTakeTime","5",CVAR_GAME|CVAR_INTEGER|CVAR_ARCHIVE,"how often to take health in nightmare mode");
idCVarg_healthTakeAmt("g_healthTakeAmt","5",CVAR_GAME|CVAR_INTEGER|CVAR_ARCHIVE,"how much health to take in nightmare mode");
idCVarg_healthTakeLimit("g_healthTakeLimit","25",CVAR_GAME|CVAR_INTEGER|CVAR_ARCHIVE,"how low can health get taken in nightmare mode");
idCVarai_showObstacleAvoidance("ai_showObstacleAvoidance","0",CVAR_GAME|CVAR_INTEGER,"draws obstacle avoidance information for monsters. if 2, draws obstacles for player, as well",0,2,idCmdSystem::ArgCompletion_Integer<0,2>);
idCVarg_dragEntity("g_dragEntity","0",CVAR_GAME|CVAR_BOOL,"allows dragging physics objects around by placing the crosshair over them and holding the fire button");
idCVarrb_showMass("rb_showMass","0",CVAR_GAME|CVAR_BOOL,"show the mass of each rigid body");
idCVarrb_showInertia("rb_showInertia","0",CVAR_GAME|CVAR_BOOL,"show the inertia tensor of each rigid body");
idCVarrb_showVelocity("rb_showVelocity","0",CVAR_GAME|CVAR_BOOL,"show the velocity of each rigid body");
idCVarrb_showActive("rb_showActive","0",CVAR_GAME|CVAR_BOOL,"show rigid bodies that are not at rest");
// The default values for player movement cvars are set in def/player.def
idCVarpm_jumpheight("pm_jumpheight","48",CVAR_GAME|CVAR_NETWORKSYNC|CVAR_FLOAT,"approximate hieght the player can jump");
idCVarpm_stepsize("pm_stepsize","16",CVAR_GAME|CVAR_NETWORKSYNC|CVAR_FLOAT,"maximum height the player can step up without jumping");
idCVarpm_crouchspeed("pm_crouchspeed","80",CVAR_GAME|CVAR_NETWORKSYNC|CVAR_FLOAT,"speed the player can move while crouched");
idCVarpm_walkspeed("pm_walkspeed","140",CVAR_GAME|CVAR_NETWORKSYNC|CVAR_FLOAT,"speed the player can move while walking");
idCVarpm_runspeed("pm_runspeed","220",CVAR_GAME|CVAR_NETWORKSYNC|CVAR_FLOAT,"speed the player can move while running");
idCVarpm_noclipspeed("pm_noclipspeed","200",CVAR_GAME|CVAR_NETWORKSYNC|CVAR_FLOAT,"speed the player can move while in noclip");
idCVarpm_spectatespeed("pm_spectatespeed","450",CVAR_GAME|CVAR_NETWORKSYNC|CVAR_FLOAT,"speed the player can move while spectating");
idCVarpm_spectatebbox("pm_spectatebbox","32",CVAR_GAME|CVAR_NETWORKSYNC|CVAR_FLOAT,"size of the spectator bounding box");
idCVarpm_usecylinder("pm_usecylinder","0",CVAR_GAME|CVAR_NETWORKSYNC|CVAR_BOOL,"use a cylinder approximation instead of a bounding box for player collision detection");
idCVarpm_minviewpitch("pm_minviewpitch","-89",CVAR_GAME|CVAR_NETWORKSYNC|CVAR_FLOAT,"amount player's view can look up (negative values are up)" );
idCVarpm_maxviewpitch("pm_maxviewpitch","89",CVAR_GAME|CVAR_NETWORKSYNC|CVAR_FLOAT,"amount player's view can look down");
idCVarpm_stamina("pm_stamina","24",CVAR_GAME|CVAR_NETWORKSYNC|CVAR_FLOAT,"length of time player can run");
idCVarpm_staminathreshold("pm_staminathreshold","45",CVAR_GAME|CVAR_NETWORKSYNC|CVAR_FLOAT,"when stamina drops below this value, player gradually slows to a walk");
idCVarpm_staminarate("pm_staminarate","0.75",CVAR_GAME|CVAR_NETWORKSYNC|CVAR_FLOAT,"rate that player regains stamina. divide pm_stamina by this value to determine how long it takes to fully recharge.");
idCVarpm_crouchheight("pm_crouchheight","38",CVAR_GAME|CVAR_NETWORKSYNC|CVAR_FLOAT,"height of player's bounding box while crouched");
idCVarpm_crouchviewheight("pm_crouchviewheight","32",CVAR_GAME|CVAR_NETWORKSYNC|CVAR_FLOAT,"height of player's view while crouched");
idCVarpm_normalheight("pm_normalheight","74",CVAR_GAME|CVAR_NETWORKSYNC|CVAR_FLOAT,"height of player's bounding box while standing");
idCVarpm_normalviewheight("pm_normalviewheight","68",CVAR_GAME|CVAR_NETWORKSYNC|CVAR_FLOAT,"height of player's view while standing");
idCVarpm_deadheight("pm_deadheight","20",CVAR_GAME|CVAR_NETWORKSYNC|CVAR_FLOAT,"height of player's bounding box while dead");
idCVarpm_deadviewheight("pm_deadviewheight","10",CVAR_GAME|CVAR_NETWORKSYNC|CVAR_FLOAT,"height of player's view while dead");
idCVarpm_crouchrate("pm_crouchrate","0.87",CVAR_GAME|CVAR_NETWORKSYNC|CVAR_FLOAT,"time it takes for player's view to change from standing to crouching");
idCVarpm_bboxwidth("pm_bboxwidth","32",CVAR_GAME|CVAR_NETWORKSYNC|CVAR_FLOAT,"x/y size of player's bounding box");
idCVarpm_crouchbob("pm_crouchbob","0.5",CVAR_GAME|CVAR_NETWORKSYNC|CVAR_FLOAT,"bob much faster when crouched");
idCVarpm_walkbob("pm_walkbob","0.3",CVAR_GAME|CVAR_NETWORKSYNC|CVAR_FLOAT,"bob slowly when walking");
idCVarpm_runbob("pm_runbob","0.4",CVAR_GAME|CVAR_NETWORKSYNC|CVAR_FLOAT,"bob faster when running");
idCVarpm_thirdPersonRange("pm_thirdPersonRange","80",CVAR_GAME|CVAR_NETWORKSYNC|CVAR_FLOAT,"camera distance from player in 3rd person");
idCVarpm_thirdPersonHeight("pm_thirdPersonHeight","0",CVAR_GAME|CVAR_NETWORKSYNC|CVAR_FLOAT,"height of camera from normal view height in 3rd person");
idCVarpm_thirdPersonAngle("pm_thirdPersonAngle","0",CVAR_GAME|CVAR_NETWORKSYNC|CVAR_FLOAT,"direction of camera from player in 3rd person in degrees (0 = behind player, 180 = in front)" );
idCVarpm_thirdPersonClip("pm_thirdPersonClip","1",CVAR_GAME|CVAR_NETWORKSYNC|CVAR_BOOL,"clip third person view into world space");
idCVarpm_thirdPerson("pm_thirdPerson","0",CVAR_GAME|CVAR_NETWORKSYNC|CVAR_BOOL,"enables third person view");
idCVarpm_thirdPersonDeath("pm_thirdPersonDeath","0",CVAR_GAME|CVAR_NETWORKSYNC|CVAR_BOOL,"enables third person view when player dies");
idCVarpm_modelView("pm_modelView","0",CVAR_GAME|CVAR_NETWORKSYNC|CVAR_INTEGER,"draws camera from POV of player model (1 = always, 2 = when dead)", 0, 2, idCmdSystem::ArgCompletion_Integer<0,2> );
idCVarpm_airTics("pm_air","1800",CVAR_GAME|CVAR_NETWORKSYNC|CVAR_INTEGER,"how long in milliseconds the player can go without air before he starts taking damage");
idCVarg_showPlayerShadow("g_showPlayerShadow","0",CVAR_GAME|CVAR_ARCHIVE|CVAR_BOOL,"enables shadow of player model");
idCVarpassword("password","",CVAR_GAME|CVAR_NOCHEAT,"client password used when connecting");
idCVarg_countDown("g_countDown","10",CVAR_GAME|CVAR_INTEGER|CVAR_ARCHIVE,"pregame countdown in seconds",4,3600);
idCVarg_gameReviewPause("g_gameReviewPause","10",CVAR_GAME|CVAR_NETWORKSYNC|CVAR_INTEGER|CVAR_ARCHIVE,"scores review time in seconds (at end game)", 2, 3600 );
idCVarg_TDMArrows("g_TDMArrows","1",CVAR_GAME|CVAR_NETWORKSYNC|CVAR_BOOL,"draw arrows over teammates in team deathmatch");
idCVarg_balanceTDM("g_balanceTDM","1",CVAR_GAME|CVAR_BOOL,"maintain even teams");
#ifdef CTF
idCVarg_CTFArrows("g_CTFArrows","1",CVAR_GAME|CVAR_NETWORKSYNC|CVAR_BOOL,"draw arrows over teammates in CTF");
#endif
idCVarnet_clientPredictGUI("net_clientPredictGUI","1",CVAR_GAME|CVAR_BOOL,"test guis in networking without prediction");
idCVarg_voteFlags("g_voteFlags","0",CVAR_GAME|CVAR_NETWORKSYNC|CVAR_INTEGER|CVAR_ARCHIVE,"vote flags. bit mask of votes not allowed on this server\n"
"bit 0 (+1) restart now\n"
"bit 1 (+2) time limit\n"
"bit 2 (+4) frag limit\n"
"bit 3 (+8) game type\n"
"bit 4 (+16) kick player\n"
"bit 5 (+32) change map\n"
"bit 6 (+64) spectators\n"
"bit 7 (+128) next map");
idCVarg_mapCycle("g_mapCycle","mapcycle",CVAR_GAME|CVAR_ARCHIVE,"map cycling script for multiplayer games - see mapcycle.scriptcfg");
#ifdef _D3XP
idCVarmod_validSkins("mod_validSkins","skins/characters/player/marine_mp;skins/characters/player/marine_mp_green;skins/characters/player/marine_mp_blue;skins/characters/player/marine_mp_red;skins/characters/player/marine_mp_yellow;skins/characters/player/marine_mp_purple;skins/characters/player/marine_mp_grey;skins/characters/player/marine_mp_orange",CVAR_GAME|CVAR_ARCHIVE,"valid skins for the game");
#else
idCVarmod_validSkins("mod_validSkins","skins/characters/player/marine_mp;skins/characters/player/marine_mp_green;skins/characters/player/marine_mp_blue;skins/characters/player/marine_mp_red;skins/characters/player/marine_mp_yellow",CVAR_GAME|CVAR_ARCHIVE,"valid skins for the game");
#endif
#ifdef _D3XP
idCVarg_grabberHoldSeconds("g_grabberHoldSeconds","3",CVAR_GAME|CVAR_FLOAT|CVAR_CHEAT,"number of seconds to hold object");
idCVarg_grabberEnableShake("g_grabberEnableShake","1",CVAR_GAME|CVAR_BOOL|CVAR_CHEAT,"enable the grabber shake");
idCVarg_grabberRandomMotion("g_grabberRandomMotion","1",CVAR_GAME|CVAR_BOOL|CVAR_CHEAT,"enable random motion on the grabbed object");
idCVarg_grabberHardStop("g_grabberHardStop","1",CVAR_GAME|CVAR_BOOL|CVAR_CHEAT,"hard stops object if too fast");
idCVarg_grabberDamping("g_grabberDamping","0.5",CVAR_GAME|CVAR_FLOAT|CVAR_CHEAT,"damping of grabber");
#endif
#ifdef _D3XP
idCVarg_xp_bind_run_once("g_xp_bind_run_once","0",CVAR_GAME|CVAR_BOOL|CVAR_ARCHIVE,"Rebind all controls once for D3XP.");
#endif
idCVarnet_serverDownload("net_serverDownload","0",CVAR_GAME|CVAR_INTEGER|CVAR_ARCHIVE,"enable server download redirects. 0: off 1: redirect to si_serverURL 2: use builtin download. see net_serverDl cvars for configuration");
idCVarnet_serverDlBaseURL("net_serverDlBaseURL","",CVAR_GAME|CVAR_ARCHIVE,"base URL for the download redirection");
idCVarnet_serverDlTable("net_serverDlTable","",CVAR_GAME|CVAR_ARCHIVE,"pak names for which download is provided, seperated by ;");