Every freeze
is worth something.
A competitive FNG league for Teeworlds, on four servers in Falkenstein. Land a freeze and it is scored against the player you landed it on, so beating somebody better than you moves your rating further than beating somebody worse.
Who you beat is the whole point
Every freeze is one Elo exchange against the player you landed it on. Beating somebody above you pays; beating somebody far below you barely moves the needle, and losing to them costs. There is no participation number here and no way to grind one out: the only thing that raises a rating is winning exchanges against people who can also win them.
Repeated fights against the same person are damped as a pair, so farming one opponent all evening pays less each time, and feeding an alt costs the feeder exactly what it gives.
The formula, in full
One public ladder, three arenas
The Ladder is always open and always recording. The 1v1, 2v2 and 3v3 servers are where organised matches are played, and they are picked on purpose rather than balanced for you. Everything is logged: every freeze, every spike, every round, with a demo kept for anything ranked.

Queue, and a server builds itself
Run one command in Discord. When the queue fills, a server is created for that match alone, the rosters are posted, and it shuts itself down when the last round ends. The result and the full stat tables are up within seconds.
Ranked carries its own rating and its own ladder of ranks. A win is worth about 25 either way, more against a stronger side and less against a weaker one, so a rank is a number of wins rather than a number nobody can read.
How ranked works
Start here
Join the Ladder
Open Teeworlds, find FNG EU | Void League · Ladder in the server browser, or connect straight to the address. Nothing has to be set up first: your stats start recording the moment you play.
178.63.49.229:8303Claim your name
Teeworlds does not authenticate names, so an unclaimed name gathers stats but can
never hold a rank. In Discord run /link for a code, then type
/link <code> in game. Your rating then follows your account, not
the name you happen to be using.
Queue for ranked
Run /match 1v1, 2v2 or 3v3 in Discord. When
enough people are waiting, a server is created for that match alone, everyone gets
the address, and it shuts itself down at the end.
Discord is where linking, queueing and clans happen. Ask anybody already in the league for an invite.
This season so far
Top of the ladder
Latest results
Season 1 opens the clock
Seasons are calendar quarters. On 1 October the ladder, the ranked board and the season achievements all reset, and Season 1 runs with ranked cups and cash prizes. Career achievements never reset, and nothing recorded is ever deleted, so any past season can be replayed exactly as it happened.
What carries over
How it works
Everything below is how the league actually behaves, not how it is meant to. The numbers are the constants the server is running right now.
From a freeze to a rank
The game server records what happened and stops there. Rating is computed separately, from those records, which means the formula can change and the whole season can be replayed from the same rows.
The questions people actually ask
What a duel is worth
One freeze, at the ratings shown. Beating somebody two hundred points above you is worth roughly three times beating somebody two hundred below.
Ranks
Fixed numbers rather than percentiles, so a rank means the same thing in a league of twenty as in a league of two thousand. A rating has to clear a boundary by fifteen points before the rank changes, so nobody sitting on the line gets swapped back and forth.
Ladder
One Elo exchange per freeze, wherever you landed it: the public Ladder and ranked matches both count. Public rounds add a delta for winning the round if you were actually in it. Ranked matches do not, because their result already moves the ranked rating below. Everybody starts at 1000. This is the number that appears beside your name in Discord and sets your rank.
Ranks
Your rating is the number. Your rank is the name it earns you, and it is what appears beside you in Discord and on the scoreboard here. Eight of them, and you start outside all of them.
Nobody holds a rank until 50 duels are behind them, because a rating off ten duels is a guess.
Ranks do not flicker either. It takes 15 points clear of a boundary to move, so sitting on 1125 does not promote and demote you every other round.
Standings
The other number
Ranked is a second rating, on its own ladder, from the results of organised matches rather than from individual freezes. The duels inside a ranked match feed the rating above; the result of the match feeds that one. Neither is paid twice. How ranked works and where it stands →
Boards
Ranked
Two teams, picked from a queue, on a server that exists for one match and then shuts down. Ranked does not care how many freezes you landed or what the score was. It asks one question, and the answer is the whole rating: did your side win.
What a win is worth
Ranks
A separate ladder from the public one, with its own names and its own badges. The shape is the tell: ranked ranks are shields, Ladder ranks are hexagons, so you can see which one a badge belongs to without reading it.
Getting in
Standings
Two numbers, on purpose
Matches
Every ranked match runs on its own server, records a demo, and shuts itself down when it ends. The result and the full stat tables are posted within seconds. The roster is fixed when the match is created, so nobody can join it who was not in the queue.
Played
Players
Names are tracked whether or not they are linked to a Discord account, but only a linked name can hold a rank or enter ranked.
Clans
A clan tag typed into your client means nothing here. Membership is registered in Discord and stamped onto the match record when the match is created, so wearing somebody else's tag in game changes nothing at all. Founding one needs a linked name and thirty minutes on the Ladder.
Registered
Held tags
A held tag cannot be founded by anyone else, nor by a spelling that normalises to the same key.
Tournaments
Knockout brackets run on the same ranked pipeline as everything else: a match spawns its own server, the result is recorded rather than reported, and the demo is posted when it finishes. A bracket here is therefore the real thing and not a picture of one, which is why every match links to its own report.
Scheduled
What is built and what is not
Being straight about which half of this is finished, because a page that implies more than exists is how a league loses people's trust early.
Built and working: the bracket, seeding, per match reports, the spawn-a-server-per-match pipeline, demos, and clan rosters stamped onto the record so a tag typed into a client decides nothing.
Still being built: sign-ups and check-in through Discord, automatic advancement of a winner into the next round, and third place matches. Until those land, a bracket is drawn and advanced by hand, which works fine at the size the first tournament will be.
What the servers do
Most of this is invisible until it happens to you. None of it needs setting up, none of it is a client mod, and all of it runs on all four public servers.
Combos
Freezes landed close together chain. The chain is announced as it grows, it breaks the moment you go too long without another one, and the longest chain you ever managed is kept forever rather than reset with the season.
Two spikes inside a second is a Double. Both of them coloured is a Double King. Five in a chain is a Penta. Past that the announcements get less modest.
The Void Announcer
When something worth seeing happens, the server writes it in laser above the player it happened to, for three seconds, centred over their head. Everybody in the round sees the same text in the same place, so a combo is a thing that visibly happens to somebody rather than a line that scrolls past in chat.
Votes you can type
The vote menu still works. These are the same votes, without opening it:
/restartCall a vote to restart the round./shuffleCall a vote to shuffle the teams at random./balanceCall a vote to split the teams evenly by rating./top5The top five of this round, in chat./linkClaim your name with a code from Discord.Every one of these calls a vote. None of them runs one. A command that skipped the vote would be a way around every cooldown, and the cooldowns exist because a server somebody can restart at will is not a server anybody can play on.
Teams that make sense
The balance vote does not move whoever is nearest. It reads everybody's rating and looks for the split with the smallest gap between the two sides, so the teams are as close to even as the people in the room allow.
Automatic balancing is on the Ladder only. The locked format servers have fixed sides and nothing should be moving anybody in the middle of a 3v3.
Achievements
None of these can be handed out, and that is the whole point of them. Season achievements reset every quarter. Career ones never do, and are summed across every name your account has ever used, so changing your name does not cost you a decade of play.
Maps
Drawn from the map files themselves, by the same code that draws the movement on a match report, so what is below is the collision layer the server actually scores on and not a screenshot of it. Rock is dark, the spikes are in the colours they pay out in.
In rotation
In the pool
Installed and playable, not currently on any public server.
Put a price on
somebody’s head
Void Doubloons are what the league pays you for playing well. A bounty is the loudest thing you can spend them on. The whole server hears about it, and for the next few minutes everybody on it is looking at one person.
/bounty <player> <doubloons>
in game, on any of the four public serversWhat a doubloon is worth
Doubloons cannot be bought and never will be. They are earned in game, they carry across seasons, and a season ending changes what you are ranked, not what you own.
How a hunt runs
Four things happen, in this order, every time.

