kfancy games

Office Survivors Privacy Policy

Office Survivors Effective date: [RELEASE DATE] Publisher: kfancy games (the "Publisher", "we", "us", "our") Contact: press@kfancygames.com

This Privacy Policy describes how the Software titled "Office Survivors" (the "Software") handles information when you ("you", "the User") install and play it. We have written this policy to be plain-English rather than boilerplate.

Short summary

  • The Software runs fully offline. It does not connect to any server we operate.
  • The Software writes local-only save files and a local-only gameplay telemetry log to your computer.
  • We (the Publisher) do not collect, transmit, or receive any of that data. It stays on your machine.
  • The only third-party data flow is the Steam SDK, which handles Steam achievements and (if enabled) Steam Cloud save synchronization. That flow is governed by Valve's privacy policy, not ours.

If that is enough information for you, you can stop reading. The rest of this document expands on each point.

1. Information the Software writes locally

The Software writes four files during ordinary play to your operating-system's per-user application data directory (on Windows, %APPDATA%\Godot\app_userdata\Office Survivors\; on Linux, ~/.local/share/godot/app_userdata/Office Survivors/; on macOS, ~/Library/Application Support/Godot/app_userdata/Office Survivors/):

  • `save.cfg` — your meta-progression: unlocked characters, purchased Hub Shop nodes, current Stock Options balance, highest floor reached, achievement progress, and similar persistent game state.
  • `settings.cfg` — your in-game settings: volume sliders, screen mode, custom keybinds, accessibility toggles.
  • `telemetry.jsonl` — an append-only gameplay event log used by the game's own achievement-unlock logic. See Section 2 for what's in it.
  • `achievements.cfg` — which achievements you have already unlocked, one entry per achievement id. The game reads it at launch so an achievement you have earned is not offered to you a second time.

Three further files can appear in the same directory. Each is written only in one specific circumstance, and none is written during ordinary play:

  • `save.cfg.before-reset-<timestamp>` — a copy of save.cfg taken the moment before you confirm the Settings menu's Reset Save action, so that a reset you did not mean is still recoverable. It is kept until you delete it.
  • `save.cfg.corrupt-<timestamp>` — a copy of a save.cfg the game could not read, set aside before a fresh one is written in its place.
  • `debug_screenshot_<timestamp>.png` — a picture of the game's own window, written only by development builds when F12 is pressed during a run. The released game and the demo do not write it. It captures the game window, not your screen or any other application.

The free demo build keeps its progress in one separate file, office_survivors_demo_save.json, in the same directory. Only the demo build writes it. It is local-only like the files above, and the full game never reads it.

The demo also writes settings.cfg, the same settings file the full game uses. It writes no save.cfg, achievements.cfg or telemetry.jsonl; the demo keeps its telemetry in memory only.

While a save is being written the game first stages it beside the real file as save.cfg.tmp (or settings.cfg.tmp for settings; the demo uses office_survivors_demo_save.json.tmp) and then renames it into place, so that an interrupted write cannot damage the file it is replacing. No staging file outlives the save that created it.

These files are stored only on your machine. The Software does not transmit them to us, and we have no mechanism to read them.

2. What is in the telemetry log

