Book of Odin — Game Design Document

Design v0.3 — implemented as book-of-odin-v2, Draft. NOT FOR PRODUCTION OR CERTIFICATION. This document defines intended player-facing behavior. Every rule below is now implemented and covered by tests; the numbers live in the Math Spec, which this document does not duplicate.

1. Document control

FieldValue
Game nameBook of Odin
Game IDbook-of-odin
GDD versiondesign-v0.3
Statusimplemented as a Draft config version; awaiting approval
Created2026-08-18
Updated2026-08-22
Shipped math/configbackend book-of-odin-v2 (Draft draft-v0.1)
Previous configbook-of-odin-v1, unchanged
Math change request../math/book-of-odin-math-change-request.md
Math Spec../math/book-of-odin-v2-math-spec.md
Evidence manifest../evidence/book-of-odin-v2-evidence-manifest.md
v2 canonical sourcelibs/mathengine/games/book_of_odin/book-of-odin.yaml
v2 source SHA-256d42a0d819b9fd9e8fa52b7646925778fd82192e4512be9dfd88839b2f85e8f01
v1 source SHA-256e87b3e29396ac8ff05196ae6d56fe46e7282a53b77388c1e0fc9af5d33346990 (unchanged)

Change log

VersionDateChangeMath impact
design-draft-v0.12026-08-18Recorded existing Expanding Symbol game and added Hold & Win designnew math/config version required
design-v0.22026-08-19Implemented as book-of-odin-v2. Max win, RTP split and feature frequencies filled in from measurement. One design clarification: the expanding symbol applies during Free Spins ONLY — see §6.measured, reconciles to 97.9979%
design-v0.32026-08-22Added normalized symbol presentation metrics for placeholder and final-art handoff.none; presentation metadata only

2. High concept

Book of Odin combines a familiar book-style Free Spins feature with a second path to a large event. BOOK symbols reveal a chosen expanding symbol for Free Spins, while six or more COIN symbols open a Hold & Win. Hold & Win can arrive directly from the base game or interrupt and then return to an active Free Spins series.

Design pillars

  • Two readable feature paths. BOOK leads to Expanding Symbol Free Spins; COIN leads to Hold & Win.
  • No lost trigger. If both features trigger from the same outcome, both are played in a deterministic order.
  • Persistent feature progress. A nested Hold & Win pauses Free Spins and resumes the same series afterward.
  • Server-authoritative awards. Presentation never invents coin values, feature outcomes or payouts.

3. Game summary

PropertyDefinition
Game typeslot
Grid5 reels × 3 rows
Layout10 fixed paylines
Win directionleft to right from reel 1
Bet basistotal bet per paid base spin
Primary feature10 Free Spins with a selected expanding regular symbol
Secondary featureHold & Win on the same 5×3 geometry
Additional feature wagernone
Free Spins retriggerdisabled in this design version
Hold & Win retriggera new qualifying spin may start another independent Hold & Win
Max win259.4x base round, 500x free spin, 2000x Hold & Win award; the 5000x round cap never binds

4. Symbols

Payout values, strip weights and probabilities belong to the canonical Math Spec/config.

SymbolTypeDesign behavior
bookWild + ScatterSubstitutes according to the line evaluator and counts toward the Free Spins trigger. It cannot be selected as the expanding regular symbol.
AIregularPay on lines according to the canonical paytable. One is selected for the full Free Spins series and may expand.
COINbonus/coinDoes not substitute and does not become the selected expanding symbol. Six or more visible COIN trigger Hold & Win. Each triggering/locked COIN carries a server-awarded total-bet multiplier.

4.1 Symbol presentation metrics

These are resolution-independent presentation values for placeholders and final art. One reel cell is 1.0 × 1.0; all symbols still occupy exactly one mathematical cell. The values do not affect reel strips, paylines, RNG, payouts, RTP or either recorded config hash.

Wire symbol/groupWidthHeightAnchor [x,y]Offset [x,y]Label/value safe areaPresentation rule
AI0.820.82[0.5,0.5][0,0]label width 0.70All regular placeholders share one visual mass and baseline.
BOOK0.900.94[0.5,0.5][0,0]label width 0.72Largest idle symbol; must read as both Wild and Scatter without touching the clip edge.
COIN0.780.78[0.5,0.5][0,0]centred value diameter 0.52Circular silhouette; the server multiplier remains readable at the smallest viewport.
Expanded AI0.882.86[0.5,0.5][0,0]label width 0.70 in the centre cellOne presentation object spans the exact three-cell reel window; it remains clipped to that reel.