The void takes its cut
The cut is burned, not paid to anybody. Nobody at the league takes a share and there is nowhere for it to go: it leaves the economy the moment a bounty is placed. That burn is the only thing standing between a currency and an evening where everybody has ten thousand of them and none of it means anything.
What the rules refuse
Every way of collecting a bounty you had already collected is closed at the placing end, so nothing has to be caught afterwards.
Running now
Settled
Deepest pockets
Balances, not earnings. Somebody who spends theirs the moment they have them is playing this the way it was meant to be played and will never appear here.
The Void Market
Bounties are the first thing doubloons buy and not the last. The market runs from
Discord, so a purchase is tied to an account rather than to a name anybody can
type: /shop to browse, /buy to spend,
/balance to see what you are holding.
Nothing here will ever affect how anybody plays. A title is a title and a colour is a colour, and if it would move a rating it will not be for sale. Prices are the same ones the bot charges, read from the same file.

Banished
The players the league has removed and named. A ban takes somebody off the ladder, not out of the history, so the record below is the one they actually put up and it stays where anybody can read it.
Only cases somebody has watched and confirmed are named here. A ban made on the detector alone is still a ban and still permanent, and it is not put on this page: being reasonably sure is enough to remove somebody and not enough to name them. Addresses are never published, and neither is the working behind a decision. If you think this is wrong, the Discord link in the sidebar is where to say so, and the ban message in game says the same.
Season 1 opens 1 October
Seasons are calendar quarters, three months each, taken from the clock rather than stored anywhere. There is no rollover job to miss and no half migrated table on the first of January. What that means in practice is below.
The calendar
A season is whichever calendar quarter the clock is in. Nothing switches it over, so nothing can fail to switch it over.
What happens on 1 October
Nothing is deleted. A season ending changes which rows are read, not which rows exist, so any past season can still be shown or replayed.
Preseason so far
What a season is worth
Season Champion
Runner up
Third
Season 1 adds ranked cups with cash prizes, and the amounts will be posted here before the first one is played, not decided afterwards. The rest of what you get is the part money cannot buy anyway: a permanent record, a name people recognise, and something on your profile that has to be earned again every season.
Privacy
This page is the whole of it. The league runs on one server, keeps what it needs to run a ladder and enforce a ban, and hands none of it to anybody. If something below is not what you expected, the Discord is where to say so.
The short version
No cookies. No analytics. No advertising. No tracking of any kind, and no request from this page goes anywhere except this server: the fonts, the artwork and the code are all served from here, so nothing about your visit reaches a third party. What we do keep is the record of what you played, your address for as long as a ban needs it, and your Discord account if you chose to link one.
What is recorded, and why
Your player name. Every name that has connected to one of the four servers. It is the key everything else hangs on, and it is public: that is what a ladder is.
What you did in a round. Freezes, spike kills, deaths, shots, wallshots, sprees, playtime, and the result of every round and match. Public, and the point of the whole thing.
Your IP address, stored against the names it has played under. One reason: a ban has to survive a name change. It is never published. The Banished page names people and never addresses, and no address is ever shown to another player.
Your Discord account id, only if you linked one with
/link. That is what turns a name anybody could type into an account.
Anti-cheat measurements. Summaries of aim and input timing, and any flag those raised. They exist to catch cheating and are used for nothing else.
The web server access log: address, time, page and browser string, the same line every web server on the internet writes. It is not joined to your player name and it is not read unless something is being attacked or is broken.
How long each of those is kept
The access log is deleted after seven days. Addresses attached to a player name are deleted after twelve months, automatically, every week. Join and leave events go after six months. Anti-cheat measurements are kept for the season they were taken in.
Everything else, the stats and the results, is the league's record of public play and is kept. A season ending changes which rows are read, not which rows exist.
Where it lives
One machine in Falkenstein, Germany, rented from Hetzner. Backups sit on the same machine. Nothing is copied to a cloud service, an analytics provider or anybody else, and nothing is sold, ever.
Asking for your data, or its removal
Ask in the Discord and you can have what is held about you, have it corrected, or have it deleted. Your addresses, your Discord link and your anti-cheat record can all go, and they go quickly.
Round and match results are the one thing that cannot simply be deleted, and it is worth being straight about why. A round is a record of six people, not one. Pulling your numbers out of it rewrites everybody else's freezes, ratings and achievements along with yours. So on request your name is replaced with a placeholder instead: the result survives, and you are not in it. A ban record also stays, because a ban that can be deleted on request is a ban that lasts until somebody asks.
If you are under sixteen
A parent or guardian can ask for anything on this page on your behalf, and does not need to explain why.
Who is responsible
Void League, run by one person from Romania on a server in Germany, which means the GDPR applies and the rights above are yours by law rather than by our good manners. The Discord server is the way to reach us, and it is linked from the menu and from the bottom of every page here.
Terms
Short, because the league is free and most of this is common sense written down so that a ban is never a surprise.
What this is
Four public Teeworlds servers, a Discord bot and this website, run as a hobby and free to play. There is no uptime promise, no promise that a rating survives a bug, and no promise that any of it is still here next year. Use it as what it is.
One person, one account
A second name to dodge a ban and a second name to farm your own rating are the same offence, and both are treated as one. Sharing an account is on you: what it does, you did.
How to behave
No cheating, in any form, including a client that plays part of the game for you. No harassment, slurs, threats or sexual content aimed at anybody. No spamming the chat and no advertising other servers in it. No attacking the servers, the bot or this site, and no attempt to get at data that is not yours.
The chat filter and the strike ladder handle most of this without anybody watching. An admin can go further, faster, and will.
Cheating, bans and appeals
Detection is automatic, the decision is not: a flag is reviewed before it becomes a ban. Bans are permanent by default. Being reasonably sure is enough to remove somebody from the league; naming them on the Banished page takes more than that, which is why not every ban appears there.
Appeals go to the Discord. A ban is reversed when the evidence turns out to be wrong, not because enough time has passed.
Names, tags and anything else you write
Your name, your clan tag and anything you put on your profile stay yours. Putting them here is permission to display them here and nothing more. Anything illegal, anything impersonating another player or an admin, and anything chosen to get around the name filter, is removed without discussion.
Doubloons and prizes
Void Doubloons are numbers in a database. They cannot be bought, they are not money, they cannot be cashed out, and their balance carries across seasons only because we choose to carry it.
Season 1 adds cups with cash prizes. The amount and who is eligible are posted before each cup is played, not decided afterwards. The league decides how a prize is paid and can withhold or reclaim one from anybody found to have cheated, before or after it was handed over. Any tax on winnings is the winner's own business.
Your data
Covered in full on the privacy page, including how to get it removed.
Changes, and which law
These change as the league does, and every change is posted in the Discord changelog rather than quietly edited in. The operator is in Romania, so Romanian law and the GDPR are what apply.