ResourceFormatLoader

    Loads a specific resource type from a file.

    Godot loads resources in the editor or in exported games using ResourceFormatLoaders. They are queried automatically via the singleton, or when a resource with internal dependencies is loaded. Each file type may load as a different resource type, so multiple ResourceFormatLoaders are registered in the engine.

    Extending this class allows you to define your own loader. Be sure to respect the documented return types and values. You should give it a global class name with for it to be registered. Like built-in ResourceFormatLoaders, it will be called automatically when loading resources of its handled type(s). You may also implement a ResourceFormatSaver.

    Note: You can also extend if the resource type you need exists but Godot is unable to load its format. Choosing one way over another depends if the format is suitable or not for the final exported game. For example, it’s better to import .png textures as .stex (StreamTexture) first, so they can be loaded with better efficiency on the graphics card.

    • void get_dependencies ( path, String add_types ) virtual

    Note: Custom resource types defined by scripts aren’t known by the , so you might just return "Resource" for them.


    Gets the list of extensions for files this loader is able to read.


    Gets the class name of the resource associated with the given path. If the loader cannot handle it, it should return .

    Note: Custom resource types defined by scripts aren’t known by the , so you might just return "Resource" for them.


    • bool handles_type ( typename ) virtual

    Note: Custom resource types defined by scripts aren’t known by the ClassDB, so you might just handle "Resource" for them.


    • load ( String path, original_path ) virtual

    Loads a resource when the engine finds this loader to be compatible. If the loaded resource is the result of an import, original_path will target the source file. Returns a Resource object on success, or an constant in case of failure.


    If implemented, renames dependencies within the given resource and saves it. is a dictionary { String => String } mapping old dependency paths to new paths.

    Returns @GlobalScope.OK on success, or an constant in case of failure.