Privacy
What the rooms behind this site collect, why, and who can see it.
Why
To moderate the rooms, and to keep bans working. A banned player can come back under a new name, a new HaxBall identity or through a VPN; the connection details below are how the rooms recognise them. The same records are used to look into reports of abuse. We rely on our legitimate interest in keeping the rooms fair and safe to do this.
What is collected
- When you join a room: the name you join with, your HaxBall identity key, the flag you set in the game, the address you connect from, and your ping.
- About that address, from a lookup service: country, region, city, approximate coordinates, time zone, network provider, and whether it looks like a VPN, hosting or mobile connection.
- How your game connected: the connection routes it offered the room. These can show your real address even when you use a VPN.
- Everything typed in a room: public chat, team chat, private messages with who they were sent to, reports made with !report, and messages the room blocked.
- Moderation: any ban, mute or jail placed on you, with the reason and who placed it.
- Results: each match you play, with your identity key, the name you played under, your time on the pitch, your goals and assists, what the room measured of your play (touches, kicks, passes, time on the ball and a match rating), and whether you were its player of the match.
- Recordings: each match is recorded by the room, from kickoff to the end, as HaxBall records a game: every player's movements, the names everybody joined with, and the chat during it.
Signing in
Signing in is optional: the tables are public without it. If you sign in with Discord, we keep your Discord account id, username, display name and avatar, your email address if Discord shares it, the language your Discord is set to, whether it has two-factor login on and whether its email is verified, which site or app you first signed in through, and when you signed in. Each sign-in is also kept for a year as a record of when it happened and where from — this site, or a game or app that shares its accounts — with the internet address it came from, the country, city and network that address belongs to, and what your browser says about itself: its name and version, your system, and your preferred languages. Only the people who run the site see these, to keep accounts safe and to tell shared or second accounts apart. Discord handles the sign-in itself and tells us who you are.
If you then link your HaxBall identity by typing a !verify code in a room, we record which identity is linked to your account, when, the name you were using and the room you typed it in. When you link a new one, the old link is kept, marked as ended. A code is deleted when it is used, or ten minutes after it was made.
After your first sign-in you pick the name this site shows you by, once; we keep it. Your flag is the one your HaxBall game sends when you join a room — HaxBall sets it from your location unless you change it in its settings — taken from your most recent join once your identity is linked.
If you pick a chat colour, draw a goal celebration or choose the confetti instead on your account page, we keep them, when you last changed each, every celebration you have saved for a year (so the people who run the rooms can see one that was put up and changed), and anything they do about them — resetting, locking or taking a celebration down, with who did it and the note they left. The rooms show them to everybody playing there: your chat lines in that colour, and your drawing or the confetti on the pitch when you score.
What this site shows
Your results, under the name you picked, with your HaxBall flag. The tables list players whose identity is linked; a match list shows a linked player as [your name] followed by the name they joined that match with — as the room itself says when you join — and anybody else by the last name they played under. A linked player also has a page of their own: their numbers, their rating over time and their matches. From level 5 a badge shows your level, which counts what your account has played under every identity linked to it.
Each match listed here can be watched as a replay: where every player and the ball were, rebuilt from the room's recording, with no chat. It names a linked player the way a match list does, and anybody else by the name they joined that match with. A name that is hidden is hidden in every replay too. The recording itself, with the chat said in the room during the match, is stored under a long random link that this site never shows; the people who run the rooms use it to look into reports.
Your identity key, your address, your Discord account and everything else above are never shown here; the names you have played under are listed only to you, on your account page. The one exception is your code itself: whoever types it in a room is shown your Discord display name, privately, so they can check whose account it is before anything is linked — so only type your own.
Who can see it
The people who run these rooms and the moderators they appoint. Every look at a player's join records is logged.
Who else receives it
Your address is sent to ip-api.com for the location and network lookup. Match recordings are stored with a storage provider (Backblaze). The rooms run on HaxBall's own network, like every HaxBall room. Signing in goes through Discord. This site itself loads nothing from anywhere else: its pages, its scripts and its fonts all come from haxball.io, and a replay from our own storage behind Cloudflare.
How long it is kept
There is no fixed end date. A ban has to recognise a player who comes back months later, so the records are kept until we delete them.
Cookies
This site sets up to three cookies. One remembers that you have seen the notice about it not being the official HaxBall site; another remembers the region you are looking at, so the site opens on it next time. The third exists only while you are signed in: it holds your sign-in token, lasts until you sign out or the token expires, and is never readable by the page's scripts.
Signing in runs one more small script, on the page Discord sends you back to: it hands your sign-in token to this site and removes it from the address bar.
Your account page runs the goal celebration editor, which draws in your browser. It keeps a drawing you have not saved in that browser tab's own storage, so a reload does not lose it; nothing of it leaves your browser until you press Save, and it is gone when the tab closes.
When there is more than one region, a first visit runs a small script that reads your device's time zone, in your browser, to choose which region to show. The time zone is not sent anywhere — only the region it picks, as the address of the page it opens.
Asking for your data
You can ask for a copy of what we hold about you, or for it to be deleted, at [email protected]. Records tied to a ban may be kept for as long as the ban stands.