← Winter Is Here · studio privacy policy

Winter Is Here — privacy & data

What this game sends, in plain language, and the switch that stops it. Written from the game’s own code, not from a template a lawyer keeps.

Winter Is Here sends anonymous play statistics, on by default. No account, no name, and your IP address is not stored.
It sends a daily report, described card by card below with every field name read out of the game’s own code. The daily report carries a random install id the game keeps on this machine, so we can tell one install from another - never who is behind it. To turn it off: the ANONYMOUS STATS switch, on the MORE page (main menu → MORE), under SETTINGS - it is not on the pause menu’s settings page.

What this game sends

Anonymous play statistics (daily report)

Your lifetime run counters - runs played (a run counts once it has survived a night or ended), nights survived in total and at best, infected destroyed in total and in your best run, whether you have ever survived a blizzard, profile level, achievements earned, and whether this is the demo - plus how many times the game has been opened, how many minutes it has been open (in the background too), and minutes on each of five screens: building by day, the night siege, the shop, menus (the main and pause menus, the MORE page and the bug box all count as menu time) and the defeat screen.

When: At most once a day (by the UTC date): one try a session, about a minute after the game starts, skipped if today’s report has already gone, or while a balance mod is loaded. A report that does not arrive is tried again at the next start.

Sent to: https://lostphantom.live/api/winter-is-here/telemetry

Every name in it, read out of the game’s code: anon version platform sessions playtimeMin scene_time metrics runs total_nights best_night total_kills best_run_kills blizzard_survived level achievements demo day_build night_siege store menu defeat

Platform: the platform as Unity names it, one word: WindowsPlayer, OSXPlayer, LinuxPlayer or Android (a Steam Deck is not told apart - it reports Linux, or Windows under Proton).

Identifier: A random install id: twelve characters the game makes up on this machine the first time it prepares a report (about a minute into a session, and only with the switch on) and then keeps. It is not made from your Steam account, your hardware or a hash of anything, it is not copied to Steam Cloud or to an account, and turning the switch off does not delete it. It lets us tell one install’s reports from another’s; nothing in them says whose install it is.

Turning it off: the ANONYMOUS STATS switch, on the MORE page (main menu → MORE), under SETTINGS - it is not on the pause menu’s settings page. It is ON by default. Off stops the report before it is built. The game goes on counting sessions and minutes on your machine while it is off, and a report sent after you turn it back on includes them. Nothing in the game resets the switch.

What we keep: One record per install - the id, the version, the platform, the session and minute totals, the latest counters and screen minutes, and the first and last day it was heard from - plus daily totals per game. An install not heard from for 400 days is deleted; a daily total is kept for two years. A report carrying a field named like a name, an account or an email address, or any value shaped like an email address, is refused with an error rather than stored. Your IP address reaches our server with the request, as it does for any connection; it is held in memory for a few minutes to limit how often a report is accepted, and it is never written to a table or a log.

Where this is read from: Winter-is-here: Assets/WinterTD/Scripts/TDTelemetryCore.cs Payload (the body) and TDFeedbackCore.cs Screens; TDTelemetry.cs ReportLater (the send, after ShouldSend asks the switch, the mods and the day); TDMoreHub.cs `_statsRow` (the switch)

Bug reports and suggestions

Only what you write, and only when you press SEND. With it go eight things the game already knows: the game version, the build number, whether this is a public or a tester build, the platform (the word Unity uses — "WindowsPlayer", not your machine), the language you are reading, which screen you were on, the last twelve warnings and errors the game logged, and a random id for this install. Those logged lines are MESSAGES only — the stack trace behind each one is thrown away rather than sent — and the game folds its own folder names out of every one of them as it remembers it, before you ever see it in the box. That matters on Windows, where the folder the game saves into is inside a directory named after your account: the name is replaced before the line is stored, so it is not in the report and not in the preview either. They are collected whether or not statistics are switched on, because they go nowhere at all until you write a report and press SEND. No name, no account, no email, no device name, no location, and no hardware. The install id is minted for this box alone and is not the id the statistics above use, so a report you send cannot be joined to your play statistics.

Honesty note: there is no switch in front of the box, because it sends nothing unless you have written a report and pressed SEND. ANONYMOUS STATS deliberately does NOT silence this — turning off statistics says you do not want to be measured, not that you no longer want to be able to report a crash, and taking the box away with that switch would leave the people most careful about their data with no way to tell anybody anything.

Where this is read from: Winter-is-here: Assets/WinterTD/Scripts/TDFeedbackCore.cs (`Fields` is the one list, `Disclosed` is held to it in both directions, and `Scrub` is the path fold) and TDFeedback.cs (`Remember`, the Application.logMessageReceived handler, calls Scrub BEFORE the ring buffer; plus the install id and the `fb.privacy` line under the box), held by Tools/feedback-check.py

What is in the standard snapshot

The top-level shape of the daily report the studio’s own statistics address takes. The card above names every counter and screen inside it.

FieldWhat it is
anonA random install id, twelve characters the game makes up on this machine the first time it prepares a report (about a minute into a session, and only with the switch on) and then keeps. Never derived from a Steam id, an account, your hardware or a MAC address; not copied to Steam Cloud; not deleted by turning the switch off.
versionWhich version of the game is running - so a crash-prone build can be told from a fixed one.
platformOne word for the kind of machine: the name Unity gives it (WindowsPlayer, OSXPlayer, LinuxPlayer, Android), or in Smokestack Valley just desktop or android. A Steam Deck is not told apart. No model, no hardware, no operating-system version.
sessionsHow many times the game has been opened on this machine, in total.
playtimeMinHow many minutes the game has been open on this machine, in total.
scene_timeMinutes spent on each of the game’s screens - the list is on each game’s page. This is the "which parts do people actually play" answer.
metricsCounters the game chooses, such as nights survived or puzzles solved - each game’s page names every one. The server keeps numbers only.

What is never sent

What we actually see

What this adds up to on our side is mostly charts. Per game and per day the dashboard shows:

For the games that send a daily report (Winter Is Here, Dug Out, Smokestack Valley, Pencil and Paper and Slime Wars) we also keep one record per install - its latest totals and the first and last day it was heard from - and the dashboard lists a few of them under a short label that stays the same between visits. So we can tell one install from another, but not who is behind it: there is no name, account, Steam id, email or IP address anywhere in it, and the id is random. The screen-time batches keep no per-install record at all.

Things you choose to send

Questions

Email lostphantom03@gmail.com, or use the in-game feedback box. The studio-wide policy, which covers this site and the optional accounts, is at /privacy.