CS:GO Spectator Tools

This page covers tools available for Spectators in and what mappers can do to improve the spectating experience.
==Controls==
The essential controls when spectating include the following.
Key	Alternative Command 	Description
 	spec_mode [number] 	Cycle through the camera modes IN_EYE (4), CHASING (5) and ROAMING (6). The former two refer to a specific player; The latter behaves like using .
and	 	Cycle through the players that are alive. Does nothing while ROAMING.
to 	spec_player <entindex>spec_player_by_accountid <id>spec_player_by_name <string>	Go to a specific player, if they are alive. If pressed together with , a Spectator Camera is used, see below.
 	 	Toggle a big radar image where the spectator can draw lines.
==Spectator Cameras==
Spectator Cameras allow a spectator or GOTV viewer to view a selected player from a static camera position within the world.
===Usage===
To view a player through a static spectator camera, press the number key that corresponds to a living player that you want to view, like normal, but press while doing so. So for example, if you would like to watch player "Bob" and "Bob" is in spectator player position 4, you would press . If the system does not find a good static camera to switch to, it will fall back to viewing your selected player in first person mode.
To exit this mode, you can hit to cycle to the next mode or simply press a number key of a living player to switch to the first person view of that player.
When a player is selected to be viewed from a static camera, the game will check all of the camera positions to see which of them can see Bob. It then takes the list of cameras that can see Bob and weights them by a number of factors like distance, how many other players the camera can see, is the bomb in view, etc. 
Once a camera has been selected, the spectator view mode switches to ROAMING and moves to the position of the selected camera spot, angling the view to encompass the selected player and any other relevant objects close by.
Since you are in ROAMING, you can still move and rotate the camera freely. The camera angle will not update automatically in this mode. You can force the camera angle to update by selecting the same player again with plus the number that corresponds to that player, assuming they are still alive.
===Creation===
Static camera positions can be defined in a text file for each map. The file is located in the same directory as the BSP and should be called:
So for example, the camera file for is /csgo/maps/de_dust2_cameras.txt.
If you open an existing map camera file, you see something like this:
In between the {}'s, you have keys and values. The first part is the key and is just a descriptive word. Use it to help you remember where the position is located in the map. The name doesn't matter, it's not used by the game.
The second part is the actual coordinates of the camera and is used by the game. This line includes 5 numbers separated by a space. The first three numbers are the X Y Z coordinates of where the camera sits. The 4th and 5th numbers are the PITCH and YAW of the cameras angles and is the direction that it points. The angle will not be exactly what you see in the game, it will be the view that the camera originally tests to see if it can "see" your selected player.
To create your own cameras, load up the map that you want to add cameras to and either join team spectator or fly around using . It's also a good idea to kick the bots if you are playing with bots using bot_kick.
Once you've moved to a position that you would like to have a camera, bring down the console and type
This spits out the 5 numbers that you need to paste into your "cameras" file. Just copy those and paste them in, making sure you have quotes around them.
That's it! Save your file, reload the map and test them out!
===Testing===
There are a few ways to test your cameras. The first, is to watch a prerecorded demo of a competitive match (with ). The second is to spectate a match by being on Team Spectator. To spectate a match with bots, just start an offline game (in mode), join team Spectators and set in the console. The third is to watch a live game via GOTV.
You can create manual binds to go to specific predetermined places on the map like so:
spec_mode 6 puts you in ROAMING mode, this is important. 
==See also==
* SourceTV
Category:Level Design
Category:Counter-Strike: Global Offensive