There are upcoming maintenance events which may impact our services. Learn more

How to Enable GOTV for CS:GO Print

  • 0

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

  1. Go to /csgo/cfg in your File Manager and create or edit a file called server.cfg
  2. On a new line add "tv_enable 1"
  3. Restart the server

How to Setup Recording

  1. Go to /csgo/cfg and edit your server.cfg
  2. 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:

  1. Start the server and the match you want to record
  2. Type tv_record <filename> into your server console where <filename> can be any name you choose. This will begin recording the server.
  3. When you are finished recording type tv_stoprecord into the server console.
  4. The recording will then be placed in your /csgo directory with the name <filename>.dem

How to Spectate and Use the Camera

  1. Go to and edit your server.cfg.
  2. Add the cvar tv_advertise_watchable 1 to a new line.
  3. 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.
  4. 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.

  1. To control the Camera press the Use button which is by default set to E.
  2. You can now control where the Camera is looking

  3. 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


Was this answer helpful?

« Back
Login Sign Up