CSGO Custom Game Mode

From Valve Developer Community
Jump to: navigation, search
简体中文

If you are unfamiliar with making a map for Counter-Strike:GO or any other Source game, start here: CS:GO Level Creation

The new Custom game mode allows map makers to run their map with a bunch of custom settings via a custom config file. That means you can play mode variants like scoutzknivez and aim maps with their unique settings embedded right in the map. So, how many new game modes will Custom support? We don’t know! We can’t wait to see what the community comes up with. We’ve provided some Custom mode examples in the SDK which you can get by clicking here.

Where do I put my cfg file?

Your cfg file must be located in:

csgo/maps/cfg

The name of the config file must be named the same as your bsp. For example if your bsp is named "cp_watermelon.bsp", you would name your cfg file "cp_watermelon.cfg". If your map is run with Custom game rules but you don't have a cfg file, it'll run your map with Classic Casual rules instead. When you upload your map to the workshop, your cfg file will automatically get packed into your bsp file, so don't worry about packing it yourself. See the SDK for more examples of this.

How do I run my map with Custom game rules?

There are a few ways you can do this.

  • When a map gets run through the in-game Workshop menus and run as a Custom map.
  • If you set game_type to 3 in the console before you load the map via "map <your map>"
  • Run the map from the console using "map <your map> custom"

What else can I ship with my BSP?

Lots of stuff! New textures, new models, new sounds and most importantly (for custom gameplay) you can ship vscript files. If you aren't familiar with vscript files, they are Squirrel language-based scripts that can be run in-game and to learn more about them, see VScript.

How do I pack additional files in my BSP?

This are covered on the Map Publish Tool page along with what files are automatically packed in the BSP on upload.

Map supported convars and descriptions

The following list contains the ConVars that may be included in your cfg file.

Note:This list may be out of date. See bspconvar_whitelist.txt located in "..\common\Counter-Strike Global Offensive\csgo\" for a complete updated list.
// bot convars
bot_autodifficulty_threshold_high			1	// Amount above avg human contribution score, above which a bot should lower its difficulty
bot_autodifficulty_threshold_low			1	// Amount below avg human contribution score, below which a bot should raise its difficulty
bot_chatter						1	// Control how bots talk. Allowed values: 'off', 'radio', 'minimal', or 'normal'.
bot_defer_to_human_goals				1	// If nonzero and there is a human on the team, the bots will not do the scenario tasks.
bot_defer_to_human_items				1	// If nonzero and there is a human on the team, the bots will not get scenario items.
bot_difficulty						1	
bot_quota						1	// Determines the total number of bots in the game.
bot_quota_mode						1	// Determines the type of quota. Allowed values: 'normal', 'fill', and 'match'. If 'fill', the server will adjust bots to keep N players in the game, where N is bot_quota. If 'match', the server will maintain a 1:N ratio of humans to bots, where N is bot_quota.
bot_allow_grenades					1	// If nonzero, bots may use grenades.
bot_allow_pistols					1	// If nonzero, bots may use pistols.
bot_allow_sub_machine_guns				1	// If nonzero, bots may use sub-machine guns.
bot_allow_shotguns					1	// If nonzero, bots may use shotguns.
bot_allow_rifles					1	// If nonzero, bots may use rifles.
bot_allow_snipers					1	// If nonzero, bots may use sniper rifles.
bot_allow_machine_guns					1	// If nonzero, bots may use the machine gun.
sv_auto_adjust_bot_difficulty				1
sv_bots_get_easier_each_win				1
sv_bots_force_rebuy_every_round				1
sv_bots_get_harder_after_each_wave			1	// only used in Guardian mode

