# Time Fracture: Start Here
**Time Fracture** is a set of Unity scripts for games where time is broken into pieces. Events run on Timelines that can be played backwards, frozen, skipped, looped, slowed or remixed into a new order, and the player's actions change how those events play out.
- **Unity:** 6000.3 (Unity 6.3)
- **Packages:** Timeline and Input System (Input System only, no old Input Manager)
- **Works in:** 2D and 3D
---
## Learning path
Work through these in order. Each tutorial builds on the one before it and has its own demo scene.
| # | Note | You'll learn | Demo (Tools ▸ Time Fracture ▸ …) | Time |
|---|---|---|---|---|
| 1 | [[TimeFracture-Getting-Started]] | Project setup, then building by hand: a Time Channel, segments, playlists (remixes), Time Event markers, groups, and a player choice that branches the story | **Build Demo Scene** | ~45 min |
| 2 | [[TimeFracture-Tutorial-Wiring]] | Touching, blocking and shooting objects to change their time; colour themes and lenses for each Timeline; many objects on one Timeline; recording the player and cooperating with echoes | **Build Tutorial Scene (2D)** | ~60 min |
| 3 | [[TimeFracture-Tutorial-Enemies]] | Rewindable AI enemies, bullets and physics; scripted-until-disturbed enemies; undoing a fight | **Build Enemy Rewind Demo (2D)** | ~45 min |
| 4 | [[TimeFracture-Design-Ideas]] | Similar games, player motivations, and 15 level ideas mapped to the scripts | — | reading |
| ref | [[TimeFracture-Scripts]] | Every script: what it is, where it goes and what it does, with the full source embedded | — | reference |
| ref | `README.md` | The API cheat sheet (method calls), playlists and technical notes | — | reference |
> [!tip] Fastest way to understand it
> Import the package, run all three **Build…** menus, and play each scene for a few minutes before starting tutorial 1.
---
## What's in the folder
```
Time Fracture/
├─ 00-Start-Here.md ← this note
├─ TimeFracture-Getting-Started.md ← tutorial 1
├─ TimeFracture-Tutorial-Wiring.md ← tutorial 2
├─ TimeFracture-Tutorial-Enemies.md ← tutorial 3
├─ TimeFracture-Design-Ideas.md ← design guide
├─ TimeFracture-Scripts.md ← script reference
├─ README.md ← API cheat sheet
├─ Runtime/ ← scripts that run in the game
│ ├─ TimeChannel, TimeWorld, TimeCommand, TimeCommandTrigger, markers, debug HUD
│ ├─ Interaction/ TimeInteractable, TimeBlockSensor, TimeProjectile, TimeShooter
│ ├─ Visuals/ TimeVisualTheme, TimeVisualizer, TimeLensController
│ ├─ Members/ TimeMember, TimeOscillator
│ ├─ Recording/ TimeTake, TimeRecorder, TimeEcho
│ ├─ Rewind/ TimeRewindable, ITimeStateful
│ ├─ Util/ TimeInput, TimeRewindKey
│ └─ Demo/ example player, guard, bullet, auto-rewind, help text
├─ Editor/ ← inspectors and the three demo builders
└─ Packages/ ← TimeFracture.unitypackage and TimeFracture.zip
```
**Installing in a project:** import `Packages/TimeFracture.unitypackage`, or copy the `Runtime` and `Editor` folders, plus the notes if you want them, into `Assets/TimeFracture/` in your project. The steps are in tutorial 1, Step 0.
**Using the notes in Obsidian:** keep the notes in the same folder as `Runtime/` and `Editor/`. The ` ```codefile ` embeds use paths relative to that folder.
---
## Feature checklist
| Feature | Where it's taught |
|---|---|
| Play forward or backward, change speed, ease speed | Getting Started, Step 1 |
| Freeze, pause, timed freeze | Getting Started, Steps 1 and 6 |
| Skip and jump (to a time or segment) | Getting Started, Steps 1 and 2 |
| Loop a segment or region, break a loop | Getting Started, Step 2 |
| Remix segments into playlists (order, direction, speed, repeats, holds) | Getting Started, Step 3 |
| Events that fire forward and/or backward; Signals | Getting Started, Step 4 |
| Several objects on separate Timelines at once; groups and world time | Getting Started, Step 5 |
| Story flags and branching | Getting Started, Step 6 |
| Touch, block and shoot interactions | Wiring, section 1 |
| Colour themes, time-state colours, lenses that reveal or hide Timelines | Wiring, section 2 |
| Many objects on one Timeline (rigs and members) | Wiring, section 3 |
| Recording the player; echoes and cooperation puzzles | Wiring, section 4 |
| Rewindable AI, bullets and physics; undoing a fight | Enemies, sections 1–4 |
| Writing your own rewind-friendly scripts | Enemies, section 3 |
| Input System bindings (keyboard, mouse, gamepad, your own actions asset) | Wiring, "Before you start" |
---
## Known limitations
- **Not yet run in the Unity editor.** The scripts were compiled against stand-in versions of the Unity APIs, and the core time logic was simulated outside Unity, but no one has opened them in Unity 6.3 yet. Expect possibly a small fix on first import. Report the Console error and line number.
- **Audio tracks** don't play while a director is in Manual mode. Trigger sounds from Time Events instead.
- **Physics in slow motion:** rigidbodies freeze and rewind with time, but fall at normal speed at partial rates. Script-driven movement using `DeltaTime` slows correctly.
- **Nested timelines** (sub-timelines on a Control Track) play correctly, but their markers aren't scanned. Put markers on the parent Timeline.
- **Echoes and live AI can diverge.** Recordings replay exactly, but live enemies react to what's happening now. Use scripted enemies where a puzzle needs certainty.
- **The demo builders use generated squares and circles.** Swap in your own sprites and prefabs when you build a real game.
---
## Version history
| Version | Changes |
|---|---|
| 1.0 | TimeChannel, TimeWorld, commands, triggers, markers, playlists, debug HUD, inspectors, demo scene |
| 1.1 | Interaction (touch, block, shoot), themes and lenses, TimeMember, recording and echoes, 2D tutorial scene |
| 1.2 | Switched to the Input System package only; controls are Input Action properties with gamepad defaults |
| 1.3 | Rewindable enemies, bullets and physics (TimeRewindable, ITimeStateful), TimeChannel.Detached, enemy demo |
| 1.4 | Final docs: Start Here, the step-by-step Getting Started tutorial, cross-links, packages refreshed |