godot-3d-essentials
Set up a Godot 4.7 3D scene: Node3D transforms, Camera3D, lighting (DirectionalLight3D/OmniLight3D), WorldEnvironment for sky/ambient/tonemap/post, MeshInstance3D materials, and GridMap for tile-based 3D levels. Use when building a 3D scene in a Godot project, placing cameras/lights, configuring env
By gamedev-skills · 2,362 installs
npx skills add gamedev-skills/awesome-gamedev-agent-skills --skill godot-3d-essentials
Source repository · Upstream listing
Godot 3D Essentials (4.x)
Assemble a working 3D scene: transforms, camera, lights, environment/post, materials, and
GridMap blockouts. Targets Godot 4.7 .
When to use
Use when starting or fixing a 3D scene: positioning a Camera3D , adding lights, setting
up a WorldEnvironment (sky, ambient, tonemap, glow/SSAO), assigning materials, or
building levels with GridMap .
When not to use: writing spatial shaders → godot shaders ; 3D physics bodies and
raycasts → godot physics ; character animation blending → godot animation ; full FPS
template → the fps shooter genre skill.
Core workflow
1. Everything 3D is a Node3D with a Transform3D (position, rotation basis, scale).
Move with global position , rotate with rotate y(angle) or look at(target) .
2. Add a Camera3D . Mark it current (or call make current() ); set fov , near ,
far . Parent it to a rig/pivot for orbit or follow cameras.
3. Light the scene. A DirectionalLight3D is the sun; OmniLight3D / SpotLight3D are
local; AreaLight3D (4.7+) is a rectangular panel light that costs more than omni/spot.
Enable shadows per light. Without lights and ambient, surfaces render black.
4. Add a WorldEnvironment with an Environment resource: background (sky/color),
ambient light, tonemap, and post (glow, SSAO, fog, adjustments).
5. Give meshes materials ( StandardMaterial3D or a ShaderMaterial ) on
MeshInstance3D .
6. Block out levels with GridMap , which places MeshLibrary items on a 3D grid
(the 3D analog of a tilemap).
Patterns
1. A follow camera (third person, smoothed)
2. Sun + environment in code
3. Assign a StandardMaterial3D from code
4. Place tiles into a GridMap
Pitfalls
Scene renders black → no lights and no ambient. Add a DirectionalLight3D and/or a
WorldEnvironment with ambient/sky. New scenes have neither by default.
No camera / wrong camera. If nothing shows, no Camera3D is current . Set
current = true or make current() ; only one camera renders per viewport.
Confusing local vs global transforms. position / rotation are relative to the
parent; global position / global transform are world space. Mixing them under a rotated
parent gives surprising results. look at uses global coordinates.
Scaling physics/lights. Non uniform scale on a Node3D distorts child collisions
and lights; prefer scaling the mesh asset or using uniform scale.
look at does nothing and prints an error → the target equals the node's position, the
up vector is parallel to the look direction (e.g. looking straight down with
Vector3.UP ), or the node is not in the tree yet. Keep an offset, pass a different up , or
use look at from position() before the node enters the tree.
GridMap with no MeshLibrary places nothing. Create a MeshLibrary (from scenes)
and assign it; set cell item(cell, 1) clears a cell.
HDR/glow too strong → check tonemap mode and glow thresholds; raw emissive values
bloom hard under filmic tonemapping.
References
For Transform3D math, camera projection modes, light/shadow params, the full
Environment/post processing options, MeshLibrary creation, and ReflectionProbe /
LightmapGI lighting, read references/scene and environment.md .
Related skills
godot physics — 3D bodies, areas, and raycasts.
godot shaders — spatial shaders for custom 3D surfaces.
godot animation — AnimationTree for 3D characters.
camera systems — third person orbit / first person look rigs, framing, and collision.
performance optimization — keep 3D scenes within frame budget (draw calls, lights, LOD).
fps shooter — composes 3D movement, input, and AI into a game.