Quick answer: Godot 4 AnimationPlayer with a BlendSpace2D playing the default pose after save/load? Blend position is per-instance state - serialize and restore via custom save logic.

Save mid-animation. Load: character is in the default pose, not the blend the save captured.

Save blend params

Iterate AnimationTree parameters at save time. tree.get("parameters/Blend2D/blend_position") returns the current value; round-trip it through your save file.

Restore in _ready

After tree restoration, set the same parameter. The blend resumes from where it stopped.

Use a discrete state

For complex animation graphs, snapshot the entire parameters dict. Restoration is a single dict iterate.

“AnimationTree is stateful. Save systems that ignore animation state restore broken characters.”

Build a generic 'save animation state' helper that captures all parameters. Reusable across every character.