Sign in

Saltmire

@saltmire.bsky.social
12 followers 68 following 31 posts

Game-feel tools & templates for Godot 4. Free & open-source core. Tutorials: saltmire.github.io Tools: saltmire.itch.io

PostsRepliesMedia
Saltmire @saltmire.bsky.social · 15/10/2026
Fixing set_shader_parameter not working in Godot 4 — a short, practical Godot 4 walkthrough with paste-ready code.
saltmire.github.io
Fixing set_shader_parameter not working in Godot 4
Godot 4 shader uniform won't change from code, or a hit flash lights up every enemy at once? The 5 real causes of set_shader_parameter doing nothing — the Godot 3 rename, shared materials, silent typos, wrong tween paths, use_parent_material — and the exact fix for each.
000
Saltmire @saltmire.bsky.social · 13/10/2026
7 Godot 4 melee attack mistakes (and the fix for each) — a short, practical Godot 4 walkthrough with paste-ready code.
saltmire.github.io
7 Godot 4 melee attack mistakes (and the fix for each)
Seven common mistakes when building a melee attack in Godot 4 — always-on hitboxes, one swing hitting five times, hitting yourself, the "Function blocked during in/out signal" error, hitboxes that don't flip, damage in the wrong node and one-frame active windows — each with paste-able GDScript.
020
Saltmire @saltmire.bsky.social · 11/10/2026
How to make XP gems with a pickup magnet and level-up bar in Godot 4 — a short, practical Godot 4 walkthrough with paste-ready code.
saltmire.github.io
How to make XP gems with a pickup magnet and level-up bar in Godot 4
A step-by-step Godot 4 tutorial for survivors-style experience pickups — gems that drop from enemies, get pulled toward the player by a magnet radius, and fill an XP bar with a rising level curve.
000
Saltmire @saltmire.bsky.social · 09/10/2026
What I learned making a smooth 2D camera follow in Godot 4 — a short, practical Godot 4 walkthrough with paste-ready code.
saltmire.github.io
What I learned making a smooth 2D camera follow in Godot 4
Lessons from building a Camera2D that follows the player in Godot 4 — smoothing that doesn't jitter, limits from the tilemap, teleports without a swoosh, and look-ahead that doesn't fight screen shake.
000
Saltmire @saltmire.bsky.social · 07/10/2026
GPUParticles2D vs CPUParticles2D in Godot 4 — which and when — a short, practical Godot 4 walkthrough with paste-ready code.
saltmire.github.io
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.
000
Saltmire @saltmire.bsky.social · 05/10/2026
Fixing 'previously freed instance' errors in Godot 4 combat code — a short, practical Godot 4 walkthrough with paste-ready code.
saltmire.github.io
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.
000
Saltmire @saltmire.bsky.social · 03/10/2026
7 Godot 4 collision layer and mask tips that save you an afternoon of debugging — a short, practical Godot 4 walkthrough with paste-ready code.
saltmire.github.io
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.
000
Saltmire @saltmire.bsky.social · 01/10/2026
How to save game settings (volume, fullscreen, keybinds) in Godot 4 with ConfigFile — a short, practical Godot 4 walkthrough with paste-ready code.
saltmire.github.io
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.
000
Saltmire @saltmire.bsky.social · 27/09/2026
Godot 4 change_scene_to_file not working? 4 causes and fixes — a short, practical Godot 4 walkthrough with paste-ready code.
saltmire.github.io
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 — e
011
Saltmire @saltmire.bsky.social · 25/09/2026
What I learned building a health component with i-frames in Godot 4 — a short, practical Godot 4 walkthrough with paste-ready code.
saltmire.github.io
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.
000
Saltmire @saltmire.bsky.social · 23/09/2026
Area2D vs RayCast2D vs ShapeCast2D for melee attacks in Godot 4 — which and when — a short, practical Godot 4 walkthrough with paste-ready code.
saltmire.github.io
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.
001
Saltmire @saltmire.bsky.social · 20/09/2026
How to add a loading screen with a progress bar in Godot 4 — a short, practical Godot 4 walkthrough with paste-ready code.
saltmire.github.io
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.
010
Saltmire @saltmire.bsky.social · 15/09/2026
Godot 4 camera shake not working right? 4 causes and fixes — a short, practical Godot 4 walkthrough with paste-ready code.
saltmire.github.io
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.
000
Saltmire @saltmire.bsky.social · 04/09/2026
What I learned building an enemy state machine in Godot 4 — a short, practical Godot 4 walkthrough with paste-ready code.
saltmire.github.io
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.
000
Saltmire @saltmire.bsky.social · 04/09/2026
What a survivors-like actually needs in Godot 4 — and what you can skip — a short, practical Godot 4 walkthrough with paste-ready code.
saltmire.github.io
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.
010
Saltmire @saltmire.bsky.social · 04/09/2026
RigidBody2D vs CharacterBody2D for knockback in Godot 4 — which and when — a short, practical Godot 4 walkthrough with paste-ready code.
saltmire.github.io
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.
120
Saltmire @saltmire.bsky.social · 18/08/2026
Godot 4 'signal already connected' — why it happens and how to fix it — a short, practical Godot 4 walkthrough with paste-ready code.
saltmire.github.io
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.
000
Saltmire @saltmire.bsky.social · 16/08/2026
5 Godot 4 sprite shader effects you can build in one script — a short, practical Godot 4 walkthrough with paste-ready code.
saltmire.github.io
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.
000
Saltmire @saltmire.bsky.social · 13/08/2026
How to add motion trails and afterimages in Godot 4 — a short, practical Godot 4 walkthrough with paste-ready code.
saltmire.github.io
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.
010
Saltmire @saltmire.bsky.social · 10/08/2026
What I learned building a save-slot menu in Godot 4 — a short, practical Godot 4 walkthrough with paste-ready code.
saltmire.github.io
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.
000
Saltmire @saltmire.bsky.social · 03/08/2026
Godot 4 GPUParticles2D not showing? 5 reasons your particles aren't appearing — a short, practical Godot 4 walkthrough with paste-ready code.
saltmire.github.io
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.
020
Saltmire @saltmire.bsky.social · 31/07/2026
Object pooling vs instantiate in Godot 4 — when it actually matters — a short, practical Godot 4 walkthrough with paste-ready code.
saltmire.github.io
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.
000
Saltmire @saltmire.bsky.social · 23/07/2026
How to make floating damage numbers in Godot 4 (pooled, no lag) — a short, practical Godot 4 walkthrough with paste-ready code.
saltmire.github.io
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.
000
Saltmire @saltmire.bsky.social · 21/07/2026
Godot 4 Area2D not detecting hits? 6 reasons area_entered isn't firing — a short, practical Godot 4 walkthrough with paste-ready code.
saltmire.github.io
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.
010
Saltmire @saltmire.bsky.social · 18/07/2026
6 Godot 4 game feel tricks (each just a few lines of GDScript) — a short, practical Godot 4 walkthrough with paste-ready code.
saltmire.github.io
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.
000
Saltmire @saltmire.bsky.social · 17/07/2026
Godot 4 hitbox and hurtbox the easy way (damage, teams, i-frames, knockback) — a short, practical Godot 4 walkthrough with paste-ready code.
saltmire.github.io
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.
010
Saltmire @saltmire.bsky.social · 14/07/2026
"Tween vs AnimationPlayer in Godot 4 — which to use and when" — a short, practical Godot 4 walkthrough with paste-ready code.
saltmire.github.io
"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.
000
Saltmire @saltmire.bsky.social · 10/07/2026
"Fixing Godot 4 save-file load errors: JSON parse error, null instance, and missing files" — a short, practical Godot 4 walkthrough with paste-ready code.
saltmire.github.io
"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.
000
Saltmire @saltmire.bsky.social · 09/07/2026
5 Godot 4 scene transition effects (and how to build each one) — a short, practical Godot 4 walkthrough with paste-ready code.
saltmire.github.io
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.
000
Saltmire @saltmire.bsky.social · 08/07/2026
Godot 4 screen shake and hit-stop in one script — a short, practical Godot 4 walkthrough with paste-ready code.
saltmire.github.io
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.
010
Saltmire @saltmire.bsky.social · 08/07/2026
How to save and load your game in Godot 4 (the honest way) — a short, practical Godot 4 walkthrough with paste-ready code.
saltmire.github.io
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.
010