FlowKit
Latent flow helpers for C++ and Blueprints: delays, tickers, timelines, conditional waits, time locks, async tasks and async loading, plus C++20 coroutines on UE 5.8. Wiβ¦
Highlights
All 12 features βFlowKit replaces timers, tick functions and hand-written state machines with one-line latent actions. Start a delay, a ticker, a value timeline or a "wait until" condition from C++ with a lambda, or from Blueprints with an async node, and FlowKit runs it from a game-instance subsystem. Every action is bound to an owner object and is cleaned up automatically when that owner is destroyed.
Each action returns a handle that you can use to pause, resume, reset, stop or re-time it, and every action accepts settings for tick interval, first delay, ignoring game pause or global time dilation, starting paused and a label for stopping groups of actions. Instanced gates (time lock, do once, do N times, do no more than X time) keep only one running action per instance id.
On Unreal Engine 5.8 the same building blocks are also available as C++20 coroutine awaiters, so a whole sequence - wait two seconds, wait for a condition, run a task on a background thread, load assets - reads top to bottom in a single function. FlowKit targets Win64.
FlowKit is part of the Alpha XP utilities collection for Unreal Engine 4.27 and 5.8. Every feature is exposed to Blueprints and C++, it ships with styled HTML documentation, and it is compiled and verified warning-free against clean UE 4.27 and UE 5.8 projects.
Key features
- Delay and Delay Ticks with completion callbacks
- Tickers that run for a duration, forever, or until stopped, with optional tick interval
- Float, Vector and LinearColor timelines with linear, cubic and ease blend functions
- Custom timelines driven by float, vector and linear colour curve assets
- Wait And Execute and While True Execute with optional time-outs
- Time Lock, Do Once, Do N Times and Do No More Than X Time gates keyed by instance ids
- Run a task on a background thread and continue on the game thread when it finishes
- Asynchronous loading of soft object paths with a completion callback
- Handles to pause, resume, reset, stop and get or set the time of any action; stop all,
- Per-action settings: tick interval, first delay, ignore pause, ignore time dilation,
- C++20 coroutine awaiters on UE 5.8: WaitSeconds, WaitTicks, WaitUntil, WaitForFlag,
- Stat groups and Unreal Insights scopes for profiling
Blueprint & C++ API
Every call is reachable from more than one place β pick the entry point that fits your project:
| Class | Type | Nodes | Use it for |
|---|---|---|---|
| FKBPLibrary | Function library | 39 | Static nodes β callable from anywhere, no object needed. |
| FKWaitAndExecuteBP | FK Action BP | 1 | |
| FKWhileTrueExecuteBP | FK Action BP | 1 |
Callable runs when executed Β· Pure no exec pin, returns a value
| Node | Type | Available on | Description |
|---|---|---|---|
| FlowKit - Predicate (WaitAndExecute)(Has Finished: Boolean) | Callable | FK Action BP | Pass 'true' to this function in order to execute the 'Wait And Execute' Action. |
| FlowKit - Predicate (WhileTrueExecute)(Is True: Boolean) | Callable | FK Action BP | Pass 'true' to this function in order to continue 'While True Execute' Action. Pass 'false' to stop it. |
| FlowKit - Set Pause Subsystem(Paused: Boolean) | Callable | Static | Sets if the FlowKit system is paused or not. |
| FlowKit - Get Pause Subsystem(Display Name: PARAM() | Pure | Static | Checks if the FlowKit system is paused or not. |
| FlowKit - Is Action Running(Display Name: PARAM(, Handle: FK Handle BP) | Pure | Static | Checks if the action pointed by given handle is running. |
| FlowKit - Get Actions Handles By Class(Class: FK Action Base) β Array of FK Handle BP | Pure | Static | Finds handles of running or pending action of the given Class its FFKHandles. |
| FlowKit - Get Actions Handles By Label(Label: String) β Array of FK Handle BP | Pure | Static | Finds handles of running or pending action of the given Label its FFKHandles (for Blueprints). |
| FlowKit - Get Action Label By Handle(Display Name) | Pure | Static | Returns the Label of the action pointed by given handle. Returns empty string if there is no action running. |
| FlowKit - Pause Action(Handle: FK Handle BP) | Callable | Static | |
| FlowKit - Resume Action(Handle: FK Handle BP) | Callable | Static | |
| FlowKit - Is Action Paused(Display Name: PARAM(, Display Name: PARAM(, Handle: FK Handle BP) | Pure | Static | Checks if the action pointed by given handle is paused. Returns false if there is no action running. |
| FlowKit - Reset Action(Display Name) | Callable | Static | Resets the action pointed by given handle. |
| FlowKit - Stop Action(Handle: PARAM(ref) FFK Handle BP, Complete: Boolean) | Callable | Static | Stops the running action pointed by given handle. Invalidates given handle. |
| FlowKit - Stop Instanced Actions(Instance Id: FK Instance Id BP, Complete: Boolean) | Callable | Static | Stops the running action with the given InstanceId. bComplete param indicates if the action should be completed when stopped (run callback), or simply stopped. |
| FlowKit - Stop All Actions(Complete: Boolean, In Owner: Object) | Callable | Static | Stops all running actions. If owner is defined it will remove all actions from the given owner. Otherwise it will stop all the actions from everywhere. |
| FlowKit - Stop All Actions Of Class(Class: FK Action Base, Complete: Boolean, In Owner: Object) | Callable | Static | Stops all running actions of the given class. If owner is defined it will remove only actions from the given owner. |
| FlowKit - Stop All Actions With Label(Label: String, Complete: Boolean, In Owner: Object) | Callable | Static | Stops all running actions with the given Label. Label can't be empty. If owner is defined it will remove only actions from the given owner. |
| FlowKit - Get Action Time(Handle: FK Handle BP) β Float | Pure | Static | Gets the action time. It's not CurrentTime, but the time value used by this action, like in delay or timeline. |
| FlowKit - Set Action Time(Handle: FK Handle BP, New Time: Float, Display Name: PARAM() β Boolean | Callable | Static | Sets the action time. It's not CurrentTime, but the time value used by this action, like in delay or timeline. |
| FlowKit - Is Handle Valid(Display Name: PARAM(, Handle: FK Handle BP) | Pure | Static | Checks if the given Handle is valid. |
| FlowKit - Get New Instance Id(Display Name: PARAM() | Pure | Static | Returns a new Instance Id. |
| FlowKit - Validate Instance Id(Display Name: PARAM(Ref,, Display Name: PARAM() | Pure | Static | Check if given InstanceId is Valid and Validate it (creates new one) if not. |
| FlowKit - Is Instance Id Valid(Display Name: PARAM(, Instance Id: FK Instance Id BP) | Pure | Static | Checks if the given InstanceId is valid. |
| FlowKit - Time Lock(Display Name: PARAM(, Lock Time: Float, Settings: FK Action Settings) β Out Execs, Instance Id | Callable | Static | Allow to run the code only once in a given time. (Locks the ability to run the code for a specific amount of time in seconds). |
| FlowKit - Remove All Time Locks(In Owner: Object) | Callable | Static | Removes all time locks. |
| FlowKit - Remove All Delays(Complete: Boolean, In Owner: Object) | Callable | Static | Removes all running delays. If owner is defined it will remove all delays from the given owner. Otherwise it will stop all the delays from everywhere. |
| FlowKit - Remove All Wait And Executes(Complete: Boolean, In Owner: Object) | Callable | Static | Removes all running "wait and execute"s. If owner is defined it will remove all "wait and execute"s from the given owner. |
| FlowKit - Remove All While True Executes(Complete: Boolean, In Owner: Object) | Callable | Static | Removes all running "while true execute"s. If owner is defined it will remove all "while true execute"s from the given owner. |
| FlowKit - Remove All Run Async Thens(In Owner: Object) | Callable | Static | Removes all Run Async Then's. Have in mind it will not stop running async threads. It will just forget about them and won't trigger callbacks when async tasks ends. |
| FlowKit - Remove All Tickers(Complete: Boolean, In Owner: Object) | Callable | Static | Removes all running tickers. If owner is defined it will remove all tickers from the given owner. Otherwise it will stop all the tickers from everywhere. |
| FlowKit - Remove All Timelines(Complete: Boolean, In Owner: Object) | Callable | Static | Removes all running timelines. If owner is defined it will remove all timelines from the given owner. Otherwise it will stop all the timelines from everywhere. |
| FlowKit - Remove All Timelines Vector(Complete: Boolean, In Owner: Object) | Callable | Static | Removes all running vector timelines. If owner is defined it will remove all vector timelines from the given owner. |
| FlowKit - Remove All Timelines LinearColor(Complete: Boolean, In Owner: Object) | Callable | Static | Removes all running linear color timelines. If owner is defined it will remove all linear color timelines from the given owner. |
| FlowKit - Remove All Custom Timelines(Complete: Boolean, In Owner: Object) | Callable | Static | Removes all running custom timelines. If owner is defined it will remove all custom timelines from the given owner. |
| FlowKit - Remove All Custom Timelines Vector(Complete: Boolean, In Owner: Object) | Callable | Static | Removes all running custom vector timelines. If owner is defined it will remove all custom vector timelines from the given owner. |
| FlowKit - Remove All Custom Timelines LinearColor(Complete: Boolean, In Owner: Object) | Callable | Static | Removes all running custom linear color timelines. If owner is defined it will remove all custom linear color timelines from the given owner. |
| FlowKit - Remove All Do No More Than X Times(In Owner: Object) | Callable | Static | Removes all running "Do No More Than X Times" nodes. If owner is defined it will remove all running actions from the given owner. |
| ToString (FFKHandleBP)(Handle: FK Handle BP) β String | Pure | Static | Convert Handle to String. |
| ToString (FFKInstanceIdBP)(Instance Id: FK Instance Id BP) β String | Pure | Static | InstanceId Handle to String. |
| FlowKit - Convert Soft Objects To Soft Paths(In Soft Object Ptrs: Array of Object) β Array of Soft Object Path | Callable | Static | Converts the array of soft object pointers to the array of soft object paths. Useful for async loading. |
+ 1 more FlowKit nodes β full node reference
Events & delegates
Bind these in Blueprint (drag off the object β Bind Event) or with AddDynamic in C++.
| Event | Parameters | Fires on |
|---|---|---|
| On Tick | Value (Float), Time (Float), Stopped (Boolean) | FKCustomTimelineBP |
| On Finished | Value (Float), Time (Float), Stopped (Boolean) | FKCustomTimelineBP |
| On Complete | Stopped (Boolean) | FKDelayBP |
| On Execute | β | FKDoNoMoreThanXTimeBP |
| Async Task | Timed Out (Boolean), Stopped (Boolean) | FKRunAsyncThenBP |
| On Wait | Action (FK Wait And Execute BP), Delta Time (Float), Timed Out (Boolean), Stopped (Boolean) | FKWaitAndExecuteBP |
| On While | Action (FK While True Execute BP), Delta Time (Float), Timed Out (Boolean), Stopped (Boolean) | FKWhileTrueExecuteBP |
Options & enums
| Enum | Values |
|---|---|
| FK Blend Func | FK Blend Linear FK Blend Cubic FK Blend Ease In FK Blend Ease Out FK Blend Ease In Out |
| FK Async Prio | Normal Hi Priority |
| FK Time Lock Output Type | Exec Locked |
Compatibility
One ready-made build per engine version is included in the download β copy the one that matches your project.
| Platform | Supported in |
|---|---|
| Windows | Editor & packaged |
| Module | Type | Loading phase |
|---|---|---|
| FlowKit | Runtime | Default |
Technical details
| Code modules | FlowKit (Runtime) |
|---|---|
| Blueprints | 0 Β· C++ classes: 43 |
| Network replicated | No |
| Development platforms | Windows: Yes, Mac: No |
| Target build platforms | Win64 |
| Third-party software | No |
| Engine versions | Unreal Engine 4.27 Β· 5.8 β a build for each is included |
| C++ classes | 43 + 3 structs |
| Blueprint nodes | 41 |
| Events | 7 |
| Documentation | Documentation.html (in the download) |
| Download | FlowKit.zip Β· 256 KB |
| Version | v1.0.0 |
What's in the download
| File | What it is |
|---|---|
| FlowKit 4.27.zip | Plugin build for Unreal Engine 4.27 |
| FlowKit 5.8.zip | Plugin build for Unreal Engine 5.8 |
| Documentation.html | Documentation (open in a browser) |
Quick start
- Unzip the download and pick the build that matches your engine (4.27 Β· 5.8).
- Copy the FlowKit folder into your project's Plugins/ folder (create it if needed).
- Open the project, enable FlowKit under Edit βΊ Plugins and restart the editor.
- Right-click in any Blueprint graph and search FlowKit β or include the public headers from C++.
- Package for your target platform (Windows).
Good to know
Built and verified warning-free for Unreal Engine 4.27 and 5.8. Win64 only (the plugin descriptor allows Win64 alone). The coroutine API requires Unreal Engine 5.8 (C++20); every other feature works on both engine versions. Actions run in game and Play-In-Editor worlds only. Developed and maintained by Alpha XP.
Everything included
- Delay and Delay Ticks with completion callbacks
- Tickers that run for a duration, forever, or until stopped, with optional tick interval
- Float, Vector and LinearColor timelines with linear, cubic and ease blend functions
- Custom timelines driven by float, vector and linear colour curve assets
- Wait And Execute and While True Execute with optional time-outs
- Time Lock, Do Once, Do N Times and Do No More Than X Time gates keyed by instance ids
- Run a task on a background thread and continue on the game thread when it finishes
- Asynchronous loading of soft object paths with a completion callback
- Handles to pause, resume, reset, stop and get or set the time of any action; stop all,β¦
- Per-action settings: tick interval, first delay, ignore pause, ignore time dilation,β¦
- C++20 coroutine awaiters on UE 5.8: WaitSeconds, WaitTicks, WaitUntil, WaitForFlag,β¦
- Stat groups and Unreal Insights scopes for profiling
Platforms
Requirements
- Unreal Engine 4.27 and 5.8
- Develop on Windows (Win64)
- Blueprints and C++
In the download
Personal
One non-commercial project
- 1 activation seat
- 1 year of updates
- One end product
- Non-commercial use
- Community support
- 14-day refund window
Commercial
Ship paid products
- 5 activation seats
- 1 year of updates
- One paid end product
- Unlimited end users
- Priority support
- Source files
- 14-day refund window
Extended
Resell & white-label
- Unlimited activation seats
- Lifetime updates
- Unlimited end products
- White-label & resell
- 1-hour SLA
- Seat-free team use
- 14-day refund window
One purchase per product, no subscription. Each licence comes with a signed key β 1 seat on Personal, 5 seats on Commercial, unlimited seats on Extended. Paid licences can be refunded within 14 days from your order page.
- v1.0.0Latest
- Unreal Engine 4.27 and 5.8
- Blueprint and C++ API, HTML documentation
Be the first to review FlowKit β reviews come from customers who bought it, so every one is a verified purchase.
Frequently asked
How do I get the files after paying?
Straight after checkout you land on your order page with the download button and your licence key. A receipt is emailed to you, and every order stays in My library.
Which licence do I need?
Personal β One non-commercial project. Commercial β Ship paid products. Extended β Resell & white-label. The Licences tab compares them side by side.
On how many devices can I activate it?
1 seat on Personal, 5 seats on Commercial, unlimited seats on Extended.
How long do I get updates?
Personal: 1 year of updates, Commercial: 1 year of updates, Extended: lifetime updates, counted from your purchase.
Can I get a refund?
Yes β paid licences can be refunded within 14 days, straight from your order page.
Is the download safe?
The file was scanned with ClamAV when it was published. Its SHA-256 checksum is listed under Features β In the download, so you can verify the file you receive.
Do I need an account?
No. Checkout only needs your email. Signing in keeps all your purchases, keys and downloads together in My library.
More like this
AudioLens
Real-time audio analysis: FFT spectrum, onset and beat detection, and a full set of time- and frequency-domain descriptors..
β β β β β No reviews yetTTechHarbour$14.00BlueprintTCP
BlueprintTCP lets you connect to any TCP server and exchange data entirely from Blueprints β no C++ and no networking boilerplate.
β β β β β No reviews yetTTechHarbour$12.99BluetoothLink
Bluetooth Low Energy for Unreal - scan, connect, read, write and subscribe to BLE devices on Android and iOS.
β β β β β No reviews yetTTechHarbour$11.99ClusterLink
SocketCluster realtime client for Unreal - pub/sub channels, auth engine and JSON codec, usable from Blueprints.
β β β β β No reviews yetTTechHarbour$11.99