Athanor - Synthesis & Transmutation for GameMaker
A downloadable asset pack
A crafting system normally ships as logic plus a folder of icons — and the icons are the part that never fits your game. Athanor has no icons. Every reagent, every recipe seal and every result vessel is generated line-work, drawn from primitives at runtime by the product itself. No PNG, no atlas, no sprite anywhere in the package.
Athanor is a complete synthesis subsystem in pure GML: reagents, recipes, multiset matching, a discovery book that keeps its secrets, seals composed from their own constituents, and a transmutation-circle animation that draws itself from the recipe's seal.
144 reagent glyphs, zero sprites
24 hand-authored motif families — herb, dew, ore, ember, crystal, bone, aether, quicksilver, umbra and fifteen more — each drawn by one renderer in six tinctures: 144 distinct glyphs that recolour from data, scale from a 16 px inventory row to a 460 px ritual circle without pixelating, and stay on-palette with the rest of your game because the palette is fourteen numbers you can edit.
Every recipe composes its own seal
This is the part nobody ships. A recipe's seal is built from its constituents: the ring divides into one wedge per reagent, each reagent's own glyph strokes into its wedge, and the union figure at the centre — a polygram whose vertex count derives from which families combined — ignites over the whole. 276 pairwise combinations before triples even start, and every one produces a different picture. Register a recipe and its art exists, with no artist in the loop.
The distribution is measured, not hoped: the union derivation is guarded by a 30% dominance floor, so no one figure swamps the book. (The first derivation failed that floor — 64% of all pairs landed on the same triangle — which is exactly why the floor exists.)
The circle draws itself
Transmutation is an animation the product generates: the ring sweeps in, wedge lines divide it, constituent marks stroke into place, the polygram ignites, and the transmuted vessel resolves at the heart. It is the demo's money shot and it is one function call — ath_draw_seal(seal, x, y, size, tincture, alpha, t) with t from 0 to 1.
A recipe book that keeps its secrets
Three discovery states, drawn three ways: known recipes show their name and full seal, glimpsed ones surface as a dimmed rumour, unknown ones are a grey cipher. Discovery is monotonic — the book never forgets — and the whole state saves and loads with a versioned schema keyed by order-insensitive seal keys, so ["herb","dew"] and ["dew","herb"] are the same knowledge.
20 result vessel families
What a synthesis produces is drawn by the same stroke DSL as everything else: phials, flasks, talismans, keys, lanterns, mirrors, censers, idols. All generated, all tintable, all extendable by writing data rather than art.
Built to be read
- Pure GML. No native extension, no DLL, no dependency — nothing to break on a runtime update.
- The core is engine-free.
athanor_coremakes zero engine calls: seal composition, union figures, discovery and multiset matching are plain functions you can read and test in isolation. - Deterministic. No
random()anywhere in the core. Two runs are identical; replays and lockstep cannot desync on cosmetics. - Blend state is saved and restored around every public draw. Nothing you draw afterwards washes out.
- Namespaced. Everything is
ath_/__ath_. GML's global namespace is flat; nothing here collides with your project. - A runnable 5-page demo room ships beside the library — the reagent shelf, the atelier, the transmutation, the seal gallery and the vessels, each one keypress away.
The API, in four lines
atelier = ath_starter_atelier(); // Create - 12 starter recipes included ath_atelier_step(atelier); // Step - advances the reveal ath_atelier_attempt(atelier, ["herb", "dew"]); // try a synthesis (multiset match) ath_draw_seal(r.seal, x, y, 300, tint, 1, atelier.anim_t); // Draw - anywhere
What's in the download
Athanor.yymps— import via Tools › Import Local PackageAthanor/— the full raw project: readable, commented GML with a documented header block on every public scriptReadme_for_Users.md— quick start, recipe registration, extending the motif tables- MIT license
Part of the CSAF GameMaker catalogue: Meridian (constellation skill trees), Trove (inventory), Kinetic UI (interface motion), Beacon (procedural energy effects), Loom (secondary animation) and Pliant (sprite bending).
| Published | 1 day ago |
| Status | Released |
| Category | Assets |
| Author | CSAF — Core Systems Asset Factory |
| Genre | Role Playing |
| Tags | 2D, Asset Pack, Crafting, GameMaker, gml, Icons, inventory, procgen, sourcecode |
| AI Disclosure | AI Assisted, Code, Graphics |
Purchase
In order to download this asset pack you must purchase it at or above the minimum price of $19.99 USD. You will get access to the following files:






