City Defense

About › Privacy and analytics

Privacy: what City Defense measures and stores

You can play without an account and the game itself uses no cookies. Your browser only gets a protective cookie from the map catalog server when you play the official map or a map from the catalog, rate, report or publish; only authors with an account have a sign-in cookie. We measure visits and games with our own instance of the open-source tool Umami, as aggregate numbers only. Your settings and your missions in progress stay in your browser.

Updated

City Defense is free to play in your browser – no download, no sign-up. First mission: Brno, náměstí Svobody.

Play free

Who runs the game

The game is operated by, and the data controller is, František Jánoš, company ID (IČO) 02721864, Husovická 902/18, Brno - Husovice, 614 00, Czech Republic, registered in the Czech Trade Licensing Register. Contact: frantisek@trefa.app.

What we measure and why

We want to know how many people play the game, where they come from and where the game gets stuck – for example, in which wave people stop or where the map fails to load. For this we use Umami, an open-source tool without cookies, which we run ourselves on a server in Germany (Hetzner). It measures:

We never measure mission names, descriptions or authors, the exact location of your own missions (only the broad region mentioned above), places you search for in the editor, or links to shared missions — and for the map catalog never the code, name or city of a map, a nickname or an e-mail.

IP address and visit identifier

The IP address is not stored. The server uses it only at the moment of the request, to derive an approximate location and to compute a visit identifier – a hash of the IP address, the browser and a secret key that changes every month. It cannot be used to follow you across months or to link you to other websites. The measurement stores nothing on your device.

Legal basis and retention

We measure on the basis of legitimate interest (Art. 6(1)(f) GDPR): so that we can fix and improve the game. Records are deleted after 13 months. We process author accounts and published maps to provide the map catalog the author asked for (Art. 6(1)(b) GDPR); protection against abuse (rate limits, reports) is based on legitimate interest.

Player map catalog and author accounts

Players can publish their own maps to the catalog on the start screen. The catalog runs on our server api.citydefense.app (Hetzner, Germany), map images on img.citydefense.app.

How to opt out

What stays in your browser

The game remembers settings in your browser's storage (localStorage): the look (td.theme), the city style and quality (td.cityStyle, td.cityQuality), see-through buildings (td.seeThrough), the game language (td.lang), the graphics savings level on this device and a declined low-quality offer (td.perfLevel, td.perfDeclined), the “Build without confirming” choice on a phone (td.noConfirm), whether the gesture help was shown, whether the tower upgrade tip was shown and whether the “Add to Home Screen” card was closed (td.gestureHelp, td.upgradeTip, td.installCard) – and the missions in your “My missions” list (td.missions). A mission you are editing is kept until you close the tab (sessionStorage, td.editor.draft). None of this is sent anywhere; you delete it by clearing the site data in your browser.

For the map catalog the game also remembers the device key (td.device — the only one sent to the server, see Player map catalog), the codes of the last 200 maps you finished, for the “played” mark, and your thumb (up or down) on the maps you rated, so that the map card shows how you voted (td.played), the bot test result and the wave reached in “Try it” or when playing your own mission from My missions for the last 20 versions of your missions (td.publishProof) and the codes of maps you published from this browser (td.published).

Who else sees your IP address

Your browser sends its IP address to every server it downloads something from. For City Defense, these are:

Protection against bots

The sign-in and sign-up pages for map authors on api.citydefense.app are protected by the invisible Cloudflare Turnstile check: it tells that a person, not a bot sending out code e-mails, is filling in the form. You don't have to fill in or confirm anything. For this, Cloudflare processes data about your browser and device and your IP address under its Turnstile Privacy Addendum. In the game on citydefense.app, Turnstile loads only when you report or publish a map — until then the game downloads nothing from Cloudflare Turnstile.

Your rights

You have the right of access, rectification and erasure, the right to restrict processing and the right to object to processing based on legitimate interest. Because the measurement holds nothing that identifies you, we usually cannot find your records (Art. 11 GDPR) – the simplest option is to turn the measurement off. You can lodge a complaint with your data protection authority; in the Czech Republic that is the Office for Personal Data Protection (uoou.gov.cz).

Advertising

The game does not show ads at the moment. Before we turn them on, we will add here what data the ads use, and where the law requires it, the game will ask for your consent.

Frequently asked questions

Does City Defense use cookies?

Not the game itself on citydefense.app. The map catalog server on api.citydefense.app gives your browser the strictly necessary protective cookie csrftoken (no data about you, 1 year) when you play the official Brno map or a map from the catalog, rate, report or publish; a signed-in author also has a sign-in cookie. The measurement stores nothing on your device.

How do I turn the measurement off?

Turn on Global Privacy Control or Do Not Track in your browser – the measurement is then not loaded at all. Or open the console (F12) on citydefense.app and run localStorage.setItem("umami.disabled", "1"). The game keeps working.