The telemetry log (telemetry.jsonl) is a JSON-Lines file containing gameplay events. Each line includes a schema version, a Unix-millisecond timestamp, the event name, and the in-run seed. The events recorded are:

  • run_start — character chosen, tier setting, run seed, assigned Boardroom boss.
  • run_end — outcome (win/loss/quit), depth reached, run duration, total cash earned, final level.
  • floor_entered — floor index, theme id, active modifier id.
  • level_up — new level.
  • weapon_picked — which Pick-Three card you selected.
  • pick_three_free_skipped — when you skip a Pick-Three offer.
  • evolution_unlock — which weapon evolved.
  • boss_intro, boss_killed — boss id, tier.
  • stock_vesting_applied — leftover-cash → Stock Options conversion.
  • elevator_debuff_applied — which elevator debuff you took.
  • meta_node_purchased — which Hub Shop node you bought.
  • char_unlocked, tier_unlocked — meta-progression milestones.
  • hostile_takeover_used — signature-ability use.
  • settings_changed — key + new value (for settings you change).
  • perk_chosen — which perk you took, how many you now hold, floor depth.
  • reroll_used — that you rerolled a Pick-Three offer.
  • shop_item_purchased — what the purchase cost.
  • department_synergy_active — which department synergy, at which tier.
  • player_damaged — the net damage a hit did to you.
  • pacifist_minute — how long you have gone without taking damage.
  • combo_milestone — the kill-streak number you reached.
  • cash_balance_milestone — your in-run cash balance at the milestone.
  • mini_boss_killed — a floor mini-boss kill: boss id, tier.
  • boardroom_member_killed — one line per Boardroom member defeated.
  • boss_slam_resolved — whether you dodged a boss slam.
  • audit_resolved — Quarterly Audit outcome: elites killed, whether you entered the audit zone.
  • rush_hour_resolved — damage you took during a Rush Hour event.
  • floor_mechanic_summary — a per-floor tally for the floor's mechanic: which mechanic, and its hit or entry count.
  • overtime_result — floor, lap and time when an Overtime run ended.
  • daily_result_recorded — Daily run result: win/loss, score, current streak, best.
  • lifetime_milestone — your cumulative totals: kills, damage dealt, runs played and won, floors cleared, mini-bosses, playtime, lifetime Stock Options, and how many weapons, enemies and bosses you have discovered.
  • save_reset — that you reset your save.

The log is used only by the game itself, to determine when to fire Steam achievements. It is not transmitted anywhere.

What the telemetry log does NOT contain: your name, email address, IP address, Steam ID, location, hardware fingerprint, advertising identifier, or any other personally-identifying information. The game does not have any of those values to log in the first place.

The Software includes a settings toggle to disable telemetry logging. When the toggle is off, no new lines are appended to telemetry.jsonl. You may also delete the file at any time; the game will recreate an empty one on next launch only if the toggle is on.

3. Steam SDK integration

The Software uses the Steam SDK (via the GodotSteam plugin) to:

  • Award Steam achievements. When the game's local achievement-unlock logic fires, it calls Steam.setAchievement and Steam.storeStats. The Steam client transmits the unlock to Valve. The demo awards no Steam achievements or stats.
  • Set Steam rich presence. The game sends Steam your current character and floor so Steam can show them to your friends. The demo does this too.
  • Run Steam SDK callbacks. The Steam client may exchange data with Valve for its own session-management purposes (e.g., overlay, friends list, rich presence, controller input).

Any data flow through the Steam SDK is governed by Valve's privacy policy, which is available at https://store.steampowered.com/privacy_agreement/. We (the Publisher) do not receive that data — Valve does. When the Steam build runs, Steam (Valve) also processes your Steam account data, such as your Steam ID and achievement progress, under Valve's own policy.

If Steam Cloud save synchronization is enabled (a setting controlled by Valve and you, not by us), your local save files described in Section 1 will be uploaded to and downloaded from Valve's servers. This is likewise governed by Valve's privacy policy.

4. Data we (the Publisher) collect

None.

We do not operate any backend service, analytics, or telemetry pipeline for this game. We do not have access to your saves, settings, telemetry, gameplay, or any other personal data. If you contact us via the address in the Contact section, we will receive your email address and message contents, and we will retain those only as long as necessary to respond.

5. Cookies and tracking

The Software is a desktop application and does not use cookies, advertising identifiers, or tracking pixels.

6. Third parties

The only third party involved in the Software's normal operation is Valve Corporation (via the Steam platform and Steam SDK). We do not share data with advertising networks, analytics providers, or other third parties because we do not collect data to share.

7. Children's privacy

The Software is rated for general audiences (see the Steam store page for the current rating). We do not knowingly collect personal information from children under 13 (or under 16 in the EU). Because we do not collect personal information from anyone, this section is largely informational.

8. Your rights

To the extent any law (including GDPR, UK-GDPR, CCPA, or the Australian Privacy Act) gives you rights regarding personal data we hold, you may exercise those rights by contacting us at press@kfancygames.com. Because we do not hold personal data, our response will typically be a confirmation of that fact. For data held by Valve, you must contact Valve directly.

9. Changes to this policy

If we change the Software in a way that changes data handling (for example, by adding online leaderboards or in-game analytics), we will update this policy and the effective date above. Continued use of the Software after a change constitutes acceptance.

10. Contact

Questions about this policy: press@kfancygames.com