Quick answer: Godot 4 C# Dictionary<Resource, T> not finding entries despite identical Resource references? Resource equality compares by Object pointer, not content - use ResourceUID as key.
Item -> count Dictionary. Same Resource loaded twice returns different lookup results.
Use UID string as key
var uid = item.ResourcePath;
dict[uid] = count;Strings have content-equality; lookups work across loads.
Or override Equals
Custom IEqualityComparer for Resource. Compares ResourceUID or ResourcePath.
Resource_local_to_scene caveat
If you use local-to-scene, each scene has unique Resources. The bug is different; the fix is restructuring data.
“Resource equality is reference equality. Hash-keyed collections need content equality.”
Document the keying convention in your data architecture. UIDs as keys; resource refs as values. Cleaner across the project.