Skip to content
Amethyst-szs edited this page Nov 26, 2023 · 8 revisions

Godot SaveData DX Plugin

A plugin for Godot adding a simple, convenient, and secure save data system

This plugin was created to avoid the issues with the usual JSON or Resource saving methods used by Godot developers. Working with JSON can prove clunky and waste a lot of development time on bugs and annoying copy-paste work, and using Resources has a major security vulnerability allowing arbitrary code execution.

Core Concepts and FAQ

What is a "Save Slot"

A slot is a specific instance of someone's save game. This typically includes info like health, room, coordinates, and other info you want to store about someone's play-through.

What is "Common"

Common is info shared between all save files. This often includes stuff like config, accessibility, and other settings you want to store separate from each slot.

How are my save files stored?

All data on your end is written as a GDScript file. This allows you to include variables, constants, functions, and more when building out your saves. When being written to disk, this data is converted into a JSON file and encrypted. This way there is no avenue for malicious code to be included in your save file, unlike the commonly used "Resource" method of saving. When a save file is loaded, this encrypted JSON is read and converted back into the original format so you can easily read from it like any other variable.

So, what about performance?

This is not as performant as manually writing out JSON saves or writing an entire resource to disk, but it is still very fast! The small reduction in performance is well worth it, considering you get smaller files, improved security, and a lot of convenience on your end as the developer.

Table of Contents

To learn more about the tool, hop on down into these other pages!

Clone this wiki locally