You are on page 1of 6

HLTV Readme Version 1.1.0.

1. Spectator Section
HLTV offers the ability to have thousands of spectators watch online
games. To watch a game, start Half-Life, open the Multiplayer menu and
select 'Spectate Games'. Half-Life will search for currently broadcasted
games and show them in a list like normal game servers. You recognize
HLTV games by the little eye icon (and the green text). Select the game
in the list that you would like to spectate and click on 'Spectate' to
watch the game.
You can spectate the game in different modes: Chase Cam, First Person,
Free Look and Map Overview, Map Chase. The easiest way to change modes
is the spectator menu, which can be enabled by pressing the DUCK key
(by default CTRL). Here you can customize your personal view stlye. Hit
DUCK to disable the menu again. Don't forget to "cheer", by default
bound to "j".
All features are also accessible via hot keys, see "Help" in spectator
menu for further details.
If important games are announced to be broadcasted via HLTV, they often
provide IP:Port addresses of HLTV proxies. Instead of searching them via
the internal server browser, you can also lower the console and
use the 'connect' command to spectate to a certain game. For example:
]connect 192.168.130.42:27020
Don't forget to add the given HLTV port, most commonly 27020.

2. Administator Section
The core of HLTV is the hltv.exe proxy application. To broadcast a game
running on a certain game server, the HLTV proxy connects to this game
server and collects all the needed data. Spectator clients join a
multicast stream that is used by the HLTV proxy to broadcast this game.
If multicast technology is not available because the LAN or ISP routers
do not support multicast, clients can connect directly to the HLTV
proxy. The number of clients that one HLTV proxy can serve depends on
available hardware and network resources. HLTV proxies can also connect
to each other to offer more spectator slots.
A HLTV base configuration looks like this:
Players <-> HL Game Server -> HLTV Master Proxy
The Master Proxy relays the game to other proxies or spectators:
Master Proxy -> Spectators
Master Proxy -> Relay Proxy -> Spectators
In all configurations, only one HLTV proxy is connected to the game serv
er.
This HLTV proxy is called the Master Proxy (or Root Roxy). This Master
Proxy sets the game delay and analyzes the game data to position the
camera in directed spectator mode. All other HLTV proxies that are
connected to the Master Proxy as described above (called Relay Proxies)
form a chain, or tree. Each Relay Proxy transmits the game only to
spectator clients that are connected to itself. The Relay Proxies can
not delay the game or alter how the game is viewed; this only is done
by the Master Proxy.
The HLTV proxy tells the WON master servers about its broadcasted game.
Thus, users can spectate a game simply by using the built-in Half-Life
server browser, connecting to a HLTV proxy the same way as connecting to
a normal game. Users also can use the console to connect to a HLTV proxy
with the 'connect' command, the same way as connecting to a normal game.
If the HLTV proxy broadcasts the game via multicast, the client
automatically tries to join the multicast stream, if possible.
Unfortunately, multicast is disabled by most ISPs.
See hltv.cfg for more details.

The HLTV proxy's console accepts the following commands:


