Change Log

v1.5 (2018-07-11)

New features & improvements

  • Implemented submachine states: these will greatly help reduce the depth of the FSM hierarchies, since they allow to implement a new state machine right in the context object
  • The type of the editor module is now “Developer” instead of “Editor” to allow usage in the “Standalone Game” mode (thanks to MegaDizzy)
  • Now LaunchNode and GetActiveStateNode properly track the attached FSM in case it changes name
  • Network replication no longer marked as “experimental”

Bug fixes

  • Fixed a bug in network replication that made proxy FSMs trigger timeout transitions automously. Now the timeout occurs only on the authority and then propagated to proxies.
  • Added nullptr check to avoid a crash in GetActiveState (thanks to woodzong)
  • Fixed editor crash when diffing a LaunchNode with a node made before GC FSM v1.4

v1.4 (2018-05-30)

New features & improvements

  • Implemented experimental support for network replication. Be sure to read the documentation before using it.

v1.3 (2018-05-07)

New features & improvements

  • OnExit() notifications get as a parameter the name of the event that caused a transition. The name is ‘None’ if a sub-FSM was aborted due to a parent FSM transition. The name is an internal identifier if the transition was triggered by a timeout; you can get the internal name with the function GetTimeOutEventName().
  • C++ breaking change: the OnExit() virtual function of class UGCFSMState has changed signature to include the event parameter. Subclasses that override this function will need to be modified.
  • The objects returned by GetActiveFSMState() now have a GetStateName() accessor to get the name of the node in the FSM
  • The objects returned by GetActiveFSMState() that refer to local states have a GetGraphName() accessor to get the name of the graph that implements the state
  • Added function IsFSMRunning to check if a specific FSM is currently running

Bug fixes

  • Fixed a bug that prevented the execution of local states notification handlers
  • Fixed editor glitches when the implementation graph of a local state is deleted by the user
  • The name of a local state node should default to the graph name, if selected

v1.2 (2018-04-27)

New features & improvements

  • Local States: you can now provide the implentation (OnEnter/OnTick/OnExit functions) of a state right in the event graph of the object that runs the FSM. Not only you don’t need to define a separate blueprint class, but the state logic can now interact directly with the context object without using the Context variable. In particular, this also allows the state logic to interact with Timelines, that only live in the event graphs of their actor. (Kudos to Frederick Desimpel for suggesting the feature.)
  • Visual Logger messages have been re-designed and now include the names of the states, if provided, for ease of debugging
  • The default list of transition events in state nodes is now customizable in Project Settings/Plugin/GC FSM.

Bug fixes

  • Fixed a crash that could occur when a state node had an unconnected transition pin and the FSM receives a matching event. With this fix the event will be ignored and a warning will be emitted at compilation time.
  • Right-clicking on a state node should not open the “Create State Class” dialog

v1.1 (2018-04-14)

New features & improvements

  • Added support for Unreal 4.18
  • Added blueprint nodes to pause and resume the execution of all FSMs of a context object
  • Added blueprint nodes to make the FSMs of a context object run even if the game is paused
  • Added behaviour tree integration

v1.0 (2018-03-29)

Initial version.