A history of one small program, from a middle-school project built off a d20 sourcebook to a cross-platform, three-system conversion bench. This is the lineage of what is now JackForge.
In 2005 Privateer Press published Liber Mechanika (PIP 403), a d20 3.5 supplement for the Iron Kingdoms setting. Among its rules was a system for expressing WarMachine WarJacks as d20 / Iron Kingdoms stat blocks: the conversion logic that would become the seed of this whole project.
Right around then, as he was finishing high school, Victor built the first version of the 'Jack Converter. The language and the exact build are lost to history (this predates any surviving binary), but the intent was already the one that survives to today: type in a WarJack's WarMachine stat line, get back a playable d20 stat block. The core formulas, the MAT/RAT handling, the armor-to-DR relationship, and the hit-box-to-power scaling all trace back to that Liber-Mechanika reading of how a warjack should feel in a d20 game.
No artifact from this era survives. It lives on only as the conceptual and mathematical ancestor of everything below.
The earliest surviving version is a 2013 rebuild, recovered in 2026 by reverse-engineering an
old installer. It is a C# .NET Framework 4.0 Windows Forms application named JackCalculator.exe,
titled in-app "Warmachine to Iron Kingdoms d20 'Jack Converter Ver. 1.0", self-signed
CN=Clarke\Victor with a certificate valid from 2013-08-05. The date on the files (2013) is
when they were copied to a new machine; the certificate confirms the actual compile was 2013.
Why a rebuild in 2013 and not the original? A tell in the code: it supports Colossals, and WarMachine Colossals did not exist until the 2012 WARMACHINE: Colossals release. So the 2013 build is a C# port of the older original, brought current with the game as it stood then.
The program shipped as a Russian-doll installer, which is why recovering it in 2026 took some work:
Jack Converter Setup.exe (ClickTeam Install Creator, "wwgT" PackData overlay)
-> UPX-compressed PE stub
-> bzip2 / zlib members
-> a Visual Studio ClickOnce deployment
-> JackCalculator.exe (357,376-byte .NET 4.0 assembly) <- the actual program
The recovery: identify the ClickTeam container, walk the overlay, inflate every zlib member and
bzip2-decompress the two large ones, pick out the 357 KB .NET assembly, then decompile it back to
C# with ILSpy. The recovered source is preserved in Apps & Scripts/Jack/*.RECOVERED.cs.
A single WinForms window, two columns (WarMachine in, Iron Kingdoms d20 out), a Convert button. Inputs: SPD, STR, MAT, RAT, DEF, ARM, hit boxes, TYPE (Light/Heavy/Colossal), a 26-entry CLASS list of faction chassis, an arc-node option, and special attacks. Outputs: Speed, STR, DEX, melee and ranged attack strings, grapple, saves, DR, AC, HP, size, INT/WIS, and a CR. It even special- cased Cyriss Convergence vectors (relabeling MAT/RAT to caster stats).
It was, in Victor's own words, "likely terrible jank" - and it was, in the charming way of a self-taught first program: unbounded CR math, a BAB table that pinned at +20, a redundant copy-pasted branch, no input validation, and spellings frozen in amber ("Scryah", "Bezerker", "Chasis"). It also worked, and it was precious.
In 2026 the recovered logic was carried forward into a brand-new application: JackForge, a cross-platform C# / .NET (Avalonia) desktop app with a gritty steampunk "schematic bench" look. It keeps faith with the original's math where that math was sound, and rebuilds it where it wasn't.
| Dimension | 2013 JackCalculator | 2026 JackForge |
|---|---|---|
| Platform | Windows only (WinForms, .NET 4.0) | Windows / macOS / Linux (Avalonia, .NET 10) |
| Systems | Iron Kingdoms d20 (3.5) only | PF1e, PF2e, and Advanced PF1e (box-out) |
| UI | Two-column form | Themed 3-tab bench, IK-logo header, live example |
| CR math | Unbounded (a Juggernaut hit CR 26+) | Recalibrated to legal Pathfinder ranges |
| Export | None | Foundry SBC (PF1) and Bestiary Import (PF2) |
| Damage | Single HP pool | Optional hit-location "box-out" system |
| Character jacks | Not handled | "Unique 'Jack?" CR-adjust toggle |
| Myrmidon fields | Fixed made-up values | Energy Field = HP rounded to nearest 10 + power text |
| Vectors | Given fake fields as a stand-in | Mindless, caster-driven, optional hover (Fly) |
| Input safety | Crashed on empty fields | Validated; chassis constrains valid weights |
- PF1e - Pathfinder 1st Edition. A faithful port of the original 3.5-era logic (PF1 was largely a 3.5 update), then recalibrated: the original formula is kept as a displayed "raw score", while the playable CR is derived from clean threat signals (chassis, hit-boxes, armor) and the combat stats are drawn from Pathfinder's official Monster-Statistics-by-CR table.
- PF2e - Pathfinder 2nd Edition. A new system entirely. Built by "benchmark via CR": the PF1 CR becomes a creature level, and every stat is read off Paizo's "Building Creatures" benchmark tables.
- APF1e - Advanced PF1e. The feature Victor "always dreamed of but was never skilled enough to do": a WarMachine-style box-out damage system. HP spreads across Head, Torso, two Arms and two Legs; destroy an arm and its weapon is gone, destroy the head and the jack goes inert, destroy the torso and the boiler explodes. Myrmidons layer an Energy Field of temp HP on top; colossals get two independent structures.
All 16 reference jacks from the WarMachine faction books (Charger, Juggernaut, Stormwall, Prime Axiom and the rest) run clean through every mode. That validation pass is what caught and fixed a CR-inflation bug inherited from the original's node and vector math.
The math has a clear bloodline: Liber Mechanika's d20 3.5 conversion rules (2005) -> the lost original -> the 2013 C# formulas -> recalibrated against Pathfinder 1e's own monster tables for PF1e, and re-expressed through Pathfinder 2e's benchmark tables for PF2e. Twenty years, one idea, three rule systems, and the same question every time: what would this WarJack be, at the table?
Serric Steel is the Iron Kingdoms' adamantine. Some things never change.