Gokudomatic
eco-state-machine
Finite state machine script that supports timers, condition evaluation and imbricated statements.This script has no depency and should be compatible with any Godot version. Installation:Copy the fsm.gd script file in your project.Usage:You don't need to change your existing code. Simply add this code where you need the machine :onready var my_fsm=preload("fsm.gd").new()my_fsm.add_state("state1")my_fsm.add_state("whatever state")my_fsm.add_link("state1","whatever state","condition",[self,"my_condition1","expected value to switch"])my_fsm.set_state("state1")func my_condition1(): return some_valueThen in a loop, like _process(delta), call :my_fsm.process(delta)To catch the signal when the current state changes:my_fsm.connect("state_changed",self,"on_state_changed")More documentation and examples on the Github page.