Examples

Hello world

The smallest possible Intent Forge agent — one goal, one action, one fact. The entire authoring surface in 20 lines. Use this to verify your install and feel the model click.

[ Example ]

Hello, Intent Forge

One goal, one action, one fact. The entire authoring surface fits on one screen. The point isn't that it's useful; it's that you can see the whole API in 20 lines. If the model clicks here, the Quickstart and everything after it is inevitable.

DIFFICULTY ▮▯▯ BEGINNERSHIPS AS WALKTHROUGHBUILD ~5 MIN

Anatomy — the whole agent in three assets

◢ Spec

Anatomy

Plus a DA_Archetype_Hello that bundles all three, and a pawn with a UIntentForgeComponent pointing at the archetype. There is no fourth piece.

DA_Schema_HelloFactSchemaAsset
Facts[0]
bSatisfied : Bool
TriggersReplan
true
DA_Action_MarkSatisfiedIntentAction
Preconditions
(none)
Effects
Set bSatisfied = true
Executor
Wait (1s)
Cost
Constant 1.0
DA_Goal_BeSatisfiedIntentGoal
Desired State
bSatisfied == true
Considerations
Constant 1.0
Priority
1.0

Build it

Create the schema. Content Browser → right-click → Miscellaneous → Data AssetFactSchemaAsset, name DA_Schema_Hello. Open it; add one Fact row: Id bSatisfied, Type Bool, Triggers Replan true.

Create the action. Right-click → Miscellaneous → Data AssetIntentAction, name DA_Action_MarkSatisfied. Preconditions: empty. Effects: one row, Set Bool FactbSatisfied = true. Executor Class: Wait. Default Params: Override Duration = 1.0. Cost Strategy: Constant, Cost = 1.0.

Create the goal. Right-click → Miscellaneous → Data AssetIntentGoal, name DA_Goal_BeSatisfied. Desired State: one row, bSatisfied == true. Considerations: Constant 1.0. Priority: 1.0.

Bundle into an archetype. Right-click → Miscellaneous → Data AssetIntentArchetypeAsset, name DA_Archetype_Hello. Schema: DA_Schema_Hello. Goals: DA_Goal_BeSatisfied. Actions: DA_Action_MarkSatisfied.

Attach to a pawn. Open any pawn → Add Component → IntentForge Component. Set Archetype to DA_Archetype_Hello. Leave Dispatch Mode Auto.

Play. Drop the pawn in a level. Hit Play. Open Window → Developer Tools → IntentForge Live Inspector.

◢ T+

Expected behaviour

  1. t = 0Agent selected in Inspector

    bSatisfied = false. Plan contains one step: MarkSatisfied. Status: Running.

  2. t = 1sWait executor completes

    Effects apply: bSatisfied = true. Planner re-evaluates. Goal satisfied. Plan empties.

  3. t > 1sAgent idle

    No goal needs satisfying.

What just happened, in four bullets

  1. The component asked the planner for a plan toward BeSatisfied.
  2. The planner found exactly one action whose effect satisfies the goal, and returned a 1-step plan.
  3. The dispatcher subsystem spawned a UWaitExecutor, ticked it for 1 second, then reported success.
  4. The component applied the action's effect, re-planned, found the goal already satisfied, and emptied the plan.

If those four bullets make sense, you understand Intent Forge. Everything else is layering complexity on top of this loop.

Why this example is here

Most GOAP tutorials open with a 5-action, 3-goal, 10-fact agent and walk you through the planner's search visualisation. That's intimidating. This page is the opposite — the smallest agent that exercises every part of the pipeline (plan, dispatch, execute, apply effect, replan).

If something about the model clicks here, the rest is just more of the same with different action sets and goal mixes.

◢ Next

Try this next

On this page