ReasonablePlanningAI
Designer Driven Unreal Engine 4 & 5 - UE4 / UE5 - AIModule Extension Plugin using Data Driven Design for Utility AI and Goal Oriented Action Planning - GOAP
Install / Use
/learn @hollsteinm/ReasonablePlanningAIREADME
Reasonable Planning AI
Discuss the future of this project with us in real time on our Discord
![]()
Create an AI that can think for itself and plan a series of actions using only a data driven Editor. Your players will be astounded by the smart responsiveness of the AI to your game environment and marvel at it's ability to adapt and act on the fly!
Reasonable Planning AI is a drop in solution to provide a robust design and data driven AI that thinks for itself and plans it's actions accordingly. One can create AI with no Blueprints nor C++. Reasonable Planning AI acheives this through the Reasonable Planning AI Editor. A robust Unreal Engine editor that lets you predefine a set of actions, a set of goals, and a state. All logic is achieved through the use of various data driven constructs. These components put together are known as Reasonable Planning AI Composer.
Reasonable Planning AI is also extensible using either Blueprints or C++. You can opt to extend composer with custom RpaiComposerActionTasks or go a pure code route and implement the Core Rpai components.
Reasonable Planning AI is also cross-compatible with Behavior Trees and can execute AITasks. It also comes with an extension to integrate Composer designed Reasonable Planning AI into an existing Behavior Tree through a pre-defined BTTask node within the plugin.
Reasonable Planning AI utilizes the visual logger for easier debugging of your AI. Reasonable Planning AI Editor also has a builtin hueristics testing tool. You can define a given starting state, and ending desired state, and visual the goal the AI will select under those conditions as well as the action plan it will execute.
Design of Reasonable Planning AI
The core design of the Reasonable Planning AI when using the Core components and the Core RpaiBrainComponent follows a very simple path of execution. This path of execution is illustrated in the below flow chart.

