CS:GO Custom Game Mode

From Valve Developer Community
Jump to: navigation, search
简体中文
Counter-Strike: Global Offensive Level Creation


Custom is a game mode in Counter-Strike: Global Offensive Counter-Strike: Global Offensive. The special thing about it is that it allows the setting of ConVars with a map specific CFG file csgo/maps/cfg/<mapname>.cfg.

Every map can be run in the Custom game mode. Possibilities are:

  • Run it through the Workshop menus and choose the Custom game mode, if possible.
  • Set game_type 3 and game_mode 0 in the console before loading the map via map <mapname>.
  • Run the map from the console using map <mapname> custom.

Game Mode Description

This game mode allows map makers to run their map with a bunch of custom settings via a custom config file csgo/maps/cfg/<mapname>.cfg.

It allows to 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.

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

Technical details

When a map is loaded in any game mode, all whitelisted ConVars (see below) are set to their default value and are then possibly overwritten by subsequent config executions.

Now, if the map with the name <mapname>.bsp is loaded in the Custom game mode and if sv_autoexec_mapname_cfg is not 0, then the CFG file csgo/maps/cfg/<mapname>.cfg is executed if existent, only affecting whitelisted ConVars.

Warning.png Warning:  The default value of the ConVar sv_autoexec_mapname_cfg is 0!
Note.png Note:  All ConVars not listed in csgo/bspconvar_whitelist.txt are unaffected by csgo/maps/cfg/<mapname>.cfg. To get around this, use a point_servercommand or a point_clientcommand entity in your map instead. Another alternative is VScript, see below.
Note.png Note:  If the game only sets all whitelisted ConVars to their default value, the resulting game rules are very similar to Casual but with the noticeable exceptions mp_timelimit 5, mp_roundtime 5 and bot_quota_mode normal.

Whitelisting

The game considers all ConVars listed in csgo/bspconvar_whitelist.txt as whitelisted. Changes to this file require a game restart to take effect.[confirm]

  • The command whitelistcmd <command> executes the <command> only if it is whitelisted, otherwise it does nothing.
  • The command execwithwhitelist <file> executes all commands inside the given file with whitelistcmd.

The file has the syntax:

"convars"
{
  <ConVar> <value>
  <ConVar> <value>
  ...
}
Note.png Note:  The <value>s can literally be anything, as long as they exist. Valve uses 1.
Tip.png Tip:  Also works for console commands. Whitelisting echo and using it in the map's custom config can be used to see in the console when it is executed.

The following is the content of the file csgo/bspconvar_whitelist.txt when it was last modified by Valve on 2021-02-18.

csgo/bspconvar_whitelist.txt
// This file should include convars which custom bsps are permitted to change via the bsp cfg file
// if a convar doesn't exist in this list, a map is not permitted to change it via the map's cfg file
// all convars in this list will also get set to their default values when a game mode cfg file is executed

