Counter-Strike: Global Offensive
Counter-Strike: Global Offensive |
---|
Also known as: CS:GO This game has unused areas. This game has a development article This game has a prototype article This game has a prerelease article |
This game/console's online features are no longer supported. While this game/console's online features were once accessible, they are (as of September 27th, 2023 (official matchmaking only)) no longer officially supported and online-exclusive features may be documented as now-unseen content. |
Note about this game's playability With the release of Counter-Strike 2 on September 27th, 2023, Valve shut down official matchmaking for this game. However, Global Offensive is still playable on community servers via a legacy build and the console ports are still operational. |
To do:
|
Counter-Strike: Global Offensive started out as a console port of Counter-Strike: Source with more HD Brown™; and foggy maps, but focused their efforts on its competitive matchmaking mode, the eSports scene and the skin marketplace to great effect. They actually updated de_dust in this one, with de_cbble being given a proper sense of scale later.
The game went Free to Play on December 6, 2018, and later an updated version, called Counter-Strike 2 was released on September 27th, 2023, porting the game over into the Source 2 engine among other changes. It also essentially replaced this game as well, for better or for worse.
Contents
Sub-Pages
Development Info |
Prototype Info |
Prerelease Info |
Perfect World Censorship Items that were adjusted in CS:GO in order to get an approved release in China. |
Unused Models Hostages from another era. |
Unused Textures Placeholder graphics galore! |
Unused Text Unused Rankings text, among other things. |
Unused Sounds "Now playing as a terrorist..." |
Unused Items Music in my smoke grenades? More likely than you think. |
Unused Config Files
give_all_items
Typing "exec give_all_items" in console doesn't do anything because the command "econ_droppaintedgun" is not coded. Also, some weapons listed below are not implemented, such as "weapon_dbarrel", "weapon_c4_radio", "weapon_c4_customcode" and "weapon_knife_pliers" ... These weapons don't even exist in-game. Note that "aq_oiled" is the internal name for the Case Hardened skin.
econ_droppaintedgun weapon_ak47 aq_oiled econ_droppaintedgun weapon_aug aq_oiled econ_droppaintedgun weapon_awp aq_oiled econ_droppaintedgun weapon_bayonet aq_oiled econ_droppaintedgun weapon_bizon aq_oiled econ_droppaintedgun weapon_c4 aq_oiled econ_droppaintedgun weapon_c4_customcode aq_oiled econ_droppaintedgun weapon_c4_radio aq_oiled econ_droppaintedgun weapon_dbarrel aq_oiled econ_droppaintedgun weapon_deagle aq_oiled econ_droppaintedgun weapon_decoy aq_oiled econ_droppaintedgun weapon_elite aq_oiled econ_droppaintedgun weapon_famas aq_oiled econ_droppaintedgun weapon_fiveseven aq_oiled econ_droppaintedgun weapon_flashbang aq_oiled econ_droppaintedgun weapon_g3sg1 aq_oiled econ_droppaintedgun weapon_galilar aq_oiled econ_droppaintedgun weapon_glock aq_oiled econ_droppaintedgun weapon_hegrenade aq_oiled econ_droppaintedgun weapon_hkp2000 aq_oiled econ_droppaintedgun weapon_incgrenade aq_oiled econ_droppaintedgun weapon_knife aq_oiled econ_droppaintedgun weapon_knife_css aq_oiled econ_droppaintedgun weapon_knife_flip aq_oiled econ_droppaintedgun weapon_knife_gut aq_oiled econ_droppaintedgun weapon_knife_karambit aq_oiled econ_droppaintedgun weapon_knife_pliers aq_oiled econ_droppaintedgun weapon_m249 aq_oiled econ_droppaintedgun weapon_m4a1 aq_oiled econ_droppaintedgun weapon_m4a1_silencer aq_oiled econ_droppaintedgun weapon_mac10 aq_oiled econ_droppaintedgun weapon_mag7 aq_oiled econ_droppaintedgun weapon_molotov aq_oiled econ_droppaintedgun weapon_mp7 aq_oiled econ_droppaintedgun weapon_mp9 aq_oiled econ_droppaintedgun weapon_negev aq_oiled econ_droppaintedgun weapon_nova aq_oiled econ_droppaintedgun weapon_p250 aq_oiled econ_droppaintedgun weapon_p90 aq_oiled econ_droppaintedgun weapon_revolver aq_oiled econ_droppaintedgun weapon_sawedoff aq_oiled econ_droppaintedgun weapon_scar20 aq_oiled econ_droppaintedgun weapon_sg556 aq_oiled econ_droppaintedgun weapon_smokegrenade aq_oiled econ_droppaintedgun weapon_ssg08 aq_oiled econ_droppaintedgun weapon_taser aq_oiled econ_droppaintedgun weapon_tec9 aq_oiled econ_droppaintedgun weapon_ump45 aq_oiled econ_droppaintedgun weapon_usp_silencer aq_oiled econ_droppaintedgun weapon_xm1014 aq_oiled
Half-Life 2 E3 Leftovers
The game contains files lab.cfg
and start.cfg
which are leftovers from the HL2 E3 demo.
lab.cfg
unbindall bind "TAB" "+showscores" bind "ENTER" "+attack" bind "ESCAPE" "cancelselect" bind "SPACE" "+jump" bind "'" "+moveup" bind "," "+moveleft" bind "." "+moveright" bind "/" "+movedown" bind "1" "slot1" bind "2" "slot2" bind "3" "slot3" bind "4" "slot4" bind "5" "slot5" bind "6" "slot6" bind "7" "ent_fire scene_1_acting_intro start" bind ";" "+mlook" bind "[" "invprev" bind "]" "invnext" bind "`" "toggleconsole" bind "a" "+moveleft" bind "c" "+movedown" bind "d" "+moveright" bind "e" "+use" bind "f" "impulse 100" bind "g" "dropprimary" bind "i" "impulse 101" bind "n" "noclip" bind "p" "snapshot" bind "q" "lastinv" bind "r" "+reload" bind "s" "+back" bind "t" "+zoom" bind "u" "messagemode2" bind "v" "+moveup" bind "w" "+forward" bind "y" "messagemode" bind "z" "+strafe" bind "UPARROW" "+forward" bind "DOWNARROW" "+back" bind "LEFTARROW" "+left" bind "RIGHTARROW" "+right" bind "ALT" "+speed" bind "CTRL" "+duck" bind "SHIFT" "+walk" bind "F5" "snapshot" bind "F6" "save quick" bind "F7" "load quick" bind "INS" "+klook" bind "PGDN" "+lookdown" bind "PGUP" "+lookup" bind "END" "centerview" bind "MWHEELDOWN" "invnext" bind "MWHEELUP" "invprev" bind "MOUSE1" "+attack" bind "MOUSE2" "+attack2" bind "PAUSE" "pause" ai_report_task_timings_on_limit "0" suitvolume "0.25" sv_aim "1" hud_quickinfo "1" muzzleflash_light "1" hud_toggle "0" phonemedelay "0" phonemefilter "0.08" flex_rules "1" hud_fastswitch "0" closecaption "0" cc_linger_time "2.0" crosshair "1" cam_command "0" cam_snapto "0" cam_idealyaw "90" cam_idealpitch "0" cam_idealdist "64" c_maxpitch "90" c_minpitch "0" c_maxyaw "135" c_minyaw "-135" c_maxdistance "200" c_mindistance "30" c_orthowidth "100" c_orthoheight "100" cl_upspeed "320" sv_maxspeed "50" lookspring "0" lookstrafe "0" joystick "0" m_pitch "0.022" m_filter "0" sensitivity "2" m_side "0.8" m_yaw "0.022" m_forward "1" sv_noclipaccelerate "5" sv_noclipspeed "2000" sv_skyname "sky_white" sv_backspeed "0.6" cl_idealpitchscale "0.8" hud_centerid "0" net_graphwidth "192" net_scale "5" net_graphpos "1" net_graphsolid "1" r_viewcubemapsize "96" voice_modenable "1" voice_forcemicrecord "1" voice_enable "1" voice_scale "1" snd_mixahead "0.1" snd_surround "0" hisound "0" volume "0.680000" sv_voiceenable "1" sv_forcepreload "0" r_eyesize "0" r_eyeshift_z "0" r_eyeshift_y "0" r_eyeshift_x "0" r_eyemove "1" r_eyegloss "1" skill "1" mp_decals "300" r_speedsquiet "0" r_anamorphic "0" mat_compressedtextures "1" mat_picmip "0" con_alpha "192" con_color "200 200 200" cl_forcepreload "0" cl_updaterate "20" cl_dlmax "128" rate "2500" bottomcolor "0" topcolor "0" model "" skin "" team "" name "unnamed" cl_timeout "305" cl_captions "0" cl_cmdbackup "2" cl_cmdrate "30" bgmvolume "1" +mlook sv_friction "1" cl_hudenable 0 bind h “ent_fire scene_1_acting_intro start”
start.cfg
cl_hudenable 0 developer 0 disp_modlimit_up 512 r_anamorphic 1 snd_surround 1 rem remember to do this in your regular config!!!! rem bind f2 "exec e3demo.cfg" cl_mouseenable 0 rem unbind these in config.cfg!!! rem unbind uparrow rem unbind downarrow rem unbind leftarrow rem unbind leftarrow rem unbind a rem unbind s rem unbind d rem unbind w startdemos e3_hl2logo
Unused Scripts
"weapon_rifle"
A weapon called "Rifle" can to be found in the scripts folder inside CSGO's one. "weapon_rifle" seems to be the internal name for Left 4 Dead's M16.
According to the information below, the "Rifle" uses the M4A4 model and animations, has 30 mag size, can be used by both teams, and costs $3100 (similar to M4A4) but spawning it on a local server with sv_cheats 1 displays "Attempted to create unknown entity type weapon_rifle!
NULL Ent in GiveNamedItem!" in the console.
WeaponData { // particle muzzle flash effect to play when fired MuzzleFlashEffect_1stPerson weapon_muzzle_flash_assaultrifle MuzzleFlashEffect_3rdPerson weapon_muzzle_flash_assaultrifle HeatEffect weapon_muzzle_smoke HeatPerShot 0.35 AddonScale 0.90 AddonLocation primary_rifle // model for the shell casing to eject when we fire bullets EjectBrassEffect weapon_shell_casing_rifle // the tracer particle effect and frequency TracerEffect weapon_tracers_assrifle // 0 = never, 1 = every shot, 2 = every other, etc TracerFrequency 3 WeaponType Rifle FullAuto 1 CrosshairMinDistance 4 // 3 to 5 CrosshairDeltaDistance 3 // AK is uniquely 4 BuiltRightHanded 1 CanEquipWithShield 0 PlayerAnimationExtension m4 Team ANY MaxPlayerSpeed 220 // 215 to 225 WeaponPrice 3100 // 2000 to 3500 KillAward 300 WeaponArmorRatio 1.4 // 1.4 to 1.55 // Weapon characteristics: Penetration 2 Damage 30 // 30 to 36 Range 8192 clip_size 30 // 25 to 35 default_clip" -1 default_clip2" -1 RangeModifier 0.97 // 0.955 to 0.98 Bullets 1 CycleTime 0.09 // 0.09 to 0.1 TimeToIdle 1.5 // 1.1 to 1.9 IdleInterval 20 // M4A1 is uniquely 60 FlinchVelocityModifierLarge 0.40 FlinchVelocityModifierSmall 0.55 // Accuracy parameters: Spread 0.60 InaccuracyCrouch 4.00 // 2.8 to 7.39 InaccuracyStand 5.50 // 3.85 to 8.77 InaccuracyJump 0.640 // 0.627 to 0.852 InaccuracyLand 0.192 // 0.188 to 0.256 InaccuracyLadder 85.38 // 83.66 to 107.61 InaccuracyFire 6.83 // 6.16 to 8.78 InaccuracyMove 100.00 // 91.01 to 123.56 // Accuracy parameters for secondary fire mode ( burst or scoped ): SpreadAlt 0.60 InaccuracyCrouchAlt 3.00 // 1.98 to 4.84 InaccuracyStandAlt 5.00 // 2.65 to 7.78 InaccuracyJumpAlt 0.70 // 0.627 to 0.852 InaccuracyLandAlt 0.20 // 0.188 to 0.256 InaccuracyLadderAlt 100 // 83.66 to 113.58 InaccuracyFireAlt 5.00 // 3.35 to 6.68 InaccuracyMoveAlt 90.0 // 78.46 to 106.52 RecoveryTimeCrouch 0.34 // 0.302625 to 0.384861 RecoveryTimeStand 0.45 // 0.423676 to 0.538805 RecoilSeed 12345 RecoilAngle 0 RecoilAngleVariance 70 // Famas is uniquely 60 RecoilMagnitude 23 // 21 to 23, AK-47 is outlier at 30 RecoilMagnitudeVariance 1 // Weapon data is loaded by both the Game and Client DLLs. printname #SFUI_WPNHUD_M4A1 viewmodel models/weapons/v_rif_m4a1.mdl playermodel models/weapons/w_rif_m4a1.mdl anim_prefix anim bucket 0 bucket_position 0 primary_ammo BULLET_PLAYER_556MM // or BULLET_PLAYER_762MM secondary_ammo None weight 25 // Famas is uniquely 75 item_flags 0 rumble 4 // Famas is uniquely 3 // Sounds for the weapon. There is a max of 16 sounds per category (i.e. max 16 single_shot sounds) SoundData { single_shot Weapon_M4A1.Single // special1 Weapon_M4A1.Silenced // special2 Weapon_M4A1.Silencer_Off // special3 Weapon_M4A1.Silencer_On } // Weapon Sprite data is loaded by the Client DLL. TextureData { weapon { font CSweaponsSmall character W } weapon_s { font CSweapons character W } ammo { font CSTypeDeath character N } crosshair { file sprites/crosshairs x 0 y 48 width 24 height 24 } autoaim { file sprites/crosshairs x 0 y 48 width 24 height 24 } } ModelBounds { Viewmodel { Mins "-10 -2 -13" Maxs "30 10 0" } World { Mins "-8 -9 -6" Maxs "29 9 8" } } }
Notes
In addition, if cheats are enabled (sv_cheats 1
) on a server, typing give weapon_mp5navy
, weapon_scout
, weapon_usp
, or weapon_gail
in the console will cause the game to crash.
game_sounds_weapons
In game_sounds_weapons.txt, sounds with effects also mention Counter-Strike: Source and an unimplemented SCAR 17.
//TMP "Weapon_TMP.Single" { "channel" "CHAN_STATIC" "volume" "1.0" "pitch" "PITCH_NORM" "soundlevel" "SNDLVL_93dB" "wave" ")weapons/tmp/tmp-1.wav" "soundentry_version" "2" "operator_stacks" { "start_stack" { "import_stack" "CS_distance_weapon_start" "play_distant_version_1" { "entry_name" "Weapon_TMP.SingleDistant" } } "update_stack" { "import_stack" "CS_update_weapon" "mixer" { "mixgroup" "FirstWeapons" } "volume_distance_xfade" { "input_map_min" "0.0" "input_map_max" "1.0" } } } } "Weapon_TMP.SingleDistant" { "channel" "CHAN_STATIC" "volume" "1.0" "pitch" "PITCH_NORM" "soundlevel" "SNDLVL_94dB" "wave" "weapons/tmp/tmp-1-distant.wav" "soundentry_version" "2" "operator_stacks" { "start_stack" { "import_stack" "CS_limit_start" } "update_stack" { "import_stack" "CS_update_weapon" "mixer" { "mixgroup" "DistWeapons" } } } } "Weapon_TMP.Clipout" { "channel" "CHAN_ITEM" "volume" "1.0" "pitch" "PITCH_NORM" "soundlevel" "SNDLVL_65dB" "wave" "weapons/tmp/tmp_clipout.wav" } "Weapon_TMP.Clipin" { "channel" "CHAN_ITEM" "volume" "1.0" "pitch" "PITCH_NORM" "soundlevel" "SNDLVL_65dB" "wave" "weapons/tmp/tmp_clipin.wav" } "Weapon_TMP.Draw" { "channel" "CHAN_STATIC" "volume" ".5" "pitch" "PITCH_NORM" "soundlevel" "SNDLVL_65dB" "wave" "weapons/tmp/tmp_draw.wav" } // "Weapon_TMP.BoltPull" // { // "channel" "CHAN_ITEM" // "volume" "1.0" // "pitch" "PITCH_NORM" // "wave" "weapons/tmp/tmp_boltpull.wav" // } "Weapon_TMP.BoltBack" { "channel" "CHAN_ITEM" "volume" "1.0" "pitch" "PITCH_NORM" "soundlevel" "SNDLVL_65dB" "wave" "weapons/tmp/tmp_boltback.wav" } "Weapon_TMP.BoltForward" { "channel" "CHAN_ITEM" "volume" "1.0" "pitch" "PITCH_NORM" "soundlevel" "SNDLVL_65dB" "wave" "weapons/tmp/tmp_boltforward.wav" } //MP5 "Weapon_MP5Navy.Single" { "channel" "CHAN_STATIC" "volume" "1.0" "pitch" "PITCH_NORM" "soundlevel" "SNDLVL_93dB" "wave" ")weapons/mp5navy/mp5-1.wav" "soundentry_version" "2" "operator_stacks" { "start_stack" { "import_stack" "CS_distance_weapon_start" "play_distant_version_1" { "entry_name" "Weapon_MP5Navy.SingleDistant" } } "update_stack" { "import_stack" "CS_update_weapon" "mixer" { "mixgroup" "FirstWeapons" } "volume_distance_xfade" { "input_map_min" "0.0" "input_map_max" "1.0" } } } } "Weapon_MP5Navy.SingleDistant" { "channel" "CHAN_STATIC" "volume" "1.0" "pitch" "PITCH_NORM" "soundlevel" "SNDLVL_94dB" "wave" "weapons/mp5navy/mp5-1-distant.wav" "soundentry_version" "2" "operator_stacks" { "start_stack" { "import_stack" "CS_limit_start" } "update_stack" { "import_stack" "CS_update_weapon" "mixer" { "mixgroup" "DistWeapons" } } } } "Weapon_MP5Navy.Clipout" { "channel" "CHAN_ITEM" "volume" "1.0" "pitch" "PITCH_NORM" "soundlevel" "SNDLVL_65dB" "wave" "weapons/mp5navy/mp5_clipout.wav" } "Weapon_MP5Navy.Clipin" { "channel" "CHAN_ITEM" "volume" "1.0" "pitch" "PITCH_NORM" "soundlevel" "SNDLVL_65dB" "wave" "weapons/mp5navy/mp5_clipin.wav" } "Weapon_MP5Navy.Draw" { "channel" "CHAN_STATIC" "volume" ".5" "pitch" "PITCH_NORM" "soundlevel" "SNDLVL_65dB" "wave" "weapons/mp5navy/mp5_draw.wav" } "Weapon_MP5Navy.Slideback" { "channel" "CHAN_ITEM" "volume" "1.0" "pitch" "PITCH_NORM" "soundlevel" "SNDLVL_65dB" "wave" "weapons/mp5navy/mp5_slideback.wav" } "Weapon_MP5Navy.SlideForward" { "channel" "CHAN_ITEM" "volume" "1.0" "pitch" "PITCH_NORM" "soundlevel" "SNDLVL_65dB" "wave" "weapons/mp5navy/mp5_slideforward.wav" } //SCAR 17 "Weapon_SCAR17.Single" { "channel" "CHAN_STATIC" "volume" "1.0" "pitch" "PITCH_NORM" "soundlevel" "SNDLVL_93dB" "wave" ")weapons/scar17/scar20_unsil-1.wav" "soundentry_version" "2" "operator_stacks" { "start_stack" { "import_stack" "CS_distance_weapon_start" "play_distant_version_1" { "entry_name" "Weapon_SCAR17.SingleDistant" } } "update_stack" { "import_stack" "CS_update_weapon" "mixer" { "mixgroup" "FirstWeapons" } "volume_distance_xfade" { "input_map_min" "0.0" "input_map_max" "1.0" } } } } "Weapon_SCAR17.SingleDistant" { "channel" "CHAN_STATIC" "volume" "1.0" "pitch" "PITCH_NORM" "soundlevel" "SNDLVL_94dB" "wave" "weapons/scar17/scar20_unsil-1-distant.wav" "soundentry_version" "2" "operator_stacks" { "start_stack" { "import_stack" "CS_limit_start" } "update_stack" { "import_stack" "CS_update_weapon" "mixer" { "mixgroup" "DistWeapons" } } } } "Weapon_SCAR17.Clipout" { "channel" "CHAN_ITEM" "volume" "1.0" "pitch" "PITCH_NORM" "soundlevel" "SNDLVL_65dB" "wave" "weapons/scar17/scar20_clipout.wav" } "Weapon_SCAR17.Clipin" { "channel" "CHAN_ITEM" "volume" "1.0" "pitch" "PITCH_NORM" "soundlevel" "SNDLVL_65dB" "wave" "weapons/scar17/scar20_clipin.wav" } "Weapon_SCAR17.ClipTouch" { "channel" "CHAN_ITEM" "volume" "1.0" "pitch" "PITCH_NORM" "soundlevel" "SNDLVL_65dB" "wave" "weapons/scar17/scar20_cliptouch.wav" } "Weapon_SCAR17.Draw" { "channel" "CHAN_STATIC" "volume" ".5" "pitch" "PITCH_NORM" "soundlevel" "SNDLVL_65dB" "wave" "weapons/scar17/scar20_draw.wav" } "Weapon_SCAR17.BoltBack" { "channel" "CHAN_ITEM" "volume" "1.0" "pitch" "PITCH_NORM" "soundlevel" "SNDLVL_65dB" "wave" "weapons/scar17/scar20_boltback.wav" } "Weapon_SCAR17.BoltForward" { "channel" "CHAN_ITEM" "volume" "1.0" "pitch" "PITCH_NORM" "soundlevel" "SNDLVL_65dB" "wave" "weapons/scar17/scar20_boltforward.wav" } "Weapon_SCAR17.Draw" { "channel" "CHAN_STATIC" "volume" ".5" "pitch" "PITCH_NORM" "soundlevel" "SNDLVL_65dB" "wave" "weapons/scar17/scar20_draw.wav" }
Regional Differences
Low Violence
Originally, the German version of the game found on Steam had "low violence" enabled, which turned blood into "Oil" and has animations for people laying down and putting their hands over their heads once killed. It was later removed due to Germany finally having a decent law in place relating to portraying blood in video games, and as a result, goes unused. This feature however, can be reenabled by typing -lv
in the launch options. For obvious reasons, the console-retail version (Xbox 360 and PS3) is still bloodless.
Language
Sounds for factions have also been changed in some countries.
Unused Map Areas
de_cache
Like most other maps in the Competitive map pool, de_cache is set up to use small 1v1 arenas for warm-up, however, warm-ups in the map still take place in the entire map.
de_cbble
Despite being just out of view, the original passage to B site still remains intact after the Halloween 2018 rework of Cobble. The porta-potties were replaced with gravestones.
de_shortdust
Although the map is a cut-down version of de_dust, many areas of the original map are still fully rendered instead of being removed from the map entirely.
fy_poolday
A remake of the classic Counter-Strike 1.6 map Poolday, that was meant to be released for Operation Payback. A thumbnail image for the map existed, as well as a picture for the official CS:GO blog. Strings remain for the map.
gd_cbble
A cut-down version of de_cbble for the co-operative Guardian mode. The map involves defending against waves of terrorist bots for a set amount of time. A hostage named "Lord William" is present on the map as a nod to Cobble in the previous games being under his ownership. The T and CT spawns are flipped. Players spawn either on a sniper tower or on the bombsite, and can choose between a SSG 08 and a MAG-7 on some weapon crates.
lobby_mapveto
The background map that was used for CS:GO's iteration of Premier Competitive. With the release of Counter-Strike 2, Valve removed all forms of matchmaking from CS:GO, leaving this "map" unused.
Taunts
To do: Document the code for taunts in the 2020 leak. The leak also includes code for first person taunts. |
Taunts were a scrapped mechanic first seen in the May 31, 2016 patch. Based on the leaked strings, they would be executed in third person mode, only be allowed in specific gamemodes and at the start and end of the round.
ACT_CSGO_TAUNT_CT ACT_CSGO_TAUNT_SPAWN_CT ACT_CSGO_TAUNT_SPAWN_T ACT_CSGO_TAUNT_T AE_CL_TAUNT_SET_CAMERA_ENABLED AE_CL_TAUNT_SET_CAMERA_FOV AE_BEGIN_TAUNT_LOOP Required key "taunt_definitions" missing. Taunt definition %short: missing required "name" Taunt definition %short: missing required "sequence_name" Taunt definition %short: name must be signed char positive integer "Normally taunts are restricted to respawning game modes and the end of the round. Set this to allow taunts at any time."
String related to taunts would later be seen in subsequent patches on January 12, 2017 and June 20, 2017.
//January 12 cl_enable_animated_taunt_cam mp_tauntcam_dist mp_tauntcam_pitch mp_tauntcam_speed mp_tauntcam_yaw //June 20 sv_taunt_on_spawn sv_taunt_override
A plethora of sound files intended for the unreleased taunts would later be added in the November 18, 2019 patch with the introduction of Operation Shattered Web.
Dungeon
Files related to a Dungeon mode were added with Operation Shattered Web in the November 18, 2019 patch.
Dungeon can be described as a procedurally generated wave based co-op gamemode, resembling a rouge-like experience. Each floor would stack the CTs against a wave of AI controlled Ts with random pre-defined loadouts. Waves took place on "floors", which players would access through an elevator. These waves would get increasingly harder with Floor 16 being the final wave. The mode would also feature fast travel, that would be unlocked upon reaching Floor 5, 10 and 15.
main.nut
DEBUG <- false; wave <- 0; NEXTFLOOR <- 0; // the next floor to travel to FASTTRAVEL1 <- false; // has player unlocked fast travel stage 1? these vars persist on "@script_varcontainer" FASTTRAVEL2 <- false; // has player unlocked fast travel stage 2? FASTTRAVEL3 <- false; // has player unlocked fast travel stage 3? PLAYER_AMOUNT <- 0; // how many players are playing? PERSISTENTCONTAINER <- Entities.FindByName (null, "@script_varcontainer"); ISWARMUP <- ScriptIsWarmupPeriod(); // Floor list // Floor 0 - Starting area // Floor 1 - combat arena, group 1 // Floor 2 - combat arena, group 1 // Floor 3 - Combat arena, group 1 // Floor 4 - Combat arena, group 1 // // Floor 5 - Combat arena, group 2 // Floor 6 - Combat arena, group 2 // Floor 7 - Combat arena, group 2 // Floor 8 - Combat arena, group 2 // // Floor 9 - Shortcut fight // // Floor 10 - Combat arena, group 3 // Floor 11 - Combat arena, group 3 // Floor 12 - Combat arena, group 3 // Floor 13 - Combat arena, group 3 // // Floor 14 - Combat arena, group 4 // Floor 15 - Combat arena, group 4 // Floor 16 - End fight CURRENTDIFFICULTY <- 0; ENEMYAMOUNT <- 0; LoadoutType <- [1, 9] WeaponLoadout <- {} // NOTE: EnemyDifficulty() uses these to decide weapon loadouts, remember to keep in sync! // early game loadouts WeaponLoadout[1] <- "glock" WeaponLoadout[2] <- "deagle" WeaponLoadout[3] <- "tec9" WeaponLoadout[4] <- "sawedoff" WeaponLoadout[5] <- "nova" WeaponLoadout[6] <- "mp7" WeaponLoadout[7] <- "bizon" WeaponLoadout[8] <- "mac10" WeaponLoadout[9] <- "ump45" // mid game WeaponLoadout[10] <- "galilar" WeaponLoadout[11] <- "famas" WeaponLoadout[12] <- "p90" WeaponLoadout[13] <- "ump45, flashbang" WeaponLoadout[14] <- "mag7" WeaponLoadout[15] <- "deagle, molotov" WeaponLoadout[16] <- "xm1014" WeaponLoadout[17] <- "famas, hegrenade" WeaponLoadout[18] <- "nova, flashbang" // late game WeaponLoadout[19] <- "xm1014, flashbang" WeaponLoadout[20] <- "ak47" WeaponLoadout[21] <- "p90, hegrenade" WeaponLoadout[22] <- "sg556" WeaponLoadout[23] <- "m4a1, flashbang" WeaponLoadout[24] <- "ak47, molotov" WeaponLoadout[25] <- "galilar, hegrenade" // PISTOLS: deagle, fiveseven, tec9, p250 // HEAVY : sawedoff, nova, xm1014, mag7, m249 // RIFLES : famas, sg556, ak47, galilar, aug, awp, m4a1 // SMG : mp9, mp7, bizon, ump45, p90, mac10 // NADES : hegrenade, smokegrenade, molotov, flashbang m_CTs <- []; function CollectCTs() { ent <- null; while( ( ent = Entities.FindByClassname( ent, "player" ) ) != null ) { if ( FindInArray( m_CTs, ent ) == null ) { m_CTs.push( ent ); } } } function RoundInit() // called on OnLevelReset { if (ISWARMUP == false) { wave = 0; EnemyDifficulty( 1 ); FASTTRAVEL1 = PERSISTENTCONTAINER.GetScriptScope().FASTTRAVEL1; FASTTRAVEL2 = PERSISTENTCONTAINER.GetScriptScope().FASTTRAVEL2; FASTTRAVEL3 = PERSISTENTCONTAINER.GetScriptScope().FASTTRAVEL3; SendToConsoleServer( "mp_coopmission_bot_difficulty_offset 1" ); ScriptCoopSetBotQuotaAndRefreshSpawns( 0 ); CollectCTs(); PLAYER_AMOUNT = m_CTs.len(); printl (""); printl ("PLAYER AMOUNT: " + PLAYER_AMOUNT ); printl (""); SetFloor(); // set up elevator, spawn points EntFire("trigger.elevator_doors", "Enable", 0, 0); } else { printl (""); printl (""); printl ("We're in warmup so I D G A F"); printl (""); printl (""); } } SpawnCollection <- [] function CollectSpawns( name ) { ent <- null; while( ( ent = Entities.FindByName( ent, name ) ) != null ) { if ( FindInArray( SpawnCollection, ent ) == null ) { SpawnCollection.push( ent ); } } SetupSpawns(); } function PlayersInElevator( var ) { local amount = var; printl ("PLAYERS IN ELEVATOR : " + amount) if (amount == PLAYER_AMOUNT) { EntFire("elevator.relay.startmove", "Trigger", 0, 0); } } function Test() { RemoveDecalsAndGuns(); } function EnemyDifficulty( difficulty ) // Updated via Progression(); { switch ( difficulty ) { case 1: LoadoutType[0] = 1; LoadoutType[1] = 9; ENEMYAMOUNT = 6; break; case 2: LoadoutType[0] = 10; LoadoutType[1] = 18; ENEMYAMOUNT = 8; break; case 3: LoadoutType[0] = 19; LoadoutType[1] = 25; ENEMYAMOUNT = 10; break; } } function SetupSpawns() { foreach (spawn in SpawnCollection) { local loadout = WeaponLoadout[RandomInt( LoadoutType[0], LoadoutType[1] )]; spawn.__KeyValueFromString ("weapons_to_give", loadout ); printl ("Equipped bot with " + loadout); } if (wave >= 10) { local SpawnLen = SpawnCollection.len(); local RandomPick = SpawnCollection[RandomInt( 0, SpawnLen - 1 )] RandomPick.__KeyValueFromInt ("armor_to_give", 2 ); RandomPick.__KeyValueFromString ("model_to_use", "models/player/custom_player/legacy/tm_phoenix_heavy.mdl" ); } } function RespawnPlayers() { ScriptCoopMissionRespawnDeadPlayers(); } function Progression() { printl ("WAVE IS CURRENTLY: " + wave); if (wave <= 4) { EntFire( "floor_group1", "PickRandomShuffle", "", 0 ); EnemyDifficulty( 1 ); } else if (wave == 5) { SetNextFloor(9); } else if (wave >= 6 && wave <= 9) { EntFire( "floor_group2", "PickRandomShuffle", "", 0 ); EnemyDifficulty( 2 ); } else if (wave == 10) { SetNextFloor(9); } else if (wave >= 11 && wave <= 14) { EntFire( "floor_group3", "PickRandomShuffle", "", 0 ); EnemyDifficulty( 3 ); } else if (wave == 15) { SetNextFloor(9); } else if (wave >= 16 && wave <= 17) { EntFire( "floor_group4", "PickRandomShuffle", "", 0 ); } else if (wave == 18) { SetNextFloor(16); } } function SetNextFloor( floor ) { NEXTFLOOR = floor; SetSpawnGroup(); } function SetFloor() { EntFire( "*-spawn", "SetDisabled", "", 0 ); // disable all spawns // check if player has unlocked fast travel printl ("FAST TRAVEL STAGE 3: " + FASTTRAVEL3); printl ("FAST TRAVEL STAGE 2: " + FASTTRAVEL2); printl ("FAST TRAVEL STAGE 1: " + FASTTRAVEL1); if (FASTTRAVEL3 == true && wave <= 15) { wave = 16; } else if (FASTTRAVEL2 == true && wave <= 10) { wave = 11; } else if (FASTTRAVEL1 == true && wave <= 5) { wave = 6; } else { wave++; printl ("No fast travel unlocked"); } Progression(); } function SetSpawnGroup() { local SpawnGroup = NEXTFLOOR + "-spawn"; printl (SpawnGroup); EntFire( SpawnGroup, "SetEnabled", "", 0.1 ); CollectSpawns( SpawnGroup ); } function UnlockCheckpointSluice( players ) // check if players are spread out in different sluices { if (players == PLAYER_AMOUNT) { EntFire( "@checkpoint_relay_start", "Trigger", "", 0 ); } } DroppedWeapon <- null; function RemoveDecalsAndGuns() // don't use this quite yet, it will remove the players weapons as well.. { printl ("CLEANING UP, WOO!"); SendToConsole("r_cleardecals"); // while((DroppedWeapon = Entities.FindByClassname(DroppedWeapon,"prop_physics")) != null) // { // DoEntFire("!self","Kill","0",0,null,DroppedWeapon); // Will fire on named and un-named entities alike. // } } function ElevatorSetFloor() // run when entering elevator { EntFire( "elevator.mover", "RunScriptCode", "SetTargetFloor(" + NEXTFLOOR + ")", 0 ); } function ElevatorArrived() // run when elevator stops moving { if ( wave == 1 ) { SpawnFirstEnemies( ENEMYAMOUNT ); } else { SpawnNextWave( ENEMYAMOUNT ); } } function SpawnFirstEnemies( amount ) { ScriptCoopMissionSpawnFirstEnemies( amount ); ScriptCoopResetRoundStartTime(); } function SpawnNextWave( amount ) { ScriptCoopMissionSpawnNextWave( amount ); } function OnMissionCompleted() { // fade out screen, end round EntFire( "@screen_fade", "Fade", "", 0.0 ); EntFire( "@game_end", "EndRound_CounterTerroristsWin", "3", 0.0 ); } function OnRoundLostKilled() { //what will happen if you loose the round because you died (you could tell the players that your grandma is better than them) } function OnRoundLostTime() { //what will happen if you loose the round because the time runs out (you could tell the player that they are like turtles) } function OnRoundReset() { //called when the round resets // IMPORTANT: you need a game_coopmission_manager that has the output 'OnLevelReset' when this is called you NEED to call this function // in order for the level to work properly every round! RoundInit(); } function OnSpawnsReset() { //called right before the round resets (usually used for correcting stuff when on a new round other stuff is immediately called) //enabled/disabled the correct spawns for the start. * means every group going from Terrorist_00 to infinite enemygroup_example EntFire( "*-spawn", "SetDisabled", "", 0 ); EntFire( "*-CT", "SetDisabled", "", 0 ); EntFire( "1-CT", "SetEnabled", "", 0 ); } function OnWaveCompleted() { if (wave < 18) { SpawnCollection.clear(); SetFloor(); EntFire("elevator.relay.unlock", "Trigger", 0, 0); } else if (wave == 18) { printl ("that was the final wave"); OnMissionCompleted() } if (wave == 6) // TODO: this one and the next should both be in a checkpoint fight, fast travel unlocked via level script. ooooor just increase enemy amount for checkpoint fights? { EntFire( "@script_varcontainer", "RunScriptCode", "SetFastTravelVar(" + 1 + ")", 0 ); ScriptPrintMessageCenterAll ("Fast travel to floor 6 unlocked!"); } if (wave == 11) { EntFire( "@script_varcontainer", "RunScriptCode", "SetFastTravelVar(" + 2 + ")", 0 ); ScriptPrintMessageCenterAll ("Fast travel to floor 11 unlocked!"); } if (wave == 16) { EntFire( "@script_varcontainer", "RunScriptCode", "SetFastTravelVar(" + 3 + ")", 0 ); ScriptPrintMessageCenterAll ("Fast travel to floor 16 unlocked!"); } //Check which wave the player is and do stuff // if ( wave == 1 ) // { // EntFire( "wave_*", "SetDisabled", "", 0 ); // EntFire( "wave_02", "SetEnabled", "", 0 ); // EntFire( "door_wave_01", "Unlock", "", 1 ); // EntFire( "door_wave_01", "SetGlowEnabled", "", 1 ); // } // else if ( wave == 2 ) // { // EntFire( "wave_*", "SetDisabled", "", 0 ); // EntFire( "wave_03", "SetEnabled", "", 0 ); // EntFire( "door_wave_02", "Unlock", "", 1 ); // EntFire( "door_wave_02", "SetGlowEnabled", "", 1 ); // } // else if ( wave == 3 ) // { // EntFire( "door_wave_03", "Unlock", "", 1 ); // EntFire( "door_wave_03", "SetGlowEnabled", "", 1 ); // } } function ChangeGameModeToCoopIfNotCorrect() { // This will change the game mode and game type if the player has not initialized this before starting the map. local game_mode = ScriptGetGameMode(); local game_type = ScriptGetGameType(); local map = GetMapName(); if (game_mode != 1 || game_type != 4) { SendToConsole("game_mode 1; game_type 4; changelevel " + map); } } // util stuff function FindInArray( array, thing ) { foreach( i, elem in array ) { if ( elem == thing ) return i; } return null; } function debugPrint( text ) { if ( DEBUG == false ) return; printl( text ); }
elevator.nut
FLOORHEIGHT <- 0.0625; ELEVATOR_MOVING <- false; IN_TRANSIT <- false; TARGET_FLOOR <- 0; function Think() { local MoveVector = self.GetVelocity(); if (MoveVector.z != 0) { ELEVATOR_MOVING = true; } else { ELEVATOR_MOVING = false; } if (IN_TRANSIT == true && ELEVATOR_MOVING == false) { EntFire("elevator.relay.endmove", "Trigger", 0, 0); IN_TRANSIT = false; } } function SetTargetFloor( floor ) { TARGET_FLOOR = floor; printl ("ELEVATOR: Floor received, set to " + TARGET_FLOOR); } function MoveToFloor() { local movedistance = TARGET_FLOOR * FLOORHEIGHT; EntFire("elevator.mover", "SetPosition", movedistance, 0); printl ("ELEVATOR: moving to floor " + TARGET_FLOOR + ", which is at position " + movedistance); IN_TRANSIT = true; } function TestMove() { local randomfloor = RandomInt(2, 14) TARGET_FLOOR = randomfloor; printl (randomfloor); MoveToFloor(); }
persistent.nut
// persistent variables, checked and set from main script FASTTRAVEL1 <- false; // has player unlocked fast travel stage 1? FASTTRAVEL2 <- false; // has player unlocked fast travel stage 2? FASTTRAVEL3 <- false; // has player unlocked fast travel stage 3? function SetFastTravelVar( var ) { if (var == 1) { FASTTRAVEL1 = true; } if (var == 2) { FASTTRAVEL2 = true; } if (var == 3) { FASTTRAVEL3 = true; } printl ("") printl ("PERSISTENT VAR:") printl ("FASTRAVEL1 = " + FASTTRAVEL1) printl ("FASTRAVEL2 = " + FASTTRAVEL2) printl ("FASTRAVEL3 = " + FASTTRAVEL3) printl ("") }
Leftovers De_balkan
Despite the developers never releasing this map has only mission bonus condition string referring in game files.
"quest_bonus_de_balkan" "when the map is Balkan"
On the February 28, 2018, to Steam Database were added Rich Presence.
Revisional Differences
To do: CS:GO has seen many revisional changes that they substantiate their own page, See https://blog.counter-strike.net/index.php/category/updates. |
The Counter-Strike series
| |
---|---|
Windows, Linux | Counter-Strike (Prototypes) • Condition Zero (Prototype) • Condition Zero: Deleted Scenes • Source (Prototypes) • Global Offensive (Prototypes) • Counter-Strike 2 |
Arcade | Counter-Strike NEO (Prototypes) |
Xbox | Counter-Strike (Prototypes) |
Mac OS X | Counter-Strike • Condition Zero • Source • Global Offensive (Prototypes) |
Xbox 360 | Global Offensive (Prototype) |
PlayStation 3 | Global Offensive |
See Also | |
Half-Life • Left 4 Dead |
- Pages missing developer references
- Games developed by Valve
- Games developed by Hidden Path Entertainment
- Pages missing publisher references
- Games published by Valve
- Windows games
- Mac OS X games
- Linux games
- Xbox 360 games
- PlayStation 3 games
- Pages missing date references
- Games released in 2012
- Games released in August
- Games released on August 21
- Games with unused areas
- Games with unused characters
- Games with hidden development-related text
- Games with unused graphics
- Games with unused models
- Games with unused items
- Games with unused abilities
- Games with unused music
- Games with unused sounds
- Games with unused text
- Games with debugging functions
- Games with regional differences
- Games with revisional differences
- Defunct online content
- To do
- Counter-Strike series
Cleanup > Pages missing date references
Cleanup > Pages missing developer references
Cleanup > Pages missing publisher references
Cleanup > To do
Games > Defunct online content
Games > Games by content > Games with debugging functions
Games > Games by content > Games with hidden development-related text
Games > Games by content > Games with regional differences
Games > Games by content > Games with revisional differences
Games > Games by content > Games with unused abilities
Games > Games by content > Games with unused areas
Games > Games by content > Games with unused characters
Games > Games by content > Games with unused graphics
Games > Games by content > Games with unused items
Games > Games by content > Games with unused models
Games > Games by content > Games with unused music
Games > Games by content > Games with unused sounds
Games > Games by content > Games with unused text
Games > Games by developer > Games developed by Hidden Path Entertainment
Games > Games by developer > Games developed by Valve
Games > Games by platform > Linux games
Games > Games by platform > Mac OS X games
Games > Games by platform > PlayStation 3 games
Games > Games by platform > Windows games
Games > Games by platform > Xbox 360 games
Games > Games by publisher > Games published by Valve
Games > Games by release date > Games released in 2012
Games > Games by release date > Games released in August
Games > Games by release date > Games released in August > Games released on August 21
Games > Games by series > Counter-Strike series