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.
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.
GoActionCaller- call any method on a target node
- pass parameters from the inspector
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 property 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
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.
- Copy the
addons/goactionsfolder into your Godot project. - Open
Project > Project Settings > Plugins. - Enable
GoActions.
- 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.
Use GoActionSequence and add child actions in order:
GoActionCallerGoActionDelayGoActionCaller
This creates a timeline like:
- method A runs
- pause
- method B runs
Use GoActionParallelSequence to start multiple actions at once and wait until they all complete.
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.
- 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
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 :)
If you want to add new action types, improve documentation, or suggest enhancements, please open an issue. Feedback is welcome and appreciated!