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
-
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.
