IFMachine

Privacy policy

Effective date: 2026-05-23
Last updated: 2026-06-11

IFMachine is an Android app for playing interactive-fiction games (Z-machine and Glulx story files) published by Guppy Interactive LLC ("we", "us"). This policy explains, in plain language, what data the app touches and what it does with it.

The short version: IFMachine contains no advertising, marketing, or behavioural-analytics SDKs. The current closed-testing (beta) build uses Sentry for crash and error reporting so we can diagnose issues testers encounter; what Sentry receives is described in §5. Otherwise, the app stores your game progress and settings on your device, optionally syncs your per-story content (saves, transcripts, maps, and game-managed sidecar files) to your own Google Drive if you turn that on, and contacts the Interactive Fiction Database (IFDB) only when you explicitly search for a game, view cover art, or download a story file.

If you want the long version, read on.

1. What we don't do

We do not operate any servers that collect data from IFMachine. We do not transmit any of the following to any server we operate, and the app does not include any third-party library that would transmit them on our behalf:

The app does not include Firebase Analytics, Firebase Crashlytics, Google Analytics, AdMob, the Facebook SDK, Bugsnag, or any comparable behavioural-tracking library. Crash and error data the app does send (to Sentry, in the current closed-testing build) is described in §5.

Note that Android itself also collects basic crash and ANR (application-not-responding) telemetry for apps installed via Google Play; that data goes to Google as part of the Play platform under Google's own privacy terms, not under this policy.

The situations in which information does leave your device are described in §3 (optional Google Drive sync of your per-story content), §4 (optional IFDB lookups), §5 (Sentry crash reporting, always-on in the current closed-testing build), and §6 (problem reports you choose to send). §3 and §4 are off by default and require an explicit action by you; §6 happens only when you press Send on a report whose full contents are shown to you first. Section 2 lists what the app stores locally on your device — including the Google account name once you connect Drive sync, which is kept on-device so the Settings screen can show you which account is linked.

2. What is stored on your device

