Skip to content

Introduction ​

FlowPilot runs gameplay flows made of Tasks. A flow is a FlowPilot asset: a tree of Tasks that an Actor runs through a FlowPilot Component. Use it for level scripting (music, fades, spawns, level streaming, win and lose conditions) or for local logic such as interactive objects.

If you know Behavior Trees, the ideas are the same: a Sequence runs its Tasks until one fails, a Selector runs them until one succeeds.

Core concepts ​

ConceptWhat it is
FlowPilot AssetA data asset holding the flow. Its Root is a Sequence.
FlowPilot ComponentRuns a FlowPilot asset on an Actor. Start, pause and stop it from Blueprint, or auto start it.
TaskOne step of the flow. It starts, runs for as long as it needs, then succeeds or fails.
Flow Actor ReferenceHow Tasks point at Actors: Self, an Actor In Level, or Actors found at Runtime by GameplayTag.
FlowPilot SubsystemTracks every FlowPilot Component and caches Actors found by GameplayTag.

Tasks that organise other Tasks ​

TaskRuns its TasksSucceeds when
SequenceOne after anotherAll succeed. Stops at the first failure.
SelectorOne after anotherOne succeeds. Stops at the first success.
ParallelAll at onceDepends on its Completion Type (any/all succeed or fail).
LoopIts single Task, N times or foreverAll iterations succeed.
Sub FlowAnother FlowPilot assetThat asset's flow succeeds.

Disabled Tasks are skipped. Every Task, built-in or your own, is listed in the Reference.

What's included ​

  • Content example map: try each Task on its own.
  • Game map template: a full level using streaming levels, spawning, gating, a simple character, progression and UI notifications.
  • Tag Actor Component: tags Actors so flows can find them by GameplayTag.
  • Example Component: barebones health and inventory used by the game map template.

Next steps ​

Questions or ideas: Discord or GitHub issues.