# Restrictions and Limitations

***

## Technical Limitations

1. **No Nested FlowPlayer Loops** — Avoid circular references where FlowPlayer A plays FlowPlayer B which plays FlowPlayer A.
2. **BranchAction and CompareVariable Limitations:**
   * **Cannot execute ContinuousActions** — BranchAction and CompareVariable do not support running ContinuousActions (like ScreenShake with continuous mode) within their True/False branches. ContinuousActions require the main FlowPlayer execution context and will not work correctly inside conditional branches.
   * **Cannot nest each other** — BranchAction cannot contain CompareVariable in its branches, and CompareVariable cannot contain BranchAction. For complex branching, use separate FlowPlayers triggered by conditions or use `OnVariableTrigger` instead.
3. **Reflection Performance** — Conditions use reflection to read values. For performance-critical code, consider using direct references or events instead.
4. **Serialization Constraints:**
   * Actions cannot reference other actions directly (use FlowPlayer references instead)
   * Generic types are not supported in action properties
   * Interfaces cannot be serialized (use base classes)
5. **TextMeshPro** — TextMeshPro types are accessed via reflection to avoid hard dependencies. Ensure TMPro package is installed if using TextMeshPro actions.
6. **Animation Component** — The legacy Animation component support requires the animation to be set to Legacy mode.
7. **Input System** — `OnInputTrigger` uses Unity's legacy Input system. For the new Input System, create custom triggers or invoke FlowPlayer from your input callbacks.

***

## Editor Limitations

1. **Undo Support** — Some complex operations may not fully support undo/redo.
2. **Multi-Object Editing** — Editing multiple FlowPlayers simultaneously is not fully supported.

***

## Runtime Limitations

1. **WebGL** — Some timing-sensitive actions may behave differently in WebGL due to browser limitations.
2. **Thread Safety** — Actions execute on the main thread only. Do not use in multithreaded contexts.
3. **Pause/Resume** — Pausing during a `WaitForSeconds` will not account for paused time.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://beelabs-dev.gitbook.io/beelabs-docs/flow-of-action/limitations.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
