La esencia de HLTV es la aplicación proxy hltv.exe. Para retransmitir una partida que se está ejecutando en un determinado servidor de juegos, el proxy HLTV conecta con este servidor de juegos y recoge toda la información necesaria. Los espectadores se unen a una secuencia de multidifusión que HLTV utiliza para emitir esta partida. Si la tecnología multidifusión no está disponible porque lo encaminadores LAN o ISP no son compatibles con multidifusión, los clientes pueden conectarse directamente al proxy HLTV. El número de clientes que puede administrar el proxy HLTV depende del hardware disponible y los recursos de la red. Los proxies HLTV también pueden conectarse entre ellos para ofrecer más ranuras de espectadores.
Sólo se conecta a la partida un proxy HLTV en todas las configuraciones. A este proxy HLTV se le llama servidor proxy. Este establece el retardo de la partida y analiza la información de esta para situar la cámara dirigida al espectador. El resto de los proxies HLTV que están conectados al servidor proxy (proxies de transmisión), como se ha descrito anteriormente, forman una cadena o un árbol. Cada proxy de transmisión retransmite la partida sólo a los espectadores que estén conectados a él. Los proxies de transmisión no pueden retardar la partida ni alterar el modo de visualización de esta: de eso se encarga el servidor proxy. Sólo el servidor proxy puede transmitir a un grupo multidifusión (IP clase D). Es muy importante que cada proxy utilice su propio grupo multidifusión, ya que de no ser así, las secuencias de juego interfieren entre ellas.
El proxy HLTV informa a los servidores master WON sobre la retransmisión de la partida. De este modo, los usuarios pueden presenciar una partida utilizando el navegador del servidor incorporado de Half-Life, que se conecta al proxy HLTV del mismo modo que se conectaría a una partida normal. Los usuarios pueden utilizar la consola para conectarse a un proxy HLTV con el comando "connect" del mismo modo que se conectaría a una partida normal. Si el proxy HLTV emite la partida vía multidifusión, el cliente intenta automáticamente unirse a la secuencia multidifusión.
La consola del proxy HLTV acepta los siguientes comandos:
connect <host:port> - conecta con el servidor / proxy en un puerto determinado (predeterminado 27015)
disconnect - desconecta el proxy del servidor / proxy
quit - sale de la aplicación HLTV
exit - igual que abandonar
retry - vuelve a conectar con el último servidor / proxy
name <string> - establece el nombre de cliente del proxy
password - establece la contraseña del servidor
clients - muestra una lista de todos los clientes con ID conectados (no jugadores de la partida)
kick <ID> - expulsa a un cliente espectador del proxy
say <string> - envía un mensaje de texto a todos los espectadores
chatmode <0|1|2> - en el modo de chat 0, los espectadores no pueden chatear. Si es 1, sólo los espectadores conectados al mismo proxy pueden ver los mensajes del chat. En el modo de chat 2, todos los espectadores pueden hablar entre ellos (el servidor proxy y todos los proxies de transmisión deben estar en modo de chat 2). Los espectadores de multidifusión no pueden chatear, ya que no tienen una conexión real.
ping <host:port> - comprueba la respuesta de un servidor HL en un puerto determinado (predeterminado 27015)
heartbeat - envía un paquete de estado a los servidores master WON registrados
rcon <string> - envía un comando de control remoto a otro servidor / proxy
rcon_address <IP:port> - establece la dirección de destino de control remoto
rcon_password <string> - establece la contraseña para el anfitrión controlado remotamente
proxypassowrd <string> - contraseña rcon del proxy
rate <n> - velocidad del ancho de banda con la que el servidor envía información al proxy en bytes / segundo
updaterate <n> - actualizaciones por segundo enviadas por el servidor al proxy
maxclientrate <n> - establece la velocidad máxima de ancho de banda para los clientes espectadores
delay <n> - retrasa la secuencia de partida n segundos en el proxy master. El valor predeterminado es 30 segundos, para evitar las trampas (cheats). Es necesario un mínimo de 10 segundos para el módulo de director.
loop <0|1> - si el rizo es 1 y el proxy se desconecta o el archivo de demostración finaliza, todos los clientes se mantienen conectados y se vuelve a jugar la última partida.
multicast <0|1> - comienza o detiene la multidifusión en el servidor proxy
connectip <IP:Port> - establece el IP de clase D para el grupo de conexión de multidifusión (predeterminado 234.5.5.1:27025)
gameip <IP:Port> - establece el IP de clase D para el grupo de juego de multidifusión (predeterminado 234.5.5.2:27025)
fullupdateinterval <n> - todos los números de marcos un paquete no comprimido es transmitido para permitir a los clientes recuperarse de la
pérdida de paquetes en multidifusión (predeterminado todos lo 20 marcos)
cmdlist - muestra todos los comandos de proxy registrados
logfile <0|1> - comienza / detiene el registro de la consola en hltv.log
status - imprime la información del estado de todos los módulos activos
exec <filename> - ejecuta un archivo .cfg
developer <0|1> - los mensajes de estado adicionales se muestran en modo desarrollador
fakeloss <n> - simula la pérdida de paquetes, n = probabilidad de pérdida de una unidad (predeterminado 0.0)
record <filename> - registra todas las partidas siguientes en archivos de filename1.dm a filename99.dem
playback <filename> - comienza a reproducir una demostración previamente grabada (sin final si el rizo es 1)
stop - detiene la reproducción del archivo de demostración
La consola intenta completar un nombre de comando al pulsar el tabulador. Todos los comandos de archivo config "hltv.cfg" se ejecutan durante el inicio.
Algunos parámetros sólo pueden establecerse en la línea de comandos:
-maxframes <n> - establece el número máximo de marcos almacenados en la memoria intermedia (predeterminados 2400)
-cachesize <n> - tamaño del caché del marco (predeterminado 32 marcos)
-port <n> - establece el puerto proxy HLTV al que los espectadores se conectan (predeterminados 27020)
-maxclients <n> - número máximo de clientes que alberga el proxy HLTV (predeterminado 128 )
-comm <filename> - establece un archivo de información del servidor diferente a woncomm.lst
-multicastttl <n> - establece el valor "tiempo de vida" (Time-To-Live) para paquetes multidifusión
-highpriority - inicia el proxy HLTV como un proceso de alta prioridad
-nomaster - el proxy HLTV no informa a los servidores WON Estos parámetros no pueden cambiarse durante el tiempo de reproducción, por lo que no pueden ser utilizados en el archivo config.
Todos los comandos de la consola pueden ser utilizados en la línea de comandos si aparece un "+" delante:
hltv.exe +connect localhost:27015 -port 27021 +rate 7000
Un servidor Half-Life puede establecer el <n> sv_proxies para determinar a cuántos proxies se puede conectar. Si los proxies HLTV no están disponibles, establézcalos en 0, y en 1 para establecer un servidor proxy.
El resto de los valores son experimentales. Con la nueva tecnología de voz de Half-Life, los clientes pueden comentar la partida con el resto de los espectadores. Este comentarista tiene que conectarse al servidor proxy como un espectador normal y a continuación introducir:
commentator <password>
La contraseña es la misma que la del RCON del proxy. A continuación, el comentarista puede hablar como en una partida normal y el resto de los espectadores escucharán sus comentarios al mismo tiempo. Si un espectador graba esta partida, el discurso se almacena dentro de un archivo de demostración.