// player/team cash award and buy convars
mp_playercashawards					1	// Players can earn money by performing in-game actions
cash_player_bomb_defused				1
cash_player_bomb_planted				1
cash_player_damage_hostage				1	// The penalty (or bonus) players get from harming a hostage
cash_player_interact_with_hostage			1
cash_player_killed_enemy_default			1	// Money award to player when they kill an enemy (which then gets scaled per weapon)
cash_player_killed_enemy_factor				1	// Scaler that adjusts the money recieved per kill
cash_player_killed_hostage				1	// The penalty (or bonus) players get for killing a hostage
cash_player_killed_teammate				1
cash_player_rescued_hostage				1
cash_player_respawn_amount				1	// The money bonus a play can get when they respawn (if respawning is enabled)
cash_player_get_killed					1	// Money a player can get when they are killed by another player
mp_teamcashawards					1	// Teams can earn money by performing in-game actions
cash_team_elimination_bomb_map				1
cash_team_elimination_hostage_map_t			1
cash_team_elimination_hostage_map_ct			1
cash_team_hostage_alive					1
cash_team_hostage_interaction				1
cash_team_loser_bonus					1
cash_team_loser_bonus_consecutive_rounds		1
cash_team_planted_bomb_but_defused			1
cash_team_rescued_hostage				1
cash_team_terrorist_win_bomb				1
cash_team_win_by_defusing_bomb				1
cash_team_win_by_hostage_rescue				1
cash_team_win_by_time_running_out_bomb			1
cash_team_win_by_time_running_out_hostage		1
cash_team_survive_guardian_wave				1
mp_afterroundmoney					1	// Amount of money awared to every player after each round
mp_buytime						1	// How many seconds after round start players can buy items for.
mp_buy_anywhere						1
mp_buy_during_immunity					1
mp_startmoney						1	// Amount of money each player starts with on match start, half start or reset
mp_maxmoney						1	// maximum amount of money allowed in a player's account
sv_buy_status_override					1	// Override for buy status map info. 0 = everyone can buy, 1 = ct only, 2 = t only 3 = nobody

// item convars
mp_death_drop_defuser					1	// Whether a defuser drops from a player holding on when they die
mp_death_drop_grenade					1	// Which grenade to drop on player death: 0=none, 1=best, 2=current or best
mp_death_drop_gun					1	// Which gun to drop on player death: 0=none, 1=best, 2=current or best
mp_deathcam_skippable					1	// Determines whether a player can early-out of the deathcam
mp_defuser_allocation					1	// How to allocate defusers to CTs at start or round: 0=none, 1=random, 2=everyone
mp_give_player_c4					1	// Whether this map should spawn a c4 bomb for a player or not
mp_free_armor						1	// Determines whether armor and helmet are given automatically.
mp_molotovusedelay					1	// Number of seconds to delay before the molotov can be used after acquiring it
mp_weapons_allow_zeus					1	// Determines whether the Zeus is purchasable or not
mp_weapons_allow_map_placed				1	// If this convar is set, when a match starts, the game will not delete weapons placed in the map.
mp_weapons_glow_on_ground				1	// If this convar is set, weapons on the ground will have a glow around them and can be seen through walls.
mp_ct_default_melee					1	// The default melee weapon that the CTs will spawn with.  Even if this is blank, a knife will be given.  To give a taser, it should look like this: 'weapon_knife weapon_taser'.  Remember to set mp_weapons_allow_zeus to 1 if you want to give a taser!
mp_ct_default_secondary					1	// The default secondary (pistol) weapon that the CTs will spawn with
mp_ct_default_primary					1	// The default primary (rifle) weapon that the CTs will spawn with
mp_ct_default_grenades					1	// The default grenades that the CTs will spawn with.  To give multiple grenades, separate each weapon class with a space like this: 'weapon_molotov weapon_hegrenade'
mp_t_default_melee					1	// The default melee weapon that the Ts will spawn with.  Even if this is blank, a knife will be given.  To give a taser, it should look like this: 'weapon_knife weapon_taser'.  Remember to set mp_weapons_allow_zeus to 1 if you want to give a taser!
mp_t_default_secondary					1	// The default secondary (pistol) weapon that the Ts will spawn with
mp_t_default_primary					1	// The default primary (rifle) weapon that the Ts will spawn with
mp_t_default_grenades					1	// The default grenades that the CTs will spawn with.  To give multiple grenades, separate each weapon class with a space like this: 'weapon_molotov weapon_hegrenade'
mp_buy_allow_grenades					1	// Whether or not grenades can be purchased from the buy menu
mp_weapons_allow_typecount				1	// How many weapons of each type can be purchased

