v1.7.6 (upcoming)
New features & improvements
- Improved debug support for class states: now the name of the object in the “Debug filter” dropdown list include the name of the context object and the FSM that created the state
Bug fixes
- Fixed bug: there was a regression where a class state could not be debugged, since it was not listed in the “Debug filter” dropdown list (thanks to Archizeff and T.Mao for their reports)
v1.7.5 (2019-05-28)
New features & improvements
- Added support for Unreal Engine 4.25
v1.7.4 (2019-02-07)
Bug fixes
- Fixed bug: attaching an FSM to a widget may prevent the widget to be deallocated by garbage collection, leading to memory leak
v1.7.3 (2019-01-31)
Bug fixes
- Fixed critical bug: FSM unexpectedly stops running and causes “event not triggered” notifications
- Fixed critical bug: FSM keeps ticking, while its context object is being destroyed, causing assertion to be triggered
v1.7.2 (2019-01-21)
Bug fixes
- Fixed bug: GetActiveState() can’t retrieve state of a submachine fsm
- Fixed bug: default value of the “State Class” pin of the GetActiveState node is invalid
- Improved debug balloon text of submachine FSMs
v1.7.1 (2019-12-19)
New features & improvements
- Added support for Unreal Engine 4.24
v1.7 (2019-09-11)
New features & improvements
- Implemented “Non Replicated with History” Submachine State
Bug fixes
- When restoring a snapshot, if the FSM is already running and the active state is the target state, the state is not exited and re-entered
v1.6 (2018-08-27)
New features & improvements
- Implemented FSM snapshots to save and restore FSM states
v1.5.3 (2018-08-20)
Bug fixes
- Fixed C++ access control errors that were blocking nativization (thanks to eanticev)
- Fixed bogus “state class has a Context variable of an incompatible type” error message during nativization
- Fixed Garbage Collect issues that caused FSMs to vanish unexpectedly on Unreal 4.20 (thanks to eanticev, Albie_123 and woodzong)
v1.5.2 (2018-07-31)
New features & improvements
- Added official support for Mac and iOS (requires Unreal Engine 4.20)
v1.5.1 (2018-07-26)
New features & improvements
- Support for Unreal Engine 4.20
- Added deferred proxy FSM initialization
Bug fixes
- Fixed another editor crash when diffing a blueprint with a version made before GC FSM v1.4
- Silenced bogus “FSM already started” warning on proxy FSMs
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.