Grimoire — Spellbook & Casting System for GameMaker
A downloadable asset pack
Your spell list needs an icon per spell. This one draws them.
Every magic system you can buy hands you the data structure and the cooldown timer, then asks you for the art. Thirty spells is thirty icons — a commission, an asset pack, or thirty evenings — and it is why so many otherwise-finished spell menus ship with thirty recoloured circles in them.
Grimoire draws the seal itself, from the spell's own data. School picks the armature, tier picks the crown, each element contributes its glyph, and the spell's own hash picks the rune band: 8 armatures × 6 crowns × 14 element glyphs × 12 rune bands = 8,064 distinct seals, composed from 46 hand-authored components and stroked from primitives at draw time.
There is no PNG in the package. No sprites/ directory exists at all
— nothing to disturb your texture pages, and every seal is exact at 24 px in a hotbar and at 400 px
mid-cast, because there is no image to scale.
The seal is derived, so it cannot drift from the spell
Change one field and the art follows. A fire spell that becomes fire and lightning does not get a new icon commissioned — the two glyphs interleave around the armature, because composition is what the renderer does:
var spell = grm_spell("cataclysm", "evocation", ["fire", "lightning"], "apex", 3, 30);
grm_draw_seal(spell, x, y, 180, cast_progress);
That is the whole authoring step. No atlas to rebuild, no icon to redraw, and no mapping table to keep in sync — which is the part that actually rots on a real project.
Six coronas, and they tell the player how long is left
Each school casts differently, and the corona is readable from across the room: flare, ward, portal, focus, bloom, unravel. All six advance monotonically through the cast, so a player reads how close a spell is to resolving off the seal itself — with no cast bar anywhere on screen.
The system underneath, not just the picture
- A real cast state machine — cast time, cooldowns, interrupts, and the states in between.
- Save and load round-trip the whole book, so a player's known spells and live cooldowns survive a reload.
- A paged spellbook UI, plus cast, corpus and element views — four working screens, not a demo of one.
- 69 documented public functions, every one
grm_namespaced. GML's global namespace is flat, and a collision in your project is a support ticket nobody can debug remotely. - 1,910 lines of raw, readable GML. Nothing minified — you are a developer and you will want to extend it.
Verified, and here is exactly what that means
- Igor package build: exit 0, 0 errors, 0 warnings, 94 resources, runtime
2024.14.4.268. - 242 in-engine checks, run with
F2in the demo room or headlessly with-selftest.grm_selftest()returns a failure count, so a non-zero return is your build break. - A runnable demo room ships in the package. Press Run and the four views are there.
Being straight about the limit: GML cannot be unit-tested outside GameMaker, so those 242 checks run inside the engine rather than in a headless harness. That is why the demo room is mandatory here, and why the self-test ships to you rather than staying on our machine.
Compatibility
Built and gated against GameMaker 2024.14.4.268 on the GMS2 runtime,
which GameMaker's own Spring 2026 update commits to supporting "with critical bug fixes until at
least Q1 2028". Grimoire is pure GML with no extensions and no native DLLs, so it carries
forward to GMRT under its stated 99% compatibility.
- Drop-in:
Tools > Import Local Package, pickGrimoire.yymps, take all resources. - No collisions: every global, macro and function is
grm_prefixed. - No hardcoded room or layer indices, and no absolute paths.
- Fonts: ships two Open Sans font resources (Apache-2.0, notices included). Swap them for your own — nothing in the geometry depends on the typeface.
What you get
Grimoire.yymps— import it and go.- The raw project as well, if you would rather read the GML or copy resources in by hand.
- Readme and licence.
Also from CSAF, for GameMaker
Meridian — procedural skill trees is the same draws-its-own-art idea pointed at progression, and pairs directly with this one: skills that unlock spells.
Trove — inventory · Kinetic UI — interface motion · Menagerie · Verdure · Athanor · Panoply · Beacon · Loom · Pliant
| Published | 1 day ago |
| Status | Released |
| Category | Assets |
| Author | CSAF — Core Systems Asset Factory |
| Genre | Role Playing |
| Tags | GameMaker, Generator, gml, Magic, Procedural Generation, sourcecode, spell-system, User Interface (UI), vfx |
| 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 $14.99 USD. You will get access to the following files:







