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 turn on GOTV
/csgo/cfgin your File Manager and create or edit a file called
On its own line type in
Your TV is now online!
How to Record
To set up auto recording, you will:
/csgo/cfgand edit your
Add the cvar
tv_autorecord 1to its own line.
A recording of each match on each map will now be recorded and stored in your
To set up manual recording, you will:
Start the server and the match you want to record
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_stoprecordinto the server console.
The recording will then be placed in your
/csgodirectory with the name
How to Spectate and Control the Camera
Go to and edit your
Add the cvar
tv_advertise_watchable 1to its own line.
Next, go into the Developer Console for CS:GO and type
connect <ip address>:27020where
<ip address>is the IP Address of your server located on your Server Overview Page. Note the default
27020port required for the TV.
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
Usebutton which is by default set to
You can now control where the Camera is looking
The user controller 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 local game server, GOTV bot will appear as spectator client after next changelevel.|
|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 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 password 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 effects the tickrate 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 game server until rest of buffered game has been broadcasted|
|tv_allow_camera_man <0|1>||Allows spectator clients on 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 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|