node_set_property
Set a property on a Godot node by path, automatically coercing values to match the property type, including Vector2/3, Color, NodePath, and Resource.
Instructions
Set a property on a node.
Verify the property name first — call node_get_properties (or read
godot://node/{path}/properties) to confirm the exact name and type
before writing. Guessing common Godot names often fails with
PROPERTY_NOT_ON_CLASS because Godot's actual properties differ from
intuition (e.g. Camera3D uses fov/current, not field_of_view;
Sprite2D uses texture, not image; Node3D uses
position/rotation/scale, not transform.origin).
Coerces value to the property's type:
Vector2/Vector3: dict with x/y/z keys.
Color: dict {r,g,b,a} or hex string ("#ff0000").
NodePath: string ("../Other/Node").
Resource: res:// path string (loads + assigns); null/"" clears.
{"__class__": "BoxMesh", ...}creates a built-in resource owned by this property. After scene_save it is serialized in-place as a[sub_resource]inside the .tscn; it is not a reusable .tres. For sharing, first callresource_manage(op="create", params={"type": "BoxMesh", "properties": {...}, "resource_path": "res://meshes/box.tres"}), then pass that res:// path here (or use resource_manage(op="assign")).StringName: plain string. Array/Dictionary: JSON list/object.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | Scene path relative to the edited scene root (e.g. "/Main/Camera3D"), NOT runtime "/root/..." paths. | |
| value | Yes | New value. Pass null (or "" for resources) to clear. | |
| property | Yes | Property name (e.g. "fov", "position", "mesh"). Must match Godot's exact identifier — introspect with ``node_get_properties`` if unsure rather than guessing. | |
| scene_file | No | Optional editor-scene guard. | |
| session_id | No | Optional Godot session to target. Empty = active session. |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||