// round and match setting convars
mp_freezetime						1	// how many seconds to keep players frozen when the round starts
mp_force_pick_time					1	// The amount of time a player has on the team screen to make a selection before being auto-teamed
mp_halftime						1	// Set to 1 to stay in halftime indefinitely. Set to 0 to resume the timer.
mp_match_can_clinch					1	// 0=No mercy rule, 1=team can clinch match win early if they win > 1/2 total rounds
mp_maxrounds						1	// max number of rounds to play before server changes maps
mp_roundtime						1	// How many minutes each round takes.
mp_roundtime_defuse					1	// How many minutes each round of Bomb Defuse takes.
mp_roundtime_hostage					1	// How many minutes each round of Hostage Rescue takes.
mp_timelimit						1	// Allow the match to end when mp_timelimit hits instead of waiting for the end of the current round.
mp_warmuptime						1	// How long the warmup period lasts. Changing this value resets warmup.
mp_warmuptime_all_players_connected			1	// How long the warmup period lasts after all humans have connected.
mp_warmup_pausetimer					1	// Set to 1 to stay in warmup indefinitely. Set to 0 to resume the timer.
mp_halftime_pausetimer					1	// Set to 1 to stay in halftime indefinitely. Set to 0 to resume the timer.
mp_default_team_winner_no_objective			1	// if set, the map will declare this team the winner when the round timer expires.  (-1 == map default, 0 == draw, 2 == Ts, 3 == CTs)
mp_hostagepenalty					1	// Terrorist are kicked for killing too much hostages

// damage, team and communication convars
mp_solid_teammates					1	// Determines whether teammates are solid or not.
sv_allow_votes						1	// Voting allowed in this mode
sv_alltalk						1	// When set, players can hear all enemy communication (voice, chat)
sv_auto_full_alltalk_during_warmup_half_end		1	// When enabled, full alltalk is enabled at warmup, halftime and endgame
sv_deadtalk						1	// When set, dead players can speak (voice, text) to the living
sv_ignoregrenaderadio					1	// Turn off Fire in the hole messages
mp_teammates_are_enemies				1	// When set, your teammates act as enemies and all players are valid targets.
mp_damage_scale_ct_body					1	// Scales the damage a CT player takes by this much when they take damage in the body. (1 == 100%, 0.5 == 50%)
mp_damage_scale_ct_head					1	// Scales the damage a CT player takes by this much when they take damage in the head. (1 == 100%, 0.5 == 50%)
mp_damage_scale_t_body					1	// Scales the damage a T player takes by this much when they take damage in the body. (1 == 100%, 0.5 == 50%)
mp_damage_scale_t_head					1	// Scales the damage a T player takes by this much when they take damage in the head. (1 == 100%, 0.5 == 50%)
mp_friendlyfire						1	// Allows team members to injure other members of their team
ff_damage_reduction_bullets				1	// How much to reduce damage done to teammates when shot.  Range is from 0 - 1 (with 1 being damage equal to what is done to an enemy)
ff_damage_reduction_grenade				1	// How much to reduce damage done to teammates by a thrown grenade.  Range is from 0 - 1 (with 1 being damage equal to what is done to an enemy)
ff_damage_reduction_grenade_self			1	// How much to damage a player does to himself with his own grenade.  Range is from 0 - 1 (with 1 being damage equal to what is done to an enemy)
ff_damage_reduction_other				1	// How much to reduce damage done to teammates by things other than bullets and grenades.  Range is from 0 - 1 (with 1 being damage equal to what is done to an enemy)
mp_limitteams						1	// Max # of players 1 team can have over another (0 disables check)

