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.