Fundamentals quest

Node Tree Explorer. Learn how typed nodes compose scenes and replace generic object containers.

10-20 min · Godot 4.7

Node Explorer

Every common Godot 4 node: what it does, the Unity or Unreal thing it replaces, and a script to start from. Test yourself first, or jump straight to browsing.

Pick the right root

A three-step quiz. A wrong pick explains why.
0/3
  1. 1 Choose a scene job
  2. 2 Pick the node that owns it
  3. 3 See the children it needs
Scene job

2D player controller

You need a player scene that reads input, collides with the world, shows a sprite, and follows with a camera. Which node owns the scene?

Which node should own this scene? Pick one.

Browse all 32 nodes search, filter by family, open any node in the inspector

Node families 32 shown 📂 Node Types
2D Nodes

Node2D

The base node for all 2D game objects. Has position, rotation, and scale.

Coming from Unity

Like an empty GameObject with Transform2D

Example GDScript

Node2D.gd
extends Node2D

func _ready():
    position = Vector2(100, 200)
    rotation = PI / 4  # 45 degrees
    scale = Vector2(2, 2)

Tips

  • Use as a container to group other nodes
  • Position is relative to parent
Try it in Scene Builder
Scene habit Pick root, then add responsibilities as children.
Script habit Attach code to the node that owns the behavior.
Reference

All 32 nodes in this explorer, written out

Every node in the tree above with its purpose, the closest Unity and Unreal concept, and the first thing to know before using it. Open one to see its GDScript example and tips in the inspector.

2D Nodes

5 nodes
Node2D

The base node for all 2D game objects. Has position, rotation, and scale.

Unity: Like an empty GameObject with Transform2D Unreal: Like an Actor with just a SceneComponent

Use as a container to group other nodes

Sprite2D

Displays a 2D texture. This is just the visual - no physics attached.

Unity: Like a SpriteRenderer component Unreal: Like a PaperSprite component

Use flip_h and flip_v to mirror sprites

AnimatedSprite2D

Displays animated sprites using a SpriteFrames resource. Define multiple animations (walk, run, idle) and switch between them in code.

Unity: Like Animator with sprite sheet animations Unreal: Like a Flipbook component

Create SpriteFrames resource in Inspector to define animations

Camera2D

2D camera with built-in smoothing and limits.

Unity: Like Cinemachine Virtual Camera for 2D Unreal: Like a Camera component with follow logic

Make it a child of player for auto-follow

TileMapLayer

Draws levels using tile grids. In Godot 4.3+, each layer is its own TileMapLayer node. Use TileSet resource to define tiles, collision, and auto-tiling rules.

Unity: Like Unity Tilemap + Tile Palette Unreal: No direct equivalent — closest is Paper2D TileMap

Since Godot 4.3, use TileMapLayer instead of TileMap for each layer

Physics Bodies

5 nodes
CharacterBody2D

Physics body you control with code. Perfect for players and NPCs.

Unity: Like Rigidbody2D + CharacterController combined Unreal: Like Character with CharacterMovement

Always use _physics_process() for movement

RigidBody2D

Physics engine controls this body. Apply forces, let physics do the rest.

Unity: Exactly like Rigidbody2D Unreal: Like any actor with Simulate Physics enabled

Don't set position directly - use forces

StaticBody2D

An immovable physics body. Perfect for floors, walls, and platforms. Doesn't respond to forces but other bodies collide with it.

Unity: Like a Collider2D without a Rigidbody (static collider) Unreal: Like a static mesh actor with collision

Always add a CollisionShape2D child — body alone does nothing

Area2D

Detects when bodies enter/exit. Doesn't block movement.

Unity: Like a Collider2D with isTrigger = true Unreal: Like a TriggerBox or overlap component

Use for pickups, damage zones, detection

CollisionShape2D

Defines the collision boundary for a 2D physics body. Must be a child of CharacterBody2D, RigidBody2D, StaticBody2D, or Area2D.

