# Editor vs Runtime

One of the primary inspirations for Timeflow was to create an animation system that fully works in edit mode without having to enter play mode for playback. This allows for fast iteration in the creative process and being assured that what you see is what you get.&#x20;

{% hint style="info" %}
Note that the wording "play mode" and "runtime" are used interchangeably throughout this documentation and generally mean the same thing. When running in a build, Timeflow is expected to perform identically to the play mode in the Unity editor.
{% endhint %}

If you are not familiar with edit vs play mode in Unity, please see the [Game View](https://docs.unity3d.com/Manual/GameView.html) documentation.

## Create and preview in edit mode

Especially when working with scenes of significant size, loading times in and out of play mode can severely slow down the creative process. Therefore, every tool in Timeflow has been built to maximize functionality in the editor with identical performance at runtime whenever possible. Just about everything can be created from start to finish without ever having to enter play mode. There are of course caveats to this, explained below.&#x20;

{% hint style="warning" %}
Note that during runtime Timeflow is in playback mode and although editing features still function normally, no changes are saved. This is due to [data serialization](https://axongenesis.gitbook.io/timeflow/user-guide/how-it-works#data-serialization) and is normal behavior in Unity, which prohibits scene saving in play mode. Therefore, be sure to perform all changes in edit mode and use play mode only for previewing and rendering.&#x20;
{% endhint %}

## **Features requiring runtime**

There are of course features within Unity that do not work in edit mode or operate differently at runtime and require entering play mode for the complete experience. This is generally anything that is simulated or based on dynamic input. This is not a show-stopper but a consideration when creating. Following is a brief list of features which require runtime for full functionality.

* [Physics](https://axongenesis.gitbook.io/timeflow/reference/samples/physics)
* Player input and game mechanics
* Simulations of any type that require continuous forward moving time
* Any 3rd party scripts not designed to work in edit mode
* Some render settings and post processing effects may vary depending on the pipeline

Timeflow can of course still be used with all of these features (nothing is excluded), but do note that it is necessary to enter play mode to see final results when any of the above features are in use.

{% hint style="success" %}
Make sure to enter play mode periodically to check your work and avoid surprises later.
{% endhint %}

{% hint style="success" %}
Regularly check performance and playback in builds when deploying to a target platform. Any variances may indicate underlying issues to be addressed.
{% endhint %}

{% hint style="info" %}
**\[ExecuteInEditMode()]**\
As a side note to any developers who may be reading this, please consider making your scripts work in edit mode as much as possible. It really helps on the creative side to have functional tools or at least a proxy to work with while editing.
{% endhint %}
