> For the complete documentation index, see [llms.txt](https://arawn-software-publishing.gitbook.io/arawn/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://arawn-software-publishing.gitbook.io/arawn/modules/adventure-creator.md).

# Adventure Creator

## 1. Overview

Crystal Save ships a dedicated `CrystalSavesList` element that works alongside Adventure Creator’s built‑in save list while remaining compatible with AC menus, translations, and ActionLists, giving you full Crystal Save slot management inside Adventure Creator projects.

<figure><img src="/files/9Q8614yXZJA0ITuJ0zAR" alt=""><figcaption></figcaption></figure>

## 2. Requirements

1. Install Adventure Creator and Crystal Save
   * The menu element performs its own runtime initialization
2. Now install this Adventure Creator Save Module

## 3. Enhanced Crystal Save AC Game Editor

Adventure Creator’s built‑in Menu Manager drop-down is hard coded, so Crystal Save provides an alternate editor window that mirrors the full AC menu workflow while adding the Crystal Save element type to the element list.

<figure><img src="/files/UouZQAdISWEpWoQJPtZ5" alt=""><figcaption></figcaption></figure>

Open it via **Tools → Crystal Save → Adventure Creator → Menu Editor**, then use the standard menu/elements panes, including the new “CrystalSavesList” choice in the “Add new element” drop-down-button—to create or edit menus without touching Adventure Creator’s core files.\
A handy toolbar button opens AC’s original Game Editor if you ever need to jump back for other manager tabs.

## 4. Building Menus with CrystalSavesList

Make sure to set the Menu Save or Load Properties to

* **Source: Unity Ui Prefab**

  * Check if the references in **Linked Canvas prefab** and **RectTransform boundary** exist, if not reference for Load the **LoadUI** and for Save the **SaveUI** prefab

  <figure><img src="/files/FBk5TZB91CFhO5X7QoSd" alt=""><figcaption></figcaption></figure>

  <figure><img src="/files/LhoerSv6wBwrm9M8q8Y3" alt=""><figcaption></figcaption></figure>

When you add the element, configure it just like AC’s native save list: choose Save or Load mode, limit slot counts, allow empty slots, expose “new save” entries, and hook ActionLists for post-save/load logic. **Don't forget to reference the Load/Save buttons under Linked button objects (if not already referenced by default) - Open the SaveUI / Load UI prefab to reference its button child objects**

<figure><img src="/files/hrX52WSNCRNc15h9guxi" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/20IrVchqF0jp5sqsV2OV" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/ZdAjVUw7e1FZJzFMiqQS" alt=""><figcaption></figcaption></figure>

Slot labels can be formatted with placeholders such as `{scene}` or `{datetime}`, and you can disable custom naming to fall back to Crystal Save defaults. *Keep in mind the Preview box does not show previews for Custom Metadata.*\
At runtime the element resolves save data through the Crystal Save `SaveManager`, translating between AC slot indices and Crystal Save’s 1-based numbering, and it refuses to run until a manager is available to avoid corrupt operations.

## 5. Persisting Adventure Creator data with Remember Component

<figure><img src="/files/I0PZkHCe7KHVFbFwKAzO" alt=""><figcaption></figcaption></figure>

Create a dedicated GameObject, add the `Remember Component` component, and use its “Add Remember Component…” button to stack the Crystal Save remember helpers you need while keeping stable component IDs across play mode reloads.

### Saving Global Variables

Attach `RememberACGlobalVariables` through the composite to snapshot Adventure Creator’s global variables; you can optionally enable **Skip Saving When Unchanged** to avoid redundant writes, and the component safely reads/writes through `KickStarter.runtimeVariables` with typed serialization.<br>

Place this GameObject in any scene that should persist data (e.g., your bootstrap scene) or mark it `DontDestroyOnLoad` if you need the remember components available across the entire project.

### Saving Local Variables

For scene-specific `LocalVariables`, add `RememberACLocalVariables`, which requires the AC `LocalVariables` component and applies the same delta-saving optimizations. Reference the GameEngine GameObject in its Local Variables field. (see screenshot above)

### Saving Inventory

Same procedure as Saving Global Variables (see screenshot above)

### Saving a conversation

<figure><img src="/files/P74Udg060VWNU2YikAlN" alt=""><figcaption></figcaption></figure>

Add the Remember AC Conversation component to the Conversation GameObject. See the demo for reference.

* The Conversation To Save field can be left empty if the Conversation component is on the same GameObject as the Remember AC Conversation component.

<figure><img src="/files/T13Vz0U3IpO68UJGO6TK" alt=""><figcaption></figcaption></figure>

## 6. Crystal Save action library for Adventure Creator

After registering the Crystal Save actions in Adventure Creator’s Action Manager, they appear in the **Third Party** category thanks to their `ActionCategory.ThirdParty` designation.

<figure><img src="/files/MUR2iZgrUgM0FlflTpIO" alt=""><figcaption></figcaption></figure>

Available commands include:

* **Crystal Save** – Save, load, delete, or test for existing slots with optional parameters (including bool outputs for existence checks).
* **Destroy with snapshot** – Capture a snapshot and destroy/deactivate a target so it can be restored later.
* **Restore destroyed GameObject / prefab** – Recreate objects by Crystal Save Unique ID or Prefab Asset ID, with optional frame delays for safe instantiation.
* **Instantiate saveable prefab** – Spawn Saveable Prefabs through the factory with pooling overrides and parameter outputs.
* **Restore single GameObject by ID** – Pull a specific object state from a chosen save slot.
* **Load scene after snapshot** – Take an in-memory snapshot, populate pending prefabs, then change scenes asynchronously or additively without touching disk saves.

<figure><img src="/files/n4OiaqRkhaMJc5qJxOq2" alt=""><figcaption></figcaption></figure>

Follow Adventure Creator’s documentation to add these actions to the Action Manager before using them in ActionLists.

## 7. Typical workflow

1. Use the enhanced editor to add a menu containing `CrystalSavesList`, configure it for saving and loading, and ensure a `SaveManager` is active so the element can populate slot labels and trigger operations.

Place a persistent Remember Component GameObject in your bootstrap scene, adding `RememberACGlobalVariables` (and `RememberACLocalVariables` where needed) so AC variables are serialized alongside the rest of your Crystal Save data.

In ActionLists, call the Crystal Save actions (e.g., trigger `ActionCrystalSave` to save before transitioning scenes, or restore prefabs as part of a resume flow).

## 8. Troubleshooting & tips

* Check the included Demo Scene (Assets/Plugins/CrystalSave/Modules/AdventureCreator/Demo) to learn how to persist various AC types via Crystal Save.
  * **Requires the AC's original 3D Demo Scene**

* If the menu shows “No SaveManager,” verify that the Crystal Save manager is present and initialized, and that your scripting defines are configured correctly.

* Compilation or scripting define issues can hide the enhanced editor menu item; recheck the defines and Unity console if it fails to appear.

* When save/load operations misbehave, inspect the Unity Console for Crystal Save logs and confirm your slot configuration matches the `SaveManager` setup.

  * Make sure you have set the correct List type in the Properties

  <figure><img src="/files/3bE9eXuo7yKkzRvnsCF7" alt=""><figcaption></figcaption></figure>

* Ensure that all button references are set

<figure><img src="/files/7fjN6As9PpftzpdOQuzw" alt=""><figcaption></figcaption></figure>


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://arawn-software-publishing.gitbook.io/arawn/modules/adventure-creator.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
