Game Creator 2 Integration
Game Creator 2 × Time Machine Integration
The Crystal Save Time Machine ships with a deep Game Creator 2 integration so you can orchestrate rewindable gameplay, cinematic replays, and ghost races without leaving visual scripting.
What You Get
Unified object instruction – drives recording, scrubbing, and branch management for any tracked GameObject.
Global Time Machine control instruction – synchronized recording, playback direction, branching, ghost mode, and more.
Properties – expose current branch name and snapshot counts directly in GC2 graphs.
Conditions – check recording, playback states, branch membership, and snapshot availability inline with the rest of your logic.
Ghost playback tooling – legacy frame-by-frame interpolation and GhostPlaybackComponent workflow, including NavMesh support.
Quick Start
Add TimeMachine Object instruction to a GC2 Action list, set the target to your player, and choose Record Snapshot.
Pair it with Replay To Snapshot or Rewind By Time to restore saved states when needed.
Add TimeMachine Condition to gate UI or input while recording or playing timelines.
Use Global Time Machine instruction to pause/resume all recorders or flip playback direction for dramatic rewinds.
Drop Start Ghost Playback to spawn a playback rig from a recorded branch with looping or NavMesh navigation.
Setup
Requirements
Game Creator 2 (Core)
Crystal Save (Core)
Time Crystal Module
Define symbols:
GAMECREATOR_CORE,MEMORYPACK,ARAWN_REMEMBERME,CRYSTALSAVE_TIMEMACHINE
Installation Checklist
Import Game Creator 2 core.
Install Crystal Save, enable Time Machine module
Attach the GameObjectTimeMachine to a Gameobject
Verify via Tools ▸ Crystal Save ▸ Time Crystal ▸ Open Time Machine Player.
GC2 integration auto-enables—no manual registration required.
UnitDriverNavmeshGhost

