Attention

You are reading the latest (unstable) version of this documentation, which may document features not available or compatible with Godot 3.x.

Work in progress

Godot documentation is being updated to reflect the latest changes in version 4.0. Some documentation pages may still state outdated information. This banner will tell you if you're reading one of such pages.

The contents of this page are up to date. If you can still find outdated information, please open an issue.

ResourceSaver

Inherits: Object

Singleton for saving Godot-specific resource types.

Description

Singleton for saving Godot-specific resource types to the filesystem.

It uses the many ResourceFormatSaver classes registered in the engine (either built-in or from a plugin) to save engine-specific resource data to text-based (e.g. .tres or .tscn) or binary files (e.g. .res or .scn).

Methods

void

add_resource_format_saver ( ResourceFormatSaver format_saver, bool at_front=false )

PackedStringArray

get_recognized_extensions ( Resource type )

void

remove_resource_format_saver ( ResourceFormatSaver format_saver )

Error

save ( Resource resource, String path="", SaverFlags flags=0 )


Enumerations

flags SaverFlags:

SaverFlags FLAG_NONE = 0

No resource saving option.

SaverFlags FLAG_RELATIVE_PATHS = 1

Save the resource with a path relative to the scene which uses it.

SaverFlags FLAG_BUNDLE_RESOURCES = 2

Bundles external resources.

SaverFlags FLAG_CHANGE_PATH = 4

Changes the Resource.resource_path of the saved resource to match its new location.

SaverFlags FLAG_OMIT_EDITOR_PROPERTIES = 8

Do not save editor-specific metadata (identified by their __editor prefix).

SaverFlags FLAG_SAVE_BIG_ENDIAN = 16

Save as big endian (see FileAccess.big_endian).

SaverFlags FLAG_COMPRESS = 32

Compress the resource on save using FileAccess.COMPRESSION_ZSTD. Only available for binary resource types.

SaverFlags FLAG_REPLACE_SUBRESOURCE_PATHS = 64

Take over the paths of the saved subresources (see Resource.take_over_path).


Method Descriptions

void add_resource_format_saver ( ResourceFormatSaver format_saver, bool at_front=false )

Registers a new ResourceFormatSaver. The ResourceSaver will use the ResourceFormatSaver as described in save.

This method is performed implicitly for ResourceFormatSavers written in GDScript (see ResourceFormatSaver for more information).


PackedStringArray get_recognized_extensions ( Resource type )

Returns the list of extensions available for saving a resource of a given type.


void remove_resource_format_saver ( ResourceFormatSaver format_saver )

Unregisters the given ResourceFormatSaver.


Error save ( Resource resource, String path="", SaverFlags flags=0 )

Saves a resource to disk to the given path, using a ResourceFormatSaver that recognizes the resource object. If path is empty, ResourceSaver will try to use Resource.resource_path.

The flags bitmask can be specified to customize the save behavior using SaverFlags flags.

Returns @GlobalScope.OK on success.