Quick answer: Godot 4 C# [Export] Array<Resource> default values cleared after each recompile? Default initialization runs at constructor; recompile resets - move defaults to OnReady.
Inventory has default starting items; recompile in editor; inventory is empty.
Initialize in _Ready
public override void _Ready() {{
if (Items.Count == 0) Items.Add(default);
}}Guard empty; populate at runtime.
Or set in inspector
If defaults belong on specific instances, set in scene file. Recompile preserves scene data.
Avoid C# field initializers
Field initializers run at construction; lost on hot-reload. Use _Ready instead.
“C# field initializers and Godot reload don't compose. Defaults need a stable initialization point.”
Lifecycle of C# scripts in Godot is its own learning curve. Document the patterns; new contributors benefit.