"convars"
{
	ammo_grenade_limit_default							1	// How many of each grenade (except flashbangs) are we allowed to carry?
	ammo_grenade_limit_flashbang						1	// How many flashbangs are we allowed to carry?
	ammo_grenade_limit_total							1	// How many total grenades can we carry?
	ammo_item_limit_healthshot							1	// How many health shots are we allowed to carry?
	bot_allow_grenades									1	// If nonzero, bots may use grenades.
	bot_allow_machine_guns								1	// If nonzero, bots may use the machine gun.
	bot_allow_pistols									1	// If nonzero, bots may use pistols.
	bot_allow_rifles									1	// If nonzero, bots may use rifles.
	bot_allow_rogues									1
	bot_allow_shotguns									1	// If nonzero, bots may use shotguns.
	bot_allow_snipers									1	// If nonzero, bots may use sniper rifles.
	bot_allow_sub_machine_guns							1	// If nonzero, bots may use sub-machine guns.
	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_coop_idle_max_vision_distance					1
	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_max_hearing_distance_override					1
	bot_max_visible_smoke_length                        1
	bot_max_vision_distance_override					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_coop_idle_max_vision_distance					1
	bot_max_vision_distance_override					1
	bot_max_hearing_distance_override					1
	bot_coopmission_dz_engagement_limit					1
	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_get_killed								1	// Money a player can get when they are killed by another player
	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_team_elimination_bomb_map						1
	cash_team_elimination_hostage_map_ct				1
	cash_team_elimination_hostage_map_t					1
	cash_team_hostage_alive								1
	cash_team_hostage_interaction						1
	cash_team_loser_bonus								1
	cash_team_bonus_shorthanded					        1
	cash_team_loser_bonus_consecutive_rounds			1
	cash_team_planted_bomb_but_defused					1
	cash_team_rescued_hostage							1
	cash_team_survive_guardian_wave						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
	contributionscore_assist							1
	contributionscore_bomb_defuse_major					1
	contributionscore_bomb_defuse_minor					1
	contributionscore_bomb_exploded						1
	contributionscore_bomb_planted						1
	contributionscore_cash_bundle						1
	contributionscore_crate_break						1
	contributionscore_hostage_kill						1
	contributionscore_hostage_rescue_major				1
	contributionscore_hostage_rescue_minor				1
	contributionscore_kill								1
	contributionscore_kill_factor						1
	contributionscore_objective_kill					1
	contributionscore_suicide							1
	contributionscore_team_kill							1
	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)
	global_chatter_info								    1
	healthshot_healthboost_damage_multiplier			1
	healthshot_healthboost_speed_multiplier				1
	healthshot_healthboost_time							1
	inferno_child_spawn_max_depth						1	// Molotov spread variable
	inferno_max_flames									1	// Molotov spread variable
	inferno_max_range									1   // Molotov spread variable
	molotov_throw_detonate_time							1	// Molotov allowed throw duration
	mp_afterroundmoney									1	// Amount of money awared to every player after each round
	mp_anyone_can_pickup_c4								1
	mp_autokick											1
	mp_autoteambalance									1
	mp_bot_ai_bt                                        1
	mp_buy_allow_grenades								1	// Whether or not grenades can be purchased from the buy menu
	mp_buy_allow_guns									1	// Bitfield: which weapons can be purchased. pistols (1), SMGs (2), rifles (4), shotguns (8), sniper rifles (16), heavy MGs (32)
	mp_buy_anywhere										1
	mp_buy_during_immunity								1
	mp_buytime											1	// How many seconds after round start players can buy items for.
	mp_c4_cannot_be_defused								1
	mp_c4timer											1
	mp_consecutive_loss_max								1	// Maximum loss streak (default 4).  Maximum per-round impact is mp_consecutive_loss_max * cash_team_loser_bonus_consecutive_rounds
	mp_coop_force_join_ct								1
	mp_coopmission_bot_difficulty_offset				1
	mp_coopmission_mission_number						1
	mp_coopmission_dz								1
	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_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_primary								1	// The default primary (rifle) weapon that the CTs will spawn with
	mp_ct_default_secondary								1	// The default secondary (pistol) weapon that the CTs will spawn with
	mp_retake_ct_loadout_default_pistol_round			1
	mp_retake_ct_loadout_upgraded_pistol_round			1
	mp_retake_ct_loadout_light_buy_round				1
	mp_retake_ct_loadout_full_buy_round					1
	mp_retake_ct_loadout_bonus_card_availability		1
	mp_retake_ct_loadout_bonus_card						1
	mp_retake_ct_loadout_enemy_card						1
	mp_retake_t_loadout_default_pistol_round			1
	mp_retake_t_loadout_upgraded_pistol_round			1
	mp_retake_t_loadout_light_buy_round					1
	mp_retake_t_loadout_full_buy_round					1
	mp_retake_t_loadout_bonus_card_availability			1
	mp_retake_t_loadout_bonus_card						1
	mp_retake_t_loadout_enemy_card						1
	mp_retake_max_consecutive_rounds_same_target_site	1
	mp_damage_headshot_only								1	// Bullets that aren't headshots don't deal damage
	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_damage_vampiric_amount							1	// Hits heal you
	mp_death_drop_c4									1
	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_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_defuser_allocation								1	// How to allocate defusers to CTs at start or round: 0=none, 1=random, 2=everyone
	mp_display_kill_assists								1	// Whether to display and score player assists
	mp_dm_bonus_percent									1	// Additional % of kill score to award for a bonus weapon kill
	mp_dm_bonus_respawn									1	// Whether to respawn when you get the DM bonus weapon or just have it given to you at your current location
	mp_dm_bonusweapon_dogtags							1	// How many additional dogtags to drop when getting a kill with the bonus weapon
	mp_dm_dogtag_score									1	// How many points it is worth to collect an enemy's dogtag in deathmatch
	mp_dm_kill_base_score								1	// How many points to award for a kill in deathmatch
	mp_dm_teammode										1	// Deathmatch uses team DM rules
	mp_dm_teammode_bonus_score							1	// Team DM victory points to award for kills with the bonus weapon
	mp_dm_teammode_dogtag_score							1	// Team DM victory points to award for enemy dogtag collection
	mp_dm_teammode_kill_score							1	// Team DM victory points to award for player kills
	mp_dogtag_despawn_on_killer_death					1	// If set, dogtags will despawn when the person who killer the owner dies
	mp_dogtag_despawn_time								1	// Dogtags automatically despawn after this many seconds (0=infinite)
	mp_dogtag_pickup_rule								1	// Who is allowed to pick up dogtags (0=killer, 1=killer's team, 2=victim's team, 3=killer OR victim's team, 4=everyone)
	mp_drop_grenade_enable								1	// Allows players to drop grenades.
	mp_drop_knife_enable								1	// Allow players to drop knives.
	mp_economy_reset_rounds								1	// how many rounds before economy is reset to default
	mp_equipment_reset_rounds							1	// how many rounds before equipment is reset to default
	mp_force_assign_teams								1
	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_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_free_armor										1	// Determines whether armor (1) and/or helmet (2) are given automatically.
	mp_freezetime										1	// how many seconds to keep players frozen when the round starts
	mp_friendlyfire										1	// Allows team members to injure other members of their team
	mp_ggprogressive_round_restart_delay				1
	mp_ggtr_always_upgrade								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
	mp_give_player_c4									1	// Whether this map should spawn a c4 bomb for a player or not
	mp_global_damage_per_second							1	// Being alive damages you (can't die from this damage)
	mp_guardian_bot_money_per_wave						1
	mp_guardian_force_collect_hostages_timeout			1
	mp_guardian_loc_icon								1	// (If set) icon to override for guardian mission
	mp_guardian_loc_string_desc							1
	mp_guardian_loc_string_hud							1
	mp_guardian_loc_weapon								1	// (If set) weapon name token (#SFUI_WPNHUD_<name>)
	mp_guardian_player_dist_max							1
	mp_guardian_player_dist_min							1
	mp_guardian_clear_all_bounds						1
	mp_guardian_new_bounds								1
	mp_guardian_add_bounds_pt							1
	mp_guardian_clear_all_player_spawns					1
	mp_guardian_add_player_spawn_pt						1
	mp_guardian_special_kills_needed					1
	mp_guardian_special_weapon_needed					1
	mp_guardian_target_site								1
	mp_guardian_force_collect_hostages_timeout			1
	mp_guardian_give_random_grenades_to_bots			1
	mp_guardian_ai_bt_difficulty_adjust_wave_interval	1
	mp_guardian_ai_bt_difficulty_max_next_level_bots	1
	mp_guardian_ai_bt_difficulty_cap_beginning_round	1
	mp_guardian_ai_bt_difficulty_initial_value			1
	mp_halftime											1	// Set to 1 to stay in halftime 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_heavyassaultsuit_aimpunch							1	// How much EXTRA aim punch will happen when a player wearing the assault suit gets when shot
	mp_heavyassaultsuit_cooldown						1	// Controls heavy assault suit cooldown (disabled in cooperative modes)
	mp_heavyassaultsuit_deploy_timescale						1	// How fast a player wearing the heavy assault suit will draw their weapon (1.0 = normal speed, 0.5 = half speed)
	mp_heavyassaultsuit_speed							1	// The max speed of a player when they are wearing the heavy assault suit
	mp_heavybot_damage_reduction_scale						1	
	mp_hostagepenalty									1	// Terrorist are kicked for killing too much hostages
	mp_hostages_max										1	
	mp_hostages_spawn_force_positions					1
	mp_hostages_spawn_same_every_round					1
	mp_items_prohibited								    1
	mp_limitteams										1	// Max # of players 1 team can have over another (0 disables check)
	mp_match_can_clinch									1	// 0=No mercy rule, 1=team can clinch match win early if they win > 1/2 total rounds
	mp_match_end_changelevel							1	// 0=No mercy rule, 1=team can clinch match win early if they win > 1/2 total rounds
	mp_max_armor										1	// Determines whether armor (1) and/or helmet (2) are available for purchase.
	mp_maxmoney											1	// maximum amount of money allowed in a player's account
	mp_maxrounds										1	// max number of rounds to play before server changes maps
	mp_molotovusedelay									1	// Number of seconds to delay before the molotov can be used after acquiring it
	mp_only_cts_rescue_hostages							1	// Only CTs can rescue hostages
	mp_plant_c4_anywhere								1	// Don't have to be inside a site to plant bomb
	mp_playercashawards									1	// Players can earn money by performing in-game actions
	mp_radar_showall									1   // Determines who should see all in the radar.	0 = default. 1 = both teams. 2 = Terrorists. 3 = CTs.
	mp_randomspawn										1	// Determines whether players are to spawn.		0 = default; 1 = both teams; 2 = Terrorists; 3 = CTs.
	mp_randomspawn_dist									1
	mp_randomspawn_los									1
	mp_respawn_immunitytime								1	// How many seconds after respawn immunity lasts.
	mp_respawn_on_death_ct								1	// When set to 1, counter-terrorists will respawn after dying.
	mp_respawn_on_death_t								1	// When set to 1, terrorists will respawn after dying.
	mp_respawnwavetime_ct								1	// Time between respawn waves for CTs.
	mp_respawnwavetime_t								1	// Time between respawn waves for Terrorists.
	mp_round_restart_delay									1 // the default is "7". the "1" here is not used
	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_solid_teammates									1	// Determines whether teammates are solid or not.
	mp_starting_losses									1	// Loss streak to start each team with (default 0).  Results in the first round being worth additional cash for the losing team
	mp_startmoney										1	// Amount of money each player starts with on match start, half start or reset
	mp_suicide_penalty									1	// Whether suicides are punished
	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_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_primary								1	// The default primary (rifle) weapon that the Ts will spawn with
	mp_t_default_secondary								1	// The default secondary (pistol) weapon that the Ts will spawn with
	mp_tagging_scale									1	// Scalar for player tagging modifier when hit. Lower values for greater tagging.
	mp_taser_recharge_time								1	// How many seconds does it take for a taser to recharge ( -1 = never )
	mp_teamcashawards									1	// Teams can earn money by performing in-game actions
	mp_teammates_are_enemies							1	// When set, your teammates act as enemies and all players are valid targets.
	mp_technical_timeout_per_team						1	// Allow technical timeouts to be specified by mode.
	mp_technical_timeout_duration_s						1	// Allow modes to specify technical timeout duration.
	mp_timelimit										1	// Allow the match to end when mp_timelimit hits instead of waiting for the end of the current round.
	mp_use_respawn_waves								1	// When set to 1, and that player's team is set to respawn, they will respawn in waves.
	mp_warmup_pausetimer								1	// Set to 1 to stay in warmup indefinitely. Set to 0 to resume the timer.
	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_weapon_self_inflict_amount						1	// Attacking damages you if you miss (can't die from this damage)
	mp_weapons_allow_heavy								1	// Determines which teams can purchase heavy weapons (-1 = any; 0 = none; 2 = Ts; 3 = CTs)
	mp_weapons_allow_heavyassaultsuit					1	// Determines whether the Heavy Assault Suit is purchaseable or not (T only)
	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_allow_pistols							1	// Determines which teams can purchase pistols (-1 = any; 0 = none; 2 = Ts; 3 = CTs)
	mp_weapons_allow_rifles								1	// Determines which teams can purchase rifles (-1 = any; 0 = none; 2 = Ts; 3 = CTs)
	mp_weapons_allow_smgs								1	// Determines which teams can purchase smgs (-1 = any; 0 = none; 2 = Ts; 3 = CTs)
	mp_weapons_allow_typecount							1	// How many weapons of each type can be purchased
	mp_weapons_allow_zeus								1	// Determines whether the Zeus is purchasable or not
	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_weapons_max_gun_purchases_per_weapon_per_match	1	// Can only buy each weapon this often per match ("weapons expert")
	mp_win_panel_display_time							1
	occlusion_test_async								1
	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.
	spec_replay_bot										1 // whether bot kills show a replay
	spec_replay_enable									1 // the default is "0". the "1" here is not used
	spec_replay_leadup_time								1 // how long the spec replay delay is
	sv_accelerate										1
	sv_air_pushaway_dist								1
	sv_airaccelerate									1	
	sv_allow_votes										1	// Voting allowed in this mode
	sv_alltalk											1	// DEPRECATED. Players can hear all enemy communication (voice, chat).  Use sv_talk_enemy_dead and sv_talk_enemy_living instead.
	sv_arms_race_vote_to_restart_disallowed_after		1
	sv_auto_adjust_bot_difficulty						1
	sv_auto_full_alltalk_during_warmup_half_end			1	// When enabled, full alltalk is enabled at warmup, halftime and endgame
	sv_autobunnyhopping									1	// Automatically jumps when touching ground
	sv_autobuyammo										1
	sv_bot_buy_decoy_weight								1
	sv_bot_buy_flash_weight								1
	sv_bot_buy_grenade_chance							1
	sv_bot_buy_hegrenade_weight							1
	sv_bot_buy_molotov_weight							1
	sv_bot_buy_smoke_weight								1
	sv_bots_force_rebuy_every_round						1
	sv_bots_get_easier_each_win							1
	sv_bots_get_harder_after_each_wave					1	// only used in Guardian mode
	sv_bounce											1	//"Bounce multiplier for when physically simulated objects collide with other objects.
	sv_buy_status_override								1	// Override for buy status map info. 0 = everyone can buy, 1 = ct only, 2 = t only 3 = nobody
	sv_deadtalk											1	// When set, dead players can speak (voice, text) to living players on their team
	sv_disable_immunity_alpha							1
	sv_disable_radar									1
	sv_disable_show_team_select_menu					1
	sv_duplicate_playernames_ok							1
	sv_enablebunnyhopping								1	// Disables in-air movement speed cap
	sv_env_entity_makers_enabled						1
	sv_extract_ammo_from_dropped_weapons				1
	sv_falldamage_scale									1
	sv_falldamage_to_below_player_multiplier			1	// Scale damage when distributed across two players
	sv_falldamage_to_below_player_ratio					1	// Landing on a another player's head gives them this ratio of the damage.
	sv_force_reflections								1
	sv_friction											1	//"World friction."
	sv_grassburn										1
	sv_gravity											1	// World gravity. (default is 800)
	sv_guardian_extra_equipment_ct						1
	sv_guardian_extra_equipment_t						1
	sv_guardian_health_refresh_per_wave					1
	sv_guardian_heavy_all								1
	sv_guardian_heavy_count								1
	sv_guardian_max_wave_for_heavy						1
	sv_guardian_min_wave_for_heavy						1
	sv_guardian_refresh_ammo_for_items_on_waves			1
	sv_guardian_reset_c4_every_wave						1
	sv_guardian_respawn_health							1
	sv_guardian_spawn_health_ct							1
	sv_guardian_spawn_health_t							1
	sv_health_approach_enabled							1
	sv_health_approach_speed							1
	sv_hegrenade_damage_multiplier						1
	sv_hegrenade_radius_multiplier						1
	sv_hide_roundtime_until_seconds						1
	sv_highlight_distance								1
	sv_highlight_duration								1
	sv_ignoregrenaderadio								1	// Turn off Fire in the hole messages
	sv_infinite_ammo									1
	sv_knife_attack_extend_from_player_aabb				1
	sv_maxspeed											1
	sv_maxvelocity										1	//Maximum speed any ballistically moving object is allowed to attain per axis.
	sv_occlude_players									1
	sv_outofammo_indicator								1
	sv_show_ragdoll_playernames							1
	sv_show_team_equipment_force_on						1
	sv_staminajumpcost									1	// Modifies jumping stamina (default .08)
	sv_staminalandcost									1	// Modifies landing stamina (default .18)
	sv_stopspeed										1	//"Minimum stopping speed when on ground.
	sv_talk_enemy_dead									1	// Dead players can hear dead enemy communication (voice, chat)
	sv_talk_enemy_living								1	// Live players can hear living enemy communication (voice, chat)
	sv_teamid_overhead_maxdist							1
	sv_teamid_overhead_maxdist_spec						1
	sv_versus_screen_scene_id							1
	sv_vote_to_changelevel_before_match_point			1
	sv_warmup_to_freezetime_delay						1
	sv_water_movespeed_multiplier						1	// Water movespeed    
	sv_water_swim_mode									1	// Prevent going under water
	sv_wateraccelerate									1	   
	sv_waterfriction									1	   
	sv_weapon_encumbrance_per_item						1	// Encumbrance fixed cost
	sv_weapon_encumbrance_scale							1	// Encumbrance ratio to active weapon
	tv_delay											1
	tv_delay1											1
	weapon_accuracy_nospread							1
	weapon_air_spread_scale								1
	weapon_max_before_cleanup							1
	weapon_recoil_scale									1
	weapon_reticle_knife_show							1
	weapon_sound_falloff_multiplier						1
	sv_camera_fly_enabled								1
}

Publishing

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.[confirm]

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. To learn more about them, see VScript.
How do I pack additional files in my BSP?
This is covered on the Map Publish Tool page along with what files are automatically packed in the BSP on upload.

Alternative: Execute CFG files using VScript

nType <- ScriptGetGameType()
nMode <- ScriptGetGameMode()

if (nType == 3 && nMode == 0)
{
	SendToConsole("exec <cfgname>")
}

It is possible to execute custom CFG files located in csgo/cfg/ using VScript using the concept named at CSGO Game Mode Commands#Game Mode dependent Events.

Create a text file with the content shown on the right. Save it at csgo/scripts/vscripts/ or in a subfolder from there as a .nut file. In Hammer, add this file to a logic_script's Entity Scripts. In-game, the script will be executed every time a round starts. If the current game mode is Custom, the script executes the CFG file csgo/cfg/<cfgname>.cfg.

Note.png Note:  Incidentally, many other things can be done other than just a CFG execution, see List of CS:GO Script Functions.

Accordingly, both the script and the CFG file must be packed to the BSP file when publishing, see e.g. VIDE.