Quick answer: Godot 4 load() returning the same Resource instance on subsequent calls? ResourceLoader caches by path - call ResourceLoader.load with CACHE_MODE_REPLACE for fresh copy.
Two entities share a stats Resource loaded twice. Modifying one's stats modifies both because they're the same object.
Use duplicate or instantiate
var r = load(path).duplicate()Loads cached then deep-copies. Each entity gets its own instance.
Or resource_local_to_scene
On the resource, set resource_local_to_scene = true. Every scene loading it gets a fresh copy.
CACHE_MODE_REPLACE for force-reload
For editor-driven iteration. Production code should use duplicate; reload is for dev.
“Resource caching is the default. Aliasing across instances is the surprise.”
For per-entity data, use the duplicate pattern from the start. The caching surprise costs an hour of debug per occurrence.