Impact Decals
Bullet holes and scorch marks that stay on the wall — the world remembering the fight is a feedback channel too.
Examples
Captured from this page's own interactive demo below.
Overview
Sparks and flashes last a tenth of a second; the bullet hole stays. Impact decals are the world's memory — chips in concrete, scorch rings around an explosion, cracked glass — and they do quiet feedback work long after the impact frame: they confirm exactly where shots landed, they turn a spray pattern into something the player can read on the wall, and they make surfaces feel like matter instead of painted cardboard.
The standard implementation is a ring-buffer pool: a fixed budget of decal quads (say 64), placed at the hit point, aligned to the surface normal, with random rotation and slight scale variance so repeats don't read. When the pool overflows, the oldest decal fades out over a second rather than vanishing — players genuinely notice a bullet hole popping off a wall, and the fade launders the recycling.
Match the decal to the material and the caliber: a pistol chips drywall, punches metal, and stars glass, and each says something about the world. The one hard rule is placement honesty — the decal must sit exactly where the trace hit, because players use bullet holes as an aiming record; a decal that drifts off the hit point actively teaches wrong aim.
Interactive Demo
Use Cases
Best Practices
Do
- ✓Pool decals in a ring buffer with a hard budget, and fade the oldest out instead of popping it off the wall.
- ✓Randomize rotation and scale a little per decal so a spray never reads as a repeated stamp.
- ✓Place the decal exactly at the trace hit point — players use bullet holes as an aiming record.
Don't
- ✕Don't let decals z-fight the surface; bias them a hair along the normal and render them after the wall.
- ✕Don't spawn a decal per pellet of every shotgun blast at full budget — cluster hits can share one bigger mark.
- ✕Don't keep decals on destroyed or moving objects unless they're parented to them; floating holes break the spell.
Common Mistakes
- ⚠Decals silently vanishing when the pool recycles, which players report as 'my shots stopped counting'.
- ⚠One universal gray splat for concrete, metal, wood, and glass, wasting the material storytelling channel.
- ⚠Unbounded decal spawning that eats fill-rate in long firefights — exactly when the frame budget is tightest.
Implementation
Paste this into your AI assistant (Cursor, Copilot, Claude) to add the effect to your project.
Add the "Impact Decals" game-feel effect to my project: Bullet holes and scorch marks that stay on the wall — the world remembering the fight is a feedback channel too.
How it works: Sparks and flashes last a tenth of a second; the bullet hole stays. Impact decals are the world's memory — chips in concrete, scorch rings around an explosion, cracked glass — and they do quiet feedback work long after the impact frame: they confirm exactly where shots landed, they turn a spray pattern into something the player can read on the wall, and they make surfaces feel like matter instead of painted cardboard.
Guidelines:
- Pool decals in a ring buffer with a hard budget, and fade the oldest out instead of popping it off the wall.
- Randomize rotation and scale a little per decal so a spray never reads as a repeated stamp.
- Place the decal exactly at the trace hit point — players use bullet holes as an aiming record.
Avoid:
- Don't let decals z-fight the surface; bias them a hair along the normal and render them after the wall.
- Don't spawn a decal per pellet of every shotgun blast at full budget — cluster hits can share one bigger mark.
- Don't keep decals on destroyed or moving objects unless they're parented to them; floating holes break the spell.
Implement the effect in whatever engine/stack the project already uses and follow its existing code style. Wire it up where it makes sense.References
Related Effects
Impact Sparks
Sparks bursting off the surface when something hits a wall — collisions you can see.
Muzzle Flash
A one-or-two-frame burst of light at the barrel — the visual crack that makes a gun feel loaded.
Particle Burst
A radial spray of short-lived particles that marks an impact or a pickup.
Comments
…