Here’s the converted post, dashes and semicolons stripped, compounds opened up:
BazChangeNodePropertyAction
Sets a real, typed Godot property like modulate, visible, position, scale, or text on any node in your scene, including nodes that aren’t AGMaker objects.
Think of it as the missing half of the native Change Object Property. It can get a node from inside a Game Scene or a named node.
To help support my work, consider becoming a patron. ![]()
DOWNLOAD:
BazChangeNodePropertyAction.gd (34.8 KB)
Requirements
AGMaker 1.3.0+
Installation
- Download
BazChangeNodePropertyAction.gd(attached below). - Drop it into your project’s
custom_actions/folder. If that folder doesn’t exist, create it at the project root. A subfolder likecustom_actions/object/is fine. - That’s it. It’ll show up in the Add Action dialog under the Object / オブジェクト group. Nothing to enable.
What it does
Takes AGMaker’s float only property change and lets you set the real Godot property at its real type, the Color, Vector2, String, bool, or number the property actually wants.
- Any typed property.
modulate(Color),position/scale(Vector2),text(String),visible/flip_h(bool),z_index(int),rotation(float). Pick the value type and it writes it straight onto the node. - Single channels. Add a channel to touch just one part:
modulate:asets only the alpha,position:xsets only X. Channels take a Float value, so you can nudge one axis without rebuilding the whole vector. - Three ways to target. Pick one exact node from a scene, hit the first node by name in whatever scene is live, or change every member of a group at once.
- Crash safe. It checks the property exists and the value fits before writing, so a typo just gets skipped and logged instead of halting your logic.
- Editor conveniences. Picking or typing a property fills in the Value Type when the type is known (override it any time), and Node Type’s Browse All Classes… entry opens the editor’s own Add Node class tree.
- Self contained and shareable. One file, no autoload, no Project Settings, nothing extra to manage.
How to use
Add it to a state or transition, choose how to target the node at the top, then pick the property and value.
- Targeting is how the node is found. 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 the name you type, in whatever scene is live. In Group = every member of a group in the live scene.
- Target Scene / Target Node (Pick From Scene). The scene, then a node from its dropdown. You can also hand type a deeper path (e.g.
SceneLayer/BaseLayer/Player/Sprite2D) to reach inside a placed object. - Node Search Name (By Node Name). The name to find.
*and?work as wildcards (Torch*matchesTorch2). - Node Type + Group (In Group). The group whose members get changed. Node Type is optional and only fills the Property Name suggestions for you.
- Property Name. The Godot property, e.g.
modulate, ormodulate:afor a single channel. - Value Type + value. The kind of value (Float, Integer, Boolean, Text, Vector2, Color) and the value itself. Only the matching value field shows.
Example, a screen wide fade: In Group → your Lights group → Property modulate:a → Value Type Float → 0.0 dims every light in the room at once.
Tips
- Channels are Float only.
modulate:a,position:x,scale:yall take a Float value. That’s how you animate one axis without disturbing the rest. - Pick From Scene is scene gated on purpose. It only fires while its chosen scene is the active one, so the same action sitting on a shared object stays quiet everywhere else.
- Name convention nodes. Give the same node the same name in every room (
AmbientLight,Music) and By Node Name changes “the one in this room” without per scene setup. visibleon a GameObject fights back. AGMaker reasserts a GameObject’s ownvisible, so target a child node (or usemodulate:a) if you want to hide something and have it stay hidden.- Turn on Debug to print every skip (property missing, type mismatch, scene gate) and match to the Output panel while you’re wiring it up.
