GoActions
A small Godot addon for wiring node behavior visually, without creating a new script for every event.
GoActions provides a set of reusable action nodes that can trigger methods, sequence events, delay execution, tween properties, and destroy nodes, all using exported properties and scene composition.
đ¤ Why use GoActions?
If you find yourself creating lots of one-off scripts to trigger other nodes, this addon helps move that logic into the scene tree.
It is especially useful when you want:
- editor-driven gameplay flows
- node interactions without extra script files
- reusable action graphs across scenes
- simple command-style behavior composition
GoActions is inspired by common patterns like the command pattern and sequence/composite workflows.
⨠What it includes
GoActionCaller- call any method on a target node
- pass parameters from the inspector
GoActionPropertySetter- Set the value of a target node's property
GoActionSequence- execute child actions one by one
- wait for each child to finish before continuing
GoActionParallelSequence- run child actions in parallel
- complete only when every child finishes
GoActionDelay- pause a flow for a fixed duration
GoActionTween- tween a target node's property over time
- supports transition/ease settings and optional restore
GoActionTweenMethod- tween a target node's method over time
- supports transition/ease settings and optional restore
GoActionDestroy- call
queue_free()on a node when triggered
- call
GoActionDebug- print a timestamped debug warning during execution
đ§ How it works
GoAction is the abstract base type. It exposes a trigger() method and uses signals:
started()when execution beginsfinished()when execution completes
Concrete action nodes implement _trigger() to define their behavior. This lets you treat actions like reusable commands that can be composed in the scene tree.
âď¸ Installation
- Copy the
addons/goactionsfolder into your Godot project. - Open
Project > Project Settings > Plugins. - Enable
GoActions.
đ Getting started
Basic action caller
- Add a
GoActionCallernode. - Set
target_nodeto the node you want to control. - Set
method_nameto the function you want to call. - Add any required
parameters.
Then call trigger() from code or connect it inside a larger action flow.
Build a sequence
Use GoActionSequence and add child actions in order:
GoActionCallerGoActionDelayGoActionCaller
This creates a timeline like:
- method A runs
- pause
- method B runs
Run actions in parallel
Use GoActionParallelSequence to start multiple actions at once and wait until they all complete.
đ§Š Example
Root
ââ GoActionSequence
â ââ GoActionCaller (target_node = Player, method_name = "start")
â ââ GoActionDelay (duration = 0.5)
â ââ GoActionTween (target_node = Player, property_path = "position", final_value = Vector2(200, 100))
â ââ GoActionDebug (message = "Player move complete")
ââ GoActionDestroy (target_node = OldEnemy)
This setup is ideal for prototyping and iterating without adding specialized script logic to every node.
đĄ Use cases
- trigger animations from the editor
- sequence UI events without custom scripts
- delay gameplay actions for timing
- tween object properties from the inspector
- destroy temporary nodes after an event
- add debug output to verify action order
đ Notes
GoActiondoes nothing by itself until a subclass implements_trigger().GoActionSequenceandGoActionParallelSequenceare designed for composing reusable flows.- This addon is best when you want behavior configured in scenes rather than in many custom scripts.
- This project was inspired by the following presentation by ROKOJORI at GodotCon 2026. Credit to them for the inspiration :)
đ¤ Contributing
If you want to add new action types, improve documentation, or suggest enhancements, please open an issue. Feedback is welcome and appreciated!
Changelog for version v1.1
2026-07-26 15:49:06
No changelog provided for this version.