ChoiceForge — Visual node-based editor for ChoiceScript

Hey all,

If you’ve ever opened a ChoiceScript project, stared at thirty `.txt` files, and silently counted `goto` labels to figure out where Chapter 3 connects to Chapter 5 — this is for you.

I’ve been building **ChoiceForge**, a visual graph editor for ChoiceScript. It’s a spiritual sequel to @BenSeawalker’s

[Chronicler](https://forum.choiceofgames.com/t/chronicler-visual-choicescript-editor/4081)**,

which proved years ago that CS writers want a visual tool. ChoiceForge takes the same core idea (“treat the story as a graph, generate clean `.txt` on the other end”) and rebuilds it as a modern web app + cross-platform desktop, fully open source under MIT.

What you get out of the box:

- Drag-and-drop graph editor with 24 node types covering pretty much every CS command: `*choice`, `*fake_choice`, `*if`/`*elseif`/`*else` `*set`, `*goto`, `*goto_scene`, `*gosub`, `*label`, `*ending`, `*checkpoint`/`*restore_checkpoint`, `*input_text`, `*rand`, `*achieve`, `*stat_chart`, … (24 in total).

- Round-trip safe exports: the `.txt` files run unmodified on the official Choice of Games runtime. No “almost-CS” weirdness.

- Pragmatic importer: drop in your existing `.txt`, `.json`, or whole `.zip` — common patterns become visual nodes, anything weird is preserved as editable raw source so nothing is ever lost.

- Live linter with 140+ keyed diagnostics: undeclared variables, broken labels, mismatched `*save_checkpoint`/`*restore_checkpoint`, unreachable scenes, malformed `*stat_chart`, the usual suspects.

- Submission validators built in: the *Validate for submission* panel runs the **official Quicktest* (exhaustive DFS through every `*choice` path) and official Randomtest, (N iterations, default 1 000, configurable up to 100 000) right inside the app — using the same scripts CoG’s review tool runs. Catches the issues before you submit instead of after.

- Embedded official ChoiceScript runtime: the Play button runs the actual CoG engine in an iframe. Not a homebrew interpreter, not a partial reimplementation — the real thing.

- CodeMirror source editor: drop into any scene as raw ChoiceScript when you want to type, then flip back to the visual graph.

- Trilingual UI: Portuguese, English, Spanish (~165 localised strings).

- Native desktop builds: signed-update macOS `.dmg` (universal) and Windows `.msi` with in-place auto-updates.

Try it:

- Browser (no install, autosaves locally): https://choiceforge.pages.dev

- Desktop installers (macOS + Windows):

https://github.com/viniman27/ChoiceForge/releases/latest

- :hammer_and_wrench: Source (MIT): GitHub - viniman27/ChoiceForge · GitHub

I built this because I wanted to write a CoG game and every time I looked at the folders of files full of interbranching ideas… well, my brain politely suggested I take up gardening instead. Turns out gardening is hard too, so here we are.

Bug reports, feature requests, “you reinvented X” callouts, PRs, and demands for new node types all welcome on the issue tracker.

Massive shout-out to @BenSeawalker — Chronicler showed the path, this is the 2026 take on it.

11 Likes

Congratulations! Shipping a development tool is no easy feat (though the hardest part starts now; supporting it for the foreseeable!). Best of luck!

One minor suggestion: you might want to make it clear in the post that you’ve used AI to help you build this. I’m not sure if it’s a hard rule, or if people feel different about software to writing, but certainly for WIPs around here it’s become the norm to declare prominently whether you have or have not used AI in it’s creation. That’s not to say it’s a bad thing, but opinions are split and people often want to be able to make informed decisions about what they are supporting.

6 Likes