GameObjects become typed nodes with built-in responsibilities.
Node Tree Explorer. Learn how typed nodes compose scenes and replace generic object containers.
Pick the right root
A three-step quiz. A wrong pick explains why.- 1 Choose a scene job
- 2 Pick the node that owns it
- 3 See the children it needs
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
Node2D
The base node for all 2D game objects. Has position, rotation, and scale.
Like an empty GameObject with Transform2D
Example GDScript
Node2D.gdextends 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
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
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.
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.
Actors and Components become a scene tree with parent-child ownership.
Pick the root node by responsibility first, then add children for visuals, collision, audio, and UI.
Sketch the node tree for a player, pickup, and pause menu before opening the editor.