Quick answer: Godot 4 C# scripts instantiated via PackedScene.Instantiate() showing empty Export properties? Defaults defined in C# field initializers don't propagate to the scene - set defaults in the editor.
Spawned NPC: HP=0, despite C# field default 100.
Set defaults in editor
Scene's inspector value is the default. Field initializers run before inspector load; inspector overrides them with whatever was saved.
Or initialize in _Ready
If HP == 0, set to 100. Defensive default at runtime.
Audit scene defaults
Each NPC scene has the canonical defaults. Drift from C# field initializers is the silent bug.
“Field initializers and scene saves disagree. Scene wins.”
If you author scenes and expect C# defaults, document the override behavior. New contributors discover otherwise.