Devlog #2 — Building the gun pipeline: parts, the Judge-45, and an editor that packages straight to Unreal
This week wasn't about a single gun. It was about building the machine that makes guns — a parts library, a kitbash process proven on one revolver, an in-house editor for materials and damage, and a one-click path from a finished model into the engine as a playable item.
Starting with a parts library, not a model
Before shaping anything, the kitbash work needed raw material: a labelled library of gun parts pulled from two sources — a set of scrap/apocalyptic gun packs (947 parts) and a realistic weapons pack (275 parts). Every part got tagged by type (barrel, stock, grip, hammer, fastener, tape, tool part, and so on) so later kitbash passes could search for "something that looks like a welded bracket" instead of digging through raw meshes by eye. This library is the shared foundation the next few guns (SMG, rifle, sniper) will draw from — the Judge-45 below is the first gun actually built with it.
The Judge-45: one gun, eighteen passes
The scrap revolver — nicknamed the Judge-45 — became the proving ground for the whole scrap-tier process: build one version, playtest it, fix exactly what the playtest flags, build the next version. No skipping ahead to "looks mostly done."
That discipline shows in the version history: v1 started from a donor revolver (a CC-BY model by NksXxX, barrel shroud cut down and refitted — credited in CREDITS.md) with a pipe shroud and a basic grip. From there it was correction after correction:
- v2–v3: donor cylinder swapped in, perforated shroud aligned, sights raised and checked against a proper sight-line test.
- v4–v6: the grip went from a flat panel to a bent strap wrap, then rushed/irregular wrap textures so it reads as "tied on" rather than printed, then a clean saw-cut-and-capped edge where the grip meets the frame (this became a standing rule: every cut face gets capped and bevelled, no raw open edges).
- v7–v13: round after round of flattening and squaring the frame and grip stub so they sit flush with no stray ridges or floating panels — the kind of fix that's invisible in a single screenshot but obvious in a turntable render.
- v14–v18: the cylinder itself went through three redesigns — textured shroud, then hexagonal chambers, then thicker rounded hex walls, then finally a solid cylinder with bullet-sized hex bores, which is the version that shipped.
Eighteen versions for one revolver sounds like a lot, but each one fixed a single, specific note rather than a vague "make it better" pass — which is exactly why it was possible to hand this off and trust the result.

A Gun editor with its own material library
Once a gun's geometry is locked, it needs to look used — rusted, painted over, patched. Rather than hand-painting every gun, we built a small in-house Gun editor:
- A material library: 17 CC0 PBR materials (metals, leathers, fabrics, rope) plus the gun's own original texture, so any part can be reassigned a different base look.
- A texture blender: mix two materials together and save the result as a new named material — e.g. "mix_painted_rust," which is a painted-metal base blended with a rust layer.
- Mask layers: six grayscale masks (imperfections, speckle, scratches) that control where a second texture shows through — rust creeping from an edge, a speckled scuff pattern, with controls for mix strength, softness, scale and brightness per part.
For the Judge-45, this meant painting the frame, cylinder, strap, barrel, sights, bolts and cord grip as seven separately-tunable layers, each with its own mask and blend settings — all without touching geometry.

One-click packaging, straight into Unreal
The last piece closes the loop: a packager that takes the Blender file plus whatever material choices were made in the editor and bakes them down to a single game-ready asset — one mesh, one material, baked BaseColor/Normal/ORM textures at 2048, decimated where it's safe to (soft wraps only, never the hard parts). For the Judge-45 that took the source down from 34 objects / 29,828 triangles / 11 materials to 1 object / 16,320 triangles / 1 material in about 16 seconds.
From there, Send to Unreal picks up automatically: it imports the textures and skeletal mesh, builds the material instance, retargets the fire and reload animations onto both the first- and third-person skeletons, generates the weapon pickup mesh, and assembles the actual Narrative weapon item Blueprint — ammo type, damage, clip size, icon and all — ready to equip in-game. The whole Judge-45 went from packaged asset to a usable item in the engine in under a minute, with zero manual asset wiring.
What's next
This pipeline is the template now — the same steps (library → kitbash with corrections → Gun editor materials → package → Send to Unreal) are queued for the Forged-tier variants and the other weapon platforms (SMG, AK, M4, sniper). The Judge-45 was the hard, slow proof that the process works; the next guns should move faster because the rules and the tools are already built.
More soon.
Loading comments...