Armoury - Weapons That Forge Themselves
A downloadable asset pack
Armoury draws weapons. It does not ship pictures of them.
Thirty-seven weapon forms - eighteen hand blades, six axes, four maces, three hammers and six polearms - built from data at runtime in pure GML. There is no sprite, no spritesheet, no atlas and no texture page in this package. sprites/ does not exist.
And a weapon here carries its own history, which is the part a sprite pack cannot do at any count.
Care does not remove damage. It moves it.
Every fight puts notches in an edge. An owner who looks after a sword grinds them out, and grinding takes metal off - so a well-kept forty-year-old blade is not an unmarked blade, it is a narrower one. A neglected blade of the same age is full width, full of notches, and rusted.
Two completely different silhouettes out of one number, and neither of them is the new sword with a dirt filter over it. Run it yourself:
var w = arm_forge("arming", "militia", 1234);
arm_draw(w, x, y, 96); // 96 pixels tall
arm_draw_icon(w, x, y, 32); // fitted to an inventory cell
w = arm_use(w, 40, 2, 0.1); // forty fights, two years, badly kept
What the history layer actually does
- Notches are cut out of the silhouette, not drawn on the face - and they cluster where a sword really takes damage: the percussive centre around 60 to 85 percent of the way to the point, and the forte near the guard where you parry.
- Corrosion pulls toward a real target. Iron goes to rust, bronze to verdigris, silver to tarnish, bone to a handled stain. Gold does not corrode at all.
- A re-hafted weapon has a new pole on an old head - fresh pale timber under fifty-year-old metal.
- A grave-goods blade is bent, because ritually killing a sword before burying it with its owner is a real practice, and it is a silhouette nothing else on this shelf ships.
- Every previous owner leaves a mark - a punched maker's stamp, a tally filed into the pommel, a wire inlay, a re-peened tang, a re-wrapped grip.
Stats that come out of the geometry
Mass and balance are computed from the weapon's real dimensions and the real density of what it is made of. Not rolled, not tabled. Which means a blade ground back a third of its width is genuinely lighter and better balanced than it was new - a real and slightly surprising fact about old swords that your game can hand a player for free.
What is in it
- 37 forms - 18 hand blades, 19 axe, mace, hammer and polearm heads, plus 4 polearm point profiles
- 8 pommels, 8 guards, 5 grip treatments
- 20 materials, every colour computed in Oklab - there is not one hex value in the package
- 7 provenance classes - issue, militia, guild, temple, looted, heirloom, grave
- Generated names, descriptions and tooltips derived from the weapon's own state
Compatibility
- GameMaker 2024.14+, GMS2 runtime. Built and gate-verified on
2024.14.4.268. - Pure GML. No extensions, no DLLs, no shaders, no external dependencies.
- Every global and macro namespaced
arm_/ARM_. No absolute paths, no hardcoded room or layer indices. - A weapon is plain data -
json_stringifyit into your save file and read it back. - Nothing to free. The package allocates no sprites, surfaces or buffers.
- Ships as a
.yympswith raw, commented GML. Import, openrm_arm_demo, press Play.
Verification, stated honestly
GML cannot be unit-tested outside the engine. This package's answer is to build through Igor and run the executable headlessly.
- Engine gate CLEAN - exit 0, 0 errors, 0 warnings, 329 resources compiled.
- 1,476 in-engine assertions, 0 failures, on a real Igor-built executable.
- The suite has been proven able to fail. Three deliberate sabotages were run and each fired the assertions it should have, by name.
What that does not prove is whether the picture is any good. Nine real defects in this product were found by baking the store sheets and looking at them while every assertion was green. Those are fixed, and the limitation is worth knowing about.
Every image on this page was rendered by the product itself, in the engine.
Code and graphics are AI-generated. No audio ships.
| Published | 1 day ago |
| Status | Released |
| Category | Assets |
| Author | CSAF — Core Systems Asset Factory |
| Made with | GameMaker |
| Tags | 2D, Fantasy, GameMaker, Generator, Icons, Medieval, Procedural Generation, sourcecode, Swords, Weapons |
| Languages | English |
| AI Disclosure | AI Assisted, Code, Graphics, Text |
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:










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