Quick answer: Godot ResourceLoader returning the same Resource even after the .tres file changed? Loader caches by path - load with CACHE_MODE_REPLACE or set the resource's resource_local_to_scene flag.

Edited a balance .tres file mid-playtest. Reloading the level still shows the previous values - the resource cache hit on path alone.

Use CACHE_MODE_REPLACE

var data = ResourceLoader.load(
  "res://balance.tres",
  "",
  ResourceLoader.CACHE_MODE_REPLACE)

Re-reads the file and replaces the cached entry. Default CACHE_MODE_REUSE hands back whatever was loaded first - which is what you want in production and never what you want in editor-driven iteration.

Or flag local-to-scene

For resources that should never be shared across instances, set resource_local_to_scene = true on the resource. Each scene that loads it gets its own copy.

Editor-only reload

In dev tools, wire a hotkey to ResourceLoader.add_resource_format_loader with a custom loader that always returns fresh. Toggle it off for shipping builds.

“Resource caching is what makes Godot fast - and also what makes runtime tuning maddening.”

Distinguish 'data' resources (balance, config) from 'asset' resources (textures, audio). Cache aggressively for the latter; flush often for the former.