Inheritance #
- AudioServer
- CameraServer
- ClassDB
- DisplayServer
- EditorFileSystemDirectory
- EditorInterface
- EditorPaths
- EditorSelection
- EditorUndoRedoManager
- EditorVCSInterface
- Engine
- EngineDebugger
- FramebufferCacheRD
- GDExtensionManager
- Geometry2D
- Geometry3D
- IP
- Input
- InputMap
- JNISingleton
- JSONRPC
- JavaClassWrapper
- JavaScriptBridge
- MainLoop (1)
- Marshalls
- MovieWriter
- NativeMenu
- NavigationMeshGenerator
- NavigationServer2D
- NavigationServer3D
- Node (21)
- OS
- OpenXRExtensionWrapperExtension
- OpenXRInteractionProfileMetadata
- Performance
- PhysicsDirectBodyState2D (1)
- PhysicsDirectBodyState3D (1)
- PhysicsDirectSpaceState2D (1)
- PhysicsDirectSpaceState3D (1)
- PhysicsServer2D (1)
- PhysicsServer2DManager
- PhysicsServer3D (1)
- PhysicsServer3DManager
- PhysicsServer3DRendering
ServerHandler
- ProjectSettings
- RefCounted (121)
- RenderData (2)
- RenderSceneData (2)
- RenderingDevice
- RenderingServer
- ResourceLoader
- ResourceSaver
- ResourceUID
- ScriptLanguage (1)
- ShaderIncludeDB
- TextServerManager
- ThemeDB
- TileData
- Time
- TranslationServer
- TreeItem
- UndoRedo
- UniformSetCacheRD
- WorkerThreadPool
- XRServer
- XRVRS
- AESContext
- AStar2D
- AStar3D
- AStarGrid2D
- AudioEffectInstance (1)
- AudioSample
- AudioSamplePlayback
- AudioStreamPlayback (5)
- CameraFeed
- CharFXTransform
- ConfigFile
- Crypto
- DTLSServer
- DirAccess
- ENetConnection
- EditorContextMenuPlugin
- EditorDebuggerPlugin
- EditorDebuggerSession
- EditorExportPlatform (6)
- EditorExportPlugin
- EditorExportPreset
- EditorFeatureProfile
- EditorFileSystemImportFormatSupportQuery
- EditorInspectorPlugin
- EditorResourceConversionPlugin
- EditorResourcePreviewGenerator
- EditorResourceTooltipPlugin
- EditorSceneFormatImporter (4)
- EditorScenePostImport
- EditorScenePostImportPlugin
- EditorScript
- EditorTranslationParserPlugin
- EncodedObjectAsID
- EngineProfiler
- Expression
- FileAccess
- GLTFObjectModelProperty
- HMACContext
- HTTPClient
- HashingContext
- ImageFormatLoader (1)
- JavaClass
- JavaObject
- JavaScriptObject
- KinematicCollision2D
- KinematicCollision3D
- Lightmapper (1)
- MeshConvexDecompositionSettings
- MeshDataTool
- MultiplayerAPI (2)
- Mutex
- NavigationPathQueryParameters2D
- NavigationPathQueryParameters3D
- NavigationPathQueryResult2D
- NavigationPathQueryResult3D
- Node3DGizmo (1)
- OggPacketSequencePlayback
- OpenXRAPIExtension
- PCKPacker
- PackedDataContainerRef
- PacketPeer (8)
- PhysicsPointQueryParameters2D
- PhysicsPointQueryParameters3D
- PhysicsRayQueryParameters2D
- PhysicsRayQueryParameters3D
- PhysicsShapeQueryParameters2D
- PhysicsShapeQueryParameters3D
- PhysicsTestMotionParameters2D
- PhysicsTestMotionParameters3D
- PhysicsTestMotionResult2D
- PhysicsTestMotionResult3D
- RDAttachmentFormat
- RDFramebufferPass
- RDPipelineColorBlendState
- RDPipelineColorBlendStateAttachment
- RDPipelineDepthStencilState
- RDPipelineMultisampleState
- RDPipelineRasterizationState
- RDPipelineSpecializationConstant
- RDSamplerState
- RDShaderSource
- RDTextureFormat
- RDTextureView
- RDUniform
- RDVertexAttribute
- RandomNumberGenerator
- RegEx
- RegExMatch
- RenderSceneBuffers (2)
- RenderSceneBuffersConfiguration
- Resource (103)
- ResourceFormatLoader
- ResourceFormatSaver
- ResourceImporter (16)
- SceneState
- SceneTreeTimer
- Semaphore
- SkinReference
- StreamPeer (5)
- SurfaceTool
- TCPServer
- TLSOptions
- TextLine
- TextParagraph
- TextServer (1)
- Thread
- TranslationDomain
- TriangleMesh
- Tween
- Tweener (5)
- UDPServer
- UPNP
- UPNPDevice
- WeakRef
- WebRTCPeerConnection (1)
- XMLParser
- XRInterface (4)
- XRPose
- XRTracker (2)
- ZIPPacker
- ZIPReader
Table of contents
-
virtual const func _exists(path: String) -> bool -
virtual const func _get_classes_used(path: String) -> PackedStringArray -
virtual const func _get_dependencies(add_types: bool) -> PackedStringArray -
virtual const func _get_recognized_extensions() -> PackedStringArray -
virtual const func _get_resource_script_class(path: String) -> String -
virtual const func _get_resource_type(path: String) -> String -
virtual const func _get_resource_uid(path: String) -> int -
virtual const func _handles_type(type: StringName) -> bool -
virtual const func _load(cache_mode: int) -> Variant -
virtual const func _recognize_path(type: StringName) -> bool -
virtual const func _rename_dependencies(renames: Dictionary) -> intError -
const CACHE_MODE_IGNORE = 0 enum CacheMode -
const CACHE_MODE_REUSE = 1 enum CacheMode -
const CACHE_MODE_REPLACE = 2 enum CacheMode -
const CACHE_MODE_IGNORE_DEEP = 3 enum CacheMode -
const CACHE_MODE_REPLACE_DEEP = 4 enum CacheMode -
enum CacheMode
ResourceFormatLoader #
is_refcounted, is_instantiable, resource, core, not_builtin_classes
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 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.
Members #
Methods #
virtual const func _exists(path: String) -> bool#
virtual const func _get_classes_used(path: String) -> PackedStringArray#
virtual const func _get_dependencies(add_types: bool) -> PackedStringArray#
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.
virtual const func _get_recognized_extensions() -> PackedStringArray#
Gets the list of extensions for files this loader is able to read.
virtual const func _get_resource_script_class(path: String) -> String#
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 "".
virtual const func _get_resource_type(path: String) -> String#
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.
virtual const func _get_resource_uid(path: String) -> int#
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.
virtual const func _handles_type(type: StringName) -> bool#
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.
virtual const func _load(cache_mode: int) -> Variant#
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.
virtual const func _recognize_path(type: StringName) -> bool#
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 _get_resource_type.
virtual const func _rename_dependencies(renames: Dictionary) -> intError#
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 OK on success, or an Error constant in case of failure.
Annotations #
Constants #
const CACHE_MODE_IGNORE = 0 enum CacheMode#
Neither the main resource (the one requested to be loaded) nor any of its subresources are retrieved from cache nor stored into it. Dependencies (external resources) are loaded with CACHE_MODE_REUSE.
const CACHE_MODE_REUSE = 1 enum CacheMode#
The main resource (the one requested to be loaded), its subresources, and its dependencies (external resources) are retrieved from cache if present, instead of loaded. Those not cached are loaded and then stored into the cache. The same rules are propagated recursively down the tree of dependencies (external resources).
const CACHE_MODE_REPLACE = 2 enum CacheMode#
Like CACHE_MODE_REUSE, but the cache is checked for the main resource (the one requested to be loaded) as well as for each of its subresources. Those already in the cache, as long as the loaded and cached types match, have their data refreshed from storage into the already existing instances. Otherwise, they are recreated as completely new objects.
const CACHE_MODE_IGNORE_DEEP = 3 enum CacheMode#
Like CACHE_MODE_IGNORE, but propagated recursively down the tree of dependencies (external resources).
const CACHE_MODE_REPLACE_DEEP = 4 enum CacheMode#
Like CACHE_MODE_REPLACE, but propagated recursively down the tree of dependencies (external resources).
Constructors #
Enums #
CacheMode#
enum CacheMode {
CACHE_MODE_IGNORE = 0,
CACHE_MODE_REUSE = 1,
CACHE_MODE_REPLACE = 2,
CACHE_MODE_IGNORE_DEEP = 3,
CACHE_MODE_REPLACE_DEEP = 4,
}