vfx-hit-spark

Creates one-shot additive billboard spark bursts oriented to surface normals in Godot scenes.

66|4|Updated Feb 26, 2026
One-click install
npx skills add https://github.com/SummerEngine/summer --skill vfx-hit-spark-summerengine
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: vfx-hit-spark
Source: https://github.com/SummerEngine/summer/tree/main/library/skills/vfx-hit-spark
Command: npx skills add https://github.com/SummerEngine/summer --skill vfx-hit-spark-summerengine

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes references (resource) components.

What problem does it solve? Impact events in games—bullet hits, sword clashes, pickaxe strikes—often have no visual feedback at the contact point. This Skill provides a complete, verified recipe for spawning one-shot spark bursts that orient to the surface normal, so impacts read clearly without hand-tuning particle settings from scratch. ## Core Features & Use Cases - One-shot GPUParticles3D recipe: A HitSpark GDScript controller plus scene file configured for single-burst emission with explosiveness = 1.0, additive blending, and velocity-stretched billboards. - Static spawn helper: HitSpark.spawn_hit_spark(parent, position, normal, intensity) orients the emitter to the surface normal, restarts the burst, and auto-frees after the lifetime. - Named variants: Ready-made parameter sets for bullet-on-metal, sword-clash, water-droplet, blood-spurt, and electric-discharge effects. - Use Case: A player fires at a metal wall; the raycast hit returns a position and normal, and one call to spawn_hit_spark produces a correctly oriented orange spark burst that cleans itself up. ## Quick Start Ask your agent to add hit sparks that fire at the raycast impact point whenever a bullet hits a surface in the current Godot project.

Frequently Asked Questions about vfx-hit-spark

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I spawn spark particles at a bullet impact point in Godot?

Call HitSpark.spawn_hit_spark with the scene tree root, the raycast hit position, and the hit normal. The helper instantiates the spark scene, orients it to the surface normal, restarts the one-shot burst, and frees it after the particle lifetime.

How do I make one-shot particle bursts in Godot GPUParticles3D?

Set one_shot = true, emitting = false, and explosiveness = 1.0 so all particles spawn in the first frame. Then call restart() and set emitting = true when the burst should fire, and free the node after the lifetime expires.

Why does BaseMaterial3D.new() cause a parse error in Godot?

BaseMaterial3D is abstract and cannot be constructed, so calling BaseMaterial3D.new() is a parse error that breaks the whole script. Instantiate StandardMaterial3D instead; the BaseMaterial3D.* enum constants remain valid for setting transparency, blend mode, and billboard mode.

Why do my impact sparks always shoot upward instead of along the surface normal?

The emitter was never oriented to the impact normal. The spawn helper uses look_at toward position plus normal, then rotates -90 degrees around local X because look_at uses -Z as forward, aligning the cone direction with the surface.

When should I use hit sparks versus a muzzle flash or debris chunks?

Use hit sparks for a spray of particles at the impact point. Use a muzzle-flash recipe for a flash at the gun end, and spawn RigidBody3D shards for physical debris like rock pieces, optionally layering sparks on top.

How do I handle spark effects in networked multiplayer games?

Spawn sparks client-side based on hit events rather than replicating the spark node itself, since replicating transient particle nodes wastes bandwidth. Each client instantiates its own local burst when it receives the hit event.