Event-based Hierarchical State Machine (HSM). Event-based Hierarchical State Machine (HSM) that manages [LimboState] instances and facilitates transitions between them. LimboHSM is a [LimboState] in itself and can also serve as a child of another LimboHSM node. Establishes a transition from one state to another when [param event] is dispatched. Both [param from_state] and [param to_state] must be immediate children of this [LimboHSM]. Optionally, a [param guard] function can be specified, which must return a boolean value. If the guard function returns [code]false[/code], the transition will not occur. The guard function is called immediately before the transition is considered. For a state-wide guard function, check out [method LimboState.set_guard]. [codeblock] func my_guard() -> bool: return is_some_condition_met() [/codeblock] Changes the currently active substate to [param state]. If [param state] is already active, it will be exited and reentered. [param state] must be a child of this [LimboHSM]. Returns the currently active substate. Returns the currently active leaf state within the state machine. Returns the previously active substate. Returns [code]true[/code] if there is a transition from [param from_state] for a given [param event]. Initiates the state and calls [method LimboState._setup] for both itself and all substates. Removes a transition from a state associated with specific [param event]. When set to [code]true[/code], switches the state to [member initial_state] and activates state processing according to [member update_mode]. Calls [method LimboState._update] on itself and the active substate, with the call cascading down to the leaf state. This method is automatically triggered if [member update_mode] is not set to [constant MANUAL]. Useful for defining a transition from any state. The substate that becomes active when the state machine is activated using the [method set_active] method. If not explicitly set, the first child of the LimboHSM will be considered the initial state. Specifies when the state machine should be updated. See [enum UpdateMode]. Emitted when the currently active substate is switched to a different substate. Update the state machine during the idle process. Update the state machine during the physics process. Manually update the state machine by calling [method update] from a script.