A downloadable asset

Download NowName your own price

💾 Lix Save System v2.0.1 (Unity)

Link to Full Documentation: https://www.sillylix.com/Docs/SaveSystem/SaveSystem.html

Lix Save System v2.0.1 is a robust, modular, and easy-to-use save system for Unity, designed for both beginners and advanced developers. It provides a clean API for saving and loading game data while remaining highly customizable through dependency injection, encryption, and serialization interfaces.

Whether you just want to save a few values or build a fully custom persistence pipeline, this system scales with your project.

Features

  • Save & Load Supported Types:
    • All primitive types (int, float, bool, string, etc.)
    • Vector2, Vector3, Vector4
    • Quaternion
    • decimal
    • List<T> (where T is a supported type)
    • Dictionary<TKey, TValue> (where both TKey and TValue are supported types)
  • Strong Type Safety: Prevents loading data as the wrong type.
  • JSON-Based Serialization: Human-readable, optional pretty print.
  • Optional AES Encryption for secure data storage.
  • Fully Customizable: File name, save path, file extension.
  • Modular Architecture: Custom encryption, serialization, file storage (cloud, database, etc.).
  • Safe handling of unsupported or null values.
  • Compatible with Unity 6 (6000+).

🔧 Customization & Extensibility

Lix Save System is built with interfaces, allowing you to replace core functionality:

  • ISaveSystemEncryption – custom encryption logic
  • IGameSerializer – custom serialization (JSON, XML, Binary, etc.)
  • IFileIO – custom storage (cloud, PlayerPrefs, database, etc.)

Suitable for:

  • Small indie games
  • Large projects
  • Prototypes
  • Production releases

Requirements

  • Unity Engine 6 or newer (Tested on 6000.0.61f1+)
  • Basic understanding of C# and Unity scripting

Example Usage


using UnityEngine;
using SillyLixStudio.SaveSystem;
public class SaveSystemExample : MonoBehaviour
{
    private GameData mySaveData;
    private void Start()
    {
        mySaveData = new GameData();
        mySaveData.gameDataConf.SetFileName("PlayerSave1");
        mySaveData.gameDataConf.SetIsEncrypted(true);
        mySaveData.gameDataConf.SetEncryptionKey("unique-key-12345");
        mySaveData.gameDataConf.SetEncryptionIV("unique-iv-67890");
    }
    void SaveData()
    {
        SaveSystem.Set(mySaveData, "PlayerName", "Hero");
        SaveSystem.Set(mySaveData, "HighScore", 1500);
        SaveSystem.Set(mySaveData, "PlayerPosition", new Vector3(10f, 0f, 5f));
        SaveSystem.SaveToDisk(mySaveData);
    }
    void Load()
    {
        if (SaveSystem.SaveFileExists(mySaveData))
        {
            SaveSystem.LoadFromDisk(mySaveData);
            string playerName = SaveSystem.Get<string>(mySaveData, "PlayerName");
            int highScore = SaveSystem.Get<int>(mySaveData, "HighScore");
            Vector3 playerPosition = SaveSystem.Get<Vector3>(mySaveData, "PlayerPosition");
            Debug.Log($"Player Name: {playerName}, High Score: {highScore}, Position: {playerPosition}");
        }
        else
        {
            Debug.Log("No save file found.");
        }
    }
}

Example Scene

Includes a demo script and scene to test the system in-editor.

📚 Documentation

Contributor

Visual Designer: Zahra

📜 License

License details: https://www.sillylix.com/assetsInfo/SaveSystem.html#license

Attribution is not required, but greatly appreciated ❤️

Download

Download NowName your own price

Click download now to get access to the following files:

Lix Save System (With newtonsoft) v.2.0.1 1.5 MB
Lix Save System V.2.0.1 1.3 MB

Development log

Comments

Log in with itch.io to leave a comment.

If you want new type's added or some other features comment it here!

If you find bugs or you know a better way to do somethings please tell me about it!