Up to date

This page is up to date for Godot 4.2. If you still find outdated information, please open an issue.

ResourceLoader

Inherits: Object

A singleton for loading resource files.

Description

A singleton used to load resource files from the filesystem.

It uses the many ResourceFormatLoader classes registered in the engine (either built-in or from a plugin) to load files into memory and convert them to a format that can be used by the engine.

Note: You have to import the files into the engine first to load them using load. If you want to load Images at run-time, you may use Image.load. If you want to import audio files, you can use the snippet described in AudioStreamMP3.data.

Tutorials

Methods

void

add_resource_format_loader ( ResourceFormatLoader format_loader, bool at_front=false )

bool

exists ( String path, String type_hint="" )

PackedStringArray

get_dependencies ( String path )

PackedStringArray

get_recognized_extensions_for_type ( String type )

int

get_resource_uid ( String path )

bool

has_cached ( String path )

Resource

load ( String path, String type_hint="", CacheMode cache_mode=1 )

Resource

load_threaded_get ( String path )

ThreadLoadStatus

load_threaded_get_status ( String path, Array progress=[] )

Error

load_threaded_request ( String path, String type_hint="", bool use_sub_threads=false, CacheMode cache_mode=1 )

void

remove_resource_format_loader ( ResourceFormatLoader format_loader )

void

set_abort_on_missing_resources ( bool abort )


Enumerations

enum ThreadLoadStatus:

ThreadLoadStatus THREAD_LOAD_INVALID_RESOURCE = 0

The resource is invalid, or has not been loaded with load_threaded_request.

ThreadLoadStatus THREAD_LOAD_IN_PROGRESS = 1

The resource is still being loaded.

ThreadLoadStatus THREAD_LOAD_FAILED = 2

Some error occurred during loading and it failed.

ThreadLoadStatus THREAD_LOAD_LOADED = 3

The resource was loaded successfully and can be accessed via load_threaded_get.


enum CacheMode:

CacheMode CACHE_MODE_IGNORE = 0

CacheMode CACHE_MODE_REUSE = 1

CacheMode CACHE_MODE_REPLACE = 2


Method Descriptions

void add_resource_format_loader ( ResourceFormatLoader format_loader, bool at_front=false )

Registers a new ResourceFormatLoader. The ResourceLoader will use the ResourceFormatLoader as described in load.

This method is performed implicitly for ResourceFormatLoaders written in GDScript (see ResourceFormatLoader for more information).


bool exists ( String path, String type_hint="" )

Returns whether a recognized resource exists for the given path.

An optional type_hint can be used to further specify the Resource type that should be handled by the ResourceFormatLoader. Anything that inherits from Resource can be used as a type hint, for example Image.


PackedStringArray get_dependencies ( String path )

Returns the dependencies for the resource at the given path.

Note: The dependencies are returned with slices separated by ::. You can use String.get_slice to get their components.

for dep in ResourceLoader.get_dependencies(path):
    print(dep.get_slice("::", 0)) # Prints UID.
    print(dep.get_slice("::", 2)) # Prints path.

PackedStringArray get_recognized_extensions_for_type ( String type )

Returns the list of recognized extensions for a resource type.


int get_resource_uid ( String path )

Returns the ID associated with a given resource path, or -1 when no such ID exists.


bool has_cached ( String path )

Returns whether a cached resource is available for the given path.

Once a resource has been loaded by the engine, it is cached in memory for faster access, and future calls to the load method will use the cached version. The cached resource can be overridden by using Resource.take_over_path on a new resource for that same path.


Resource load ( String path, String type_hint="", CacheMode cache_mode=1 )

Loads a resource at the given path, caching the result for further access.

The registered ResourceFormatLoaders are queried sequentially to find the first one which can handle the file's extension, and then attempt loading. If loading fails, the remaining ResourceFormatLoaders are also attempted.

An optional type_hint can be used to further specify the Resource type that should be handled by the ResourceFormatLoader. Anything that inherits from Resource can be used as a type hint, for example Image.

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

Returns an empty resource if no ResourceFormatLoader could handle the file.

GDScript has a simplified @GDScript.load built-in method which can be used in most situations, leaving the use of ResourceLoader for more advanced scenarios.

Note: If ProjectSettings.editor/export/convert_text_resources_to_binary is true, @GDScript.load will not be able to read converted files in an exported project. If you rely on run-time loading of files present within the PCK, set ProjectSettings.editor/export/convert_text_resources_to_binary to false.

Note: Relative paths will be prefixed with "res://" before loading, to avoid unexpected results make sure your paths are absolute.


Resource load_threaded_get ( String path )

Returns the resource loaded by load_threaded_request.

If this is called before the loading thread is done (i.e. load_threaded_get_status is not THREAD_LOAD_LOADED), the calling thread will be blocked until the resource has finished loading.


ThreadLoadStatus load_threaded_get_status ( String path, Array progress=[] )

Returns the status of a threaded loading operation started with load_threaded_request for the resource at path. See ThreadLoadStatus for possible return values.

An array variable can optionally be passed via progress, and will return a one-element array containing the percentage of completion of the threaded loading.


Error load_threaded_request ( String path,