Quick answer: Godot 4 Input.get_action_strength returning zero immediately after a tree reload? Tree reload resets input state; first frame after has zero strength - poll on subsequent frame.

Player holds analog stick; reload tree; first frame's strength reads zero; second frame reads correct.

Wait one frame

await get_tree().process_frame after reload. State settles.

Or restore from snapshot

Snapshot input state pre-reload; restore post-reload. Lossless.

Avoid tree reload in gameplay

Tree reload is editor-time. Runtime should use scene change instead.

“Tree reload is a state reset. Reset has timing.”

If you tree-reload at runtime, the input state recovery is a known gap. Document.

Related reading