Crystal Save | State Machine 2 by Ninjutsu Save Module OFFICIAL SALE

⚙️🧩 Crystal Save | Game Creator 2 State Machine Save Module 🧩⚙️


Freeze-frame every branch, boolean and Vector3 in your GC2 graphs—then thaw them out exactly where you left off.



📖 Overview

Just two drop-in components let Crystal Save persist all variables inside any Game Creator 2 – State Machine: runner-local or asset-based.



🎮 Hit Save → Load and the machine restarts in the same state, same values—no coding, no inspector tweaks.



✅ Requirements

• Unity 6 LTS+


• Game Creator 2 Core + State Machine by NinjutsuGames


• Crystal Save (base) v 1.5+



🚀 Installation & Quick Start

  1. Import Crystal Save | State Machine.
  2. Open Game Creator → Install and install the demo.
  3. Add Remember GC2 State Machine Variables to a prefab that references a StateMachineAsset.Add Remember GC2 State Machine Runner Variables to any GameObject with StateMachineRunner.
    —or—
  4. Play → change GC2 vars → Save → Load. Everything resumes flawlessly.

Attach & forget—zero inspector sliders, no symbols.


🛠️ Components

Remember GC2 State Machine Runner Variables


Serialises the live Variables dictionary on a runner and restores it before the first Update tick.


Remember GC2 State Machine Variables


Targets standalone StateMachineAsset files; reflects into GC2’s runtime map to save & load every key/value—even custom types.


Both inherit SaveableComponent, auto-register with Crystal Save, and obey pooling / keep-across-scenes rules.


🎬 Demo Scene

Game Creator → Install → Crystal Save | State Machine


• Buttons change runner-level vars → reload shows them restored.


• Prefab instances share an asset; their variables save & reload independently.



🔄 How Saving & Loading Works

Save – SerializeComponentData() → MemoryPack binary blob.


Load – Blob fed back into runner or asset before gameplay resumes.


Version-safe – Variables stored by name; new or reordered vars don’t break old saves.



💡 Tips & Best Practices

• One Remember component per context: Runner Variables for NPC-specific brains, Asset Variables for shared graphs.


• Custom structs/classes? Register via GC2’s TypedObjectFactory so MemoryPack handles them automatically.


• Using object pools? SaveablePrefabPool resets GUIDs and re-registers components only when spawned—no ghost data.



🆘 Support

🐦 Discord: https://discord.gg/MPhMKtSMUZ



Happy state-saving—may your machines always pick up exactly where they left off!