WolfTV Server 1.0d



To spectate in a WolfTV server, only this small map is needed @ http://www.rtcwfiles.com/file.info?ID=3639 License 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 Commands Normal Commands tv_nextgame tv_nextview tv_watch tv_help tv_admin tv_camera tv_playerlist tv_status tv_gamelist tv_silent tv_nospeech tv_messages

Admin Commands tv_connect tv_disconnect tv_kick tv_centerprint tv_demo tv_stop tv_record tv_stoprecord tv_description tv_freemove tv_playerinfo tv_ban tv_removeban tv_listbans

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




WolfTV Readme for version 1.x
Copyright (C) 2001-2003
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.

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 

3. Limitation of Liability: UNDER NO CIRCUMSTANCES, INCLUDING 

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" 

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 


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 information). 

Running the WolfTV Server

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

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 tv_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 

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. WulfTV +set fs_basepath c:\wolf +set com_zonemegs 64 
+exec server.cfg

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 

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

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

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 
(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 

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

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 tv_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 

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 
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 toggle). 
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 
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 
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 
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 

\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 
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 demos:

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" directory 
Run WolfTV like: WolfTV +tv_demo [your_demo_name] 
+tv_record [new_demo_name] +set tv_serverTeamChat 0
eg. WolfTV +tv_demo test1 +tv_record test2 +set 
tv_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 tv_admin command to become an admin 
Issue the tv_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 \tv_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 \tv_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 \tv_watch command to switch to the non-delayed 
game you want to camera. 
Issue the \tv_camera command AGAIN and you will be given 
control of the camera. 

Chaining WolfTV
The practical side of chaining WolfTV servers is simple: use 
tv_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. WulfTV 

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 

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: delay buffers moved to disk - reduced memory usage 
ADD: redirected clients are now notified of the 
ADD: Admin IPs - allow admin by IP address - 
gtv_addAdminIP command 
ADD: tv_adminByIPOnly cvar 
ADD: tv_moderate command - only admins allowed to talk 
ADD: tv_serverIP command - prints the server IP 
ADD: support for BroadcastTV Manager 
FIX: "cam flipping" bug 
FIX: delta bugs related to gtv_nextview 
FIX: the "awaiting gamestate" bug 
CHANGE: send proper client number with gamestate 
CHANGE: improved auth flood detection code 
CHANGE: removed printing of some net errors 
CHANGE: max broadcast games raised to 8 
CHANGE: net_interface detection code 

ADD: RipCam - automatic camera 
CHANGE: Upgrade to rtcw 1.4 (protocol 60) 
Updated DNS info 
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 

Copyright 2001-2003 Brad Whitehead 

There are no comments yet. Be the first!