Files & settings¶
Data on the PC¶
%AppData%\DroidDeck\ (Roaming) — your decks:
| File | Contents |
|---|---|
Profiles\<id>.json |
One file per profile: name and buttons. Custom icons are embedded as base64. |
layout.json |
Grid size reported by the phone (rows, columns). |
counters.json |
Values of the counter buttons, so they survive a restart. |
toggles.json |
Two-state buttons that are on. |
triggers.json |
Automations. |
%LocalAppData%\DroidDeck\ — keys and integrations:
| File | Contents |
|---|---|
apikey |
The pairing key. Delete it to revoke every paired phone. |
discord.json |
Discord Client ID, Client Secret and tokens. |
obs.json |
OBS host, port and password. Its presence turns on OBS auto-connect. |
soundboard.json |
Soundboard output devices and volume. |
SoundCache\*.mp3 |
Downloaded MyInstants sounds (up to 5 MB each). Capped at 200 MB: the least recently played are removed first. Safe to delete. |
tuya.json |
Tuya user code, session token and app registration (ClientId, Schema). |
homeassistant.json |
Home Assistant address and access token. |
spotify.json, twitch.json, youtube.json |
Client ID (and YouTube's Client Secret) plus the account's tokens. |
hue.json |
Hue Bridge IP and the user it gave DroidDeck when paired. |
mqtt.json |
MQTT broker address, username and password. |
streamerbot.json |
Streamer.bot WebSocket Server address and password. |
vtubestudio.json |
VTube Studio API address and the plugin token. |
usb.json |
Whether the USB connection is on (Enabled). Without the file, it's on only when an Android SDK adb is found. |
platform-tools\ |
Google's platform-tools (adb), when DroidDeck downloaded them for the USB connection. Safe to delete with DroidDeck closed; turning the USB connection on again downloads them. |
scripts\ |
Scripts written in a button, saved as files to run (one per content). Safe to delete; they are recreated. |
%LocalAppData%\DroidDeck.log — the log file.
%LocalAppData%\DroidDeckPC\ — the program itself, when installed with DroidDeck-Setup.exe.
Updates replace this folder; your data lives in the folders above and is kept.
Secrets are encrypted
apikey and the integration files (discord.json, obs.json, tuya.json, homeassistant.json,
spotify.json, twitch.json, youtube.json, hue.json, mqtt.json, streamerbot.json,
vtubestudio.json) are encrypted with Windows DPAPI and can only
be read by your Windows account on this PC. Files from older versions, saved in plain text, are
encrypted automatically the first time they are read. To edit one by hand (e.g. a Tuya ClientId),
save it as plain JSON; DroidDeck encrypts it again on the next start.
Backup and moving to another PC¶
Copy %AppData%\DroidDeck\Profiles\ to keep your decks. Secrets are tied to this PC and Windows
account, so on a new PC you set up the integrations again and pair the phones again.
Command-line options¶
| Option | Effect |
|---|---|
| (none) | Tray app + server. |
--headless / --no-tray |
Server only, no tray icon. Stop with Ctrl+C. |
--print-pairing |
Prints the pairing URI, saves the QR to %TEMP%\droiddeck-pair.png and exits. |
| Environment variable | Effect |
|---|---|
ASPNETCORE_URLS |
Overrides the address the server listens on (default http://0.0.0.0:4787). The QR code and the Discord redirect still use port 4787. |
ASPNETCORE_ENVIRONMENT=Development |
Enables Swagger at /swagger and detailed error pages. |
appsettings.json¶
Next to DroidDeck.exe:
| Key | Default | Meaning |
|---|---|---|
EnableDiscovery |
true |
Answers UDP discovery requests on port 7573. |
EnableSoftwareActivation |
false |
Enables the legacy /api/Software/activate endpoint. |
AllowedTargets |
(empty) | Comma-separated process names allowed by the legacy /api/Software mute endpoints. |