WolfTV Server 1.0a



WolfTV allows many players to spectate a live RTCW match without impeding server performance or interfering with the match. A WolfTV server connects to a game, and potentially hundreds of spectators connect to the WolfTV server.

To spectate in a WolfTV server, only this small map is needed.



      WolfTV Readme for version 1.x
      Copyright (C) 2001-2002 
      Brad "FonFon" Whitehead

	An up-to-date and better formatted version of this readme can be found at:
	Translations will be made available there as well.

      Client Installation
      Server Installation
        Quick Install
        Advanced Install
      Running the WolfTV Server
        Admining WolfTV
        WolfTV Chains and Redirection
        Relationship to RTCW (and Command Syntax)
        Command Line
        Console Commands
        Choosing a Maxclients
        Common Problems
          Unable to Bind Socket Error
      Using WolfTV
        How to connect
          Normal Commands

          Admin Commands

        Other Features
      Common Tasks
        Remove Team Chat from a Demo
        Connecting WolfTV to a Server
        Becoming Cameraman
        Chaining WolfTV
      How WolfTV Works
        The Camera


      Compatible Mods
      This license agreement can be changed without notice.

      1. Use of WolfTV: The following uses of WolfTV are prohibited:

      You agree not to disassemble, reverse engineer, decompile, or otherwise 
      modify WolfTV.

      You agree not to sell, rent, or lease WolfTV.

      You agree not to generate revenue through use of WolfTV.

      2. Warranty: WolfTV has no warranty. THIS INCLIUDES THE IMPLIED WARRANTIES 


      Client Installation

        Download the client .zip 
        Extract the zip into your RtCW directory. Make sure "Extract with 
        pathnames" is turned on. 
        You can now connect to a WolfTV server. 
        Alternatly you can connect to a WolfTV server with allow downloads on 
        (cl_allowdownloads 1). This will download the client pk3. 
      Server Installation
        Quick Install
        A quick install of the WolfTV server involves two steps:

          Extract the .zip into your RtCW directory. Make sure that "extract 
          with path names" is turned on. A subdirectory called "wolftv" should 
          be created.

          Look in the WolfTV subdirectory for a file called "wolftv.cfg". Open 
          this file with notepad or your favorite text editor. Edit the options 
          in the "Quick Setup" section.

        You can now run WolfTV.exe in your RtCW directory. Also see Admining 
        WolfTV and Common Tasks

        Advanced Install
        WolfTV requires the following things to operate correctly. This section 
        will describe the how to setup these requirements.


          Access to the RtCW pk3 files 
          A "WolfTV" subdirectory 
          A valid RtCW CD key 
          The WolfTV configuration file (wolftv.cfg) 

          Access to the RtCW pk3 files: WolfTV needs to access all of the 
          standard RtCW pk3 files. If WolfTV is run in the same directory as 
          wolfmp.exe it should be able to access these files without further 
          information. To run WolfTV in a different directory, or if WolfTV is 
          not able to find the pk3 files for some reason, you can specify the 
          location of the pk3s with the fs_basepath option. Use the command: 
          "+set fs_basepath your_wolf_dir_here" on the command line (see Command 
          Line for more information). 
          A "WolfTV" subdirectory: Once WolfTV knows the location of your RtCW 
          directory it must be able to find the correct configuration files. 
          Create a directory under your RtCW directory called "WolfTV". This is 
          where WolfTV will store configuration and other information. 
          A valid RtCW CD key: If WolfTV can find your RtCW directory correctly, 
          it will attempt to use the file "rtcwkey" in the baseq3 directory. If 
          you would like to use a different CD key to connect to servers, create 
          a file called "rtcwkey" in the WolfTV directory, and place your CD key 
          in it. 
          The WolfTV configuration file: WolfTV looks in the "WolfTV" directory 
          for a file called "wolftv.cfg". This file contains all of the 
          information WolfTV requires to run. Before running WolfTV for the 
          first time, this file must be edited and at least the options in the 
          "Quick Setup" section changed. Most people will want to look through 
          the "Advanced Options" as well. This configuration file follows the 
          standard RtCW .cfg format (see Relationship to RtCW for more 

      Running the WolfTV Server

      This section is mostly background information, read Admining WolfTV and 
      see Common Tasks for step by step practical instructions.

        Admining WolfTV
        Admining WolfTV is fairly straight forward. Think of WolfTV as a normal 
        RtCW server. It just happens to be able to connect to other servers. To 
        get WolfTV setup so that other people can watch the game the normal 
        sequence of events is:

          Setup and run WolfTV 
          Connect to WolfTV 
          Use the WolfTV_admin command to become an admin 
          Connect WolfTV to the server 
          Become cameraman 
          Tell others to connect 

        The normal way to admin WolfTV is to connect to it with RtCW and issue 
        commands. This allows you to control the camera. Most commands can also 
        be issued in the WolfTV console, however you will need to find someone 
        with RtCW to do the camera.

        Once you have WolfTV connected to a server, you might be wondering, what 
        next? You need a way to control what people connected to WolfTV see. 
        This is where the camera comes in, see Becoming Cameraman. 

        WolfTV Chains and Redirection
        To create a WolfTV chain simply connect one WolfTV server to another 
        one. The "master" WolfTV server (the first one in the chain) controls 
        what the users of every other WolfTV server in the chain see. The master 
        server is the only one with a "camera man". By chaining WolfTV servers 
        together around the world, its possible to distribute the bandwidth and 
        CPU processing requirements of serving 1000s of users. Large chains can 
        be a bit complex, so this section is intended for people doing the setup 
        of a chain, for people wishing to join a chain and mirror a match see 
        Common Tasks: Chaining WolfTV. 

        The best setup for a WolfTV chain is: one private WolfTV server at the 
        event, one "master" WolfTV server that connects to the one at the event 
        and is passworded. After that other mirror WolfTV servers that know the 
        password can connect to the master WolfTV. This is good for several 
        reasons... you can have multiple WolfTV servers at the event, and 
        because there is only one master server you can switch between them 
        easily. Redirection also works well with this setup. Redirection is an 
        experimental feature that will redirect people connecting to one WolfTV 
        server to a different WolfTV server Eg. someone tries to connect to the 
        master WolfTV, but its full, so the master looks at all the WolfTV 
        servers connected to it and chooses the one that is "most empty". This 
        way only one WolfTV server IP needs to be posted, and WolfTV servers in 
        the chain are automatically load-balanced. Since redirection is still an 
        experimental feature, and does not work for people behind NAT routers, I 
        would recommend posting all WolfTV server IPs, and recommend to people 
        that they try the master IP first. The master server also needs some 
        settings changed in the wolftv.cfg, see the large events section. This 
        is the short explanation of chaining, if you have other questions 
        contact me. 

        Relationship to RtCW (and Command Syntax)
        WolfTV is based on the RtCW server. So many commands that work in RtCW 
        will work in WolfTV, like rcon, set, reset, etc. Commmands can be 
        entered in the normal way, using the RtCW console once you have 
        connected to a WolfTV server. If you have run a RtCW server most of this 
        will be familiar. Many of the settings (cvars) for RtCW servers are the 
        same for WolfTV (Eg. sv_maxclients, rate, sv_maxrate, etc). Rcon works 
        in the standard RtCW way. 

        In the configuration file you can use any of the commands listed in 
        Console Commands. All cvars you want to set must be set using one of 
        set, sets, or setu. Commands should be placed on separate lines. 

        Command Line
        The WolfTV command line is useful for overriding cvars in the config 
        file, and executing additional config files. Commands on the command 
        line are separated with the "+" character, each "+" counts as an enter.

        eg. WolfTV +set fs_basepath c:\wolf +set com_zonemegs 64 +exec 

        In addition there are some cvars that can only be set on the command 
        line. The most important ones are:

          com_zonemegs: This is the main kind of memory that WolfTV uses. If you 
          find you are running out of memory set this variable higher. The 
          default value is 32. 
          fs_basepath:Use this to specify the location of your RtCW directory. 

        Console Commands
        The following commands are available from the console, config files, or 

          set [name] [value]
          This command sets the cvar "name" to "value". Value can be either a 
          number or words. 
          setu [name] [value]
          Same as set, except the cvar is flagged as USERINFO and is sent to the 
          server during connect 
          sets [name] [value]
          Same as set, except the cvar is flagged as SERVERINFO and is sent to 
          clients, and people viewing the server in a server browser such as 
          exec [name]
          Reads the file "name" and executes the commands in it as if they were 
          typed into the console. 
          Causes the server to exit back to the command prompt. 

        Choosing a Maxclients
        Bandwidth: Since WolfTV is a server, your hosting capacity depends 
        mostly on your upload bandwidth. Upload requirements can either be 
        estimated to be 50kBit/s per client or controlled with the sv_maxrate 
        cvar. Setting sv_maxrate is the recommended way to control bandwidth 
        usage. Setting sv_maxrate to 5000 will provide fairly smooth viewing for 
        clients, and require 40 kBit/s (8 x 5000) of upload bandwidth per 
        client. Eg. a T1 with sv_maxrate 5000 can hold:

        1,100 kBit/s / 40 kBit/s/client = about 30 clients

        CPU Use: If you have a lot of bandwidth you're likely to run out of CPU 
        power long before you run out of bandwidth. Note that this has changed 
        drastically from previous WolfTVs. There are a number of ways to tell if 
        your maxing out your CPU, note that looking at your CPU use percentage 
        IS NOT ONE OF THEM. A WolfTV server can support 2 clients for every 
        10Mhz of CPU, with NO other processes running.

        eg. PIII 800 can do 800 / 5 = 160 clients

        eg. AMD 1Ghz with other processes taking 50% of the CPU can do:
        (1000 - (1000 * 0.50)) / 5 = 100 clients

        There are a couple ways to tell how much CPU you are using: If the view 
        in WolfTV is choppy or "hanging" and you are sure you have enough 
        bandwidth, then its probably a CPU use problem (it could also be your 
        network q3 settings). If you are getting hitch warnings constantly (in 
        the console) thats another good sign that your CPU is maxing out. The 
        last (and best) way to tell is: do a com_speeds 1 in the console. This 
        will spam out a bunch of lines like:

        frame:5515 all: 20 sl: 5 sv: 0 ev1: 5 ev2: 10 cl: 0
        frame:5516 all: 21 sl: 1 sv: 0 ev1: 9 ev2: 11 cl: 0
        frame:5517 all: 19 sl: 6 sv: 0 ev1: 3 ev2: 10 cl: 0
        frame:5518 all: 20 sl: 2 sv: 0 ev1: 8 ev2: 10 cl: 0

        Each number represents the number of milliseconds it took to do each 
        task. The only number we care about is all:. If all is over 50 for 4 or 
        5 frames in a row, you need to reduce maxclients. 

        Note that past 100 clients or so, due to buffering in WolfTV, the CPU 
        use vs number of clients graph flattens out. Past 100 the CPU use guide 
        line is more like 3 or 4 clients per 10 Mhz.

        Common Problems
          Unable to Bind Socket Error
          This error can be caused by several things. The first and esiest to 
          check is that the port number you specified is not already in use. Try 
          running WolfTV with +set net_port 29345 (or some other port number) on 
          the command line.

          If the error also states that WolfTV is running out of memory, the 
          commands below may help. Since WolfTV is a high bandwidth application 
          it uses larger than normal socket buffers to handle large spikes in 
          traffic. Several flavours of unix are not able to handle larger 
          buffers by default; these commands will increase the maximum size. 
	sysctl -w kern.ipc.maxsockbuf=8388608
	sysctl -w net.inet.tcp.rfc1323=1
	sysctl -w net.inet.tcp.sendspace=1048576
	sysctl -w net.inet.tcp.recvspace=1048576

          Also see the net_sendBuffer and net_recvBuffer cvars in wolftv.cfg. 
      Using WolfTV
        How to connect
        To connect to WolfTV you need the current version of RtCW. If you play 
        on the net at all you probably already have this. NO other client is 

        To connect to WolfTV:

          Write down the IP and PORT of the server you wish to connect to 
          Run RtCW 
          Press ` to bring down the console 
          Type the command \cl_allowdownload 1 and press enter 
          Type the command \connect IP:PORT, where IP and PORT is the server 
          address you wrote down in step 1. 
          You should now be connected to WolfTV. Use the WolfTV_watch command to 
          watch a game (if one is available). 

        There is always a list of current WolfTV servers at www.gamerstv.net, 
        you can get IPs and PORTs there.

        WolfTV also works with server browsers, so you can enter the ip and port 
        into your favorite server browser and use it to connect. 

        If you are running WolfTV on the same computer as your RtCW, use the ip 
        "". Eg. assuming the default port of 27970 the command would be 
        \connect in the RtCW console. 


        Once you are connected to a WolfTV server, these commands are accessible 
        by bringing down the console (use the ` key). All commands typed into 
        the RtCW console must be preceded by a \. This simply lets RtCW know you 
        are typing in a command instead of trying to say something. 

          Normal Commands
            Moves you to the next game, causing a new map to load, or reload the 
            current one. This will only move to a game from a different server, 
            it will not switch between views of the same game. 
            Takes you to the next view for the same game, the map will not 
            reload. WolfTV must be connnected to the server two or more times 
            for this to work. 
            tv_watch [gameNumber]
            se this command to change to a specific game. If you are in the 
            waiting room; available games are listed in the center of your 
            screen. Games are also available with the \WolfTV_gamelist command. 
            Lists all the WolfTV_ commands. 
            tv_admin [password]
            Use this command to become an admin of the WolfTV server. This 
            command also allows you to watch restricted games (like the 
            non-delayed stream). 
            tv_camera [password]
            This command has several effects depending on where you use it. 
            Using this command will give you access to \WolfTV_watch restricted 
            (non-delayed) games. Once watching a game, this command will give 
            you control of the camera. 
            Lists everyone on the WolfTV server. 
            Displays general information about the WolfTV server, like number of 
            clients connected. 
            Displays a list of all games you can watch. The numbers displayed 
            before each game can be used with \WolfTV_watch. 
            Turns off "chat beeps" for chat on the q3 server (for both players 
            and spectators). Issue this command once to turn on and again to 
            turn back off (its a toggle). 
            Will turn off chat from other WolfTV users, but still print chat 
            from the game server. Can be used in conjunction with WolfTV_silent. 
            Issue this command once to turn on and again to turn back off (its a 
            Turn the display of connect, disconnect, and error messages on and 
            off. This is a toggle. 

          Admin Commands
            tv_connect IP:PORT [password]
            This command will connect WolfTV to a RtCW server. IP:PORT follows 
            the standard RtCW format, PORT is optional. "password" is the 
            password required to connect to the RtCW server, if it is not 
            passworded this should be left out. 
            tv_disconnect [gameNumber]
            Tells WolfTV to disconnect from a server, demo, game, etc. 
            "gameNumber" is optional, but should used when WolfTV is connected 
            to more than one game at a time. "gameNumber" corresponds to the 
            numbers returned by \WolfTV_gamelist. 
            tv_kick [clientNumber]
            Kick a client off the WolfTV server. Use the \WolfTV_playerlist to 
            find out the "clientNumber". 
            tv_centerprint [message]
            Print "message" in the center of all client's screen. Use \n to do 
            multi-line centerprints. 
            tv_demo [demoName]
            Begin playback of the demo named "demoName". All demos must be in 
            "WolfTV/demos", that is a subdirectory called "demos" under the 
            "WolfTV" directory. 
            tv_stop [gameNumber]
            Stop playing a demo. gameNumber is the number of the game (demo) to 
            stop playing. gameNumber is optional. 
            tv_record [recordName] [gameNumber]
            Begin recording a demo called "recordName". The game you are 
            currently watching will be recorded in "WolfTV/demos". Or optionally 
            you can specify the game to record with gameNumber. 
            tv_stoprecord [gameNumber]
            Stop recording a demo (for the game you are watching). Or optionally 
            stop recording for the game [gameNumber]. 
            tv_description [gameNumber] [description]
            Sets the description for a game. eg. \WolfTV_description 2 c1 vs c2 
            would set the description of game 2 to "c1 vs c2". 
            This experimental command allows admins free movement inside demos 
            and live games. 
            tv_playerinfo [clientNumber]
            Prints the IP of the client. This can be used with WolfTV_ban to ban 
            the clients entire subnet. 
            tv_ban [IP mask or clientNumber]
            Ban a single client, or range of IPs off the server. Clients 
            matching the ban will be kicked automatically. To ban a specific 
            client use WolfTV_playerlist to get their number, and then 
            WolfTV_ban 23 (or whatever number instead of 23). This will add 
            their IP to the ban list and kick them off the server. Bans can also 
            be placed by IP mask. eg. WolfTV_ban will ban that specific 
            IP, WolfTV_ban will ban the entire 10.1.x.y subnet. 
            tv_removeban [IP mask]
            Remove a ban. IP mask must be exact, use WolfTV_listbans for a 
            listing. eg. WolfTV_removeban will remove a ban placed on 
            the entire 10.1.2.x subnet. 
            Print a listing of all the bans in effect. 

        Other Features
          Rcon allows you to send a command to a WolfTV server just like it was 
          typed directly into the WolfTV console. Rcon for WolfTV follows the 
          same format as RtCW's. There are two ways of using rcon with a WolfTV 
          server. One, if you are connected to the server, bring down the 
          console and type \rcon [password] [command] [args]. Eg. if you were 
          connected to a WolfTV server with rcon password "test1" and wanted to 
          set sv_maxclients to 100 the command would be:

          \rcon test1 sv_maxclients 100

          The second way of sending an rcon command does not require being 
          connected to WolfTV. Bring down the console and enter the command 
          \rconAddress IP:PORT. Where IP and PORT is the address of the WolfTV 
          server. Then follow the procedure in One for entering rcon commands. 
      Common Tasks
      This section gives step by step instructions for common tasks within 
      WolfTV. This section is open, so if you feel something should be here that 
      isnt feel free to write it up and send it in. 
        Remove Team Chat from a Demo
        Many demos recorded during competitive matches contain details of a 
        team's strategies. WolfTV provides a way of removing this team chat from 

          Install WolfTV 
          You should now have a sub-directory called "WolfTV" 
          Create a directory under "WolfTV" called "demos" 
          Copy the demo you want to remove the team chat from into the "demos" 
          Run WolfTV like: WolfTV +WolfTV_demo [your_demo_name] +WolfTV_record 
          [new_demo_name] +set WolfTV_serverTeamChat 0
          eg. WolfTV +WolfTV_demo test1 +WolfTV_record test2 +set 
          WolfTV_serverTeamChat 0 
          Sit back, have a beer, and let WolfTV run. This process will take as 
          many minutes as your demo is long. WolfTV will say "Stopped 
          Recording." when its done. 

        Connecting WolfTV to a Server
        Once WolfTV is up and running you will probably want to connect it to a 
        RtCW server. This is accomplished using the WolfTV_connect command. It 
        can be issued from the console or from within the game: 

          Write down the IP and PORT of the server you want to connect to. 
          Domain names (eg. gamerstv.net) are acceptable instead of the IP. 
          Connect to WolfTV with your RtCW 
          Use the WolfTV_admin command to become an admin 
          Issue the WolfTV_connect command 

        WolfTV should now be connecting to the server. Once WolfTV has connected 
        the non-delayed and delayed games will be added to the game list. 

        OK, if you are still reading I'm assuming the above didnt work. 
        Connecting to pure servers can be a little more complicated than the 
        above. WolfTV will connect to pure servers, but it requires the correct 
        pk3s to be in the appropriate directories. Trying to get WolfTV 
        connected to a pure server is the exact same as trying to connect with 
        RtCW. You may be able to set cl_allowDownload to 1 and download the 
        required pk3s, but only if the RtCW server has sv_allowDownload 1. If 
        cl_allowDownload 1 dosnt work, you will have get the required pk3s from 
        somewhere else, or use rcon to set the server to sv_pure 0. Note: The 
        above information on downloading pk3s only applies to servers running a 
        MOD, you should always be able to connect to "baseq3" servers. Also on 
        the topic of mods... see Compatible Mods. Some mods have client 
        authentication which will not allow WolfTV to connect without special 
        support from the MOD. 

        Becoming Cameraman
        This section assumes that WolfTV is connected to a RtCW server. Becoming 
        a cameraman will allow you to control the WolfTV spectator on the RtCW 
        server. Everything you do as cameraman is sent through to the RtCW 
        server, this includes mouse movements and commands. Useful commands are 
        "\follownext" and "\team s". Everyone watching the game you are cam'ing 
        sees the same thing you do To become cameraman: 

          Issue the \WolfTV_camera command. This gives you permission to join 
          (and see) non-delayed games. 
          To control the camera you must be watching a non-delayed game. Use the 
          \WolfTV_gamelsit command to get a list of the games (or look in the 
          center of your screen if are in the waiting room). Look through the 
          list for games with "WOLF" in the TYPE column, these are non-delayed. 
          Use the \WolfTV_watch command to switch to the non-delayed game you 
          want to camera. 
          Issue the \WolfTV_camera command AGAIN and you will be given control 
          of the camera. 

        Chaining WolfTV
        The practical side of chaining WolfTV servers is simple: use 
        WolfTV_connect to connect to another WolfTV server. You are now part of 
        the WolfTV chain. This process is "fire-and-forget"; once connected 
        everything else is handled by WolfTV. More connections are automatically 
        made for every game being broadcast. To make things easier you can add 
        the WolfTV_connect to WolfTV's command line, so it will automatically 
        connect to the chain when run (eg. WolfTV +WolfTV_connect

        For a more indepth discussion of chains see WolfTV Chains. 

      How WolfTV works
      WolfTV provides access to real-time viewing of popular RtCW matches. Once 
      WolfTV has connected to a server, anyone wanting to spectate the match can 
      connect directly to WolfTV. Since only one spectator spot is needed by 
      WolfTV, the RtCW server avoids having to serve to 100s of spectators. If 
      one server is not enough to meet the demand, WolfTV servers can be used to 
      connect to each other. By "chaining" WolfTV servers virtually an unlimited 
      number of spectators can be supported. 
        The Camera

        When watching a game on WolfTV everyone sees the same thing. This is 
        main difference between spectating on a RtCW server, and spectating on a 
        WolfTV server. When watching a game one client can take the camera, then 
        everyone on the WolfTV server sees what the camera man chooses to watch 
        (very much like the way TV works). The ability to watch whomever you 
        want may be in a future version of WolfTV. 

        cl_timenudge is probably the most important RtCW command when watching 
        matches on WolfTV. With cl_timenudge set to 300-500 viewing will be much 
        smoother, even with large amounts of packet loss. 

        The technical explanation:
        The cl_timenudge command tells RtCW to run a certain number of 
        milliseconds "behind" the actual game time. In other words if RtCW 
        receives a snapshot with a timestamp of 30000ms and cl_timenudge is 400 
        it will process that snapshot at 30400ms instead of 30000. It adds, or 
        nudges, 400ms on to the game time that the snapshot is valid for. With 
        cl_timenudge set to 500 in a regular game you are effectively watching a 
        recording of the game delayed by 500ms.

        When watching a game on WolfTV, you are watching a recording, delayed by 
        whatever number of seconds the server admin has chosen. When watching a 
        recording there is no such thing as lag, based on ping times. You can 
        still have packet loss, which can create lag, but thats where 
        cl_timenudge can help out a lot. With cl_timenudge set to 500, you can 
        have 500ms of solid packet loss before RtCW has to start extrapolating 
        (predicting). For example, in a normal game, when a packet is lost, RtCW 
        has to guess what that packet would have contained, which is called 
        extrapolating (predicting). You get a yellow spike on the top part of 
        the netgraph when this happens. Extrapolating is a guess at what the 
        players/(entities) are going to do. Since human motion is not 
        predictable you get prediction errors, and therfore "lag". With 
        cl_timenudge 500, if one packet is lost, because you are watching a 
        recording, RtCW can look ahead to the next packet, and interpolate 
        between them. Blue on the netgraph means RtCW is interpolating between 
        packets. When interpolating RtCW does not have to guess. It knows what 
        the next snapshot will contain, where the players are going to move to, 
        what the entities in the game are doing, etc. Players, entities simply 
        get moved in a straight line from their current position to the position 
        in the next packet. Normally you cant see this, but under conditions of 
        extremely high packet loss it can be seen. 
      Compatible Mods
      If you would like your mod listed here, and can verify that WolfTV works 
      with it, send me a short note. 
          ADD: tv_nextgame and tv_nextview commands 
          ADD: tv_forwardIPStats cvar 
          ADD: tv_allowRedirection cvar 
          FIX: problem when two servers have different passwords 
          FIX: directory case problems under *unix 
          Initial Release

There are no comments yet. Be the first!