connect <host:port> - connect to server/proxy on the given port (def
ault 27015)
disconnect - disconnects the proxy from server/proxy or sto
ps demo playback
quit - quits the HLTV appliaction
exit - same as quit
retry - reconnects to last server/proxy
autoretry <0|1> - if enabled, proxy will retry connection to ser
ver after any network failure
masternode <0|1> - if enabled, proxy will redirect connecting spe
ctators to other proxies
which are behind this proxy in the HLTV networ
k tree. Thus several master
node proxies manage the load balance for their
subtrees. The master proxy
is by default a master node. Commentators or o
ther relay proxies will
not be redirected.
public <0|1> - if public is 0, this proxy will be excluded fr
om load balancing (default 1).
name <string> - sets the proxy's player name as shown in score
board
hostname <string> - sets the proxy's host name as shown in server
browsers
serverpassword - sets the game server password
adminpassword - set password for RCON & commentator
proxypassword - protects proxy against unwanted relay proxies
spectatorpassword - protects proxy against unwanted spectators
clients - lists all connected spectator clients with IDs
(not players in game)
maxclients <n> - how many clients can be served by this HLTV pr
oxy ( default 128 )
proxies - lists all known proxies for this game sorted b
y their load (clients/maxclients)
kick <ID> - kicks a spectator client from proxy
say <string> - sends a text message to game server (chat with
players)
msg <text> [<duration> <pos x> <pos y> <color hex rgba>]
- sends a text message to all spectators as big
HUD text
localmsg <text> [<duration> <pos x> <pos y> <color hex rgba>]
- same as msg, but only seen by local clients (n
ot relay proxies)
servercmd <string> - forwards console command to server (eg "timele
ft")
clientcmd <group> <string>
- forwards a console command to all clients in g
iven group:
1 = spectators, 2 = proxies, 3 = all
loopcmd <id> <n> <string>
- loopcmd will execute <string> every <n> second
s. <id> is a number
between 1 and 64 to identify this loopcmd. "lo
opcmd <id> none" will disable
a looping command again. loopcmd without any p
aramter will list any
command in list.
offlinetext <string> - info text clients will see as reject reason if
HLTV isn't broadcasting yet
allowjoingame <0|1> - if enabled, spectators may join game with the
'joingame' command
chatmode <0|1|2> - if chatmode is 0, spectators can't chat. If se
t to 1, only
spectators connected to the same proxy can see
their chat
messages. In chatmode 2 all spectators can cha
t between
each other (then Master and all Relay proxies
must have
set chatmode 2). Multicast spectators can't ch
at at all,
since they don't have a real connection.
decalfile <filename> - all player spray logos will be substituted wit
h this .wad file
bannerfile <filename> - specifies a TGA file (RGBA) that will be shown
as logo in spectator GUI.
signoncommands <string> - console commands that will be executed by loca
l spectator clients
after connection is established. Commands may
be seperated by semicolons.
ping <host:port> - pings a HL server on the given port (default 2
7015)
nomaster <0|1> - if enabled, proxy won't register at WON master
servers.
heartbeat - sends manually a status packet to registered W
ON master servers
rcon <string> - sends a remote control command to other server
/proxy
rconaddress <IP:port> - sets the remote control target address
rconpassword <string> - sets the password for the remote controlled ho
st
rate <n> - bandwidth rate the game server sends data to t
he proxy in bytes/second
updaterate <n> - updates per seconds send from game server to p
roxy
maxclientrate <n> - sets the maximum bandwidth rate for spectator
clients
delay <n> - delays the game stream for n seconds on the Ma
ster Proxy.
The default value is 30 seconds to avoid cheat
ing. A minimum
of 10 seconds is needed for the director modul
e.
slowmotion <t> <p> - t is the slow motion timescale, while p is the
probability that it's used
delayreconnect <0|1> - if enabled, proxy will delay reconnect on leve
lchange until rest
of game in buffer is broadcasted.
cheeringthreshold <n> - number of cheering players must be above this
threshold to play the cheering
sound (by default 0.25).
blockvoice <0|1> - if set, all incoming voice data is blocked. Th
is is useful to override incoming
voice commentators or player voice with own co
mmentators voice
sendstatus <string> - send a HLTV status message to all players on g
ame server.
multicast <0|1> - starts or stops multicast on Master Proxy. ISP
or LAN must support multicast.
mcast_connectgroup <IP:Port>
- sets the class D IP for the multicast connect
group (default 234.5.5.1:27025)
mcast_gamegroup <IP:Port>
- sets the class D IP for the multicast game gro
up (default 234.5.5.2:27025)
mcast_recoverinterval <n>
- all n frames an uncompressed packet is transmi
tted to allow multicast clients to recover
from packetloss in game group (default all 20
frames = 1 second)
mcast_connectinterval <n>
- every n seconds all necessary connection infor
mation is broadcasted in multicast
connect group (default 10 seconds). After gat
hering this signon data, clients will join
the multicast game group.
cmdlist - shows all registered proxy commands
logfile <0|1> - starts/stops console logging in hltv.log
status - shows proxy status information
version - shows proxy version
exec <filename> - executes a .cfg file
developer <0|1> - additional debug messages are shown in develop
er mode
fakeloss <n> - simulates packet loss, n = probability of a mi
ssing unit (default 0.0)
record <filename> - records all following games to demo files like
filename-1.dem to filename-nnn.dem
autorecord <0|1> - if enabled, any game will be recorded to (name
scheme auto-<date>-<mod>-<map>.dem )
stoprecord - stops recording a demo file
playdemo <filename> [<filename>] ...
- starts broadcasting a list of demo files in a
loop
playnextdemo - plays next demo in list

The console tries to complete a command name by hitting 'TAB'. All


commands in the config file "hltv.cfg" are executed during startup.
Some parameters can only be set in the command line:
-bufferlength <n> - sets proxy buffer size in seconds. The broadca
sting delay must be smaller
than this value. By default 120 seconds are bu
ffered.
-maxfps <n> - sets maximum system cycles per seconds (defaul
t 100)
-cachesize <n> - frame cache size (default 32 frames)
-ip <IP> - forces the proxy to use this IP on a multihome
d host
-port <n> - sets the HLTV proxy port that spectators conne
ct to (default 27020)
-comm <filename> - sets a master server info file other than wonc
omm.lst
-multicastttl <n> - sets the Time-To-Live value for multicast pack
ets
-highpriority - starts the HLTV proxy as high priority process
(Win32 only)
-steam - proxy enables special Steam support
These parameters cannot be changed during runtime, thus they can't be
used in the config file.
All console commands can be used in the command line, if a "+" is prepen
ded to them:
hltv.exe +connect localhost:27015 -port 27021
A Half-Life server can set sv_proxies <n>, to determine how many proxies
are allowed to connect. If HLTV proxies should be forbidden, set it to 0
,
otherwise 1 to allow for a Master Proxy. Other values are experimental.

3. Commentator Section
With the new Half-Life voice technology, some clients may comment the
game for all other spectators. They can also insert replays, slow
motion or spray custom decals. To become a commentator, clients must
enable this feature with "commentator 1" in the console (before
connecting). Also the proxy must have set an "adminpassword". The
commentator client must set this password with the "password"
command.
As commentator your voice speech will be broadcasted to all spectators,
your 'say' messages will appear in large letters not as normal chat
message. As voice commentator make sure to speak slow and clear,
otherwise people will only hear some background noise.
To spray a new custom decal (like player logos), bind the new "spec_deca
l"
command to a unused key (eg "bind m spec_decal") and switch to Free Look
Mode. You can spray custom decals at up to 32 different locations. This
custom decals must be enabled on the proxy with the "decalfile" command.
Each proxy may show it's own decal to connected spectators.
To show the last scene again, the commentator can use the "drc_replay"
command. For example "drc_replay 5 0" will replay the last 5 seconds
again with normal speed, "drc_replay 3 0.5" will replay the last 3
seconds in slow motion.
It's also possible to play any sound file using the "drc_sound" command.
For example "drc_sound ambience/goal_1.wav 1.0" will play a cheering sou
nd
with full volume. Use this sound command that add more atmosphere to the
game.

Thanks to:
----------
www.gamer-tv.de : for their constant support and excellent testing.

You might also like