[Custom Action] Baz Call Node Method Action

BazCallNodeMethodAction

Calls any method on any scene node, including nodes that aren’t GameObjects, with up to 8 typed arguments. Think of it as the missing half of Invoke Script, that action can call a method by name but it can never pass arguments.

This is the sibling of Baz Node Property Change Action. That one sets what a node is, this one calls what a node does.

To help support my work, consider becoming a patron. :folded_hands:

DOWNLOAD:
BazCallNodeMethodAction.gd (68.1 KB)

Requirements

AGMaker 1.3.0+

Installation

  1. Download BazCallNodeMethodAction.gd (attached below).
  2. Drop it into your project’s custom_actions/ folder. If that folder doesn’t exist yet, create it at the project root.
  3. That’s it. It’ll show up in the Add Action dialog under the Object / オブジェクト group. Nothing to enable.

What it does

Gives you a “call this method on that node” action there’s no real built in for, arguments included, which is the part nothing native can do.

  • Calls any method with typed arguments. Up to 8 arguments, each typed Int / Float / Bool / Text / Path / Select / Vector2 / Color / Node.
  • Arguments come from anywhere. Each argument independently picks its source. A Constant, a Project Variable, a Switch, a Database cell, another node’s Property, or a Node itself.
  • Four ways to target. Pick a specific node from a scene, find the first node by name, hit every member of a group, or call the object the script is running on (or one of its own children).
  • A method list that’s actually useful. The Method Name dropdown only shows commands you’d actually call on the selected node’s class, behaviors like play, move_and_slide, queue_free, not hundreds of getters and property setters. Free typing can still call anything.
  • Auto filled arguments. Picking a method from the list sizes the argument list to match and stamps each argument’s type from the method’s own signature, you just fill in the values.
  • Sees inside placed objects. Pick From Scene follows instanced sub scenes, so you can target a placed object’s own AnimationPlayer or Sprite2D directly.
  • Self contained and shareable. One file, no autoload, no Project Settings, nothing extra to manage.

How to use

Add it to a state, pick how to find the node, then pick the method. The argument fields build themselves.

  • Targeting how to find the node(s). Pick From Scene = choose a scene and one of its nodes (only runs while that scene is active). By Node Name = the first node with that name in the live scene (* and ? wildcards work, e.g. Torch*). In Group = every member of a group in the live scene. This Object = the object this visual script runs on, or a relative child of it (e.g. its own AnimationPlayer), works in whatever scene the object appears in.
  • Node Type (By Node Name / In Group) optional class used only to fill the method list. Pick Browse All Classes… at the top to choose from the editor’s full class tree, or leave Any and type the method yourself.
  • Method Source Pick From List reflects the class’s methods into a dropdown. Type It Myself is a plain text field, the only way to call a GDScript method you wrote yourself.
  • Method Name the method to call. Picking from the list auto sizes and auto types the arguments below.
  • Argument Count how many arguments to pass (0 to 8). Each argument gets a Type, a Source, and a value field.
  • Debug Enabled prints skips (no target, missing method) and successful calls to Output.

Example, playing an animation on your own object: Targeting = This Object → child path AnimationPlayer → Method Name = play → 1 argument, Type Text, Source Constant, value walk. That’s the call Invoke Script could never make.

Example, opening a door by group: Targeting = In Group → group doors → Method Name = open (Type It Myself, since it’s your own script method) → every door in the scene opens at once.

Tips

  • Reach script methods with Type It Myself. The dropdown lists a class’s built in methods, methods you wrote in your own GDScript won’t show up there, switch Method Source to Type It Myself and type the name.
  • Prefer queue_free over free. The list only suggests queue_free, deleting a node instantly mid script is a crash risk, the queued version is the safe spelling of the same thing.
  • Changing a property? Use the sibling. If the “method” you want is really set_something(value), Baz Node Property Change Action is the cleaner tool, that’s why plain property setters are kept out of this dropdown.
  • Shrinking Argument Count never loses values. Lower it and raise it again, the earlier entries come back.
1 Like