Client project

Flamethrower VFX

Not an effect. A tool for making the effect.

A reusable anime-style flamethrower for Godot 4.3, built for a client as a proper editor tool rather than a one-off effect. Twelve parameters, five colour palettes and two custom shaders, all live in the inspector or at runtime through the demo panel.

01

See it running

Every slider is live — the effect rebuilds as the values change.
02

What it does

  • Twelve live parameters: emission, speed, length, spread, buoyancy, intensity, noise scale, animation FPS, distortion and lash density
  • Five colour palettes — Classic Fire, Blue Plasma, Toxic Green, Violet Hellfire, White Hot
  • Two custom shaders: an animated flame stream and a separate heat-haze distortion pass
  • Marked @tool, so the effect renders and updates live in the Godot editor
  • Exposed as a Flamethrower node the client can drop into any scene
03

Built for a client

Built to a written brief: an anime-style flamethrower a designer could retune without touching code. Delivered as a self-contained Godot node with exported ranges, palette presets and a demo scene for trying values out quickly.

Client briefMazen — implementation
04

The thought

The brief asked for a flame effect. What a team actually needs is one they can change at 2am without tracking down the programmer, so I built it as a tool from the start.

05

Mechanics

A fan-shaped jet emitted along the node’s local +X axis with the anime fire treatment drawn over it. Spread, length and buoyancy shape the cone. Noise scale and distortion break up the silhouette so it never reads as a repeating loop, which is the thing that gives most stylised fire away.

06

Systems

Every exported property runs through a setter that just marks the effect dirty instead of rebuilding straight away, so dragging a slider does not thrash the particle system. Palettes are data rather than branches, which is why adding a sixth colour is a one-line change.

07

Under the hood

Roughly 870 lines across three scripts and two shaders. flamethrower.gd owns the parameters and the dirty flag, flame_palettes.gd is a plain colour table, and demo.gd is nothing but the tuning UI. You can delete demo.gd and the effect still works, which was the point.

08

What the client said

Big vouch for Mazen. I needed some custom VFX work done, and he delivered top-notch results that fit perfectly with my project’s vision. He was professional, quick to respond, and easy to work with from start to finish. Would definitely collaborate again!
Phantom ByteGame Dev League Discord, August 2026

Need something like this built?

Tell me what the system has to do and where it sits. I'll tell you what that takes, or say straight away if it isn't a fit.