Flintspark FX: Status, Hit & Loot Effects
A downloadable asset pack
AI disclosure: The art is rendered procedurally by the publisher's own scripts; no generative image model was used, and every store image is composed from the pack's own frames over a grey placeholder figure rendered by the same scripts. The engine scripts, preview page, documentation and this page text were written with AI assistance and reviewed by the publisher.
Unzip, add an AnimatedSprite2D in Godot 4, set Sprite Frames to fx_status_burn_loop.tres, press play: a looping, body-scale burn wrapped around your character in 30 seconds. In Unity, drop FlintsparkFXImporter.cs into an Editor folder, run Tools > Flintspark FX > Import Strips and drag the generated .anim clip onto a SpriteRenderer. Not sure yet? Open index.html from the unzipped folder in a browser and every strip plays over the placeholder figure before you import anything. Version 1.0.0.
Want to try the import path first? The free Flintspark FX Lite has one full status chain (burn), one hit and the loot sparkle with the same engine files and preview page, so the full pack drops in unchanged: https://spareminute.itch.io/flintspark-fx-lite
Flintspark is a game-neutral 2D VFX series in a stylized glow style: crisp emission shapes with a white-hot core, one saturated hue family per element and a soft, short falloff. Not pixel art, not realistic smoke, not flat vector. Status effects are body-scale and translucent, so the character stays readable through them, and every element owns one colour (fire orange, ice blue, poison green, shock yellow and violet, blood red, holy gold and mint, curse violet, neutral grey smoke) so players read the status from colour first and shape second. Every strip is drawn on the same 256 px frame around the same imaginary 160 px character, from one 22-colour palette, so the whole set reads as one family and later volumes will match.
What's inside
43 animation strips, 32-bit RGBA PNG on transparent backgrounds, each at three frame sizes (256, 128 and 64 px), as horizontal sheets and as single frames, plus Godot and Unity engine files and an offline preview page.
- 11 status loops, 24 frames at 24 fps (1 s, exactly periodic):
fx_status_burn_loop,fx_status_frost_loop,fx_status_shock_loop,fx_status_poison_loop,fx_status_bleed_loop,fx_status_stun_loop,fx_status_shield_loop,fx_status_regen_loop,fx_status_haste_loop,fx_status_slow_loop,fx_status_curse_loop - 22 status start and end one-shots, 12 frames at 24 fps (0.5 s): a
_startand an_endfor every one of the 11 statuses. The last frame ofstartand the first frame ofendare byte-identical to the loop's first frame, so the chain start -> loop -> end plays with no pop. - 6 hit impacts, 12 frames at 30 fps (0.4 s), peak around frame 3:
fx_hit_slash,fx_hit_blunt,fx_hit_crit,fx_hit_fire,fx_hit_shock,fx_hit_pierce - 2 buff / debuff bursts, 16 frames at 24 fps:
fx_burst_buff,fx_burst_debuff - 2 loot effects, 24 frames at 24 fps:
fx_loot_sparkle_loop(periodic idle twinkle) andfx_loot_pickup(one-shot collect burst) Sheets_256/master sheets (256x256 frames, no suffix: 6144, 3072 or 4096 px wide),Sheets_128/(_128suffix: 3072, 1536 or 2048 px wide) andSheets_64/(_64suffix: 1536, 768 or 1024 px wide): 129 strip PNGs- Single frames next to every strip in
<dir>/<id>/<id>_00.png ...(_00_128.png,_00_64.pngin the smaller sizes): 680 frames per size, 2040 frame PNGs (2169 PNG files in all) <id>.sheet.jsonnext to every strip (frames,frame_w,frame_h,fps_hint,facing): 129 filesflintspark_fx.json: every strip with its anchor (feet / body / head / centre), pivot, loop flag and start / loop / end chain, per export size- Godot 4: 43
SpriteFramesresources (<id>.tres, built on the 128 px sheets, fps and loop already set) - Unity 2021.3+:
FlintsparkFXImporter.cs, an Editor script that slices every strip with the anchor as pivot and writes a looping or one-shot.animclip per strip - Preview page:
index.html, a single file with no external dependencies. Open it from the unzipped folder and a canvas player plays every strip from theSheets_128/(orSheets_256/) folder next to it, with play / pause, frame step, an fps slider, 1x / 2x zoom, the grey placeholder figure on or off, and one-shot repeat. The figure is embedded in the page and is not a pack item. ENGINE_GUIDE.md(anchors, Godot, Unity, GameMaker, Phaser / PixiJS notes, chains, tinting),README.txt,LICENSE.txt,CHANGELOG.txt- 2348 files, about 58 MB zipped
Formats, plainly: PNG sheets and single frames at 3 frame sizes (256, 128 and 64 px) plus per-strip JSON, one pack-wide JSON, Godot .tres, a Unity C# importer, a Markdown engine guide and an HTML preview page. The 256 px sheets are the masters (rendered at 256 px per frame with 4x supersampling); nothing larger is included, so for characters much taller than about 160 px, or on a 1024 px card frame, the effects need 2x upscaling or your engine's own scaling. There are no icons, crests or card frames in this pack. No SVG, PSD, .blend or other source files are included. No packed atlas: each strip is its own sheet (the sheets are the atlases). No nine-slice data: effects are animation frames and are never sliced; scale them uniformly. No GIF or video files and no audio inside the zip.
What the effects look like (as shipped, checked frame by frame): burn is 3-4 broad orange flame tongues with red tips climbing from the feet to the shoulders, gold embers rising above the head and a soft grey ember bed at the feet; frost is a translucent pale-blue ice shell shaped around the whole body with crisp facets and crack lines, rows of blue crystal spikes on both sides, mist at the feet, and it shatters into drifting shards on _end; shock is 3-4 jagged yellow-cored lightning arcs with a soft violet halo tracing the body; poison is a bubbling green cloud at the feet with glossy green drips on the body and bubbles rising to the head and popping; bleed is 5-7 red runs with teardrop ends feeding a splash and a red pool at the feet; stun is gold five-point stars circling on a ring above the head, a soft gold halo around the head and a thinner gold orbit band at the shoulders; shield is a translucent gold hex-cell bubble around the body with a travelling rim highlight, cracking into cells on _end; regen is a column of mint motes and four-point sparkles rising through a soft green haze from a glowing ground ring; haste is pale and gold horizontal speed lines streaming across the body with a faint grey afterimage and gold dust at the feet (the quietest of the set at 64 px); slow is three thick translucent blue ripple rings sinking down the body with drifting grains and a grey drag haze at the feet; curse is violet smoke ribbons with a dark core spiralling up around the body over a purple ground stain. Hits: slash is a thin red arc that thickens into a white-edged red crescent with orange streaks and a faint grey arc trailing it, travelling east; blunt is an eight-ray gold starburst with a white core that throws small gold chips, then a thin grey dust ring with pale specks that expands and fades; crit is the biggest flash of the set, a white-hot bloom that opens into a gold four-point star with long rays and a ring of red specks; fire is an orange fireball bloom with a white core and noise-torn edges that fades to a faint ember-brown smoke ring; shock is a branching violet-and-yellow bolt from a white core that collapses into residual arcs; pierce is a gold needle streak shooting east through a white entry flash, leaving a thin pale entry ring and a short shimmer tail. Bursts: buff is a pale gold vertical light column with a soft white flash at its top and mint motes spiralling up; debuff is a two-ribbon violet smoke helix with a brief red flash, sinking into a spreading ground stain. Loot: a cluster of four-point gold-and-white stars in a soft glow, twinkling in place in the loop, or a single star that blooms and scatters a ring of stars outward on pickup.
Every strip uses one emission vocabulary: no black outlines, no baked drop shadows, no ground plane, and a 6 px empty margin on every side of every 256 px frame. Bright cores are additive-friendly (no dark pixels inside); bodies are normal-alpha and translucent. Directional effects (slash, pierce, haste) travel east (+X); flip or rotate them in the engine. The loot strips are near-white gold on purpose: tint them per rarity with modulate (Godot), SpriteRenderer.color (Unity), image_blend (GameMaker) or tint (Phaser / Pixi). No text, numerals or glyphs anywhere. All 43 strips share the same stylized-glow look, with crisp accents only on ice facets, lightning cores, shield cracks and the blunt hit's chips.
Built for engines, not just for screenshots
- Sheets with metadata: equal square frames left to right, no gaps; frame size, count and fps in the JSON next to each strip. Any engine that slices a grid works.
- Anchors, not guesswork: status effects are composed around one imaginary character (feet at (128, 232), body centre (128, 150), head centre (128, 64) in the 256 px frame; hits, bursts and loot at (128, 128)).
flintspark_fx.jsoncarries the anchor per strip and per export size; put that point on the matching point of your sprite. - Status chains:
start(12 frames) ->loop(24 frames, exactly periodic: frame 23 flows into frame 0) ->end(12 frames), with byte-exact hand-off frames, so switching clips never pops. Every start begins near-empty and every end finishes near-empty. - Godot 4:
AnimatedSprite2D+<id>.tres; setoffsetfrom the anchor (values inENGINE_GUIDE.md),play("default"), free one-shots onanimation_finished. - Unity: the included importer sets Sprite (Multiple), slices every strip, sets the pivot from the anchor and writes
.animclips with the loop flag; or slice by hand with Grid By Cell Size from the JSON. - GameMaker, Phaser, PixiJS, Flame, plain canvas: import the strip as a grid with
frame_wxframe_handframes; the guide has the one-liners. - Preview offline:
index.htmlin the pack folder plays every strip at the real fps over the placeholder figure, so you can pick sizes and check chains before touching your project. - Checked automatically on every strip: loop seam, visible motion every frame, byte-exact hand-offs, body coverage and readability, 6 px margin, no empty frames, soft edge fade (nothing clipped into a rectangle), palette distance.
AI note
The art is rendered procedurally by the publisher's own scripts; no generative image model was used at any step, and the grey placeholder figure in the images and in the preview page is a render from the same scripts, not a pack item. The engine scripts, preview page, documentation and this page text were written with AI assistance and reviewed by the publisher.
License
Custom royalty-free license (not Creative Commons). Full terms are in LICENSE.txt inside the download. In short:
- Use in unlimited commercial or non-commercial games, apps, jams, trailers and store pages. No attribution required.
- Modify, recolour, crop, resize and combine freely.
- Do not resell, redistribute or share the assets themselves, alone or inside another asset pack, sprite collection or UI kit.
- Do not use the assets to train, fine-tune or evaluate AI or ML models.
What's next in the series
Planned: Flintspark FX Vol.2: Spells & Projectiles (fireball, ice lance, poison dart, chain lightning, holy ray, each as cast / projectile loop / impact) and Flintspark FX Vol.3: Deckbuilder Board (intent flashes, card-play trails, energy gain, block break), in the same palette, frame size and anchor system, with a bundle once all three are out.
Updates
Every future update of this pack is free for existing owners. Questions, a missing status or a size you need? Leave a comment below.
| Published | 1 day ago |
| Status | Released |
| Category | Assets |
| Author | spareminute |
| Genre | Role Playing |
| Tags | 2D, Animation, deckbuilder, Effects, Godot, Roguelike, Sprites, Unity, vfx |
| AI Disclosure | AI Assisted, Code, Text |
Purchase
In order to download this asset pack you must purchase it at or above the minimum price of $2.99 USD. You will get access to the following files:














Leave a comment
Log in with itch.io to leave a comment.