Quick answer: Godot 4 custom C# ResourceFormatLoader ignored by the engine? Loaders must be registered at engine startup - use ProjectSettings or call ResourceLoader.AddResourceFormatLoader in plugin init.

Custom .item format defined via C# loader. ResourceLoader.Load returns null; Godot doesn't know about the format.

Register in plugin

public override void _EnterTree() {
  ResourceLoader.AddResourceFormatLoader(new ItemLoader());
}

Plugin EnterTree runs at editor startup. The loader is registered before any load attempt.

Or autoload script

Add an autoload script that registers the loader on _ready. Works without a plugin.

Verify with ResourceLoader.GetResourceFormatLoaderForExtension

Confirms registration. Empty result = the loader didn't register.

“Format loaders are extensions. Extensions need explicit registration.”

Document the format loader registration in your plugin's README. New contributors discover the boilerplate; project setup stays clean.

Related reading