Attention: Here be dragons

This is the latest (unstable) version of this documentation, which may document features not available in or compatible with released stable versions of Godot.

ResourceFormatLoader

Inherits: RefCounted < Object

Loads a specific resource type from a file.

Description

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

bool

_exists(path: String) virtual const

PackedStringArray

_get_classes_used(path: String) virtual const

PackedStringArray

_get_dependencies(path: String, add_types: bool) virtual const

PackedStringArray

_get_recognized_extensions() virtual const

String

_get_resource_script_class(path: String) virtual const

String

_get_resource_type(path: String) virtual const

int

_get_resource_uid(path: String) virtual const

bool

_handles_type(type: StringName) virtual const

Variant

_load(path: String, original_path: String, use_sub_threads: bool, cache_mode: int) virtual const

bool

_recognize_path(path: String, type: StringName) virtual const

Error

_rename_dependencies(path: String, renames: Dictionary) virtual const


Enumerations

enum CacheMode:

CacheMode CACHE_MODE_IGNORE = 0

There is currently no description for this enum. Please help us by contributing one!

CacheMode CACHE_MODE_REUSE = 1

There is currently no description for this enum. Please help us by contributing one!

CacheMode CACHE_MODE_REPLACE = 2

There is currently no description for this enum. Please help us by contributing one!


Method Descriptions

bool _exists(path: String) virtual const

There is currently no description for this method. Please help us by contributing one!


PackedStringArray _get_classes_used(path: String) virtual const

There is currently no description for this method. Please help us by contributing one!


PackedStringArray _get_dependencies(path: String, add_types: bool) virtual const

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_recognized_extensions() virtual const

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