A polished Unity save/load framework with slot-based persistence, JSON serialization, optional AES encryption, auto-save support, and extensible handler architecture for secure game data management.📖 Documentation | 🛠️Support⚠️ DependenciesOdin InspectorModularLabs-Data AssetModularLabs-Event SystemModular Labs Save Load is a complete save system designed to simplify game persistence while giving you full control over file storage, data processing, and slot management.Built for developers who need reliable runtime saving, robust loading, and easy extensibility, this package turns complex save logic into a clean, reusable workflow.Why It’s Ideal for Your Game ✨•💾 Reliable File-Based Persistence: Save game data to disk using a configurable directory, prefix/suffix, and file extension.•🧾 Modern JSON Serialization: Uses Newtonsoft.Json with type-handling, missing-member resilience, and serialization error handling.• 🔐 Optional AES Encryption: Protect your save files with password-based encryption for secure player data.• 🎛️ Slot Management: Pre-configure multiple save slots and manage saves/loads per slot effortlessly.• ⏱️ Auto-Save Support: Built-in auto-save support through slot marking keeps gameplay progress safe.• 🧩 Extensible Handler System: Add custom save/load handlers for any data type or system.• 🛠️ Inspector-Driven Workflow: Includes editor-friendly assets and validation to accelerate setup.What You Get 🎁•✅ A package-ready save/load architecture for Unity•🗂️ Save file handlers with directory and filename controls•🧾 JSON serialization for type-safe data persistence•🔐 Encrypted or plain content processing options•🎛️ Multi-slot save file management and current-slot selection•⏳ Auto-save trigger system for safe game state persistence•🔎 Debug-friendly file browsing and state inspection•🧭 Sample project for fast onboardingCore features ✅• File-based persistence: save and load game data to disk using a configurable folder.• Flexible file naming: choose a `prefix`, `suffix`, and file `extension` per handler so files are easy to identify.• JSON serialization: the package uses `JsonProcessor` (Newtonsoft) so complex data structures are stored and restored safely.• Robust reading: the JSON processor ignores missing fields and reports serialization issues without crashing your game.• Content pipeline: files can be stored as plain text or passed through processors (e.g., encryption) before writing.• Built-in file info: every saved file includes metadata (path, size, last modified, and whether it’s the active state).Encryption & safety 🔐• Optional AES encryption: enable `ContentAESEncryption` to encrypt saved bytes so players’ data stays private.• Password-based key derivation: the system derives an AES key from the password using PBKDF2 (`Rfc2898DeriveBytes`).• Toggle-able modes: choose encrypted or plain content per handler so you can protect only what matters.Save slots & convenience 🗂️• Multiple slots out of the box: `SaveLoadFileSlotFeature` creates a set of save slots (e.g., 5 slots) you can use immediately.• Each slot shows useful info: total file size, last modified time, and whether it contains any saved data.• Slot actions: call `Save()`, `Load()`, `Delete()` or `Use()` on a `SaveLoadFileSlot` to manage game progress.• Slot events: the package fires events on save/load/use so your UI or analytics can react automatically.Auto-save support ⏱️• Mark-and-save API: call `SaveLoadFileSlotAutoSave.MarkSave()` when you want the system to persist the current slot at the next opportunity.• Safe runtime loop: a lightweight singleton watches for marks and performs saves so you don’t need to manage timers yourself.Extending the system 🧩• Central registry: `SaveLoadDatabase` auto-registers and initializes all handlers for you at runtime.• Create custom handlers: inherit from `SaveLoadFileHandler` or `SaveLoadHandler` to add support for any data you need to persist.• Batch operations: use the global helpers `SaveAll()` and `LoadAll()` to persist or restore every registered handler in one call.• Editor validation: inspector messages help catch problems early (missing IDs, invalid extensions, missing passwords).Developer workflow & tools 🛠️• Config asset: use `SaveLoadConfigAsset` to list all handlers and configure slots from a single place.• Automatic init: the system initializes on scene load (`SaveLoadDatabase`) so handlers are ready when gameplay begins.• Debug helpers: runtime inspector buttons and file explorers let you peek at save files during development.




