Valve provides its own system for recording and watching CS:GO games. Turning on GOTV on your server basically adds a Camera as a spectator. This Camera can then record and allow other people to spectate what the Camera is looking at. By following the steps below, you can use this system to record your matches and open up your server for spectators to join.
How to Enable GOTV
- Go to
/csgo/cfg
in your File Manager and create or edit a file called server.cfg On a new line add "tv_enable 1"
- Restart the server
How to Setup Recording
- Go to
/csgo/cfg
and edit yourserver.cfg
- Add the cvar
tv_autorecord 1
to a newline
A recording of each match on each map will now be recorded and stored in your /csgo
directory.
To set up manual recording, you will:
- Start the server and the match you want to record
- Type
tv_record <filename>
into your server console where<filename>
can be any name you choose. This will begin recording the server. - When you are finished recording type
tv_stoprecord
into the server console. - The recording will then be placed in your
/csgo
directory with the name<filename>.dem
How to Spectate and Use the Camera
- Go to and edit your
server.cfg
. - Add the cvar
tv_advertise_watchable 1
to a new line. - Next, go into the Developer Console for CS:GO and type
connect <ip address>:<port>
where<ip address>
is the IP Address of your server located on your network page and<port>
is the second network port allocated to your CS:GO server. - This will connect you to the Camera that is watching the server.
Controlling the Camera
Normally the Camera will follow wherever the auto-director decides to look. However, this can be changed.
- To control the Camera press the
Use
button which is by default set toE
. -
You can now control where the Camera is looking
- The user control the camera can choose any spectator mode (First Person, Free-Roaming, etc), switch to any player or move around freely.
Cvars to customize your GOTV
Above we give you the most basic steps on setting up your server to work with GOTV. However, there are many other settings you can use to customize your Camera Spectator and your recordings. Here are some available cvar settings we found that could be important for you.
Cvar Name | What does it do? |
---|---|
tv_enable |
Activates GOTV on the local game server, GOTV bot will appear as spectator client after next change level. |
tv_stop |
Stops broadcasting the game via GOTV. |
tv_name <name> |
Sets GOTV name as it appears in server browser and scoreboard. |
tv_title <text> |
Sets a GOTV broadcast title shown in the spectator GUI. |
tv_advertise_watchable |
GOTV advertises the match as watchable via game UI, clients watching via UI will not need to type the password. Game servers with GOTV enabled and GOTV relays that need to support external clients connecting on GOTV port must set this to 1. |
tv_port <port> |
Set the SourceTV host port (default 27020). Must be set as start parameter. |
tv_password <password> |
Sets required passwords for connecting spectators. |
tv_status |
Shows GOTV specific information. |
tv_debug |
Shows additional debugging messages. |
tv_autorecord |
Automatically records every game, demo file name format is auto-YYYYMMDD-hhmm-map.dem |
tv_record |
Starts a GOTV demo recording that records all entities & events. |
tv_stoprecord |
Stops GOTV demo recording. |
tv_snapshotrate <n> |
Sets world snapshots broadcasted per second by GOTV. This affects the tick rate of the Camera. |
tv_transmitall <0|1> |
By default entities and events outside of the auto-director view are removed from GOTV broadcasts to save bandwidth. If tv_transmitall is enabled, the whole game is transmitted and spectators can switch their view to any player they want. This option increases bandwidth requirement per spectator client by factor 2 to 3. |
tv_maxrate <bytes> |
Sets the maximum bandwidth spent per client in bytes/second (default 5000) |
tv_delay <seconds> |
GOTV broadcast delay in seconds. |
tv_delaymapchange <0|1> |
Delays the map change on the game server until rest of buffered game has been broadcasted |
tv_allow_camera_man <0|1> |
Allows spectator clients on the game server to become SourceTV cameramen. |
tv_allow_camera_man_steamid <SteamID64> |
Allows tournament production cameraman with the submitted Steam ID to run CS:GO with the Startup Argument -interactivecaster and become the cameraman. |
tv_allow_static_shots <0|1> |
Allows auto-director to choose fixed camera shots. |
tv_relayradio <0|1> |
Relay team radio commands to TV: 0=off, 1=on |
tv_relaytextchat <0|1|2> |
Relay text chat data: 0=off, 1=say, 2=say+say_team |
tv_relayvoice <0|1> |
If enabled, allow player voice chat if broadcasted. |
tv_maxclients <0..255> |
Sets maximum client number for local SourceTV server/proxy (default 128) |
tv_clients |
Shows a list of all spectator clients connected to the local GOTV server |
tv_msg <text> |
Send a HUD message to all connected GOTV spectator clients |
tv_chatgroupsize <n> |
Set chat group size to n spectators. Only spectators in the same chat group can speak to each other. Chat groups are turned off with "tv_chatgroupsize 0" and everybody can speak to everybody. Setting chat groups helps reducing chatter noise and saves some bandwidth. |
tv_chattimelimit <n> |
Limits spectators to chat only every n seconds |