Global placeholder rules:

  • The idle symbol safe area is 0.94 × 0.94; no persistent stroke, frame, glow or label crosses it.
  • The minimum internal padding is 0.03 of the cell on every side.
  • Placeholder IDs are centred and scale down to fit; text must not change the symbol's outer bounds.
  • COIN value text is centred inside the stated diameter and must not be placed below the coin.
  • Win, anticipation and landing VFX may temporarily extend beyond these bounds only inside the existing reel-effect clipping policy; they do not change the idle layout.
  • Replacing a placeholder with final art must preserve width, height, anchor and offset. Any change requires a GDD presentation revision, not a math/config revision.

5. Base-game flow

flowchart TD
    A[Player commits one paid spin] --> B[Server generates 5x3 outcome]
    B --> C[Evaluate and present line wins]
    C --> D{6+ COIN?}
    D -- Yes --> E[Play Hold & Win]
    D -- No --> F{3+ BOOK?}
    E --> F
    F -- Yes --> G[Enter 10 Free Spins]
    F -- No --> H[Round summary]
    G --> H

Evaluation and feature order

  1. Commit exactly one wager and generate the full base outcome.
  2. Evaluate and credit all ordinary line wins.
  3. Record every feature trigger from that same outcome before presenting either feature.
  4. If 6+ COIN are visible, complete Hold & Win first.
  5. If 3+ BOOK are visible, enter Free Spins after Hold & Win completes.
  6. If both triggers occur, neither is discarded: line win → Hold & Win → Free Spins.
  7. Apply the server-defined round cap exactly once at the authoritative settlement boundary.

6. Free Spins with Expanding Symbol

PropertyRule
Trigger3+ BOOK on a base-game outcome
Initial award10 Free Spins
Selected symbolexactly one regular symbol from AI, selected by the server before the series
Selection lifetimeunchanged for the entire Free Spins series
Expansionwhen the selected symbol qualifies on a reel, its awarded expansion fills that reel's three visible positions for evaluation/presentation
BOOKremains Wild + Scatter
COINcannot be selected for expansion
Retriggerdisabled in this design version
Additional wagernone

The backend outcome must explicitly identify the selected expanding symbol and all authoritative results needed for deterministic replay. The frontend must not infer the selected symbol from reel contents.

The expanding symbol applies during Free Spins ONLY

Stated explicitly because the implementation made it a live question rather than an obvious one. There is no base-game expansion of any symbol, including BOOK. A base spin evaluates its grid as drawn.

This is not a presentation detail. The expansion is configured once and the selected symbol overrides it per series, so the configured value is what applies when there is no override — in the base game. Naming BOOK there, which is what book-of-odin-v1 does, turns every reel showing a BOOK into a full reel of wilds and takes the base game from 39.51% to 148.66% RTP. The v2 config therefore names no base-game expanding symbol at all.

Hold & Win during Free Spins

  1. Resolve the current Free Spin completely, including expansion and line payout.
  2. If that same Free Spin contains 6+ COIN, pause the Free Spins series.
  3. Start one new Hold & Win without consuming an additional Free Spin.
  4. Add the settled Hold & Win award to the current game-cycle total.
  5. Resume with the next unconsumed Free Spin.
  6. A later Free Spin may start another independent Hold & Win under the same 6+ COIN rule.

7. Hold & Win

Trigger and entry

  • Trigger: 6 or more visible COIN anywhere on a base-game or Free Spins 5×3 outcome.
  • The triggering COIN remain in their exact visible cells and become the initial locked cells.
  • Each initial locked COIN receives one server-generated multiplier.
  • The feature charges no additional wager.
  • At most one Hold & Win opens from one originating spin.

Respin loop

locked := triggering COIN cells
respins_remaining := 3

while respins_remaining > 0 and locked_count < 15:
    generate one outcome for every currently empty cell
    lock each newly landed COIN with its server-generated multiplier

    if at least one new COIN landed:
        respins_remaining := 3
    else:
        respins_remaining := respins_remaining - 1

Rules:

  • The feature uses the same 5×3 geometry as the originating spin.
  • Locked COIN never move, disappear or reroll.
  • Empty cells remain eligible on every respin.
  • Any respin that lands one or more new COIN resets the counter to 3.
  • A miss decreases the counter by exactly 1.
  • The feature ends at 0 respins or when all 15 cells are locked.

