Kirby

Building the VTT the HERO System deserves, one brick at a time.

Building a virtual tabletop that speaks HERO.

A comic panel in the Kirby style: a caped, armoured figure
                 lettered KV bursting forward through exploding stars and
                 crackling energy, with KRAKKOOM, ZAP and POW across the
                 frame, titled Kirby VTT.

I've been playing HERO since 1981 and never stopped. Kirby is the tabletop I've always wanted for it — one that knows what an Entangle does, what a Multipower slot costs, and why your DCV changed when you moved.

It isn't finished. The engines underneath are built and you can install them today; the tabletop they're for is still being written. Nothing here is ready to run a session on yet.

No pitch, no schedule promises. One email when there is something to use.

Why this exists

HERO isn't D&D, and it shows. The good virtual tabletops are built around a different game, with HERO fitted on afterwards by people doing generous work under real constraints — Foundry's HERO systems are built by folks who know this game, and the community is better for them.

Kirby starts from the other end: HERO first, everything else after. Surfaces have PD and ED. Elevation and concealment change OCV and DCV. Combat is HERO's, not an approximation of it.

Hero Designer is the reference the whole thing is measured against, because it's the tool this community already builds in and trusts. A character should mean the same thing in both.

What works today

Three small, independent engines, each installable on its own.

kirby-cost

pip install kirby-cost

Reads a HERO 6E build and costs it. Validated against Hero Designer: 655 of 655 characters match, every object and every character total.

kirby-sheet

pip install kirby-sheet

Reads a .hdc and writes JSON, plain text, HTML, PDF, or a .hdc back out. PDF needs the optionalpdf extra: pip install "kirby-sheet[pdf]".

kirby-combat

pip install kirby-combat

A pure-Python HERO 6E combat engine. Zero runtime dependencies, 905 tests.

Your characters stay yours

Kirby reads the .hdc files you already have and writes them back unchanged. Build in Hero Designer the way you always have — Kirby is where you play them. Nothing gets rewritten into a format you can't get back out of.

Self-hostable, and source-available, free for personal use, under PolyForm Noncommercial 1.0.0. Read the code, run it on your own machine, keep your own copy of your own characters.

What you still need

Hero Designer and your own rulebooks are required for kirby-cost and kirby-sheet.Kirby ships no templates, no rules text and no character data. Reading or writing a .hdc will not start without a.hdt from a real Hero Designer installation — point it at your own, and it exits with an error telling you so if you haven't. kirby-combat is the exception: it takes plain Python objects and needs no Hero Designer installation of its own — the numbers you hand it still have to come from your own rulebooks.

What's coming

The table itself. The engines underneath already resolve far more than a library needs to — what's missing is the tabletop in front of players.

Terrain that means something in HERO terms: surfaces with their own PD and ED, so a concrete wall and a plywood door don't take a punch the same way. Elevation and concealment that actually move OCV and DCV. Line of sight worked out from where a character is standing, not from a flat grid.

And the parts of the system other tables tend to hand-wave, because the engine already does them: mental combat on OMCV and DMCV, vehicles with passengers and ramming, a mob resolved as one unit with morale, structures that collapse onto whoever was standing on them, and Presence attacks as a real mechanic rather than flavour.

Kirby plays characters; it does not create them. Character creation stays in Hero Designer, on purpose — that's the tool built for it. Whether that ever changes is a conversation to have with Hero Games, not a decision to make around them.

It will be self-hostable, and there'll be a hosted option for people who'd rather not run it themselves. There's nothing to demo yet; that's what the form above is for.