godot-oneshot-vfx

Spawn fire-and-free GPUParticles3D effects for Godot combat signals.

8|3|Updated Jun 12, 2026
One-click install
npx skills add https://github.com/arthur0n/xenodot-forge --skill godot-oneshot-vfx
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: godot-oneshot-vfx
Source: https://github.com/arthur0n/xenodot-forge/tree/main/plugin/skills/godot-oneshot-vfx
Command: npx skills add https://github.com/arthur0n/xenodot-forge --skill godot-oneshot-vfx

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

This Skill solves the problem of short-lived Godot combat VFX leaking, spawning at the wrong point, or failing to retrigger when a shot, hit, or kill happens.

Core Features & Use Cases

  • One-shot effect rig: Uses a reusable Node3D plus GPUParticles3D setup that emits once and frees itself on completion.
  • Event-driven routing: Maps existing gameplay seams like fired, hit, and died to muzzle flashes, impact bursts, and death bursts without changing core gameplay contracts.
  • World-space placement: Reparents effects under a surviving VfxRoot before setting transforms, preventing bursts from being cut short when the owner disappears.
  • Performance-aware VFX: Includes a lightweight muzzle light pulse, particle burst budgets, and a non-particle shockwave alternative for readable combat feedback.
  • Use case: Add a muzzle flash to a weapon, spawn an impact spark at the hit location, or trigger a death burst when an enemy dies.

Quick Start

Ask the skill to wire a fire-and-free VFX router for Godot combat seams and spawn the muzzle flash, impact burst, and death burst at the correct world positions.

Frequently Asked Questions about godot-oneshot-vfx

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

FAQPage Schema
How do I spawn one-shot combat VFX in Godot without leaking particles?

To spawn one-shot combat VFX in Godot without leaking, use a fire-and-free GPUParticles3D rig that emits once and connects its finished signal to self-destruct. Reparent the effect under a surviving VfxRoot before setting transforms to prevent premature cleanup.

Why do my Godot impact sparks disappear instantly when an enemy dies?

Godot impact sparks disappear instantly when the parent node frees on death. Reparent the one-shot VFX under a dedicated VfxRoot that survives the owner's destruction, then set the world-space transform to keep the burst playing at the correct position.

What's the best way to route muzzle flashes and death bursts from gameplay signals in Godot?

The best way to route muzzle flashes and death bursts in Godot is event-driven mapping. Connect existing gameplay seams like fired, hit, and died signals to a VFX router that spawns the correct fire-and-free particle effect without altering core gameplay contracts.

Does Godot GPUParticles3D support retriggering one-shot effects for consecutive shots?

Godot GPUParticles3D supports retriggering one-shot effects by spawning a new instance per gameplay signal. A fire-and-free rig creates a fresh Node3D with each fired or hit event, ensuring the burst emits fully and self-destructs via finished signal cleanup.

Can I add lightweight combat VFX to a Godot FPS without heavy shader overhead?

You can add lightweight combat VFX to a Godot FPS using particle burst budgets, a quick muzzle light pulse, and a non-particle shockwave alternative. These readable effects trigger from hit and died signals while keeping performance overhead minimal.

How to fix mispositioned muzzle flash placement in Godot world space?

Fix mispositioned muzzle flash placement in Godot by reparenting the effect under a surviving VfxRoot before applying the world-space transform. This ensures the one-shot GPUParticles3D plays at the exact fired location without inheriting incorrect local offsets.