Legal

Privacy Policy

Last updated: October 2026

Dark Cosmos is a game made by Lumara. This page explains what data the game collects, why, and how to switch it off.

What we collect

The game sends diagnostics to help us fix crashes and slowdowns and to tune the game. We call this Diagnostics, and it is on unless you switch it off. It does not identify you as a person.

Specifically, the game may record:

  • Performance: frame rate, frame, rendering and audio processing times, sound-effect counts, your display resolution, and moments where the game stuttered
  • Your device: its model (for example, "AppleTV11,1" or "iPhone15,2"), operating system version, or your browser type in the web demo, and the app build number
  • How a session went: when the game starts, how each run went (how long it lasted, the level reached, how it ended, which upgrades were picked, which Dimensions you visited, which bosses you met and how much damage each enemy and boss attack dealt), shop purchases, tutorial progress, and whether the game closed unexpectedly last time
  • Co-op connection quality (online co-op, and co-op in our internal development builds, see Multiplayer below): for a co-op game played between two devices over a network, how smoothly it ran (how long it lasted, pauses waiting for the other device, round-trip time and packet loss), the app build number, why it ended, for online co-op the reason the connection to our relay failed if it did (for example "connection lost" or "room full"), and, if the two devices fell out of step, the moment it happened and a short snapshot of the game state (ship positions, health, enemy counts). No network addresses, room codes, locations or names are included
  • Game controllers: when a controller connects or disconnects, its rough type (Xbox, PlayStation, Siri Remote or other, never its name), which player slot it is in and how many are connected; and if a controller goes silent for a few seconds during a fight, how long the gap lasted, the stick positions, and what the game was doing at that moment (run time, enemy count, health lost, frame timing). This helps us find controllers that stop responding
  • Crash and performance reports from Apple (MetricKit), on iPhone and iPad
  • Feedback: any note you choose to send with "Send feedback" in the pause menu
  • A random install ID (see below)

Multiplayer

Online co-op lets two players on different networks play together. The host's game makes a random five-character room code, and the other player types it in to join.

The two devices never connect to each other directly. Each one connects to our relay, a small service running on Cloudflare, which passes the game's messages between them, such as the build number, the inputs each player makes, level-up choices and checks that both games are still in step. Because everything goes through the relay, neither device ever sees the other's internet address. The messages contain no names, IDs or anything you type. The room code is the only thing you type, and the relay uses it just to put the two of you in the same game.

The relay saves nothing: we have not turned on any logging for it, and it has no database. Like any website, it receives your device's internet address as part of the connection, and it uses that address only to limit how many times one address can try to connect in a minute. Cloudflare holds it in a short-lived counter that clears within a minute, and we never save it. A room code exists only while the host's game is connected to the relay, and disappears when the host leaves. The only thing we receive about an online game is the co-op connection quality described above, and only while Diagnostics is on.

Our internal development builds also have co-op over a local network, which is not in the App Store or TestFlight versions of the game. The rest of this section applies only to those development builds.

In those development builds, local co-op connects the two devices to each other directly, so each device sees the other's local network address (for example 192.168.1.20). That connection itself sends us no network addresses or names; only the room-code feature below does.

A host can also share a short room code so the other device can find it. While a game is waiting for a player, our matchmaking service keeps the room code, your device's model and operating system (for example "iPhone15,2 · iOS", never the name you gave the device), the build number, your device's local network addresses, and a one-way scrambled (hashed) form of your public internet address so that only devices on the same network can see the game in the "nearby" list. It never stores the public address itself. The room is deleted as soon as the game starts or the host leaves. If the host's app closes without leaving, the room stops being visible about 60 seconds later and is deleted the next time the service tidies up.

The install ID

The game makes a random ID the first time it runs, so we can tell sessions from the same install apart (for example, to see whether a crash keeps happening on one device). It is made on your device. It is not your Apple ID, advertising ID or device serial number, and it is not linked to your name, email or any account.

Turning it off

Pause the game and select "Diagnostics On" to switch it to "Diagnostics Off". From then on nothing is sent, anything waiting to be sent is deleted from your device, and the install ID is thrown away. If you switch it back on, a new, unrelated ID is made. While Diagnostics is off, "Send feedback" is unavailable, because feedback travels the same way.

What we do not collect

  • Your name, email address, or any account information
  • Your contacts, calendar, photos, or files
  • Your precise or approximate location
  • Any data used to target advertising or to track you across other apps and websites

The game shows no ads.

How we use the data

We use the performance data and crash reports to find and fix crashes, stutters and frame-rate problems. We use the session and run data to understand whether the game is too hard, too easy, or too short, and to tune it accordingly. We read feedback notes to fix what players report.

We do not use it for any other purpose. We do not sell it or share it with anyone for advertising.

Data retention

Everything the game sends is deleted automatically 12 months after it arrives.

Because the install ID is not linked to you, we have no way to find which data came from your device, so we cannot look up or delete one person's data on request. Switching Diagnostics off stops all collection and breaks the link between you and anything already sent.

Third-party services

The data is stored on Cloudflare infrastructure (D1 database, Workers). Cloudflare processes it on our behalf under its own privacy policy. The online co-op relay also runs on Cloudflare (Workers, Durable Objects) and saves nothing (see Multiplayer above). No other third party receives it.

Contact

Questions about privacy? Get in touch: