Skip to main content

DX Master Privacy Policy

DX Master Privacy Policy

Last updated: September 19, 2026

DX Master ("DXM", "the app") is a tabletop role-playing companion: it holds character sheets, lets a Game Master ("GM" or "DM") run a campaign, and lets players join a DM's campaign over the local network.

The short version

  • We collect nothing. DX Master has no accounts, no sign-in, no analytics, no advertising, and no crash-reporting service. The developer runs no servers for it and receives no data from it. The one exception is a feedback report that you choose to create and send yourself (section 3).
  • Your characters, campaigns, and settings stay on your device.
  • When you play with others, data goes directly between your devices over your local network, never through the developer or any cloud service. The one exception is a check you start yourself: Settings > Network can ping a public internet address to test your connection (section 6).
  • Some of that local traffic is not encrypted (a campaign's listing and a join request). What a DM shares with players, and the character sheet a player sends the GM once admitted, are encrypted. A GM whose campaign you join can read your whole character sheet, and keeps a copy on their device. The details are below, so you can decide what you're comfortable sharing and on which network.

1. What is stored on your device

DX Master stores the following in the app's private storage on your device (or, on Windows, in a .dxmaster folder in your user profile):

What Examples
Characters Name, ruleset, ability scores and every other field on the sheet, and - for a character that has joined a campaign - that campaign's name and session code, the DM's network address, the campaign's session key, and a second key shared only with that GM. All of it is removed when the character leaves the campaign or the GM ends it
Campaigns and encounters you create as a GM Names, and each campaign's ruleset; which characters are in each encounter
Players' characters, if you are a GM For each player admitted to one of your campaigns: their character's name and ruleset, the whole sheet as it was when it last arrived from their device (every field on it, including any notes they wrote), and when that was. Kept so you can read it after they disconnect or you stop broadcasting; removed when you delete the campaign (see section 2)
Imported rulesets The ruleset files you add
Item sets The item sets you import or make: a name, the ruleset each is for, and every item's description, properties, modifiers and your private GM notes (kept on this device only; see section 3)
Bestiaries The bestiaries you import: each one's stat-block fields, and every creature's name, description, values, traits and actions, and your private GM notes (kept on this device only; see section 3)
App preferences Player/GM role, theme, spacing, glass effect level, house-rule overrides, which item set is active, and how you've arranged your sheet's cards
App logs A record of what the app did, for troubleshooting: when it started, broadcasts and discovery results, join attempts, campaign polls, whether a character's sheet was sent to a GM, errors, and crash reports. It holds technical details (network addresses, session codes, error messages) and no character contents. Daily logs are deleted after 7 days; the poll log is size-capped; only the 20 newest crash reports are kept

This data is never uploaded by the app. You control it: delete a character in the app, or uninstall the app, to remove it (on Windows, delete the .dxmaster folder in your user profile).

2. Playing with others: what a DM and players can see

DX Master works directly between devices on the same local network. A GM's device runs a small server while broadcasting a campaign, and players' devices connect to it. The developer is not part of this connection and cannot see it.

Finding a campaign

While a GM is broadcasting, their device announces itself on the local network (mDNS / Bonjour, under the service type _dxmaster._tcp) so players' devices can find it automatically. Players can also type the GM's address by hand. The announcement is named after the campaign's session code and includes the port number. Any device on the same network can see it.

What is and isn't protected

Information Who can see it Encrypted in transit?
The campaign listing: session code, campaign name, ruleset, number of players connected, and the GM's temporary public key Any device on the same network that can reach the GM's device while it is broadcasting No
A join request: the character's ID and name, its ruleset, and a temporary public key created for that join The GM's device, and anyone able to observe traffic on the local network No
Delivery of the campaign key and of your own player key to a player the GM has admitted Only that player Yes - sealed to that player's temporary key
Campaign updates: the campaign's name, the current and completed chapter names, house rules, a number that tells your device the GM has pressed Sync all, and whether the GM has ended the campaign The GM and admitted players only Yes - AES-256-GCM with a key generated fresh each time the GM starts broadcasting
Your character sheet, sent by a player's device to the GM's: the whole character - every field on it, including any free-text notes - when you join, whenever it changes, every 15 seconds while the app is open, and when the GM presses Sync all. It leaves out the campaign key, your player key, and the GM's address The GM's device only Yes - AES-256-GCM with a key only that player and the GM hold. Other admitted players cannot read it

Things worth knowing:

  • What the GM learns about a player: before being admitted, only what's in the join request - the character's ID, name, and ruleset. Once admitted, the whole character sheet, including free-text notes, and every change to it while your app is open. Joining is what shares it: the join screen lists what will be sent before you join, and the Campaign tab says so for as long as it is being sent. Nothing is sent for a character that is not in a campaign.
  • What the GM's device keeps: the latest copy of each player's character, and when it arrived, in the app's private storage. It stays after the player disconnects or the GM stops broadcasting - so the GM can read it between sessions - and is removed when the GM deletes the campaign. It is never sent anywhere else. It is held by the GM, not the developer: ask them to delete it if you want it gone, and note that leaving a campaign or deleting your character does not reach into their device.
  • Leaving and ending. A player can leave a campaign from the Campaign tab, and a GM can end one while broadcasting; either sends the character back to not being in a campaign, and your device stops sending its sheet. Ending is announced through the campaign updates above, so only players connected at the time are told - one whose app is closed or away has to leave themselves. Neither removes anything from the GM's device: the copies of players' characters stay until the GM deletes the campaign.
  • What players learn about each other: nothing about each other's characters in this version - the party list players see is empty. If a later version shows party members' status to each other, this policy will be updated first.
  • Admitting players: the GM chooses either to approve each player individually ("Ask each time") or to admit anyone who requests to join ("Anyone with the code"). Because the session code is visible to any device on the network (see the first row of the table), "Anyone with the code" effectively means anyone on the same network. Use "Ask each time" on networks you don't trust.
  • The campaign key and your player key are temporary. New ones are generated every time a GM starts broadcasting and are discarded when they stop. A player's device keeps its copies, along with the GM's address, with the character so the Campaign tab can keep updating and the sheet can keep being sent - but they stop working once the GM ends that session. Deleting the character removes them.
  • No identity checks. The encryption protects the campaign updates from people who are not in the campaign; it does not prove who a GM or a player really is. A device on the same network that intercepts the very first exchange could impersonate a GM, and so receive what players send. Only play on networks you trust, and don't put information in a campaign that you couldn't tolerate the network's other users seeing.

3. Files you import, and the files you can send

Importing a ruleset. Settings > Ruleset manager opens your device's own file picker, and the app reads only the one file you choose. Before anything is installed the app checks the file, and one that fails the checks is discarded. An installed ruleset is stored in the app's private storage; it is not uploaded anywhere. DX Master does not send files between a GM and players.

Exporting a ruleset. Each installed ruleset can be exported from the same screen. The app writes a .dexxiruleset file and opens your device's own share sheet (on Windows, a save dialog) so you choose where it goes; DX Master uploads nothing itself. The file holds the ruleset's own definition (its sheet layout, formulas, options and settings) and never your characters, campaigns, or app settings. A copy stays in the app's temporary storage until your device clears it.

Item sets. Settings > Item Manager and Editors > Item work the same way. Importing opens your device's own file picker and reads only the one file you choose, checking it before anything is installed. Exporting writes a .dexxitem file and opens your device's own share sheet (on Windows, a save dialog) so you choose where it goes; DX Master uploads nothing itself. An item set holds item names, descriptions, properties and modifiers. The private GM notes you write on an item are never included in an export: they stay on your device, and an item set you export never carries them. A copy of the exported file stays in the app's temporary storage until your device clears it.

Network details report. Settings > Network has a "Send all network details" button. When you tap it, the app writes a plain-text file describing your connection and opens your device's own share sheet (on Windows, a save dialog) so you choose where it goes - a message to whoever is helping you, for example. The app itself uploads nothing. The file contains: the app version, your device model and OS version, whether you're on Wi-Fi and its band, channel, signal strength and speed, your device's local network addresses (IP address, subnet, router, DNS servers, IPv6), whether a VPN is active, the result of your last connection test, and - if you're a GM broadcasting - your session code and address. It does not contain character, campaign, or ruleset data. Android also hides the Wi-Fi network's name from apps without location access, which DX Master does not request, so the name is not included. A copy of the file stays in the app's temporary storage until your device clears it. Anyone you send it to will see those addresses, so treat it like any other network information you share.

Bestiaries. Settings > Bestiary Manager works the same way. Importing opens your device's own file picker and reads only the one file you choose, checking it before anything is installed. Exporting writes a .dexxbty file and opens your device's own share sheet (on Windows, a save dialog) so you choose where it goes; DX Master uploads nothing itself. A bestiary holds its own stat-block fields and its creatures' names, descriptions, values, traits and actions. The private GM notes you write on a creature are never included in an export: they stay on your device. A copy of the exported file stays in the app's temporary storage until your device clears it.

Feedback report. Settings > Feedback & Logs zips what the app has recorded so you can send it to the developer. The screen lists exactly what is inside, with sizes, before anything is made: the app log (last 7 days), the campaign poll log, crash reports, a device and network snapshot (the same details as the network report above), a snapshot of your ruleset and settings choices (which rulesets are installed and which house-rule overrides you've set, not the rulesets' content), and whatever you type in the "what is wrong" box and the optional reply address. Character sheets are left out unless you switch "Character sheet data" on. The app then opens your device's share sheet (on Windows, a save dialog) with the zip attached and, where the platform allows it, the developer's address (dexxfm@outlook.com) filled in. You choose whether and how to send it; DX Master uploads nothing itself. If you send it by email, your mail provider and the recipient's handle it under their own policies, and the developer will use it only to look into the problem you describe.

If a future version lets you export or share other content (campaign bundles), or lets a GM send an item set or an award to players, it would likewise go only where you send it using your device's own sharing tools (or, for play, only between the devices at your table, as described in section 2), and this policy will be updated first.

4. Permissions the app asks for

Platform Permission Why
Android Network access To connect to a GM's device (and, as GM, to accept connections) on your network
Android Change Wi-Fi multicast state To find nearby GMs automatically (mDNS). Without it you can still type an address
Android View network state, view Wi-Fi state To show your device's address, router, and Wi-Fi band and signal in Settings > Network. Neither shows a prompt, and neither gives the app your location
Android 17 and newer Nearby devices (local network access) Android 17 blocks every connection to other devices on your local network until you allow this. It is needed both to join a GM's campaign and to host one, and the app asks with an explanation the first time it is needed
iOS / iPadOS Local Network To find and connect to a GM's device on your Wi-Fi, and to host as a GM. Also declares the _dxmaster._tcp Bonjour service
Windows Firewall prompt Windows may ask whether to allow incoming connections when you host as a GM

DX Master does not request your location, contacts, camera, microphone, photos, or files. (Android withholds a Wi-Fi network's name from apps that don't have location access, so DX Master shows the Wi-Fi band and signal but not the name.)

5. Backups made by your device

Your device's own backup may include DX Master's data - for example Android Auto Backup to your Google account, or an iCloud or computer backup on iOS. Those backups are controlled by your device settings and governed by Google's or Apple's terms, not by DX Master. They would include your character files, including the stored keys if a character is in a campaign, and - on a GM's device - the copies of players' characters described in section 1.

6. Third parties

DX Master contains no third-party analytics, advertising, or tracking code, and its own network connections go only to the GM or player devices you choose to play with - with one exception that only happens when you ask for it. Settings > Network has a "Run connection test" button, which sends a single ping (a small echo request that carries no information about you or your data) to your own device, to your router, and to 1.1.1.1, a public address run by Cloudflare, to check whether the internet is reachable. Like any internet address you contact, 1.1.1.1 can see the public IP address your network uses; DX Master sends nothing else and does not do this unless you tap the button. If you install it through an app store or a testing service (Google Play, the Apple App Store, TestFlight) or download it from GitHub, that service collects its own information under its own privacy policy, and may provide the developer with aggregate statistics or - if you choose to send it - crash reports or feedback.

7. Children

DX Master is a general-audience game companion. It does not knowingly collect personal information from anyone, including children under 13, because it does not collect personal information at all.

8. Your rights

Because the developer does not hold any of your data, there is nothing for the developer to access, correct, export, or delete on your behalf - all of it is on your devices and under your control (see section 1). We do not sell or share personal information.

9. Changes to this policy

If the app's data practices change - for example, if it adds file sharing, an account, or any online service - this policy will be updated first, and the "Last updated" date above will change.

10. Contact

Questions about this policy: dexxfm@outlook.com