---
source: https://iinventedlight.com/library/notes/godot-nodes-and-scenes.md
title: "Godot nodes and scenes"
license: CC-BY-4.0
license_url: https://creativecommons.org/licenses/by/4.0/
source_license: "CC BY 3.0 (godot-docs) and MIT (godotengine/godot node.h); prose restates cited source lines"
attribution: "Summary by iinventedlight (AI-assisted). Sources: Godot Engine documentation, CC BY 3.0, attributed to Juan Linietsky, Ariel Manzur and the Godot community; Godot Engine node.h, MIT. Copyright (c) 2014-present Godot Engine contributors. Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. Notices: Godot Engine documentation (godotengine/godot-docs): Copyright 2014-present Juan Linietsky, Ariel Manzur and the Godot community; CC BY 3.0 (https://creativecommons.org/licenses/by/3.0/). Godot Engine source (godotengine/godot): Copyright (c) 2014-present Godot Engine contributors; Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur; MIT (https://raw.githubusercontent.com/godotengine/godot/master/LICENSE.txt)."
author: "iinventedlight (synthesis of cited sources); AI-assisted"
date: 2026-11-11
status: published
approved_by: "Cole Withington, 2026-11-11 18:06 PT, Librarian chat widget t46s293: \"Yes, publish all 4 now\""
checked_on: 2026-11-11
as_of: 2026-11-11
confidence: medium
untested: "No code was run; only the fetched source files were read."
category: coding-references
topic_area: "code-systems: Godot"
tags: [godot, gamedev, scene-tree, nodes]
client: Librarian
sources:
  - id: S1
    title: "Nodes and Scenes - Godot Engine documentation"
    publisher: Juan Linietsky, Ariel Manzur and the Godot community
    url: https://docs.godotengine.org/en/stable/getting_started/step_by_step/nodes_and_scenes.html
    accessed: 2026-11-11
    license: "CC BY 3.0"
  - id: S2
    title: "node.h - Godot Engine"
    publisher: Godot Engine contributors and Juan Linietsky, Ariel Manzur
    url: https://github.com/godotengine/godot/blob/master/scene/main/node.h
    accessed: 2026-11-11
    license: "MIT"
---
# Godot nodes and scenes

## Short answer

Nodes are the fundamental building blocks of a Godot game. They can display an image, play a sound, or represent a camera, and you can add a node to another node as a child [S1]. When you organize nodes in a tree, we call this construct a scene [S1]. Scenes always have one root node [S1]. The engine requires one main scene, which Godot first loads when a player runs the game [S1]. In `node.h`, a safeguard throws an error on a harmful attempt to modify the tree while it is traversed [S2].

```gdscript
extends Node2D

func _ready() -> void:
    var label = Label.new()
    label.text = "Hello World"
    add_child(label)
```

## Key points

- All nodes have a name, editable properties, and callbacks to update every frame. [S1]
- Once saved, scenes work like new node types, and you can create many instances of a scene. [S1]
- A Godot project can contain many scenes. The engine requires one as the application's main scene. [S1]
- `node.h` documents an optimal way to iterate the children of a node. [S2]
- `ProcessMode` comments describe whether a node will process always, process only if not paused, or never process. [S2]

## Pitfalls

- Running the project's main scene is distinct from running the current scene. Check to ensure you are running the correct scene. [S1]
- The same safeguard throws an error on a harmful attempt to modify the tree while it is traversed. [S2]

## Claims

- id: C1
  claim: Nodes can be attached to other nodes as child elements in a tree structure.
  source: S1
  evidence: "You can add them to another node as a child."

- id: C2
  claim: Every scene in Godot has exactly one root node.
  source: S1
  evidence: "They always have one root node"

- id: C3
  claim: Developers must ensure they are launching the intended scene when running a project.
  source: S1
  evidence: "to ensure you are running the correct scene."

- id: C4
  claim: The Godot engine protects the scene tree against harmful modifications during traversal.
  source: S2
  evidence: "attempting to modify the tree in a harmful way while being traversed."

- id: C5
  claim: The engine provides an optimal iteration helper for traversing node children.
  source: S2
  evidence: "Optimal way to iterate the children of this node."

## Sources

- [S1] Nodes and Scenes - Godot Engine documentation. https://docs.godotengine.org/en/stable/getting_started/step_by_step/nodes_and_scenes.html . License: CC BY 3.0. Accessed 2026-11-11.
- [S2] node.h - Godot Engine. https://github.com/godotengine/godot/blob/master/scene/main/node.h . License: MIT. Accessed 2026-11-11.

License: this note is CC BY 4.0 (https://creativecommons.org/licenses/by/4.0/). Summary by iinventedlight (AI-assisted). Sources and notices: Godot Engine documentation (godotengine/godot-docs): Copyright 2014-present Juan Linietsky, Ariel Manzur and the Godot community; CC BY 3.0 (https://creativecommons.org/licenses/by/3.0/). Godot Engine source (godotengine/godot): Copyright (c) 2014-present Godot Engine contributors; Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur; MIT (https://raw.githubusercontent.com/godotengine/godot/master/LICENSE.txt). Text was condensed and changed from the originals.

---

Agents: [/agents.md](/agents.md) | [/.well-known/agent-library.json](/.well-known/agent-library.json).
