This page covers:

  • Where save data is located
  • Different kinds of save data used by Keysight

Note

A personal note first: save data in Keysight was built very early on in development, without much idea of how to actually build a good system. It then got retrofitted three times over several years, but still remains an absolute mess and I strongly advise against messing with any save files using a file browser!

Sava data location

On Windows:

  • C:\Users\you\AppData\Local\Keysight\Saved\

On MacOS:

  • Library/Application Support/Epic/Keysight/Saved/

Making backups

Keysight does not have an autosave or backup function. Full backups can be created manually by simply copying the entire \Saved\ folder to somewhere else, and restoring it when desired. Alternatively, making backups of specific Presets is best done by simply exporting the preset to a .kspreset file using this icon:

Save location

Getting to the save data

On Windows, the AppData folder is hidden by default. It can be navigated to either by typing %appdata% into the Windows search bar, or by clicking this small "open files" icon in the top left of Keysight and going back one level:

Save location

Saving

Everything can be saved at once via:

  • Ctrl + S
  • Bottom left "Save all" button
  • Choosing "Save and quit" when closing Keysight via the menu

Types of save data

Presets

... \Saved\Presets\individual .JSON file per preset

A Preset in Keysight is a giant collection of settings that govern how everything looks. Preset save data is unique in that there is a single readable .JSON file per Preset (rather than an unreadable .sav file). However, directly editing a Preset is strongly advised against, as there are minimal protections in Keysight against out-of-bounds data as loaded from Preset .JSONs.

Certain visual aspects of Keysight may be governed by factors outside of just the Preset data (such as anti-aliasing(*) or layout) and these global settings are always stored on the System settings file.

Saving

Individual Presets can be saved via the icon on their Preset slot. This will only save the currently selected preset to a corresponding .JSON file:

Save single preset

Every Preset can be saved at once using this icon:

Save all presets

When saving a Preset: if the corresponding Preset .JSON file already exists under \Saved\Presets\ the existing, old file is first moved to \Saved\Presets (backup)\ (overwriting the file there if it exists). The new version is then saved to \Saved\Presets\ granting one level of automatic backup.

Note

I really wouldn't rely on this, I don't really know why I implemented a wonky one-level autosave system that nobody knows about if I'm honest!

System settings

... \Saved\SaveGames\SystemStruct.sav

System settings is a catch-all location for anything that needs to be saved that isn't likely to be shared by users. It includes:

  • Everything under System > Interface
  • Everything under System > Object memory pooling
  • Everything under System > Websockets pooling
  • Everything under MIDI
  • Everything under Graphics
  • Semi-transparency object visibility toggles (Advanced Scene > Semi-transparency)
  • Which Preset index is currently selected
  • Global layout settings for Core > Visual layout
  • Misc. UI states (like last confirmed username in exports, particle editor mode, etc)

Saving

System settings can be saved without saving other save-able data using the bottom-left button:

Save system

Randomizer

... \Saved\SaveGames\RandomizerStruct.sav

Contains only the settings used by the Randomizer in Use full randomizer mode.

Saving

The Randomizer can be saved without saving other save-able data using the bottom-left button:

Save randomizer

Or via this icon in the bottom left of the Randomizer menu:

Save randomizer

Automation

... \Saved\SaveGames\HotkeysStruct.sav

Contains all settings found under the Automation tab (plus looping Randomizer(*) settings).

Saving

Automation settings can be saved without saving other save-able data using the bottom-left button:

Save automation

... \Saved\SaveGames\MenuStyleStruct.sav

Contains all settings found under System > Advanced menu style. It is worth noting that clicking the menu style preset buttons of Dark, Light and Keysight simply overwrites all Advanced menu style settings and is not any sort of baked-in menu style.

Saving

Menu style settings can be saved without saving other save-able data using the bottom-left button:

Save menu

Statistics

... \Saved\SaveGames\Stats.sav

Statistics are unique in that they auto-save. Any time a note-on(*) from the bound MIDI device occurs, Keysight will then save the updated statistics to the file once notes-per-second(*) reaches zero (to avoid excessive file access/hitching).

Defaults

... \Saved\SaveGames\Defaults.sav

Contains the default preset used by the Randomizer and when adding a new Preset, as well as the Custom angle for the Layout.

Defaults are saved when saving System settings.

Textures

Textures are not generated and saved by Keysight; they are copied from their source location when clicking a + button in a menu (most likely the Material menu) into their relevant \Saved\ location.

There are two texture locations:

... \Saved\Textures\

... \Saved\Textures (randomizer enabled)\

When using any + icons to add textures from inside Keysight, textures will be copied into a subfolder in \Saved\Textures\ based on their type. These textures will not be picked by the Randomizer.

Moving any textures from \Saved\Textures\ to \Saved\Textures (randomizer enabled\ will allow these textures to be picked as part of Randomization.

Info

This must be performed in a file browser, and is a very niche function of Keysight used by one (1) known person in its entire history.

Resetting save data

Presets

An individual Preset can be reset to the data saved on the file found under \Saved\Presets\ using the following icon on the active Preset tab:

Reset single

And all Presets can be reset to their corresponding save data using this icon in the top left:

Reset all

Default presets

All of Keysight's default Presets have backup .kspreset files included with the Keysight installation. If changes have been made to a default Preset and then saved, it is possible to fully reset that specific Preset by simply re-importing the corresponding .kspreset file. Preset backups are found under:

Keysight install path\Keysight\Extra resources\Presets\Stock preset backup\

The easiest way to get to the Keysight install location is to right click on Keysight in your Steam library, and then "Manage > Browse local files".

Browse local files

Alternatively, every default preset can be re-imported at once via the System menu. This will immediately overwrite any Presets with names identical to the default Presets! (Quicksilver / Vintage / Electric / Night / Fire / Spectrum / Gemstone / Keysight / Plain (default)) Reimport all

Other data

  • System settings: incapable of being reset outside of a hard reset, as Keysight uses this file to determine if save data is preset (don't ask).
  • Randomizer: the trash can icon in the bottom left of the Randomizer menu.
  • Automation: no in-Keysight method, but HotkeysStruct.sav can be deleted and Keysight relaunched to regenerate this file.
  • Menu style: System > Interface preset buttons will fully reset all menu styling.
  • Statistics: no in-Keysight method, but Stats.sav can be deleted and Keysight relaunched to regenerate this file.
  • Defaults: no in-Keysight method, but the default preset can be re-imported and selected, and then System > Defaults > "set current preset as default".

Hard reset (factory restore)

Deleting all \Saved\ data will fully reset Keysight back to its stock configuration on next launch.

This can also be triggered inside Keysight by typing reset into System > Enter console command and hitting enter.

Warning

There is no confirmation for this action, your data will be immediately deleted!

Factory reset