🎨Presets
A newly revamped preset system for quick setups and animation
Overview
Timeflow offers two distinct preset types, Advanced Presets and Component Presets, each working independently of Unity’s native preset system.
Advanced Presets are prefab‑based, allowing you to bundle unlimited components, nested hierarchies, and complete animations into a single preset. You can either instantiate a brand‑new set of objects (preserving prefab linkage if desired) or stamp a preset onto existing game objects, either replacing or merging select components.
Component Presets replace the old “behavior presets”. They capture settings for an individual component. For more information, see:
🎚️Component PresetsBoth systems are accessible from the new Advanced Presets Window, which can be docked alongside the Timeflow Editor or anywhere in the layout. Multiple instances of the window can be opened and configured as needed.
Getting Started
This documentation will guide you through a typical setup, though feel free to adapt it to your own needs and preferences. If you're new to using Advanced Presets, it is recommended that you first get familiar using the provided sample presets before creating your own.
Import Demo Samples
Timeflow ships with a Standard collection of presets included with the Demo samples, which can be imported from the Package Manager. Be sure to import the demo samples matching the render pipeline used in your project. For more information see Samples
Open the Advanced Presets Window
From the Timeflow menu select Open Advanced Presets.

Use the shortcut Control + Alt + Shift + P to open the Advanced Presets Window
The window can then be docked next the Timeflow view, or anywhere you have easy access. Keep in mind that it may be necessary to adjust the width of the window from time to time.

Standard Presets
The Standard collection includes default and common presets for nearly all Timeflow behaviors, plus some bonus presets. To get the most out of Advanced Presets, you can create your own to not only replicate recurring setups, but to help manage and instantiate your project prefabs.
Modifying the standard presets is discouraged since changes may be overwritten when the presets are updated in the future. It is best therefore to make copies and manage your own presets in a separate location within the Assets directory.
Advanced Presets Popup
In the Timeflow view, click on the preset icon in the switches panel to invoke the popup. The Advanced Presets popup window can be configured separately from the docked window, so you can customize it to your liking and quickly access the presets you want.

The selected folder and group are managed separately in each view, so the popup window can be focused on one set of presets while docked instances of the Advanced Presets window can be showing other presets. This gives you the flexibility to arrange the preset palettes to your current workflow.

How Advanced Presets Work
Prefab‑Based Definitions
Each Advanced Preset is fundamentally a prefab with an attached Advanced Preset component. When you add a prefab into the Advanced Presets Window, Timeflow automatically injects the Advanced Preset component, converting it into a reusable preset asset. The prefab of course is still a prefab and can be used normally.
To create preset variations, use the built-in prefab variant system.
Unlimited Components & Full Hierarchies
Because an Advanced Preset is a prefab, it can contain any number of child GameObjects, custom scripts, meshes, animations, etc. This allows you to package entire setups, camera rigs, animated characters, complex effect hierarchies, into one single preset.
Three Application Modes
The current mode can be set by clicking the mode icon in the menu bar.