Unity: Like BoxCollider2D, CircleCollider2D, CapsuleCollider2D Unreal: Like a 2D collision component

Use set_deferred() to safely enable/disable during physics

3D Nodes

8 nodes
Node3D

The base node for all 3D game objects. Has position, rotation, and scale in 3D space.

Unity: Like an empty GameObject with Transform Unreal: Like an Actor with a SceneComponent

Use as a container to group 3D nodes

MeshInstance3D

Renders a 3D mesh. Assign any Mesh resource (BoxMesh, SphereMesh, or imported models).

Unity: Like MeshRenderer + MeshFilter combined Unreal: Like a StaticMeshComponent

Drag .glb/.gltf files to use imported 3D models

CollisionShape3D

Defines the collision boundary for 3D physics bodies. In Godot 4.6+, primitive meshes auto-generate matching collision shapes.

Unity: Like a Collider component (BoxCollider, SphereCollider) Unreal: Like a collision component on an actor

In 4.6+, BoxMesh/SphereMesh auto-generate collision shapes

CharacterBody3D

The 3D player controller. Like CharacterBody2D but for 3D games. Handles movement, gravity, slopes, and stairs with move_and_slide().

Unity: Like CharacterController component Unreal: Like Character with CharacterMovementComponent

Use transform.basis to move relative to camera direction

Camera3D

The 3D camera. Set current = true to make it the active camera. Supports perspective and orthographic projections.

Unity: Like Camera component Unreal: Like CameraComponent attached to a SpringArm

Only one camera can be 'current' at a time per viewport

RigidBody3D

A 3D physics body controlled by the physics engine. Apply forces and impulses for realistic physical behavior. Uses Jolt Physics by default in Godot 4.6+.

Unity: Like Rigidbody component Unreal: Like a StaticMeshActor with Simulate Physics

Godot 4.6+ uses Jolt Physics by default for 3D — better performance

DirectionalLight3D

Simulates sunlight or moonlight. Illuminates the entire scene from a direction. Essential for outdoor scenes. Enable shadows for realistic lighting.

Unity: Like Directional Light Unreal: Like a Directional Light actor

Rotation determines light direction — not position

IKModifier3D

Introduced in Godot 4.6. Applies inverse kinematics to Skeleton3D bones. Includes TwoBoneIK3D, SplineIK3D, FABRIK3D, CCDIK3D, and JacobianIK3D.

Unity: Like Animation Rigging package (Two Bone IK Constraint, Chain IK) Unreal: Like IK Rig / FABRIK / Two Bone IK in Control Rig

Add as child of Skeleton3D, then add specific IK type as child

UI Nodes

5 nodes
Control

Base node for all UI elements. Has anchors, margins, and size flags for responsive layouts. Use containers (HBoxContainer, VBoxContainer) for automatic layout.

Unity: Like a RectTransform on a UI Canvas Unreal: Like UMG Widget base class

Use Layout > Anchors Preset menu for quick anchor setup

Label

Display text in your UI. Supports fonts, colors, and word wrap.

Unity: Like UI Text or TextMeshPro Unreal: Like UMG Text Block

Use RichTextLabel for BBCode formatting

Button

Clickable UI button that emits pressed signal.

Unity: Like UI Button Unreal: Like UMG Button

Connect pressed signal to handler

TextureRect

Displays a texture in the UI layer. Use for icons, backgrounds, and HUD images. Supports various stretch modes for responsive scaling.

Unity: Like UI RawImage or Image component Unreal: Like UMG Image widget

Use stretch_mode to control how image fills the rect

ProgressBar

A horizontal bar that fills based on a value between min_value and max_value. Great for health bars, loading bars, and XP indicators.

Unity: Like UI Slider or custom fill Image Unreal: Like UMG Progress Bar widget

Use a Tween to animate value changes for smooth health bars

Audio

2 nodes
AudioStreamPlayer

