Godot nodes

I will here, give an overview of the core nodes in Godot and how and when to use them.

  1. Core Nodes
    • Node – This is used for non-visual data (game manager, inventory system, music manager, load/save system etc.)
    • Node2D – Used for a 2D object, that should be rendered on screen (position, rotation, scale etc.)
    • Node3D – Used when you need a 3D object rendered (position, rotation, scale etc.)
  2. 2D Visual Nodes
    • Sprite2D – Use this for displaying a single static 2D texture (player graphics, pickup icon, enemy graphic etc.)
    • TileMap – Used when you do a tile based game i.e. a 2D platformer.
    • ParallaxBackground / ParallaxLayer – Used for multi layered scrolling background graphics.
    • CanvasGroup – Used for grouping (opacity, fading nodes together etc.)
  3. 2D Physics Nodes
    • CollisionShape2D / CollisionPolygon2D – Use to define collision for any 2D physics body.
    • Area2D – Use for detecting overlap, entering/leaving zones (Pickup triggers, damage areas, detecting zones etc.)
    • StaticBody2D – Use for solid walls, ground, immovable objects.
    • RigidBody2D – Use with objects affected by real physics simulation (Falling crates, rolling rocks etc.)
    • CharacterBody2D – Use with player or AI characters with kinematic movement. Supports move_and_slide() style movement.
  4. 3D Visual Nodes
    • MeshInstance3D – Use when: Displaying a 3D mesh/model.
    • MultiMeshInstance3D – Use when: Rendering many identical objects efficiently (e.g., trees, bullets).
    • Camera3D – Use when: You need a 3D camera.
    • AnimationPlayer / AnimationTree – Use when: Creating cutscenes, model animations, blend trees.
  5. 3D PHYSICS NODES
    • CollisionShape3D / CollisionMesh – Defines collisions.
    • Area3D – Trigger zones, detection spheres.
    • StaticBody3D – Immovable walls, floors.
    • RigidBody3D – Real physics simulation objects.
    • CharacterBody3D – 3D counterpart to CharacterBody2D.
      Perfect for 3D player and enemies.
  6. UI (Control) NODES – Everything UI-related inherits from Control.
    • Control (base class) – Use when: Making any UI element.
    • Button / TextureButton – Clickable UI elements.
    • Label – Text display.
    • LineEdit / TextEdit – Single-line or multi-line text input.
    • Panel / NinePatchRect – Box backgrounds and panels.
    • MarginContainer / HBoxContainer / VBoxContainer / GridContainer – Use when: You want responsive layout without manual positioning.
    • ScrollContainer – Scrollable content.
    • CanvasLayer – Use for HUDs and UI that must stay fixed to the screen.
    • Window – Popup windows, dialogs, draggable panels.
  7. AUDIO NODES
    • AudioStreamPlayer – 2D or UI-sound playback.
    • AudioStreamPlayer2D – Positional audio in 2D.
    • AudioStreamPlayer3D – Positional audio in 3D.
  8. UTILITY & LOGIC NODES
    • Timer – Use when you need repeated or delayed actions (cooldowns, spawn intervals, animation delays etc.)
    • AnimationPlayer – Animate properties, movement, UI, sprites.
    • Tween (SceneTreeTween) – Use for smooth property transitions (movement, fade, scale).
    • HTTPRequest – For online APIs, downloads, uploading.
    • NavigationRegion2D / NavigationAgent2D – 2D pathfinding.
    • NavigationRegion3D / NavigationAgent3D – 3D pathfinding.
    • Particles2D / GPUParticles2D – Fire, smoke, snow, sparks in 2D.
    • GPUParticles3D – Same in 3D.
    • RayCast2D / RayCast3D – Line-based detection: visibility, bullets, ground checking.
  9. WORKFLOW NODES
    • SceneTree – Not a node you place, but: Use to change scenes, access globals, pause game, find nodes.
    • Marker2D / Marker3D – Invisible transform markers. Use for spawn points, path markers, waypoints.
    • Path2D / PathFollow2D – Moving enemies along curves (enemy paths etc.)
    • Path3D / PathFollow3D – Same in 3D.

Which nodes you should ALWAYS know (the top 20)

If you know these, you can make almost any game:

2D Game Essentials

» Node2D – 2D objects.

» Sprite2D / AnimatedSprite2D – 2D textures.

» CharacterBody2D – move_and_slide() style movement.

» CollisionShape2D – Define collision.

» Area2D – Overlap detection.

» Timer – Intervals and delays.

» AnimationPlayer – Animation.

» RayCast2D – Line-based detection.

» TileMap – Tile based games.

» Camera2D – Camera.

UI Essentials

» Control – UI elements.

» Button – UI button.

» Label – UI label.

» HBoxContainer / VBoxContainer. Horizontal/vertical UI containers (groups)

» Panel – UI panels.

» CanvasLayer – HUD.

» TextureRect – UI texture.

Logic Essentials

» Node – Non visible systems.

» Tween – Smooth transitions.

» AudioStreamPlayer – Sound.

» SceneTree – Change scenes etc.