GC FSM for Unreal Engine

  • Home
  • GC FSM for Unreal Engine

Finite State Machines for everyone

GC FSM is a plugin for UnrealĀ® Engine that allows you to create event-driven, hierarchical finite state machines directly in blueprints.

Why do you need FSMs when you have behaviour trees, you ask? BTs are great, but they require quite a bit of machinery. For instance, BTs must be run by an AIController and also need a Pawn actor. But there are tasks that have complex logic that are not “behaviours” in the strictest sense and that are not logically run by an “enemy”. Think about menus, puzzles or even parts of the logic of your PlayerController. Can you use BTs for those? Probably yes, but not without making it more complicated than it should be. GC FSM allows you to implement those tasks using FSMs right in blueprints, for all kind of objects: actors, components, widgets, etc. with ease and without any gimmick to use a tool clearly designed for something else.

GC FSM is available on the Unreal Engine Marketplace!

A Finite State Machine created with GC FSM

Right there in the blueprint editor

The definition of a state machine is done entirely in the blueprint editor and can coexist and mix with “normal” blueprint logic. GC FSM does not rely on the behaviour tree or animation editor, so blueprint logic stays where it should be.

State classes for reduced complexity and re-use

You can create re-usable state classes for recurrent tasks both in blueprint and in C++. Blueprint state classes can run state machines too, allowing a natural hierarchical structure.

Event-driven for decoupling

Transitions between states are triggered by events, allowing you to de-couple the logic and complexity of the state machine from the higher-level game logic.

Not just actors

Any object can run state machines, not just actors. You don’t need to jump through hoops to create a state machine in non-actors, such as actor components.

Unlimited machines, unlimited nesting

An object can run multiple state machines at the same time and state objects can run state machines too, allowing for natural hierarchical structure.

Timeouts and deferred events

States that are meant to be transient can have a timeout so they are exited automatically. A state can keep track of events it doesn’t handle and pass them to the next state, thus ensuring that important events are eventually handled in the right context.

Integrated debugging

You can debug state machines within the blueprint editor itself or monitor the flow of events in the Unreal Visual Logger.

Documentation Pages