SkillAgentSearch skills...

UE4EnhancedCodeFlow

This code plugin for Unreal Engine provides functions that drastically improve the quality of life during the implementation of game flow in C++.

Install / Use

/learn @zompi2/UE4EnhancedCodeFlow
About this skill

Quality Score

0/100

Supported Platforms

Universal

README

Enhanced Code Flow for Unreal Engine

This code plugin provides functions that drastically improve the quality of life during the implementation of game flow in C++.
It works very well with gameplay programming, UI programming with a lot of transitions or in any other situation.

The plugin works on Unreal Engine: 4.27, 5.2-5.7.

Table of content


Plugin prebuilt binaries

If you don't want to build the plugin from the source you can get the prebuilt binaries:

| UE version | Plugin version | Link | | :--------- | :------------- | :--- | | 4.27 | 3.8.0 | Zip | | 5.3 | 3.8.0 | Fab | | 5.4 | 3.8.0 | Fab | | 5.5 | 3.8.0 | Fab | | 5.6 | 3.8.0 | Fab | | 5.7 | 3.8.0 | Fab |

Back to top

Other platforms support

The plugin has been tested by me only on Windows platform, however, there should be no obstacles to use them on any other platform supported by Unreal Engine.

Thanks to Tutul- for testing and confirming that the plugin also works on UE5.6 on Linux/LinuxArm64 and Android. On Linux, the demo project was compiled on a 6.12.34-1-MANJARO and ran on the same system. LinuxArm64 was cross-compiled and ran on an emulation of Ubuntu-ARM For the Android target, the project work with the default Unreal recommandation for the platform target. However, the coroutines requires at least the NDK r26, but the target can still follow Unreal's minimum and target API level.

Feel free to test the source code on any platforms you can imagine :)

Back to top

Example Project

The example project wich uses this plugin can be found in this repository. Example project is compatible with the newest version of the plugin only.

!!!IMPORTANT!!!
Currently Example Project will work with Unreal Engine 5! The last version of the example project that can be run on UE4 can be found here. This is a legacy example project which works with ECF 3.1.1. It is not guaranteed that it will work with the newest version of ECF.

Main

Back to top

Used In

Enhanced Code Flow has been used in the following projects:

If you are using ECF in your project, let me know :)

Back to top

Contact

If you have any question or suggestion regardles this plugin simply add an Issue to the github project. I will try my best to answer it quickly :) You can also write an e-mail to me: zompi2@gmail.com, however there is a risk that it will be filtered as spam.

Back to top

Support and Contribution

This plugin is free and open source forever. However, if you want to show appretiation to my work any support will warm my heart.
If you have any suggestions on how to fix or improve this plugin feel free to create a Pull Request.

Back to top

Changelog

The Changelog has been put into this file: Changelog.txt

Back to top

LEGACY VERSIONS

Version 3.1.1 was the last one that had an example project implemented in UE4. Next versions' example projects require UE5 to run.
Version 3.1.1 can be found on a separate branch here: Legacy-3.1.1

Version 3.0.0 will probably break code and Blueprint nodes from previous version. Update with caution!
Version 2.1.2 can be found on a separate branch here: Legacy-2.1

Version 2.0.0 will probably break Blueprint nodes from previous versions. Update with caution!
Version 1.6.1 can be found on a separate branch here: Legacy-1.6

Back to top

Installation

  1. Get ECF plugin. You can do this by either:
    • Getting it from the Epic Games Launcher. It will be installed in the Engine's directory: Engine/Plugins/Marketplace/EnhancedCodeFlow.
    • Cloning it or downloading it from this repository and putting it into your project's (MyProject/Plugins/EnhancedCodeFlow) or engine's (Engine/Plugins/EnhancedCodeFlow) plugins directory.
  2. Add "EnhancedCodeFlow" entry to the PublicDependencyModuleNames list in your project's .Build.cs file.
  3. Enable the plugin in the Editor's Plugins manager (or by changing manually your project's .uproject file).
  4. If you want to use this plugin in your code add #include "EnhancedCodeFlow.h to the file in which you want to use the plugin.

Check out the Example Project to see how the plugin is integrated into it.

Back to top

Usage

Run the following functions to use enhanced code flow!

Note that every function must receive a pointer to an owner that runs this function in it's first argument.
The owner must be able to return a World via GetWorld() function.

Some of the Actions can be resetted (about - Resetting Actions) and their times can be altered (about - Altering Actions Time).

Delay

Execute specified action after some time. This can be useful in many various situations. Everytime when I was using a Delay node in blueprints I wish there was an equivalent of it in c++.
The bStopped tells if this action has been stopped by a Stop function. This argument is optional. If a time parameter is set to 0 it will execute in the next frame. If a time parameter is set less than 0 the action will not execute and will print an error to the log.
Can be resetted. It's time values can be altered.

FFlow::Delay(this, 2.f, [this](bool bStopped)
{
  // Code to execute after 2 seconds.
});

An ECF-Delay BP node has few advantages over the built in Unreal's Delay node.
You can plan to execute delayed code without delaying the whole Blueprint, you can cancel the delayed code's execution or make the dilation game pause and time dilation independent.

Delay

Back to actions list
Back to top

Delay Ticks

Execute specified action after some ticks. Can be useful if we want to execute some code in next game tick.
The bStopped tells if this action has been stopped by a Stop function. This argument is optional. If a number of ticks parameter is set to 0 it will execute in the next frame. If a number of ticks parameter is set less than 0 the action will not execute and will print an error to the log.
Can be resetted. It's time values can be altered.

FFlow::DelayTicks(this, 1, [this](bool bStopped)
{
  // Code to execute after 1 tick.
});

ecfticks

Back to actions list
Back to top

Add Ticker

Creates a ticker. It can tick specified amount of time or until it won't be stopped or when owning object won't be destroyed.
Useful for actors and components that you don't want to be tickeable, but needs one tick to do something.
Can be resetted. It's time values can be altered.

Run ticker for 10 seconds

Related Skills

View on GitHub
GitHub Stars134
CategoryDevelopment
Updated1d ago
Forks19

Languages

C++

Security Score

100/100

Audited on Mar 27, 2026

No findings