Skip to content
Michael Adaixo edited this page Dec 27, 2023 · 8 revisions

Flow Pilot

Flow Pilot is a UE plugin that answers the question: What if game play was handled with a behavior tree like data structure? Would this make designing, structuring, and handling gameplay easier? Flow Pilot uses a modular approach to handling gameplay flow. You'll find the common behavior tree like ideas with it, such as Sequence Tasks, Selector Tasks, Parallel Tasks, etc.

Join the Conversation on Discord : https://discord.gg/Qhh6wYyE

Use case

  • Run behavior when Activated via an event (e.g. Trigger activates a Cutscene, Open a Door if we have a Key)
  • Create smart object interactions (e.g. Approach Door by distance, check inventory for key, open door)
  • Handle level transitions (Fade, Spawn Players and AI, Play Background Music, UnFade, Start Game Timer, Listen to Player Death, Listen to Reach level goal, Fade, Load Next Level)
  • and many more I'm sure you'll find out when creating your game.

Ok but why?

Short Answer: Avoid Blueprint Spaghetti

Long Answer: I wanted to re-create a game I had made in Unity, but didn't want o handle game sequences in Blueprint. Seemed cumbersome and most likely there could be a better and faster solution. Plus making it modular and in Cpp allowed me to keep it as fast as I can. Also, I like the challenge, so why not.

Where do I start

The plugin is still very early in development, but you can grab the pre-release version from me. I'll have a few beta testers to try out FlowPilot first, before I eventually release it in the UE Marketplace. If people find it good enough and useful, then I'll think about reasonable pricing.

If this sound nice to you, head over to the FlowPilot discord to get the ball rolling.

You can also DM me @MichaelAdaixo on X

Main Classes

  • Flow Actor Component
    • This component runs the UFlowPilotAsset
      • add this component to any actor you want to be the owner of this flow control.
    • Provides an execution mode so we can run the flow once, while succeeding, and other modes.
  • Flow Actor
    • ready made actor that contains the UFlowActorComponent
    • you can inherit from this actor to add functionality to it

Tasks Types

We have 2 main Task categories:

  • FPTaskNode
    • Flow tasks are the main tasks to execute code.
    • They have a Tick method
    • They have a OnEnter list of Instant Tasks they execute when Entering
    • They have a OnExit list of Instant Tasks they execute when Exiting
  • FPInstantNode
    • Contain an Execute method that is ran OnEnter or OnExit of a FPTaskNode

Provided FPTaskNode

  • BlueprintBase
    • Class to inherit from to create your own BlueprintBase FPTaskNode
  • Delay
  • Spawn Class
  • Despawn Actor
  • Flow Actor Control
    • You can control Flow of another Actor
  • Flow Asset
    • Include FlowAsset into another Asset to keep re-usable pieces of gameplay modular.
  • LoadLevel
  • Loop
  • Parallel Node
    • Various success modes (all success, any success, all fail, any fail)
  • Selector
    • Will run task after task until one succeeds.
  • Sequence
    • Will run task after task until one fails.
  • Trigger Distance
  • Trigger Volume
  • Unload Streamed Level

Provided InstantNodes:

  • BlueprintBase
    • Class to inherit from to create your own BlueprintBase FPInstantNode
  • PlaySound
  • PlaySound2D
Clone this wiki locally