- GPUParticles2D vs CPUParticles2D in Godot 4 — which and when
A practical Godot 4 comparison of GPUParticles2D and CPUParticles2D — what each one can do, how they behave on the Compatibility renderer and web exports, the first-burst stutter, and a simple rule for picking the right node for hit sparks, explosions and ambient effects.
- Fixing 'previously freed instance' errors in Godot 4 combat code
Godot 4 crashing with "previously freed instance" or "Cannot call method on a null value" when enemies die, or enemies dying twice? The 4 real causes in Godot 4 combat code (stale target references, await, same-frame double hits, get_parent() chains) and the exact fix for each.
- 7 Godot 4 collision layer and mask tips that save you an afternoon of debugging
Collision layers vs collision masks in Godot 4, explained with 7 practical tips — the one-line rule, naming layers, the 1-based vs bitmask trap, a constants script, one-way Area2D detection, raycast masks and TileSet physics layers.
- How to save game settings (volume, fullscreen, keybinds) in Godot 4 with ConfigFile
A practical Godot 4 tutorial for an options menu that remembers itself — a Settings autoload backed by ConfigFile, audio bus volume, fullscreen and vsync, and keyboard rebinds that survive a restart.
- Godot 4 change_scene_to_file not working? 4 causes and fixes
get_tree().change_scene_to_file() fails silently, throws "Can't change this state while flushing queries", crashes with a null get_tree(), or fires twice. Here are the 4 real causes in Godot 4 — code running after the scene is gone, physics callbacks, broken paths in exports, and double triggers — each with the exact fix.
- What I learned building a health component with i-frames in Godot 4
Lessons from building a reusable health and damage component in Godot 4 — why health belongs in its own node, the double-hit bug i-frames actually fix, and why "died" must only fire once.
- Area2D vs RayCast2D vs ShapeCast2D for melee attacks in Godot 4 — which and when
A practical Godot 4 comparison of the three ways to detect a sword swing, punch or bullet hit — Area2D, RayCast2D and ShapeCast2D — with the one-frame delay nobody warns you about and a clear rule for picking.
- How to add a loading screen with a progress bar in Godot 4
A practical Godot 4 tutorial for threaded scene loading — a CanvasLayer loading screen, a ProgressBar wired to ResourceLoader.load_threaded_get_status, and tips for minimum display time and a fade-out transition.
- Godot 4 camera shake not working right? 4 causes and fixes
Your Godot 4 camera shake barely moves, snaps back instantly, or drifts permanently off-center. Here are the 4 real causes — shaking position instead of offset, overlapping shakes fighting each other, offset never getting reset, and frame-rate-dependent decay — each with the exact fix.
- What I learned building an enemy state machine in Godot 4
Lessons from building an enemy state machine in Godot 4 — why a match statement stops scaling, the transition bug that only shows up under pressure, and what actually earns its own State node.
- What a survivors-like actually needs in Godot 4 — and what you can skip
The five systems that decide whether a Vampire Survivors-like in Godot 4 ships or stalls — data-driven waves, enemy count, the upgrade draft, honest damage, and meta progression — with the code for each and an honest note on what you can leave out.
- RigidBody2D vs CharacterBody2D for knockback in Godot 4 — which and when
A practical Godot 4 comparison for implementing hit knockback — when to fake it on a CharacterBody2D, when to reach for a real RigidBody2D, and the hybrid trick most shipped games actually use.
- Godot 4 'signal already connected' — why it happens and how to fix it
Your Godot 4 script throws "Signal is already connected" at runtime. Here are the 4 real causes — reconnecting on scene reload, connect inside a loop, shared targets with multiple instances, and wrong disconnect patterns — each with the exact fix.
- 5 Godot 4 sprite shader effects you can build in one script
Dissolve, outline, hit-flash, freeze, and hologram — five Godot 4 canvas_item shader effects with copy-paste GDScript and .gdshader code for each.
- How to add motion trails and afterimages in Godot 4
A step-by-step Godot 4 tutorial for motion trails and dash afterimages — a sprite-snapshot scene, a configurable trail emitter, and tips for making them look great during fast movement.
- What I learned building a save-slot menu in Godot 4
Lessons from building a multi-slot save menu in Godot 4 — thumbnail screenshots, corrupt-slot handling, the "new game" vs "continue" trap, and why a single save file always turns into three slots eventually.
- Godot 4 GPUParticles2D not showing? 5 reasons your particles aren't appearing
Your Godot 4 GPUParticles2D is in the scene but nothing shows up. Here are the 5 real causes — missing process material, culled visibility rect, one_shot traps, lifetime too short, and emitting left false — each with the exact fix.
- Object pooling vs instantiate in Godot 4 — when it actually matters
A practical Godot 4 comparison of object pooling and plain instantiate() — what each really costs, the frame-time numbers that decide it, and a small pool you can paste into a bullet-heaven or wave-based game.
- How to make floating damage numbers in Godot 4 (pooled, no lag)
A step-by-step Godot 4 tutorial for floating combat damage numbers — a reusable Label scene, a pooled spawner that never allocates on the hot path, and juice like crits and knockback-aware offsets.
- Godot 4 Area2D not detecting hits? 6 reasons area_entered isn't firing
Your Godot 4 Area2D won't detect collisions and area_entered never fires. Here are the 6 real causes — monitoring flags, layers vs masks, missing shapes, and the overlap-on-activate trap — each with the fix.
- 6 Godot 4 game feel tricks (each just a few lines of GDScript)
Squash-and-stretch, sprite flash, damage numbers, knockback, slow-motion and a camera punch — six drop-in Godot 4 game feel techniques with copy-paste GDScript.
- Tween vs AnimationPlayer in Godot 4 — which to use and when
Tween and AnimationPlayer both animate values in Godot 4, but they solve different problems. Here's a clear comparison table, real code for each, and a verdict so you pick the right tool the first time.
- Godot 4 hitbox and hurtbox the easy way (damage, teams, i-frames, knockback)
How to build a clean hitbox/hurtbox system in Godot 4 with Area2D — collision layers and masks explained, plus damage, teams to stop friendly fire, invincibility frames and knockback, with copy-paste code.
- Fixing Godot 4 save-file load errors: JSON parse error, null instance, and missing files
The three save/load errors that break Godot 4 games — JSON parse error at end of file, attempt to call on a null instance, and file not found — with the cause and the exact fix for each.
- 5 Godot 4 scene transition effects (and how to build each one)
Fade, iris wipe, pixelate, slide, and dissolve — five working Godot 4 scene transition techniques with GDScript code you can drop in today.
- How to save and load your game in Godot 4 (the honest way)
A complete, working save/load system in Godot 4 using FileAccess and JSON — plus the four production problems nobody warns you about.
- Godot 4 screen shake and hit-stop in one script
Add punchy screen shake and hit-stop (freeze frames) to your Godot 4 game with a small, reusable Camera2D script — with tunable code you can paste in today.