How to save node like scene via code

:bust_in_silhouette: Reply From: GlitchedCode

Yes there is a way to save a node as a scene at runtime in Godot 4 using GDScript.

var node_to_save = $Node2D

var scene = PackedScene.new()

scene.pack(node_to_save)

ResourceSaver.save(scene, "res://MyScene.tscn")

The first line of code creates a variable called node_to_save and assigns it the value of the Node2D node in the scene tree I want to save. The $Node2D notation is a shorthand way of accessing a node in the scene tree by its node path. In this case, it assumes that there is a Node2D node with that name in the same scene as the script.

The next line of code creates a new PackedScene instance and assigns it to a variable called scene. This is an empty scene that we will use to pack our node_to_save into.

Next block of code “packs” the node_to_save into the scene. This means that the scene now contains a copy of the node_to_save, and we can save the scene as a separate file if we want.

Our final line of code saves the scene as a file named “MyScene.tscn” in the “res://” directory. The ResourceSaver class is used to save the scene as a .tscn file, which is the format used by Godot Engine for scenes.

saved nodes are 1kb size and cannot be used.

vania23 | 2023-03-22 12:22

nvm im just stupid

vania23 | 2023-03-22 12:31

7 Likes