Files and backups
MultiShock stores data per operating-system user, separately from the installed app. Installed and development builds launched by the same user share this data. Close MultiShock before copying, replacing, or editing these files.
Local data folder
On Windows, press Win+R, paste this path, and press Enter:
%LocalAppData%\PiShock\MultiShock\
This normally expands to C:\Users\<you>\AppData\Local\PiShock\MultiShock\.
Do not look in the installation directory for your saved flows or settings.
| Path inside the data folder | Contents |
|---|---|
app-config.json | Sign-in token, device and shocker limits, and app preferences |
flows/ | Flow definitions, with subfolders matching your flow folders |
flows/flow-state.json | IDs of flows marked to run again at startup |
flow-templates/ | Saved node templates |
Plugins/ | Installed plugin DLLs, manifest directories, and packages |
PluginData/<plugin-id>/ | Plugin-owned settings, downloads, and other data created through the SDK |
plugin-configs/<plugin-id>.json | Host-managed plugin enablement, sidebar visibility, development mode, and default settings |
plugin-configs/_system.json | Plugin-system preferences |
themes/ | Custom theme JSON files |
logs/ | Main and plugin logs, when file logging is enabled |
app-config.json.reset-backup | The previous configuration saved by the most recent reset |
Folders may appear only after the relevant feature has been used. Plugin data
layout varies by author; do not assume all plugin settings live in app-config.json.
For other desktop targets, the base path is
Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData) plus
PiShock/MultiShock. The SDK exposes the resolved path as IPluginHost.AppDataPath.
Windows environment-variable paths in these guides do not apply verbatim there.
Open folders from the app
- Manage plugins → Plugin folder opens
Plugins/. - Settings → Logging → Open folder opens
logs/when logging is enabled. - Settings → Appearance → Export current reports the exported theme's path.
Back up and restore
Configuration export
- Save device changes and open flows.
- Open Settings → Advanced → Export configuration → Export.
- Choose a private location for the JSON file.
The export contains the main app configuration, including the PiShock sign-in token.
It does not include flows/, templates, plugin binaries, plugin-configs/,
PluginData/, custom themes, or other files written by plugins. An export alone
is not a complete backup.
To restore an export, use Settings → Advanced → Import configuration → Import, select the file, and confirm. Import replaces the current configuration; it does not merge settings. Export the current configuration first. Restart MultiShock afterwards, then check devices, limits, and enabled plugins before starting flows.
Complete local backup
- Save your work and stop automation. Stop everything clears queued commands and marks all flows stopped; plugins can still submit new commands until closed.
- Close MultiShock completely.
- Copy the entire
PiShock\MultiShockdata folder to a private backup location. - Record your app and plugin versions so you can restore compatible binaries.
To move to another computer, install MultiShock there, close it, and copy the backup into that user's data folder. Back up any existing destination data first. For a full replacement, move the old folder aside before restoring so unrelated old flows or plugin copies are not left behind.
Restored running-state files can restart automation. A backup taken after Stop everything avoids restoring flows marked running. Before testing on the new computer, review devices, shared permissions, plugin settings, and global keybinds. Native plugin dependencies may differ by operating system and architecture, and a copied sign-in session may still require signing in again.
Restore only flows
Copy the required flow JSON files and folder structure from flows/ while the
app is closed. Leave flow-state.json out if you are restoring definitions only.
Keep existing flow IDs unique; renaming a file does not change the ID inside it.
Install any required plugins before running a restored flow.
Use the community sharing tools to share a flow deliberately instead of sending your entire app data folder. Review node settings for private values before sharing even a single flow.
Reset or recover configuration
Settings → Advanced → Reset to defaults clears host settings and the
device list and signs you out. It leaves flow files, installed plugin files,
plugin-configs/, and plugin-owned data in place. Restart afterwards. Resetting does not make an existing
collection of plugins or flow files a fresh installation.
The app attempts to copy the previous configuration to
app-config.json.reset-backup. A later reset overwrites that backup, so copy it
elsewhere before resetting again. To recover it, close the app, preserve the
current configuration, and copy the backup to app-config.json.
If a broken configuration prevents startup, close the app and move
app-config.json to a private backup location, then launch again to create defaults.
Keep the original file for recovery. If a plugin is responsible, move that plugin
out of Plugins/ instead; see plugin troubleshooting.
What to keep private
Configuration exports, configuration backups, and plugin data may contain tokens, account credentials, or integration secrets. Do not attach them to public bug reports. Logs and flow files can also contain private values: inspect and redact them before sharing. See getting help for what to include in a report.