Server obsazuje UDP port 6800 (nebo specifikovaný) pro vlastní hru a týž TCP port pro přenos arén. Server využívá TCP port 6800 (příchozí i odchozí) pro připojení k MasterServeru.
Jednotlivé síťové datagramy se skládají z příkazu a 0+ parametrů. Jeden datagram smí obsahovat pouze jeden příkaz, který je vždy psaný malými znaky. Příkaz i jednotlivé parametry jsou od sebe odděleny mezerou (1+) (ASCII znak 0×20). Každý datagram ukončuje ASCII znak 0xA.
Komunikaci vždy začíná klient. Server odesílá datagramy na zdrojovou IP adresu a zdrojový port, který získal z packetu, který přišel od klienta jako první. Maximální zpracovávaná délka packetu je 128 bajtů.
Pozn.: pokud je překročen maximální počet klientů (hráčů) na serveru, server přestává reagovat na jakékoliv příkazy od jiných než právě přihlášených klientů.
Inicializační datagram po obdržení příkazu hello. Hráč se registruje a vstupuje do hry.
<my_tux_id> – ID tuxánka, kterého bude hráč ovládat<my_tux_x> – horizontální souřadnice hráče<my_tux_y> – vertikální souřadnice hráče<count_round> – limitní počet bodů v rámci jedné hry – pokud je -1, není limit nastaven (hra je nekonečná)<arena_net_name> – síťový název arény, ve které se hraje<check_id> – ID tohoto datagramu – je nutné k potvrzení přijetí datagramu klientemInformuje hráče o akcích vykonaných ostatními hráči.
<tux_id> – ID hráče, kterého se akce týká<action> – kód akce, viz níže uvedenou tabulkuInformuje hráče o nově připojeném hráči, navíc aktualizuje informace o daném hráči. Hráč může přijmout i informace sám o sobě, aby byl synchronizovaný se serverem.
<tux_id> – ID hráče<tux_x> – horizontální souřadnice hráče<tux_y> – vertikální souřadnice hráče<tux_status> – status hráče0 – hráč je živý1 – hráč je mrtvý<tux_position> – směr natočení hráče, viz níže uvedenou tabulku<tux_score> – skóre hráče<tux_gun> – aktuální zbraň hráče; viz níže uvedenou tabulku<tux_bonus> – aktuální bonus hráče; viz níže uvedenou tabulku<tux_shot_simple> – počet nábojů v obyčejné pistoli<tux_shot_dual> – počet nábojů ve dvojité pistoli<tux_shot_scatter> – počet nábojů v brokovnici<tux_shot_tommy> – počet nábojů v samopalu<tux_shot_lasser> – počet nábojů laseru<tux_shot_mine> – počet min <tux_shot_bombball> – počet bomb-ballůInformuje hráče o zabití jiného hráče.
<tux_id> – ID zabitého hráčeInformuje hráče o odstranění objektu z arény
<object_id> – ID odstraňovaného objektu<check_id> – ID tohoto datagramu – je nutné k potvrzení přijetí datagramu klientemInformuje hráče o přidání nového objektu do arény. Číslo políčka animace se posílá pro situaci, kdy se hráč připojí např. v polovině výbuchu miny, aby se mu nepočítal odznovu.
<item_id> – ID veci<item_type> – typ objektu, viz níže uvedenou tabulku<item_x> – horizontální souřadnice objektu<item_y> – vertikální souřadnice objektu<item_count> – index, který se musí dopočítat na změnu snímku v animaci<item_frame> – číslo políčka animace<tux_id> – ID hráče vlastnící daný objekt (např. minu)<check_id> – ID tohoto datagramu – je nutné k potvrzení přijetí datagramu klientemInformuje hráče o nové střele. Pokud klient obdrží datagram pro již existující střelu, je stará střela přepsána novou (stará se zruší).
<shot_id> – ID streli<shot_x> <shot_y> – souřadnice [X,Y] střely<shot_px> <shot_py> – relativní změna polohy střely<shot_position> – směr střely, viz níže uvedenou tabulku<shot_gun> – typ zbraně, viz níže uvedenou tabulku<tux_id> – ID hráče, který střelu vystřelil<shot_is_kill> – ( 0 - strela nemôže zabiť tuxa s ID <tux_id> | 0 - strela nemôže zabiť tuxa s ID <tux_id> )Přeposlání chatové zprávy všem hráčům.
<author> – jméno hráče, který zprávu poslal<msg> – text zprávyPotvrzení klientovi, že je server funkční. Odesílá se každou vteřinu.
Server se vypíná. Odpojení všech hráčů.
Tímto příkazem začíná klient komunikaci.
<version> – verze klienta<name> – jméno hráče, za kterého bude klient hrátŽádost o sdělení informací o serveru. Odpověď je v tomto tvaru:
name: <name> version: <version> clients: <clients> maxclients: <maxclients> uptime: <uptime> arena: <arena>
<name> – název serveru<version> – označení běžící verze (buď konkrétní release, např. 0.20.0, nebo svn pro vývojářskou verzi)<clients> – aktuální počet připojených hráčů<maxclients> – maximální počet hráčů na serveru<uptime> – počet vteřit od spuštění serveru<arena> – síťový název právě běžící arényŽádost o tabulku hráčů s nejlepším skóre.
<count> – udává počet nejlepších hráčů, pro něž má server vrátit dataPotvrzení o přijetí datagramu.
<check_id> – ID přijatého datagramuProvedení akce tuxánka.
<action> – kód akce, viz níže uvedenou tabulkuOdeslání zprávy do chatu.
<msg> – text zprávyPotvrzení serveru, že je klient aktivní. Odesílá se každou vteřinu – pokud server během 5 vteřin neobdrží ani jeden tento datagram, klienta odpojí.
Server následně posílá totožnou odpověď.
<text> – libovolný textOdpojení hráče ze hry.
Slouží ke komunikaci mezi moduly; pokud ho obdrží server, odešle ho všem ostatním hráčům.
<module proto> – interní protokol modulu| Kód | Směr pohybu |
|---|---|
| 8 | nahoru |
| 6 | vpravo |
| 4 | vlevo |
| 2 | dolů |
| Kód | Akce |
|---|---|
| 5 | výstřel |
| 0 | změna zbraně |
| Kód | Zbraň |
|---|---|
| 0 | obyčejná pistole |
| 1 | dvojitá pistole |
| 2 | brokovnice |
| 3 | samopal |
| 4 | laser |
| 5 | mina |
| 6 | bomb-ball |
| Kód | Bonus |
|---|---|
| 10 | rychlost |
| 11 | nekonečný počet nábojů |
| 12 | nesmrtelnost |
| 13 | duch (může procházet překážkami i minami) |
| 14 | střelba do čtyř směrů současně |
| 15 | neviditelnost |
| Kód | Předmět |
|---|---|
| 7 | položená mina |
| 8 | malý výbuch |
| 9 | velký výbuch |