Quick answer: Register at autoload: ResourceLoader.AddResourceFormatLoader(loader). Confirm _GetRecognizedExtensions returns your extension.
Custom JSON-as-Resource loader written. Load fails — default loader doesn’t handle .json. Yours never registered.
The Fix
[GlobalClass]
public partial class JsonLoader : ResourceFormatLoader {
public override string[] _GetRecognizedExtensions()
=> new[] { "json" };
public override Variant _Load(string path, string origin, bool useSubThreads, int mode) {
// custom JSON-to-Resource conversion
}
}
// AutoLoad: GlobalLoaders.cs
public override void _Ready() {
ResourceLoader.AddResourceFormatLoader(new JsonLoader());
}
Without the Add call, your class exists but the engine never asks it for resources. Autoload guarantees registration on startup.
Verifying
ResourceLoader.Load on .json invokes your _Load. Without registration: error or default loader fails.
“Register at autoload. Loader runs.”
Related Issues
For C# Collections.Array, see Collections.Array. For C# disposed after await, see disposed.
Register. Load runs.