Text description of the above flowchart. A Start Logic method is invoked. A goal is selected, determined by the current state. If a goal is not determined, then the AI will idle once, else the goal defines it's desired state and it is applied to a planner used to determine an action plan. If a plan is not able to be formulated, then it will attempt a new evaluation of a desired goal. If a plan is found, it will continue to execute the plan until there are no more actions available within the plan or a command to interrupt the execution of the plan is received. After any of those exit conditions, a goal is determined from a current state and the process repeats.
There are two layers to the Reasonable Planning AI that make it a robust AI solution for your project. These layers are known as Core and Composer.
Core
There are five (5) Core components implementing Reasonable Planning AI that builds the foundation of the plugin.
- RpaiGoalBase
- RpaiActionBase
- RpaiPlannerBase
- RpaiReasonerBase
- RpaiBrainComponent
The main execution engine for Reasonable Planning AI is the RpaiBrainComponent. This is a UBrainComponent from the AIModule used to execute AI logic and interact with the rest of the AIModule defined components. The two logic driving classes are RpaiRpaiReasonerBase and RpaiRpaiPlannerBase. The RpaiRpaiReasonerBase class is used to provide implementations for determining goals. Out of the box, there are two implementations provided RpaiReasoners/RpaiRpaiReasoner_DualUtility and RpaiReasoners/RpaiRpaiReasoner_AbsoluteUtility. Please read the documentation of each class to understand thier capabilities. For goal reasoning there is one provided solution. This solution is RpaiPlanners/RpaiRpaiPlanner_AStar. This implementation determines an action plan by using the RpaiGoalBase::DistanceToCompletion and RpaiActionBase::ExecutionWeight functions for the cost heuristic.
RpaiGoalBase and RpaiActionBase are the classes most developers will implement when not using Composer classes to build a data drive AI within the editor. RpaiGoalBase provides functions for determining value (commonly referred to as utility) for a given desired outcome. It also provides functions for determining the effort to accomplish the given goal from a given current state. RpaiActionBase provides functions for heuristics to calculate the effort to do an action given a state. It also provides methods for execution. These execution methods are the primary drivers for having the AI act. These functions are similar to the UE baked in AI BTTasks.
Composer
The Composer layer is built on top of the Core layer of Reasonable Planning AI. Composer brings the value of Reasonable Planning AI to Game Designers and others without needing to wire Blueprints or write C++. Because Composer is built on top of Core, any Programmers will be able to intergrate into the Composer framework by simply by inheriting from one of the Core classes or from the extend Composer defined classes. The Composer defined classes are listed below.
- RpaiComposerGoal
- RpaiComposerAction
- RpaiComposerBrainComponent
- RpaiComposerActionTask
- RpaiComposerActionTaskBase
- RpaiComposerStateQuery
- RpaiComposerStateMutator
- RpaiComposerDistance
- RpaiComposerWeight
- RpaiComposerBehavior
The relationship of these classes to each other are defined below. For additonal details please refer to the documentation of the classes either in the Unreal Engine Editor or C++ comments. Ultimately the classes are used to configure data queries to provide cost, weight, applicability, and mutations during the goal selection and action planning processes. RpaiActionTasks are predefined actions your AI can do within the game world. RpaiComposerBrianComponent is an extension of RpaiBrainComponent that adds a factory method to create goals and actions plans from the defined RpaiComposerBehavior data asset.
-
RpaiComposerGoal
- RpaiStateQuery
- RpaiComposerDistance
- RpaiComposerWeight
-
RpaiComposerAction
- RpaiComposerStateQuery
- RpaiComposerWeight
- RpaiComposerStateMutator
- RpaiComposerActionTask
-
RpaiComposerBehavior
- RpaiComposerAction[]
- RpaiComposerGoal[]
- RpaiState: SubclassOf
-
RpaiComposerBrainComponent
- RpaiComposerBehavior
To start using Reasonable Planning AI Composer within the Editor, simply create a new DataAsset within your Content folder and select the type RpaiCmposerBehavior. From there you will be able to define and configure your new AI! See below for a simple tutorial.
Versioning
Reasonable Planning AI releases are versioned. In source code they are tagged commits. The versioning follows the below format (akin to Semantic Versioning)
major.minor.patch-d.d-{alpha|beta|gold}
The first tuple of major.minor.patch is the Reasonable Planning AI version. Explanations of the numbers are as below:
major Breaking changes were introduced, significant changes to the behavior of functions, and deprecated functions and fields have been removed.
minor New fields or functions were added. Some fields or functions may be marked as deprecated. No breaking changes introduced.
patch Bug fixes, no new field additions or functions introduced. May have a change in behavior.
The second tuple of d.d is the version of Unreal Engine this release is compatible with. This means there could be multiple versions of Reasonable Planning AI to indicate UE compatibility.
The last part is the {alpha|beta|gold} indicating the stability of the release.
alpha builds DO NOT honor the
major.minor.patchpromises of changes. These releases compile and pass all tests. Releases marked asalphacan be dramatically different in between versions and upgrades are not advised. DO NOT use alpha for your game project or product.
beta builds are stable releases that are anticapted to be upgraded to
gold. They meet all requirements and are fully featured. Breaking changes are not anticpated and beta builds will honor the versioning promises.
gold A production release. Fully featured and ready to go. May be up on the Marketplace (pending approval)
Quick Start Tutorial AI
You can give Reasonable Planning AI a quick try by configuring a simple AI by following the steps below. The simple AI will have a goal to move towards a target location and an action that involves having the AI walk to that target location. When a Reasonable Planning AI is designed with a 1:1 Goal to Action design, it is the equivalent of creating a Utility AI. This is what this tutorial will create.
This works for both Unreal Engine 4.27.2 and Unreal Engine 5.0.2. Screenshots are taken in UE5, but the workflow is the same with the exception of step 1.a where the Place Actors window should already be open in 4.27.2.
- Create a New Project (Third Person C++) with Starter Content or open an existing project and create a new Basic world with Navigation
- In your project select New -> Level. In the dialogue select "Basic".
- Place a Navigation Volume from the "Place Actors" panel. If you do not see it, open by selecting Window -> Place Actors. Search for "Nav" and drag and drop "NavMeshBoundsVolume" into the Level Viewport.

- Set Location to 0,0,0
- Set the Brush X and Y values to 10000.0 and the Z value to 1000.0

- To confirm navigation covers the floor, press
Pto visualize the NavMesh. It should have a green overlay.

- Crea
Related Skills
diffs
334.5kUse the diffs tool to produce real, shareable diffs (viewer URL, file artifact, or both) instead of manual edit summaries.
openpencil
1.5kThe world's first open-source AI-native vector design tool and the first to feature concurrent Agent Teams. Design-as-Code. Turn prompts into UI directly on the live canvas. A modern alternative to Pencil.
HappyColorBlend
HappyColorBlendVibe Project Guidelines Project Overview HappyColorBlendVibe is a Figma plugin for color palette generation with advanced tint/shade blending capabilities. It allows designers to
ui-ux-pro-max-skill
49.8kAn AI SKILL that provide design intelligence for building professional UI/UX multiple platforms
