Contents

Overview

A WA WormNET server is basically composed of a slightly (if at all) modified IRC server and an HTTP server with a few scripts. As of writing this page, Team17's WA WormNET server is running 2.8/hybrid-6.3.1(20020418_1) and Apache/2.0.54 + PHP/4.3.10-16 on Debian GNU/Linux.

So, the typical screen you see in a WormNET channel is actually made up of two logical parts:

The first is the game list, which lists all games in the "waiting for players" state; WormNET games are managed by the PHP scripts.

The second is the nickname list and the chatter area, which are managed through IRC.

These parts aren't really interconnected - thus, it's possible to create a game without connecting to the IRC server, and it is possible to connect to the IRC server without logging in through the web interface (this might change with time).

A typical connection sequence to WormNET is as following:

Worms retrieves Login.asp, which contains a <CONNECT> directive - the IP/Port to the IRC server.

Worms logs on the IRC server, and gets the list of channels.

when the player joins a channel, Worms retrieves the channel scheme and game list for the channel (RequestChannelScheme.asp, GameList.asp). The game list is periodically automatically updated.

when a player hosts a game, Worms sends a "create game" request via Game.asp; when the actual game starts (no more people can join) or when the host exits before the game starts, a similar "close game" request is sent.

when a player hosts or enters a game, he is disconnected from IRC.

when a player exits a game, he must reconnect to WormNET from the beginning.

Security

The WormNET ASP scripts (which are probably PHP scripts disguised as ASP, to preserve compatibility with the URLs hard-coded into the game executable) will only reply to HTTP clients that identify themselves with the T17Client/1.2 user-agent. You can quickly switch user agents with the User agent switcher Firefox extension.

At the moment of writing this article, the rank and secure login system has been removed from WormNET, because it has been abused several years ago. Currently, there are no online 3rd party servers that support these features either (but there are projects in development).

Channels

Each WormNET channel has its own settings. These settings can affect the presence of ranks, enforce a particular map or scheme, disable hosting games, and affect other settings for games hosted on the channel.

Here's the current list of channels and their scheme flags:

AnythingGoes

Pf,Be

PartyTime

Ba

RopersHeaven

Pf

Meanings

a-z is 0 to 25 unless otherwise stated.

Code

Arguments

Effect

B

a-e

Amount of blood.

D

a-z × ...

String of enforced game/weapon options. Direct copy of the scheme file without the 5 byte header.

E

(none)

Make the channel open (the default setting). Same as "Ta".

G

a-z × ...

String of super-weapon options.

L

(text)

Name of the built-in level required.

N

(text)

Set the scheme name that will appear.

P

a-k

Set rope pushing power level, defaults to 0, f is normal.

R

a-ma-m

Set rank restriction (minimal and maximal rank)

S

a-...

Set an enforced stock scheme.

T

a-f

Hosting: 0=allowed, 1=ranked, 2=ranked, 3=ranked, 4=ranked, 5=disallowedThis is also used as the type value of the game when reporting the result.

V

a-...

Restrict room to players of a certain type - internally stored as "clan number", but not many clans can fit in one byte...

W

b-i

Worms per team, counting from b=1. If adding a team with this many would exceed the worm limit, that team will be added with less worms. Any values out of range count as b (1).