Hold one of the modifier keys shown to activate the corresponding mode when applying a preset. While holding the modifier, the buttons will show an icon indicating the mode that's active.
Instantiate: Creates a new GameObject instance of the preset's prefab with optional prefab linkage (set in the Collection settings panel).
Replace: Applies the preset to an existing GameObject, replacing components of the same type with copies from the prefab.
Combine: Merges property data with existing components or adds new components (if the component type allows multiple instances on the same GameObject).
Pro Tip: Hold Control + Shift to instantiate a preset and invert the unpack prefab setting. So if normally the prefab is unpacked, add the Shift modifier to preserve prefab linkage for this instance.
Drag & Drop
The Advanced Preset Window supports multiple forms of drag and drop operations. You can drag and drop presets directly into your scene or onto other objects to combine or replace them. New presets can also be created by dragging and dropping objects, prefabs, or folders into the preset window.
Instantiating Presets
Wherever a preset button is displayed, you may drag and drop it directly into your scene. This includes dropping it into the Hierarchy view, Scene view, or the Timeflow window.
Note that whenever the preset is dropped into the Scene or Hierarchy view, it will always instantiate a new linked prefab, since this is handled by Unity and not Timeflow.
Applying Presets
When a preset is drag and dropped into Timeflow, if dragged into an empty area or the Instantiate mode is active, it will instantiate a new object. However, if dragged onto another object, the preset will be applied to it using the currently active mode (Replace or Combine).
In addition to dragging the preset button, you may also drag prefab assets directly from the Project window. When dropped into Timeflow, it will automatically detect if it's an Advanced Preset.
Similar to clicking a preset button, you can use the modifiers when dragging and dropping into the Timeflow view. Hold Control to instantiate, Control + Shift to instantiate with prefab linkage, Alt for Replace, and Shift for Combine mode.
Hold Control + Alt when applying a preset to insert it as a parent of the target object, instead of as a child.
Hierarchy & Component Merging
When stamping onto existing objects, Advanced Presets will:
Traverse the prefab hierarchy and match child GameObjects either by name or by child index, based on the Collection settings.
Add missing child objects or remove extras, if Add Children is enabled in the Collection settings.
For each component on a matching GameObject, either overwrite it entirely or blend/merge specified property values.
Custom Component Preset Types
Some Timeflow components (e.g., Flyby) store more than simple property values, they hold animated channel data. By creating a custom “Component Preset Type,” you can package that data into an Advanced Preset as well. In effect, this extends Advanced Presets to capture any complex data your custom scripts expose.
Object Reference Mapping
One of the more complicated topics is managing how object references are reassigned when applying a preset to a target object. If the source objects have stored relationships, such as when a child component references another object or component in the hierarchy, these have to be remapped onto the target hierarchy to retain the relative relationships.
Advanced Presets offers 2 methods for matching object references:
Match by Index
Objects from the source prefab are matched to the target objects by their order in the hierarchy. This mode works best when the source and target have the same hierarchical structure but perhaps different naming. This is the default mode since it provides the most versatility.
Match by Name
Matches objects from the source prefab to the target hierarchy by locating each one by name. This works best when your target hierarchy differs from the prefab but has corresponding object names.
Matching Limitations
Match by Name requires that all objects in the hierarchy have a unique name. Duplicate names will not cause errors but may cause unexpected behavior.
Object references may fail to remap in certain specialized cases and should be double-checked after applying presets.
Unlimited Collections and Nesting
You can organize presets into Collections (e.g., “Standard,” “YourCompanyAnimations,” etc.).
Within each Collection, create Folders, and within Folders create Groups (one level of subfolders) to categorize presets however you wish. Folders contain groups, and groups contain presets.
Each folder/group can be named, color‑coded, and assigned a custom icon to help visually distinguish different preset libraries.
Extensible Processing Pipeline
Under the hood, Advanced Presets are processed via a modular pipeline. You can hook into this pipeline with your own scripts, intercept preset‑loading, inject additional logic, or add custom post‑processing steps whenever a preset is applied.
IAdvancedPresetProcessor
To code your own extension for Advanced Presets, implement the interface IAdvancedPresetProcessor. This hooks in globally any time a preset is applied. For an example, please refer to TimeflowAdvancedPresetProcessor.cs. Additional explanation is provided within the code comments.
public interface IAdvancedPresetProcessor
{
bool PreProcessComponent(AdvancedPresetProcessInfo info);
bool Process(AdvancedPresetProcessInfo info);
void GetDestination(AdvancedPresetProcessInfo info);
bool ProcessComponent(AdvancedPresetProcessInfo info);
void PostProcessComponent(AdvancedPresetProcessInfo info);
void ProcessComplete(AdvancedPresetProcessInfo info);
}
IBehaviorPreset
Another way to add custom logic when presets are applied is to implement IBehaviorPresets in your MonoBehaviour scripts. This allows each component type to have specialized processing. You can also perform custom logic and data operations both when saving and applying a preset.
public interface IBehaviorPresets
{
void OnBeforeSavePreset(ref List<ComponentPresetListItem> items);
void OnSavePreset(AdvancedPreset objPreset = null, ComponentPreset compPreset = null);
void OnPresetApplied(AdvancedPreset objPreset = null, ComponentPreset compPreset = null);
}
Whenever applicable any extensions to the preset system should respect the 3 application modes: Instantiate, Replace, and Combine, as well as the settings to rename objects and apply colors.
FAQ
Do Advanced Presets work with 3rd party scripts?
Yes! Advanced Presets operate on Component types and thus support anything that is supported by Unity's prefab system. Likewise, Component Presets also work with any Component type. For custom integrations, the Advanced Presets API allows per-type extension to handle custom data and operations when saving and applying presets.
Can Advanced Presets be used without Timeflow?
While Advanced Presets is only packaged with Timeflow, you may use it to create and apply presets for many other things without the need of an active Timeflow instance. It can be used for scene building and custom setups. As an example, the Standard presets includes a collection of primitives such as a cube, sphere, etc which do not involve Timeflow.
Note that when Timeflow is active in the scene, instantiated objects are automatically added to the Timeflow view as a convenience. And if there is no Timeflow instance in the scene, a new one is added automatically whenever a preset containing a TimeflowObject is instantiated.
Are any additional packages required?
Advanced Presets generally does not require any additional packages, however certain presets may have dependences. For example, the 2D Sprite presets require that the 2D Sprite package is installed. If not, those presets will have missing sprite assets when instantiated.
Do presets support all render pipelines?
Yes, Advanced Presets work with all render pipelines. However, note that there are slight differences in the included Standard presets and prefabs, since materials and certain scripts may be different in each pipeline. When importing the Demo samples, make sure to import only the one matching the projects render pipeline configuration.
Last updated