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 folderContents
app-config.jsonSign-in token, device and shocker limits, and app preferences
flows/Flow definitions, with subfolders matching your flow folders
flows/flow-state.jsonIDs 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>.jsonHost-managed plugin enablement, sidebar visibility, development mode, and default settings
plugin-configs/_system.jsonPlugin-system preferences
themes/Custom theme JSON files
logs/Main and plugin logs, when file logging is enabled
app-config.json.reset-backupThe 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

  1. Save device changes and open flows.
  2. Open Settings → Advanced → Export configuration → Export.
  3. 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

  1. Save your work and stop automation. Stop everything clears queued commands and marks all flows stopped; plugins can still submit new commands until closed.
  2. Close MultiShock completely.
  3. Copy the entire PiShock\MultiShock data folder to a private backup location.
  4. 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.

Contributors

Thank you to everyone who has helped improve this documentation.