Coin awards

  • Every locked COIN contains a multiplier of the originating total bet.
  • Candidate design values are 1×, 2×, 3×, 5×, 10×, 20×, 25×, 50×, 100×.
  • This list is a design candidate, not an approved distribution; math may change the set if required to meet the agreed targets.
  • On ordinary termination, the Hold & Win award is the sum of all locked COIN multipliers, subject to the game-level cap defined by the new Math Spec.

Full-grid GRAND

  • Filling all 15 cells awards GRAND in addition to the ordinary COIN sum.
  • GRAND is expressed as a total-bet multiplier.
  • The exact GRAND multiplier is pending math approval.
  • No MINI, MINOR or MAJOR prize kinds are included in this design version.

State and recovery requirements

The server must persist enough state to resume without a new wager or a new feature:

  • originating round ID and feature/sequence ID;
  • whether the origin was base game or Free Spins;
  • remaining Free Spins and selected expanding symbol when applicable;
  • all 15 cell states and locked multipliers;
  • respins remaining;
  • accumulated Hold & Win award;
  • expected next step index and settlement status.

Reload/reconnect must restore or idempotently replay the current feature step. It must never mint a new paid operation, debit a second wager, regenerate locked values or skip the remaining Free Spins.

8. Simultaneous and edge cases

CaseRequired result
Base outcome has 3+ BOOK and 6+ COINCredit lines, play Hold & Win, then start the awarded 10 Free Spins.
Free Spin has line win and 6+ COINCredit expansion/line result first, then Hold & Win, then continue with the next Free Spin.
Multiple FS outcomes each have 6+ COINEach qualifying outcome may start one independent Hold & Win.
Hold & Win fills the 15th cellEnd immediately; award COIN sum plus GRAND, subject to the game cap.
Last respin lands COINLock it and reset the counter to 3.
One respin lands several COINLock all of them, then reset once to 3.
Reload during Hold & WinRestore/replay the same sequence and values; no new wager.
Win cap reached before all presentation endsServer settlement is authoritative; presentation completes without creating additional value.

9. Feature Buy

  • Buy Free Spins is offered per variant: the player chooses which symbol will expand, and the variants are not equally rich, so each choice carries its own price.
  • Prices are each variant's own expected value divided by the 98% target and rounded up, so no option can ever return more than the game does. See Math Spec §8 for the table.
  • Bought Free Spins use the same Free Spins rules and can trigger Hold & Win on the same 6+ COIN rule; that term is included in every buy price.
  • There is no direct Buy Hold & Win in this version.
  • No price was carried over from book-of-odin-v1. All nine were recomputed from the v2 math.

10. Presentation contract

  • COIN values must be visible on every landed COIN, including the triggering grid before the first Hold & Win respin.
  • The API must provide values by cell identity; the frontend must not derive values from art, position, local RNG or payout totals.
  • Expanding Symbol and Hold & Win presentations may be skipped/accelerated, but skipping cannot change settlement or state progression.
  • If Hold & Win interrupts Free Spins, the UI must retain the selected expanding symbol, remaining-spins counter and accumulated Free Spins win for restoration after the feature.
  • GRAND presentation occurs only when the server reports the full-grid award.

11. Help and paytable requirements

Player-facing rules must state:

  • the 5×3 / 10-line evaluation and total-bet basis;
  • BOOK behavior as Wild + Scatter;
  • 3+ BOOK award 10 Free Spins;
  • one regular symbol is selected to expand during the series;
  • 6+ COIN trigger Hold & Win in base game or Free Spins;
  • Hold & Win starts with 3 respins and resets to 3 after any new COIN;
  • locked COIN values are total-bet multipliers;
  • full-grid GRAND rule;
  • no Free Spins retrigger and no direct Hold & Win buy in this version;
  • published RTP, max win and feature-buy values only after the new math version is approved.

12. Out of scope for this design version

  • MINI/MINOR/MAJOR coins;
  • direct Buy Hold & Win;
  • Free Spins retriggers;
  • player-selected expanding symbol;
  • collectors, mystery coins or persistent jackpots;
  • progressive or pooled jackpot contribution;
  • changing book-of-odin-v1 in place.

13. Approval gates

The math design and the runtime implementation are both complete, and book-of-odin-v2 is assigned as the canonical config version. What remains is approval, then the freeze pipeline.

Still open before this version could be released:

  • product/math/engineering/QA/compliance approvals are not recorded;
  • the pack is not frozen, so no freeze evidence has been assembled;
  • volatility beyond the recorded ceilings and feature duration is not measured;
  • whole-game batch simulation is unavailable as an independent cross-check, because the reference free-spins driver does not model variant reelsets (Math Spec §9);
  • nothing is enabled for any operator.