Privacy policy
Who we are
Phase Sync is a puzzle game made by Zoran Olujic, a solo developer. I decide what the game collects and why.
Contact for anything on this page: support@phasesyncgame.com.
What the game collects (and what it does not)
Most of what the game knows about you stays on your device. It keeps a save file (levels done, stars, streaks, achievements, settings) and a random install ID. It also keeps local logs: the moves you made on each level, a short error log, start-up timing, and a copy of any analytics events. The game never uploads these files. The only data it sends is the analytics described below, plus the single startup event in the section after that.
The game does not send your name, email address, payment details, advertising ID, device model, operating system version or language. It does not use your camera, microphone, photos, contacts or location. It has no ads, no accounts, no chat and no crash-reporting service. It does not read your Steam name or friends list.
Analytics consent and how to turn it off
Analytics is off until you say yes. The first time you play, the game asks once: Allow or No thanks. Escape counts as No thanks. If you decline, no analytics event is recorded or sent.
If you allow it, the game sends events about how the puzzles play, so the levels can be balanced. Every event carries these fields:
- a random install ID, created on your device and stored in your save file;
- a random session ID, new each time you launch the game;
- the time, in UTC, taken from your device clock;
- your platform family (Windows, macOS, Linux, Android, iOS or web), the game version and build number, and the build channel (for example
store).
Events also carry a telemetry schema version, a flag recording the basis for consent, and the board and attempt identifiers I use to balance levels.
The install ID is not your name, but it links your events to each other. That makes the data pseudonymous, not anonymous. Any upload also reveals your IP address to the server receiving it.
| Category | What is recorded |
|---|---|
| Session | When a session starts and ends, how long it lasted, levels played and completed, your visual quality setting, current mode, total stars, worlds completed. |
| Gameplay progress | Which level and mode; moves, stars and time; undos, resets, failures, abandons and retries; the sequence of directions you entered on an attempt; moves blocked by a wall or the tether; hints shown (with the hint sentence); worlds and achievements unlocked, memory fragments collected; Daily Challenge starts, results and streaks; tutorial steps shown or skipped; Challenge Mode prompts shown. |
| Settings | When you change a sound toggle, haptics, reduced motion, tile clarity, colorblind options, text size (as a size bucket), fullscreen, hints, move preview, confirm-before-moving, or the analytics switch: the setting name, its on/off or bucket value, and where you were in the game. Language, volumes and skins are not sent. |
| Share actions | That you tapped share or copy for a Daily Challenge, level or streak result, with that result's numbers (stars, moves, streak) and whether it went through the system share sheet or the clipboard. The shared text and its destination are not sent. |
| Purchase prompts | When an upgrade prompt is shown, attempted or fails: the product name, the store, the displayed price, a failure code, and whether the game is in its premium (unlocked) state. No payment details. |
To turn analytics off, open Settings, find the Share Analytics switch in the Data section (labelled Privacy on some screen layouts) and switch it off. New events stop being recorded. Events from roughly the last minute may still be uploaded once at that moment. Data already uploaded stays on the server until deleted (see below), and the local copy stays on your device until you delete the game's user data folder.
If you use Reset Progress or Restore Defaults in Settings, the game forgets your analytics choice and asks again on the next start. Until you restart the game, analytics that were on may keep running, even though the switch shows Off. After Reset Progress the game also creates a new install ID. Restart the game after using either of them.
On private tester builds that are not public, analytics is switched on in advance with the testers' agreement. Public builds never do this.
The one thing sent without consent
When a release build of the game starts, it checks that it was put together correctly: that the analytics key is present, and that the in-app purchase backend is wired. If a check fails, the game records one "release health" event named release_invariant_failed, before it asks about analytics. A missing analytics key means the event has nowhere to go and stays on your device. A failed purchase-backend check is sent every time the game starts, until the build is fixed. Declining analytics does not stop it.
The event contains the name of the failed check (posthog_prod_key_missing or iap_backend_missing), a fixed one-line explanation of it, the build channel, and the standard fields listed above, including the random install ID, plus your IP address as part of the upload. It contains no gameplay data. I use it to find out that a published build is misconfigured.
Who processes it
Analytics events go to PostHog, in its EU Cloud region (eu.i.posthog.com), over an encrypted connection. PostHog processes them on my behalf. PostHog receives your IP address with each upload, as any server does. The game asks PostHog not to work out your location from it.
Events are uploaded in small batches: when 20 are waiting, once a minute while analytics is on, when the game closes or pauses, and once when you switch analytics off. If an upload fails, the game retries a few times and then gives up. I do not sell the data, share it with advertisers, or send it to any other company.
How long it is kept
Analytics events stay in PostHog until I delete them. PostHog's own plan limits may remove older events sooner. I have not promised a fixed retention period. Local files on your device stay until you delete them: the analytics copy is capped at about 2 MB.
The game's user data folder is the engine default: %APPDATA%\Godot\app_userdata\Phase Sync on Windows, ~/Library/Application Support/Godot/app_userdata/Phase Sync on macOS and ~/.local/share/godot/app_userdata/Phase Sync on Linux. Uninstalling the game does not necessarily remove it.
Your rights and deletion requests
Email support@phasesyncgame.com to ask for a copy of your analytics data, to correct it, or to have it deleted.
Your events are linked only to the random install ID, not to your name or email, so I cannot find them without it. To send it: open puzzle_save.json in the user data folder above with a text editor, copy the value of profile_id, and email it to me. I will delete the events recorded under that ID in PostHog, or export them to you if you ask for a copy. If you cannot find the file, write anyway and I will say what else I can check. Without the ID I cannot identify your events. A new install ID is created after a reinstall or Reset Progress, so an old ID's data stays until deleted.
Where GDPR or a similar law applies to you, you also have the right to access, correct, delete, restrict and port your data, to object to its processing, to withdraw consent at any time (the Share Analytics switch does this from then on), and to complain to your local data protection authority. Analytics is based on your consent. I aim to answer within one month, the period GDPR sets.
Steam and app stores
On Steam, the game uses Steamworks to check that you own the game, to unlock your achievements, and to show a "playing" status to your Steam friends (menu, Daily Challenge, or the world and level you are on), under your Steam privacy settings. That data is handled by Steam under Valve's privacy policy. It does not depend on the analytics switch.
Any purchase is handled by Steam, the App Store or Google Play. The game never sees your payment details. The stores collect their own data under their own policies.
This website
This website sets no cookies, runs no analytics (Cloudflare Web Analytics is off) and loads no third-party scripts, fonts or trackers. It is hosted on Cloudflare Pages. As the host, Cloudflare processes server request logs (IP address, requested address, time, browser details) to deliver the site and keep it secure. I do not use them to track you. Emails to the contact address pass through Cloudflare Email Routing and arrive in my inbox.
Children
Phase Sync is a puzzle game for a general audience. It is not aimed at children under 13, and it does not ask for your age. It collects no name, email or contact details from anyone. Analytics stays off unless someone allows it, and a parent or guardian can decline it or switch it off. In some countries, a young person needs a parent's permission before consenting to analytics. If that applies to you, ask first. If you think a child's data was sent, email me with the install ID and I will delete it.
Changes
When the game's data collection changes, I update this page and its date. The current version is always at phasesyncgame.com/privacy/.
Effective date
16 October 2026 (2026-10-16).