// spectator, death, spawning and camera convars
spec_freeze_panel_extended_time				1	// Time spent with the freeze panel still up after observer freeze cam is done.
spec_freeze_time					1	// Time spend frozen in observer freeze cam.
mp_forcecamera						1	// Restricts spectator modes for dead players. 0 = Any team. 1 = Only own team. 2 = No one; fade to black on death (previously mp_fadetoblack).
mp_respawn_immunitytime					1	// How many seconds after respawn immunity lasts.
mp_respawn_on_death_t					1	// When set to 1, terrorists will respawn after dying.
mp_respawn_on_death_ct					1	// When set to 1, counter-terrorists will respawn after dying.
mp_display_kill_assists					1	// Whether to display and score player assists
mp_use_respawn_waves					1	// When set to 1, and that player's team is set to respawn, they will respawn in waves.
mp_respawnwavetime_ct					1	// Time between respawn waves for CTs.
mp_respawnwavetime_t					1	// Time between respawn waves for Terrorists.
mp_randomspawn						1	// Determines whether players are to spawn.		0 = default; 1 = both teams; 2 = Terrorists; 3 = CTs.
mp_randomspawn_los					1
mp_randomspawn_dist					1
mp_radar_showall					1   // Determines who should see all in the radar.	0 = default. 1 = both teams. 2 = Terrorists. 3 = CTs.
mp_force_assign_teams					1

// world and movement convars
sv_gravity						1	// World gravity. (default is 800)
sv_accelerate						1
sv_stopspeed						1	//"Minimum stopping speed when on ground.
sv_airaccelerate					1	
sv_wateraccelerate					1	   
sv_waterfriction					1	   
sv_friction						1	//"World friction."
sv_bounce						1	//"Bounce multiplier for when physically simulated objects collide with other objects.
sv_maxvelocity						1	//Maximum speed any ballistically moving object is allowed to attain per axis.
sv_maxspeed						1

sv_bot_buy_grenade_chance				1
sv_bot_buy_smoke_weight					1
sv_bot_buy_flash_weight					1
sv_bot_buy_decoy_weight					1
sv_bot_buy_molotov_weight				1
sv_bot_buy_hegrenade_weight				1

sv_guardian_min_wave_for_heavy				1
sv_guardian_max_wave_for_heavy				1
sv_guardian_heavy_count					1
sv_guardian_heavy_all					1

// gungame/armsrace
mp_ggprogressive_round_restart_delay			1
mp_ggtr_bomb_defuse_bonus				1
mp_ggtr_bomb_detonation_bonus				1
mp_ggtr_bomb_pts_for_flash				1
mp_ggtr_bomb_pts_for_he					1
mp_ggtr_bomb_pts_for_molotov				1
mp_ggtr_bomb_pts_for_upgrade				1
mp_ggtr_bomb_respawn_delay				1
mp_ggtr_end_round_kill_bonus				1
mp_ggtr_halftime_delay					1
mp_ggtr_last_weapon_kill_ends_half			1
sv_arms_race_vote_to_restart_disallowed_after		1
mp_coop_force_join_ct					1
bot_allow_rogues					1
mp_guardian_special_kills_needed			1
mp_guardian_special_weapon_needed			1
mp_guardian_player_dist_min				1
mp_guardian_player_dist_max				1
mp_guardian_target_site					1
mp_hostages_spawn_force_positions			1
mp_hostages_spawn_same_every_round			1
mp_guardian_bot_money_per_wave				1
sv_disable_show_team_select_menu			1
mp_hostages_max						1	
spec_replay_enable					1 // the default is "0". the "1" here is not used
mp_round_restart_delay					1 // the default is "7". the "1" here is not used
mp_coopmission_bot_difficulty_offset			1
sv_duplicate_playernames_ok				1
mp_anyone_can_pickup_c4					1
mp_c4_cannot_be_defused					1
mp_c4timer						1
mp_coopmission_mission_number				1
weapon_reticle_knife_show				1
mp_death_drop_c4					1