IFMachine stores the following on your device only (in the app's private storage area, not accessible to other apps):

This data lives in the app's private storage and is removed when you uninstall the app.

3. Cloud sync with Google Drive (optional)

If you enable cloud sync in Settings, IFMachine syncs your per-story content to a folder of your choice in your own Google Drive. The synced content for each game you play includes every file the app or the running game writes for that story:

Because game commands are free-form text, any of the above can contain personal information if you type it into a game. We do not inspect or filter the content.

To make sync work:

We do not run any servers that receive this content. Files go directly between your device and your own Google Drive.

How the transfer is secured: all network connections to Google Drive use HTTPS (TLS). Sign-in is handled by Google's official Android libraries and the system account picker; IFMachine never sees your Google password. The OAuth credential the app holds afterwards is limited to the drive.file scope (it can only touch files the app itself created) and is managed by the Android AccountManager. Locally, all of the files listed in §2 — including any not-yet-uploaded saves, transcripts, maps, and sidecars — live in the app's private storage area, which other apps on the device cannot read.

4. IFDB integration (optional)

When you search for a game, view cover art, or download a story file from the Interactive Fiction Database (ifdb.org), IFMachine fetches that content over HTTPS. The request contains only what's needed to fulfill what you asked for — the search term you typed, the IFDB identifier of a specific game, or the URL of a story file — plus a generic User-Agent header of IFMachine-Android/0.1. It does not include your name, email, account, device identifier, or any other information about you. IFMachine never writes, posts, rates, comments, uploads, or modifies anything on IFDB; these are read-only requests.

Story files you download from IFDB may be hosted on third-party archives (such as the Interactive Fiction Archive). Downloading a game causes IFMachine to retrieve the file from that host using a standard HTTPS request. We do not control ifdb.org or the archives it links to; their respective terms and privacy practices apply to data they receive (which from IFMachine is limited to the request information above).

5. Crash reporting (Sentry, closed-testing build)

The current closed-testing build of IFMachine ships with the Sentry error-tracking SDK (sentry.io, US region, operated by Functional Software, Inc.) enabled at app launch. Sentry collects crash and error data and forwards it to us so we can diagnose and fix problems during the closed-testing phase. There is no in-app toggle for this in the current build; if you do not want crash data sent to Sentry, do not participate in the closed test. A toggle and/or first-launch prompt will be added before any production release; this policy will be updated at that time.

When the app crashes or hits an unhandled error, Sentry receives:

Sentry does not receive your name, contact details, the Google account you may have connected for Drive sync, an advertising ID, IMEI, MAC address, location, or the contents of the debug log described in §2. The IFMachine install identifier (the UUID described in §2) is not sent with crash reports. IP address is also stripped: IFMachine initialises the Sentry SDK with sendDefaultPii = false, so Sentry does not store your IP address with the crash report.

Sentry's own SDK generates and attaches a random installation identifier of its own (separate from the IFMachine UUID), so it can group multiple reports from the same device; that identifier is not derived from your name, account, or any other personal information.

Crash reports are sent over HTTPS (TLS) to Sentry's US-based servers and retained by Sentry for 90 days, after which Sentry automatically deletes the raw events (aggregated, de-identified counts may be retained longer). Sentry's own privacy policy is at sentry.io/privacy/.

Individual deletion of past crash reports is not supported. IFMachine does not transmit any identifier you or we could use to isolate your specific reports, and we do not store anything that maps your install to your identity. This is a deliberate privacy-protective choice: the data Sentry receives is pseudonymous from our perspective, and the trade-off is that individual deletion requests cannot be honoured. To stop sending future crash data, uninstall the app or leave the closed-testing program; existing reports auto-expire after 90 days.

6. Problem reports you choose to send

Settings → About → "Report a problem" lets you send us a diagnostic report. Nothing on this screen is sent automatically or in the background — a report goes out only when you press Send, and the contents of the report are shown on screen first.

A problem report contains:

Reports are posted to a channel in the IFMachine closed-testing Discord server, using Discord's webhook service over HTTPS. That channel is visible to the development team and to the other participants in the closed test, so anything in your report — including the attached log, which may contain text you typed into a game — can be seen by other testers, not only by us. The report screen tells you this before you send, and the "View your report" link shown after sending opens the post in Discord. Discord, Inc. processes the message under its own privacy policy (discord.com/privacy). Reports remain in the channel until we delete them and are used only to diagnose and fix problems.

The report screen also offers a "Share" option that hands the same report to the Android share sheet instead; as with the Debug-tab export in §2, the content then goes to whatever destination you pick.

7. Permissions

IFMachine requests two Android permissions:

PermissionPurpose
INTERNETCloud sync to your Google Drive (if enabled), IFDB requests (when you initiate them), Sentry crash reporting (always-on in the closed-testing build), and problem reports you choose to send (§6).
ACCESS_NETWORK_STATEDetect whether you are on Wi-Fi vs. cellular, so cloud sync can respect a Wi-Fi-only preference.

We do not request location, camera, microphone, contacts, phone, calendar, or sensor permissions.

8. Children's privacy

The current closed-testing build of IFMachine is distributed by invitation only and is not directed at or appropriate for children. The app does not show advertising and does not knowingly collect or transmit personal data from children. The one piece of age data it asks for — the date of birth entered at the IFDB age screen — stays on your device only, is never transmitted, and exists solely to keep under-18 users out of the catalogue (see the next paragraph). Any crash data collected via Sentry (described in §5) is limited to the listed diagnostic and device data and is used only for debugging; we do not attempt to identify individual users.

Some interactive-fiction games available through IFDB are written for adult audiences. Because that catalogue is open and unmoderated, the in-app IFDB browser is kept behind an age screen: the first time you open it, IFMachine asks for your date of birth and an acknowledgement before the catalogue is shown, and keeps it hidden from anyone under 18. The date of birth is stored on your device only and is never transmitted to us or anyone else — it lets the app remember you have passed the age screen and, if you were under 18 when you entered it, unlock the catalogue automatically once you turn 18. You can clear it by uninstalling the app or clearing its data in Android Settings. Parents and guardians should still supervise downloads of third-party game files as they would any other internet content.

9. Data sharing

We do not sell, rent, trade, or transfer your data for advertising, marketing, profiling, or behavioural analytics. We do not run any servers that receive data from IFMachine.

The third parties that receive information from your use of IFMachine are:

10. Your choices

11. Changes to this policy

If we change this policy, we'll update the "Last updated" date at the top and publish the new version at this URL. Material changes — for example, adding usage analytics, changing how crash reporting works (e.g. adding an in-app toggle or attaching save files to reports), or any other change to what data leaves the device — will be called out in the app's release notes. Where any such change adds a data type, the Google Play Data Safety disclosure for the app will be updated to match.

12. Contact

Questions about this policy can be sent to:

privacy@guppyinteractive.com

Guppy Interactive LLC
10938 Vivaracho Way
San Diego, CA 92124
United States