This execution action allows you to modify the following three types of data:
- Object Variables / Switches
- Database Data (including project-wide variables and switches)
- Node Properties
Each of these is explained below.
1. Object Variables / Switches
You can modify variables and switches defined in the object’s VariableSettings
or SwitchSettings
nodes.
However, the following variables and switches are read-only and cannot be changed:
Type | Name |
---|---|
Switch | is_locked , is_touching_portal |
Variable | object_id , stayed_area_id , visible_direction , x_speed , y_speed , player_id , controller_id , taken_damage |
Why Do These Read-Only Variables / Switches Exist?
They are needed for link conditions such as “variable/switch changed.”
Since it’s not possible to monitor node properties directly in link conditions, they are mirrored as internal variables/switches.
2. Database Data
You can modify entries in:
- User Database
- Project Variables
- Project Switches
You cannot access Type Presets or Sound Database through this action.
“Specify Record by Variable” Option
This lets you select a record (row) based on a variable’s value.
For example, if the variable is 5, the 5th row in the selected column will be targeted.
Use case:
Say you have an item database and want to show information based on the acquired item ID.
With this feature, you can handle all items within a single state, rather than branching for each ID.
3. Node Properties
You can modify properties of any node, not just those provided by ACTION GAME MAKER.
Examples:
- Enable “Boost Movement” in
MoveAndJumpSettings
to change movement type dynamically. - Toggle visibility of a
Sprite2D
using itsVisible
property. - Disable a hitbox by setting the
Disabled
property on aHitCollision
node. - Update the text of a
Label
node using string data from the database.
Behavior When Targeting the Parent Object
Only when the parent object is selected, the system does not check the target scene path.
Even if the actual scene differs from the specified one, as long as the property exists, it will work.
This allows for shared child objects like universal damage detectors.
Important Notes on Using Change Property
Changes Are Based on Index Order
Due to Godot’s design, this action uses index-based targeting.
That means it modifies “the Nth property from the top.”
If you change the order—like deleting a variable or moving nodes—existing actions may point to the wrong property.
Scene Path Is Not Auto-Updated
When targeting “Locked Object” or “Specified Object”, if you:
- Move the scene file
- Rename the file or its folder
→ The action may stop working.
That’s because paths are stored as plain text strings, not dynamic references.
While Godot updates paths automatically, ACTION GAME MAKER does not in this case to avoid triggering recursive loop errors.