Plays audio globally (not positional). Use for music, UI sounds, and ambient effects. Supports volume, pitch, and audio bus routing.

Unity: Like AudioSource with Spatial Blend = 0 (2D) Unreal: Like UAudioComponent with no attenuation

Use Audio buses in Project Settings for volume groups (Music, SFX, UI)

AudioStreamPlayer2D

Plays audio with 2D positional attenuation. Sounds get quieter as the listener moves away. Perfect for footsteps, explosions, and ambient objects.

Unity: Like AudioSource with Spatial Blend = 1 (3D) in a 2D context Unreal: Like UAudioComponent with 2D attenuation

Set max_distance to control how far the sound travels

Navigation

2 nodes
NavigationAgent2D

Handles pathfinding for 2D characters. Calculates paths on the NavigationServer and provides the next position to move toward. Includes obstacle avoidance.

Unity: Like NavMeshAgent in 2D context Unreal: Like AIController with NavigationSystem

Requires a NavigationRegion2D with a baked navigation polygon in the scene

NavigationRegion2D

Defines the walkable area for 2D pathfinding. Draw a NavigationPolygon to mark where characters can move. Bake the navmesh for agents to use.

Unity: Like NavMesh Surface in 2D Unreal: Like NavMeshBoundsVolume in 2D

Usually draw the polygon in the editor — code creation is for dynamic levels

Helpers

5 nodes
Tween

Smoothly animates any property over time. Created with create_tween() — no node needed. Chain tweens for sequences. The go-to tool for juice and polish.

Unity: Like DOTween or LeanTween Unreal: Like Timeline nodes in Blueprints

create_tween() auto-manages lifetime — no need to free it

Timer

Emits timeout signal after wait_time. Can repeat or be one-shot.

Unity: Like Invoke() or Coroutines Unreal: Like SetTimer() in Blueprints

Connect timeout signal to handle

AnimationPlayer

Animate ANY property of ANY node. Extremely powerful.

Unity: Like Animator + Animation but more flexible Unreal: Like Sequencer but for gameplay

Can animate position, color, visibility, custom vars

RayCast2D

Casts an invisible ray to detect collisions along a line. Essential for ground checks, line-of-sight, and shooting mechanics.

Unity: Like Physics2D.Raycast() Unreal: Like LineTraceByChannel in 2D

Point target_position downward for ground detection (e.g., Vector2(0, 20))

Marker2D

A simple position marker visible only in the editor. Use as spawn points, aim directions, or reference positions for spawning projectiles.

Unity: Like an empty GameObject used as a spawn point Unreal: Like a SceneComponent used as a socket/attach point

Use for gun muzzle positions, spawn points, and waypoints

Godot node system FAQ

What is a Node in Godot?
A Node is the basic building block in Godot. Each Node has a single specialized class (Sprite2D, CharacterBody2D, AudioStreamPlayer, Camera3D, etc.) and a tree position. Composing nodes into a tree builds your game's scene.
How is a Godot Node different from a Unity GameObject?
A Unity GameObject is a generic container that gains behavior through attached components. A Godot Node is itself the typed component — Sprite2D draws sprites, CharacterBody2D handles kinematic physics, AudioStreamPlayer plays sound. You compose behavior by combining typed nodes in a tree, not by attaching components to a generic object.
What's the most common root node for a 2D game?
Use Node2D as the root for 2D scenes that need a transform. Use Node (no transform) for managers, autoloads, and pure logic containers. CanvasLayer is the right root for HUD and UI overlays so they render on top of the world.
Tutor Checkpoint

Lock the pattern in

Before jumping to the next page, turn the idea into one tiny scene or script. That is where the Godot habit sticks.

Unity habit

GameObjects become typed nodes with built-in responsibilities.

Unreal habit

Actors and Components become a scene tree with parent-child ownership.

Godot habit

Pick the root node by responsibility first, then add children for visuals, collision, audio, and UI.

Try this

Sketch the node tree for a player, pickup, and pause menu before opening the editor.