Table of Contents

Class ResourceFormatLoader

Loads a specific resource type from a file.

Inheritance
ResourceFormatLoader

Remarks

Godot loads resources in the editor or in exported games using ResourceFormatLoaders. They are queried automatically via the ResourceLoader 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 class_name 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 EditorImportPlugin if the resource type you need exists but Godot is unable to load its format. Choosing one way over another depends on if the format is suitable or not for the final exported game. For example, it's better to import .png textures as .ctex (CompressedTexture2D) first, so they can be loaded with better efficiency on the graphics card.

Methods

_exists(String)

Qualifiers: virtualconst

bool _exists(String path)

Parameters

path String

_get_classes_used(String)

Qualifiers: virtualconst

PackedStringArray _get_classes_used(String path)

Parameters

path String

_get_dependencies(String, bool)

Qualifiers: virtualconst

If implemented, gets the dependencies of a given resource. If add_types is true, paths should be appended ::TypeName, where TypeName is the class name of the dependency.

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

PackedStringArray _get_dependencies(String path, bool add_types)

Parameters

path String
add_types bool

_get_recognized_extensions

Qualifiers: virtualconst

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

PackedStringArray _get_recognized_extensions

_get_resource_script_class(String)

Qualifiers: virtualconst

Returns the script class name associated with the Resource under the given path. If the resource has no script or the script isn't a named class, it should return "".

String _get_resource_script_class(String path)

Parameters

path String

_get_resource_type(String)

Qualifiers: virtualconst

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 ClassDB, so you might just return "Resource" for them.

String _get_resource_type(String path)

Parameters

path String

_get_resource_uid(String)

Qualifiers: virtualconst

Should return the unique ID for the resource associated with the given path. If this method is not overridden, a .uid file is generated along with the resource file, containing the unique ID.

int _get_resource_uid(String path)

Parameters

path String

_handles_type(StringName)

Qualifiers: virtualconst

Tells which resource class this loader can load.

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

bool _handles_type(StringName type)

Parameters

type StringName

_load(String, String, bool, int)

Qualifiers: virtualconst

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 Error constant in case of failure.

The cache_mode property defines whether and how the cache should be used or updated when loading the resource. See CacheMode for details.

Variant _load(String path, String original_path, bool use_sub_threads, int cache_mode)

Parameters

path String
original_path String
use_sub_threads bool
cache_mode int

_recognize_path(String, StringName)

Qualifiers: virtualconst

Tells whether or not this loader should load a resource from its resource path for a given type.

If it is not implemented, the default behavior returns whether the path's extension is within the ones provided by _get_recognized_extensions, and if the type is within the ones provided by ResourceFormatLoader._get_resource_type.

bool _recognize_path(String path, StringName type)

Parameters

path String
type StringName

_rename_dependencies(String, Dictionary)

Qualifiers: virtualconst

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

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

int _rename_dependencies(String path, Dictionary renames)

Parameters

path String
renames Dictionary