Crystal Save Integration
Crystal Save Integration: RememberCharacterPreset
RememberCharacterPreset is the Character Creator bridge to Crystal Save. It keeps the same model-agnostic philosophy: appearance data is captured from Character Creator state, not tied to one hardcoded character file.

Why It Exists
Without this bridge, save/load often needs many per-mesh/material remember components. With this bridge, one component captures and restores the full appearance snapshot through CharacterPresetManager.
What It Saves
The snapshot is a CharacterPreset, including:
equipped item IDs
blendshape values
body part scale multipliers
uniform scale
tracked material floats/colors/textures
Source:
Assets/Arawn/CharacterCreator/CrystalSaveBridge/RememberCharacterPreset.csAssets/Arawn/CharacterCreator/Runtime/CharacterPreset.cs
Requirements
Crystal Save installed with remember system available
compile symbols that enable this bridge:
MEMORYPACKandARAWN_REMEMBERMECharacterPresetManageron the same GameObject (RequireComponent)
If the symbols are missing, RememberCharacterPreset is not compiled.
Setup (Recommended)
Use the setup wizard:
Open
Tools/Character Creator/Character Creator Setup WizardEnable
Add RememberCharacterPresetComplete
Apply Setup
The wizard will:
ensure
RememberCompositeexists on the character rootregister
RememberCharacterPresetinRememberComposite._rememberTypescall
RememberComposite.RefreshComponents()set a default
savedPresetNameif empty
Manual Setup
Add
CharacterPresetManagerto the character root.Add
RememberCompositeto the same root.Add
RememberCharacterPresetviaRememberCompositeremember type list (or Add Component menu path:Crystal Save/Remember Components/Remember Character Preset).Verify the remember component exists on the same object as
CharacterPresetManager.
Inspector Fields
savedPresetName: name written into the captured preset (default:"CrystalSave Preset").autoRefreshTrackingBeforeCapture: when enabled, runsAutoConfigureExplicitColorSlots(resetExisting: false)andAutoConfigureMaterialTracking(resetExisting: false)before capture to reduce manual tracking setup.
Save/Load Lifecycle
On save:
Crystal Save calls
SerializeComponentData()RememberCharacterPresetcaptures current look usingCapturePreset(...)Preset is serialized to UTF-8 JSON bytes and stored in save data
On load:
Crystal Save restores the object and component data
RememberCharacterPreset.DeserializeComponentData(...)parses saved JSONCharacterPresetManager.ApplyPreset(...)restores the look
Named Presets vs Crystal Save Snapshot
Named presets (
SavePreset, keys, gallery UI) are user-facing content.RememberCharacterPresetsnapshot is save-game component state.You can use both at the same time.
Troubleshooting
RememberCharacterPreset not visible in Add Component
compile symbols not present
Ensure Crystal Save + required symbols (MEMORYPACK, ARAWN_REMEMBERME) are active
Appearance does not restore after load
missing or misconfigured CharacterPresetManager reference flow
Keep RememberCharacterPreset and CharacterPresetManager on same GameObject
Material colors not restored as expected
tracking data was incomplete at save time
Keep autoRefreshTrackingBeforeCapture enabled or configure tracking manually
Duplicate player character after load
Crystal Save restored instance plus custom spawn logic also ran
Avoid double-spawn flow; bind UI to restored runtime instance
Last updated