Manual: Action – Change Object Property

This execution action allows you to modify the following three types of data:

  1. Object Variables / Switches
  2. Database Data (including project-wide variables and switches)
  3. 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 its Visible property.
  • Disable a hitbox by setting the Disabled property on a HitCollision 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.


:warning: 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.