Questable — Author's Guide
A practical, no-code guide to writing branching gamebooks in Questable. If you can
lay out cards and fill in a few fields, you can build everything here — stat checks,
inventories, dice combat, luck tests, and shops — and publish it to play online or
as a printed / EPUB gamebook.
1. The big picture
A story is a canvas of scenes connected by choices. Along the way, players
carry variables (stats, flags, and items) that your scenes read and change.
- Scene — a card of text. The reader is always "in" one scene.
- Choice — a labelled link from one scene to another. Choices can be gated by
conditions and can change variables when taken.
- Variable — a value the player carries: a number (SKILL, Gold, Nerve), a
flag (a yes/no you set, like "MetTheKing"), or an item (inventory).
Golden rule: a scene can have at most 8 outgoing choices. This keeps pages
readable. When you need more branches (a big shop, a stat check), use the special
scene types below instead of more choices.
Everything you build works identically in the online reader and in the
published book (PDF/EPUB). You never write code.
2. Variables
Open the Variables panel to create them. Three kinds:
| Kind | Use it for | Starting value |
|---|---|---|
| Number | Stats and currencies — SKILL, STAMINA, LUCK, Gold, Nerve, Stealth | a number |
| Flag | A one-off yes/no memory — "WarnedByGuard", "TookTheOath" | on / off |
| Item | Inventory the player holds — "Brass Key", "Chimney Sweep Outfit" | held / not held |
Items can carry a short description (shown in the reader's inventory) and an
item type (key, weapon, consumable, tool, misc) for grouping.
Show a variable's value inside scene text with curly braces:
You have {Gold} gold pieces and your Stealth is {Stealth}.3. Choices: conditions, effects, and lock modes
Select a choice (the line between two scenes) to open the Choice Inspector.
Conditions (when the choice is allowed)
Add condition pills — all must be true (AND) for the choice to be available:
- Number:
Stealth ≥ 6,Gold < 3,Stamina == 0 - Item:
has Brass Key, ornot Brass Key - Flag:
has WarnedByGuard, ornot WarnedByGuard
Effects (what taking the choice changes)
Add effects that apply the moment the choice is taken:
- Number:
add 5 Gold,subtract 1 Stamina,set Nerve 3 - Item:
gain Brass Key,lose Brass Key - Flag:
gain TookTheOath,lose TookTheOath
Lock modes (what happens when conditions aren't met)
- Hide — the choice disappears entirely until the player qualifies.
- Lock — the choice shows greyed out with the reason ("🔒 needs Brass Key").
- Attempt — the choice stays clickable; picking it while unmet routes to a
fail scene (failTo) or shows fail text — and no effects are applied.
4. Recipe: a stat check that branches ("Attempt")
*"Remain perfectly still. If STEALTH is 6 or higher, go to Section 39; otherwise
Section 40."*
This is one choice using Attempt — it's the built-in "roll against a stat"
mechanic, and the player never sees the threshold.
- Create scenes: the current scene, Section 39 (success), Section 40 (fail).
- Draw a choice from the scene to Section 39 (this is the success target).
- In the Choice Inspector:
- Condition:
Stealth ≥ 6 - Lock mode:
Attempt - Fail → scene:
Section 40
- Leave effects empty (a pure branch).
Result: click the choice → if Stealth ≥ 6 you go to 39, otherwise to 40.
An item-gated sibling choice ("Pretend to be a chimney sweep — requires the outfit")
is just a normal choice with condition has Chimney Sweep Outfit and lock modeLock (visible requirement) or Hide.
5. Special scene types
Change a scene's Type in the Scene Inspector. Each type gives you branches that
don't count against the 8-choice limit.
Combat (Fighting-Fantasy dice)
A combat scene runs a round-by-round fight. Player SKILL/STAMINA (and optionally
LUCK) are number variables. Configure the enemy, round damage, usable items
(potions), and Win / Lose / Flee target scenes. Victory can apply loot effects.
Luck test ("Test your Luck")
A luck scene rolls 2d6 against the player's current LUCK. Set the Lucky and
Unlucky target scenes; by default each test spends 1 LUCK.
Shop (point-buy / equipment)
A shop scene lets players spend a currency on a list of items, then continue to
a single exit — perfect for "choose your outfit" and "buy your gear". See §6.
Combat, Luck, and Shop each have their own coloured connectors on the canvas (drag
the bottom handle to set Win/Lose/Flee, Lucky/Unlucky, or Leave targets).
6. Recipe: a shop (choose an outfit, then buy gear)
The shop solves the "too many options" problem: a menu of 5 outfits or 8 tools lives
in one scene with one exit — no juggling of separate choices.
Set a scene's type to Shop, then in the Shop editor:
- Currency (optional): pick a number variable (e.g.
Gold). Leave as none for
a free point-buy with no cost.
- Mode:
- Pick exactly one — the player must choose a single item to continue
(great for "choose your outfit"). Picking a second swaps the first.
- Buy any affordable — the player buys as many as their currency allows, then
leaves whenever they like (great for "choose your tools").
- Continue → scene: where the player goes when they leave.
- Items: add a row per item. Each has:
- a label ("Chimney Sweep's Rags"),
- a cost (subtracted from the currency when bought; 0 = free),
- effects (e.g.
add 1 Stealth,gain Climbing Shoes), - an optional note / special line ("Easier access to rooftops").
Affordability is automatic: unaffordable items lock, and the running balance updates
as the player buys. In Pick one mode the player can't leave until they've chosen.
Worked example — Step 1: Choose your outfit (Gold, mode Pick one, exit → the
adventure's first scene):
| Item | Cost | Effects | Note |
|---|---|---|---|
| Traditional Assassin Black | 0 | +1 Nerve, −1 Common Sense, gain WatchmenAlert | Watchmen notice you. |
| Chimney Sweep's Rags | 2 | +1 Stealth, gain Chimney Sweep Outfit | Convincing from a distance. |
| Delivery Boy Uniform | 2 | +1 Common Sense | Talk past ordinary servants once. |
| Respectable Young Clerk | 3 | +2 Common Sense | Carry papers without suspicion. |
Step 2: Choose your tools — a second shop scene (Gold, mode *Buy any
affordable*, exit → the adventure). Each tool is a row with a cost and its effect
(e.g. Climbing Shoes — cost 2, +1 Stealth; Sausage — cost 1, note "Distract one
dog").
Tip: the "specials" that aren't a numeric bonus (e.g. "escape one encounter") are
best captured as a flag the itemgains (e.g.gain HasSmokePellet), so a
later scene can checkhas HasSmokePellet.
7. Endings and the start
- Exactly one scene should be a Start scene — where every playthrough begins.
- Ending scenes finish a path; the reader sees "The End" and can replay.
- The editor shows how many endings are reachable from the start — a quick depth
check that your branches actually lead somewhere.
8. Publishing
There are two ways players experience your story, from the same content:
- Play online — the interactive reader, with a live inventory/stats HUD, gated
and hidden choices, dice combat, and a Back button that restores both the
scene and your variables. Toggle Publish to make it findable in Explore.
- Publish book — compiles a classic numbered gamebook:
- Print / PDF — open the print view and Save as PDF.
- EPUB — download for e-readers, with tappable "turn to N" links.
- Both include a generated How to Play section and an Adventure Sheet
(stat boxes, inventory slots, and codewords) so paper readers track state by
hand. Combat, Luck, and Shop sections become native gamebook instructions.
Before publishing a book, the editor runs a quick lint (dangling links, unreachable
scenes, too many choices) — fix any blocking issues first.
9. Quick checklist
- One Start scene; every path reaches an Ending.
- No scene has more than 8 choices (use Combat / Luck / Shop for wide menus).
- Stat checks use a choice in Attempt mode with a fail target.
- Item gates use
has/notconditions. - Effects add/subtract the right stats and
gain/losethe right items. - Shops have a currency (or are free), a mode, and an exit scene.
-
{Variable}tokens in text all match a real variable name. - Book lint is clear of blocking issues before publishing.