Dependencies /
One required
Core uses only Core, CoreUObject, Engine, and GameplayTags. StateTree, BT, AI Module, Navigation, Smart Objects, and Gameplay Debugger live in optional modules you can disable.
[ Intent Forge / GOAP for Unreal Engine 5 ]
Plans intent. Executes anywhere.
A Goal-Oriented Action Planning framework for Unreal Engine 5 with a first-class anti-flap toolkit, so your agents actually stay stable.
[ Why Stable GOAP ]
Intent Forge is a planner: you declare goals and actions, and an A* search invents the sequence that gets the agent from where it is to where the goal wants it. Every time the world changes, it replans.
That replan loop is where most GOAP implementations break. Two goals score near-equal — say Patrol and Chase. The planner picks Patrol; a tiny sensor jitter pushes Chase ahead a tick later; the agent switches mid-step. Next tick Patrol wins back. The agent stutters between goals, visibly twitching instead of acting. This is called flapping (or thrashing).
It's been a known production problem for 20 years. Éric Jacopin's Game AI Pro 2 chapter (2015) showed F.E.A.R.'s own rats kept replanning long after the player had left the level. Chris Conway's GDC 2015 retrospective made the same point a decade after Jeff Orkin's original F.E.A.R. paper.
Most GOAP plugins partially address it — usually a single re-evaluation throttle or a priority bias — and call it done. Flap doesn't have one source, so a single patch doesn't fix it. Intent Forge ships five orthogonal layers at the five natural points in the pipeline:
The currently-active goal gets a small score bonus. Near-equal ties go to whatever the agent is already doing.
Hysteresis on derived booleans. Once IsLowHealth flips true it stays true until health rises clearly above the threshold.
Actions can't be preempted mid-step for a configurable window, unless the new goal carries a higher interruption level.
Noisy raw sensor values get filtered before the planner sees them. Distance jitter no longer drives goal flips.
If a replan produces the same first action, the running executor keeps running. No tear-down churn.
Why five layers and not one? Flap born in noisy sensor data won't be caught by a selection-layer fix. Hysteresis in derived booleans won't help if the executor gets torn down every tick. Each family lives at the layer where the signal it stabilises is born: attack the flap at the earliest layer that makes the signal clean, and the downstream layers see stable input.
[ Next ]
Green and red lights, then a five-question decision check. Read this before the Quickstart.
OpenFrom empty project to a running plan in 10–15 minutes. The shortest path end-to-end.
OpenPlanner, dispatcher, executor. The planner-doesn’t-execute rule and why it matters.
OpenNine worked examples Beginner → Advanced. Hello-World through a multiplayer-replicated patrol guard.
OpenFive families that keep GOAP agents from oscillating between near-equal goals.
OpenTwenty-five recipes for common AI design problems. Sensors, executors, dispatchers, debugging.
OpenReproducible benchmarks backing the 2000-agent claim. Replan p99 budgets, sensor costs.
OpenAnti-Flap deep dive, planner algorithms, HTN vs GOAP, networking ADR, ecosystem scan.
Open[ Why ]
Dependencies /
Core uses only Core, CoreUObject, Engine, and GameplayTags. StateTree, BT, AI Module, Navigation, Smart Objects, and Gameplay Debugger live in optional modules you can disable.
Runtime /
Works with StateTree, Behavior Trees, custom Blueprint AI, or the built-in dispatcher subsystem (which works with no AI runtime at all).
Signature /
Five orthogonal anti-flap layers — goal momentum, Schmitt latched bool facts, min-commit time, EMA scalar smoothing, structural plan reuse — keep agents from oscillating.
Authoring /
Every C++ extension point has a Blueprintable companion. Designers ship goals, actions, costs, considerations, executors, and sensors without engineer involvement.
Scope /
Single-agent planning, sync A*. Multi-agent coordination, HTN, and async planning are explicitly out of scope. Server-authoritative replication is the v1.0-alpha design target. See the networking ADR.
Benchmarks /
p99 < 0.5 ms at 2000 agents on a single thread. Reproducible benchmark suite. Verify the numbers yourself.