# SIMULATION_REPORT.md — Forge mode (Schmiede-Modus)

Generated: 2026-09-26T16:17:57.644Z · `node sim.js 2000000`

## Model

| Parameter | Value |
|---|---|
| RTP variants | 94 % / 96 % / 97 % — constant for every strategy |
| Heats (multiplier factor g) | Ember 1.05× · Fire 1.15× · White heat 1.4× per strike |
| Ore vein | 8 % per surviving strike, multiplier × 1.25 |
| Break probability p = 1 − 1/(g·(1 + 0.08·0.25)) | Ember 6.629 % · Fire 14.749 % · White heat 29.972 % |
| Displayed multiplier | RTP × product of strike factors (house edge applied once) |
| Max multiplier | 250× (auto-collect) |
| Randomness | HMAC-SHA256(serverSeed, clientSeed|roundId|strike), first 32 bits; vein stream with suffix "|vein" |

Each strike has an expected factor of exactly 1, so by optional stopping every
strategy returns RTP × stake in expectation. Only the cap can lower it, by a negligible amount.

## A. Strategy invariance (2,000,000 rounds per strategy and RTP variant)

| Strategy | RTP target | measured RTP | ± std. error | hit rate | result |
|---|---|---|---|---|---|
| Ember (Glut), 1 strike | 94 % | 93.993 % | 0.018 % | 93.36 % | ✅ within 4σ |
| Ember (Glut), 10 strikes | 94 % | 93.895 % | 0.069 % | 50.30 % | ✅ within 4σ |
| Fire (Feuer), 1 strike | 94 % | 93.953 % | 0.028 % | 85.21 % | ✅ within 4σ |
| Fire (Feuer), 5 strikes | 94 % | 94.105 % | 0.075 % | 45.08 % | ✅ within 4σ |
| White heat (Weißglut), 1 strike | 94 % | 93.991 % | 0.044 % | 70.02 % | ✅ within 4σ |
| White heat (Weißglut), 4 strikes | 94 % | 93.999 % | 0.120 % | 24.04 % | ✅ within 4σ |
| Fire until ≥ 2× | 94 % | 93.939 % | 0.077 % | 43.00 % | ✅ within 4σ |
| White heat until ≥ 10× | 94 % | 94.379 % | 0.241 % | 7.18 % | ✅ within 4σ |
| Random heat, random 1–12 strikes | 94 % | 93.873 % | 0.131 % | 36.09 % | ✅ within 4σ |
| Ember (Glut), 1 strike | 96 % | 96.012 % | 0.019 % | 93.38 % | ✅ within 4σ |
| Ember (Glut), 10 strikes | 96 % | 96.024 % | 0.070 % | 50.37 % | ✅ within 4σ |
| Fire (Feuer), 1 strike | 96 % | 96.048 % | 0.029 % | 85.29 % | ✅ within 4σ |
| Fire (Feuer), 5 strikes | 96 % | 96.043 % | 0.077 % | 45.05 % | ✅ within 4σ |
| White heat (Weißglut), 1 strike | 96 % | 95.945 % | 0.045 % | 69.99 % | ✅ within 4σ |
| White heat (Weißglut), 4 strikes | 96 % | 96.021 % | 0.122 % | 24.05 % | ✅ within 4σ |
| Fire until ≥ 2× | 96 % | 96.062 % | 0.078 % | 43.06 % | ✅ within 4σ |
| White heat until ≥ 10× | 96 % | 96.172 % | 0.224 % | 8.57 % | ✅ within 4σ |
| Random heat, random 1–12 strikes | 96 % | 95.901 % | 0.133 % | 36.07 % | ✅ within 4σ |
| Ember (Glut), 1 strike | 97 % | 97.013 % | 0.019 % | 93.38 % | ✅ within 4σ |
| Ember (Glut), 10 strikes | 97 % | 97.091 % | 0.071 % | 50.42 % | ✅ within 4σ |
| Fire (Feuer), 1 strike | 97 % | 97.003 % | 0.029 % | 85.26 % | ✅ within 4σ |
| Fire (Feuer), 5 strikes | 97 % | 97.226 % | 0.077 % | 45.14 % | ✅ within 4σ |
| White heat (Weißglut), 1 strike | 97 % | 97.059 % | 0.045 % | 70.07 % | ✅ within 4σ |
| White heat (Weißglut), 4 strikes | 97 % | 97.223 % | 0.123 % | 24.10 % | ✅ within 4σ |
| Fire until ≥ 2× | 97 % | 96.973 % | 0.079 % | 43.09 % | ✅ within 4σ |
| White heat until ≥ 10× | 97 % | 96.848 % | 0.226 % | 8.54 % | ✅ within 4σ |
| Random heat, random 1–12 strikes | 97 % | 96.774 % | 0.134 % | 36.12 % | ✅ within 4σ |

## B. Game engine path (engine.js, HMAC-SHA256, 40,000 rounds per heat)

| Heat | break rate observed | expected | chi² (df=1) | RTP 97 %, 1 strike | result |
|---|---|---|---|---|---|
| glut | 6.567 % | 6.629 % | 0.247 | 97.12 % | ✅ |
| feuer | 14.855 % | 14.749 % | 0.361 | 96.86 % | ✅ |
| weissglut | 29.988 % | 29.972 % | 0.005 | 96.97 % | ✅ |

Critical chi² value for df = 1, α = 0.001: 10.828. The per-round RTP column is informative
(small sample); strategy invariance is shown in part A.

## Result: **passed**

> Internal verification, not a certification. An accredited test lab (e.g. GLI, BMM,
> eCOGRA, iTech Labs) reviews RNG, mathematics and implementation separately.
