Skip to content

Persistence

Overview

Figgy stores all changes made and saved through the Interface in a JSON file inside your project's Included Files. This keeps your configs bundled directly with the project, so they can be committed, versioned, and restored through your GitHub repository.

You can customize the output file's name and extension using the FIGGY_FILE_NAME and FIGGY_FILE_EXT config macros. By default, Figgy saves configs into a file named "config.figgy".

Deltas

By default, Figgy saves only the values you've changed through the Interface (AKA "deltas" or "diffs"), keeping the savefile small and making saving/loading faster. If you prefer to write out the entire config instead, you can disable this behavior by setting the FIGGY_FILE_DELTA config macro to false.

Prettification

By default, Figgy formats the output JSON for readability (AKA prettifies JSON). If you prefer compact JSON instead, you can disable this by setting the FIGGY_FILE_PRETTIFY macro to false.

Obfuscation

Figgy supports basic file obfuscation using base64_encode() and buffer_compress(), helping prevent players from casually viewing or editing your config file.

This behavior can be enabled by setting the FIGGY_FILE_OBFUSCATE config macro to true. If the current save file doesn't match the new obfuscation state (e.g. you turn obfuscation on or off), Figgy will still load it correctly and immediately re-save it using the updated setting.

SECURITY NOTE

Figgy's obfuscation is not intended to be a strong security measure. It's designed only to discourage casual inspection or modification of config files.

You should not store sensitive, critical, or security-related data in these files, as some particularly determined users could still decode the contents of the file.