UnitDriverNavmeshGhost is the Time Machine’s dedicated Game Creator 2 NavMesh driver for ghost playback. It translates recorded waypoints into smooth NavMeshAgent motion, keeps collider and facing in sync, and can fall back to normal GC2 navigation when playback stops.
Why Use UnitDriverNavmeshGhost
UnitDriverNavmeshGhostThe UnitDriverNavmeshGhost isn’t just a replay tool — it’s a game mechanic enabler.
It gives you full runtime control over ghosts, letting you blend recording, playback, and direct player control in unique ways that go beyond cinematic replays.
What Makes It Different
1. Playable Ghosts, Not Just Replays
Unlike the standard GhostPlaybackComponent, this driver ties ghost motion to a NavMeshAgent, meaning it can accept player input or AI commands mid-replay.
That means you can:
Take over a ghost at any point and continue playing from its position.
Switch control between player and ghost for time-travel or clone mechanics.
Blend AI guidance and playback seamlessly (e.g., have the ghost “replay” past you but still react to world changes).
This bridges the line between recording playback and active gameplay entity.
2. NavMesh-Based Movement
The driver uses Unity’s NavMesh system instead of direct transform interpolation. This ensures:
Smooth, collision-aware motion.
Replays that respect level geometry even when the environment changes.
However, this design choice means:
Positions won’t match the original path exactly. The NavMeshAgent may slightly adjust the route or cut corners.
Animations are not replayed. The driver only replays position and rotation data; it doesn’t attempt to reconstruct the recorded animation states.
This makes the driver perfect for gameplay proxies, not cinematic recordings.
Use Cases & Game Design Examples
1. Time Trial Ghosts (Racing / Parkour)
Record the player’s best run and spawn a ghost with UnitDriverNavmeshGhost on replay.
The ghost will follow roughly the same route but remain physically interactive.
You can collide with it, push it, or even possess it mid-run to alter its fate.
Example: Trackmania-style ghost races where you can take over your past self mid-race.
2. Parallel Timeline Gameplay
Use the Time Machine to record multiple runs of the same puzzle. Then, spawn previous versions of the player that follow their old paths while you interact with them.
Example: Like “The Swapper” or “Chronotron,” where you cooperate with your past self.
Here, the driver’s ability to move through NavMesh means your ghost interacts properly with new geometry, avoiding replay desyncs when the scene evolves.
3. Possession Mechanics
Allow the player to transfer consciousness into any recorded ghost.
Once inside, the UnitDriverNavmeshGhost becomes a controllable character, inheriting both physics and GC2 movement logic.
Example: “Dishonored”-style possession, but through time — jump into a past self to alter future events.
4. Multi-Agent Coordination
Create cooperative or competitive gameplay between live players and recorded ghosts:
Ghosts replay old strategies.
Live players counter or assist them.
All paths stay NavMesh-valid, preventing teleport collisions.
Example: Tactical stealth games where previous replays act as automated allies.
Pros and Cons Summary
Replay Type
Real NavMesh motion — physically valid, collision-safe.
Path may deviate slightly from original.
Control
Ghost can be taken over or directed via GC2 Actions.
Doesn’t replicate animation states.
Performance
Efficient — reuses GC2 Character systems and agents.
Many ghosts may stress NavMesh avoidance (if enabled - default is disabled).
Use Case
Ideal for interactive or branching mechanics.
Not ideal for 1:1 cinematic replays.
Design Philosophy
The driver isn’t about visual perfection — it’s about interactive storytelling.
Instead of showing the past like a film, it simulates it inside the same physics rules as the present.
That’s what makes UnitDriverNavmeshGhost special:
it keeps ghosts as living agents that exist inside your timeline logic, not outside it.
Overview
Purpose: Drive ghosts over NavMesh using recorded paths (no transform snapping).
Key Dependencies (auto-provisioned):
NavMeshAgent,CapsuleCollider,GhostNavMeshController.Why this driver: It preserves GC2 movement/animation semantics while consuming Time Machine snapshots, avoiding jitter and physics drift.
Responsibilities
Read ghost waypoints/rotations from the active
GhostPlaybackComponent.Update agent destination per frame, respecting Agent radius, height, and avoidance.
Synchronize Character facing and Animator playback speed with ghost velocity.
Support looping, runtime path line rendering, and off-mesh traversal.
Lifecycle
Provisioning – On first use the driver ensures
NavMeshAgent,CapsuleCollider, andGhostNavMeshControllerexist and are configured.InitializeGhost(source) – Binds to the source recorder/branch and prepares the waypoint stream.
Playback Tick – Each update, the driver advances the waypoint cursor, blends speed, rotates to face motion, and drives the agent rather than teleporting.
Tear-down / Stop – Halts agent movement, clears bindings, and optionally hides path visuals.
Playback uses NavMeshAgent movement instead of transform writes to avoid collider desync and micro-jitter.
Inspector Parameters
Recording Thinning & Smoothing
Waypoint Skip Count – Skip every Nth recorded point to thin dense paths.
Minimum Spacing – Enforce a minimum distance between waypoints.
Smoothing – Interpolate noisy corners for cleaner agent steering. 【F:.../UnitDriverNavmeshGhost.cs†L34-L101】
Playback & Presentation
Loop – Restart from the first waypoint on completion.
Animation Mode – Animator-driven vs. rigid transform blending.
Line Rendering – Draw a runtime path line for debugging/polish.
Motion & Physics
Dynamic Speed Blending – Use velocity-aware speed scaling for natural stride.
Off-Mesh Traversal – Honor agent’s off-mesh links (jumps, ladders).
Collision Sync – Keep capsule aligned with agent and floor probes.
These options are exposed on the Character asset for designer control.
Dual-Mode Behavior
When ghost playback is inactive, the driver falls back to standard GC2 navigation, so the same Character prefab works for live gameplay and for replays—no duplicate prefabs required.
Optimization Tips
Prefer thinning for long recordings (skip count / min spacing) to cut memory and agent micro-turns.
Disable Line Rendering in production to save CPU.
Pool ghost prefabs to amortize
NavMeshAgentsetup costs.Use Ghost Mode (Global) to separate live recording from concurrent playback cleanly.
Troubleshooting
Ghost stutters or clips
Transform being set elsewhere
Remove external transform writes; let the driver control the agent.
Doesn’t move at all
No baked NavMesh
Bake NavMesh; verify agent area/obstacle settings.
Overshoots corners
Waypoints too sparse
Lower skip count or spacing; enable smoothing.
Animator desync
Sparse snapshots or extreme speed variance
Increase snapshot density for motion segments; enable dynamic speed blending.
Collider misaligned
Capsule/agent mismatch
Let the driver provision collider; avoid manual collider scale changes mid-playback.
GC2 Graph Patterns
Start a Ghost (recommended workflow)
Instruction: Start Ghost Playback (targets Character with
UnitDriverNavmeshGhost).Params: Branch name to replay, Loop on/off, optional path line.
Guard:
Is Ghost Playback Activecondition to toggle UI/input during runs.
Stop/Destroy
Stop: Freeze ghost in place (keeps agent/components).
Destroy: Optional delay then teardown and destroy ghost GameObject.
See GC2 instructions:
InstructionGhostPlayerStart,InstructionGhostPlayerStop,InstructionGhostPlayerDestroy.
Example: Ghost Challenge Loop
On Lap Complete →
Global: Create Branch "Lap_01"
Global: Record All Snapshots
Next Lap Start →
Start Ghost Playback (branch "Lap_01", loop=On)
While Is Ghost Playback Active →
Compare player vs ghost time
On Finish →
Stop Ghost Playback (or Destroy after delay)Object Instructions
Use TimeMachine Object instruction to control a single recorder or prefab.
Record Snapshot
Captures current state.
Auto-name toggle
Replay To Snapshot
Restores a named snapshot.
Snapshot name
Rewind By Time
Seeks backwards by seconds.
Time value
Switch Branch
Jumps to a different timeline.
Branch name
Play / Reverse / Stop
Plays forward or backward.
Speed
Timeline Play / Pause
Bridges Unity Timeline.
Director target
Set Playback Speed
Adjusts playback rate.
Multiplier
Set Looping
Toggles looping.
Boolean
Clear Branch
Clears snapshots without deleting branch.
Branch
Delete Branch
Removes branch entirely.
Branch
Tips: override branch string for custom timelines; all operations guard against missing targets.
Global Controls
Global instructions orchestrate every recorder simultaneously.
Recording
Pause/Resume All Recording
Record All Snapshots
Clear All History
Playback
Play / Reverse / Stop All
Jump To Start / End
Set/Adjust Global Speed
Flip Direction
Toggle Interpolation
Branching
Switch / Create / Delete Branch
Merge Timelines
Resume Modes
Overwrite / Auto-Branch / Continue-From-End
Auto-Branch Strategy (Overwrite, Continue, Unlimited)
Copy Modes (Clean, Accumulative, Empty)
Ghost Racing
Enable/Disable Ghost Mode
Properties
Object-Level
Current Branch
Active branch name
UI indicators
Snapshot Count
Snapshot count
Checkpoint display
Global
Global Current Branch
Active branch name
Next/Previous Branch
Carousel navigation
Is Recording
Boolean flag
Recorded Objects Count
Integer total
Conditions
Conditions let you branch logic based on Time Machine state.
Object Checks
Is Recording
Is Playing / Paused
Has Snapshot Named
Is On Branch (Original/Alternative)
Safe null handling
Global Checks
Global recording/playback state
Playback direction and speed
Snapshot counts and object totals
Branch membership and ghost mode
Ghost Guard
Is Ghost Playback Active – detects live ghosts to disable inputs.
Ghost Playback
Two playback systems are available:
Component Workflow
Start / Stop / Destroy Ghost Playback
Manages NavMesh, animation blending, runtime line rendering.
Recommended for production.
NavMesh Ghost Agent Driver: Automatically provisions NavMeshAgent and collider; syncs motion and facing.
Legacy Interpolation
Frame-by-frame playback for prototypes. Requires manual time progression.
Example Workflows
Checkpoint System
Record Snapshot at trigger
Display Snapshot Count
Rewind only if snapshot exists
Pause Menu Safety
Pause All Recording when menu opens
Resume after closing
Branch-Driven Puzzle
Switch Branch on lever activation
Use branch checks to gate dialogue
Global reset to Original
Ghost Challenge
Create Branch after each lap
Start Ghost Playback next lap
Reward if player beats ghost
Best Practices & Troubleshooting
Tips
Name snapshots clearly.
Record at meaningful beats.
Clear obsolete branches.
Guard graphs with conditions.
Use branches for 'what-if' timelines.
Common Issues
GC2 actions missing
Confirm defines and reimport integration folder.
Null target
Ensure valid GameObject or use Self.
Snapshot replay fails
Check snapshot name and branch.
Enable verbose logging in Time Machine settings to trace missing branches or identifiers.
Last updated