I will here, give an overview of the core nodes in Godot and how and when to use them.
- 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.)
- 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.)
- 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.
- 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.
- 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.
- 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.
- AUDIO NODES
- AudioStreamPlayer – 2D or UI-sound playback.
- AudioStreamPlayer2D – Positional audio in 2D.
- AudioStreamPlayer3D – Positional audio in 3D.
- 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.
- 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.