Base class for all resources.
    public class Resource : Reference

Resource is the base class for all resource types, serving primarily as data containers. They are reference counted and freed when no longer in use. They are also loaded only once from disk, and further attempts to load the resource will return the same reference (all this in contrast to a Node, which is not reference counted and can be instanced from disk as many times as desired). Resources can be saved externally on disk or bundled into another object, such as a Node or another resource.

Inheritance Chain

Derived Classes


    public Resource()


    "changed" ()


    public bool ResourceLocalToScene { get; set; }

    public string ResourceName { get; set; }

The name of the resource. This is an optional identifier.

    public string ResourcePath { get; set; }

The path to the resource. In case it has its own file, it will return its filepath. If it’s tied to the scene, it will return the scene’s path, followed by the resource’s index.


    public virtual void _SetupLocalToScene()

    public Resource Duplicate(bool subresources = false)

Duplicates the resource, returning a new resource. By default, sub-resources are shared between resource copies for efficiency, this can be changed by passing true to the subresources argument.

    public Node GetLocalScene()

    public string GetName()

Getter for ResourceName

    public string GetPath()

Getter for ResourcePath

    public RID GetRid()

Returns the RID of the resource (or an empty RID). Many resources (such as Texture, Mesh, etc) are high level abstractions of resources stored in a server, so this function will return the original RID.

    public bool IsLocalToScene()

Getter for ResourceLocalToScene

    public void SetLocalToScene(bool enable)

Setter for ResourceLocalToScene

    public void SetName(string name)

Setter for ResourceName

    public void SetPath(string path)

Setter for ResourcePath

    public void SetupLocalToScene()

    public void TakeOverPath(string path)

Sets the path of the resource. Differs from set_path(), if another Resource exists with “path” it over-takes it, instead of failing.