# Sandbox.Helpers.UndoSystem

A system that aims to wrap the main reusable functionality of an [Sandbox.Helpers.IUndoSystem](/api/Sandbox.Helpers.IUndoSystem).

- Kind: class
- Namespace: `Sandbox.Helpers`
- Assembly: `Sandbox.Tools`

## Constructors

- [`UndoSystem`](/api/Sandbox.Helpers.UndoSystem/.ctor)

## Fields

- [`OnRedo`](/api/Sandbox.Helpers.UndoSystem/OnRedo): Called when a redo is run
- [`OnUndo`](/api/Sandbox.Helpers.UndoSystem/OnUndo): Called when an undo is run

## Properties

- [`Back`](/api/Sandbox.Helpers.UndoSystem/Back): Backwards stack
- [`Forward`](/api/Sandbox.Helpers.UndoSystem/Forward): Forwards stack, gets cleared when a new undo is added

## Methods

- [`Initialize`](/api/Sandbox.Helpers.UndoSystem/Initialize): Clear the history and take an initial snapshot. You should call this right after a load, or a new project.
- [`Insert`](/api/Sandbox.Helpers.UndoSystem/Insert): Insert a new undo entry
- [`Redo`](/api/Sandbox.Helpers.UndoSystem/Redo): Instigate a redo, returns true if we found a successful undo
- [`SetSnapshotFunction`](/api/Sandbox.Helpers.UndoSystem/SetSnapshotFunction)
- [`Snapshot`](/api/Sandbox.Helpers.UndoSystem/Snapshot): Should be called after you make a change to your project. The snapshot system is good for self contained projects that can be serialized and deserialized quickly.
- [`Undo`](/api/Sandbox.Helpers.UndoSystem/Undo): Instigate an undo. Return true if we found a successful undo
