Skip to content Nodecraft
Support / Counter-Strike: Global Offensive / Enabling GOTV on your CS:GO Dedicated Server to Spectate and Record your Matches

Enabling GOTV on your CS:GO Dedicated Server to Spectate and Record your Matches

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

  • Go to /csgo/cfg in your File Manager and create or edit a file called autoexec.cfg

  • On its own line type in tv_enable 1

  • Your TV is now online!


How to Record

To set up auto recording, you will:

  • Go to /csgo/cfg and edit your autoexec.cfg.

  • Add the cvar tv_autorecord 1 to its own line.


  • 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 Control the Camera

  • Go to and edit your autoexec.cfg.

  • Add the cvar tv_advertise_watchable 1 to its own line.


  • Next, go into the Developer Console for CS:GO and type connect <ip address>:27020 where <ip address> is the IP Address of your server located on your Server Overview Page. Note the default 27020 port 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 Use button which is by default set to E.

  • 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
CSGO icon
Create a Counter Strike: Global Offensive Server today!
Start Free Trial

Chat blocked!

Nodecraft is an ad-free website! Disable adblock if you have any questions.