Configuration¶
The file config/game_config.json holds all math values. The game, the simulator, the exact calculator and the Excel workbook use this file.
Paytable¶
The values are credits for each way, at a bet of 10 credits.
| Symbol | 1 OAK | 2 OAK | 3 OAK | 4 OAK | 5 OAK |
|---|---|---|---|---|---|
| PIC1 | 0 | 0 | 5 | 15 | 50 |
| PIC2 | 0 | 0 | 4 | 10 | 30 |
| PIC3 | 0 | 0 | 3 | 8 | 20 |
| PIC4 | 0 | 0 | 3 | 6 | 15 |
| PIC5 | 0 | 0 | 2 | 5 | 12 |
| AUS1 | 0 | 0 | 1 | 2 | 5 |
| AUS2 | 0 | 0 | 1 | 2 | 5 |
| AUS3 | 0 | 0 | 1 | 2 | 4 |
| AUS4 | 0 | 0 | 1 | 2 | 4 |
| AUS5 | 0 | 0 | 1 | 2 | 4 |
Fish values and weights¶
Each FISH symbol has a list of values. Each game mode has a list of weights. The probability of a value is its weight divided by the sum of the weights.
| Mode | Symbol | Values (credits) | Weights | Mean value |
|---|---|---|---|---|
| base | FISH1 | 1 / 2 / 3 / 5 | 4225 / 2775 / 2000 / 1000 | 2.0775 |
| base | FISH2 | 10 / 15 / 20 / 25 | 55 / 27 / 12 / 6 | 13.4500 |
| base | FISH3 | 50 / 100 / 150 / 200 | 75 / 17 / 6 / 2 | 67.5000 |
| base | FISH4 | 500 / 2000 | 8 / 1 | 666.6667 |
| level1 | FISH1 | 1 / 2 / 3 / 5 | 40 / 30 / 20 / 10 | 2.1000 |
| level1 | FISH2 | 10 / 15 / 20 / 25 | 35 / 30 / 20 / 15 | 15.7500 |
| level1 | FISH3 | 50 / 100 / 150 / 200 | 60 / 25 / 10 / 5 | 80.0000 |
| level1 | FISH4 | 500 / 2000 | 8 / 1 | 666.6667 |
| level2 | FISH1 | 1 / 2 / 3 / 5 | 35 / 30 / 20 / 15 | 2.3000 |
| level2 | FISH2 | 10 / 15 / 20 / 25 | 30 / 30 / 22 / 18 | 16.4000 |
| level2 | FISH3 | 50 / 100 / 150 / 200 | 50 / 28 / 14 / 8 | 90.0000 |
| level2 | FISH4 | 500 / 2000 | 8 / 1 | 666.6667 |
| level3 | FISH1 | 1 / 2 / 3 / 5 | 30 / 30 / 22 / 18 | 2.4600 |
| level3 | FISH2 | 10 / 15 / 20 / 25 | 25 / 30 / 25 / 20 | 17.0000 |
| level3 | FISH3 | 50 / 100 / 150 / 200 | 45 / 30 / 15 / 10 | 95.0000 |
| level3 | FISH4 | 500 / 2000 | 8 / 1 | 666.6667 |
| level4 | FISH1 | 1 / 2 / 3 / 5 | 25 / 30 / 25 / 20 | 2.6000 |
| level4 | FISH2 | 10 / 15 / 20 / 25 | 20 / 30 / 27 / 23 | 17.6500 |
| level4 | FISH3 | 50 / 100 / 150 / 200 | 40 / 30 / 18 / 12 | 101.0000 |
| level4 | FISH4 | 500 / 2000 | 8 / 1 | 666.6667 |
Free spins¶
| FS symbols | Initial free spins |
|---|---|
| 3 | 10 |
| 4 | 15 |
| 5 | 20 |
| Level | KEY threshold | Spins | Multiplier |
|---|---|---|---|
| 1 | 0 | initial | 1 |
| 2 | 3 | 8 | 2 |
| 3 | 6 | 8 | 5 |
| 4 | 9 | 8 | 10 |
The setting multiplierAppliesTo is all. The permitted values are all and fish.
Reel placement rules¶
| Reel set | Symbol | Permitted reels |
|---|---|---|
| base | FISH1 | 1, 2, 3, 4, 5 |
| base | FISH2 | 1, 2, 3, 4, 5 |
| base | FISH3 | 4 |
| base | FISH4 | 5 |
| base | KEY | 1, 2, 3 |
| base | WILD | 2, 3, 4, 5 |
| base | FS | 1, 2, 3, 4, 5 |
| bonus | FISH1 | 1, 2, 3, 4, 5 |
| bonus | FISH2 | 1, 2, 3, 4, 5 |
| bonus | FISH3 | 4 |
| bonus | FISH4 | 5 |
| bonus | KEY | 1, 2, 3 |
| bonus | WILD | none |
| bonus | FS | none |
Presentation settings¶
| Setting | Value |
|---|---|
| Fish value swap delay after the wager | 500 ms |
Name of the KEY symbol in the game texts (keyLabel) |
HOOK |
| Reels where a KEY symbol starts the anticipation | 1, 2, 3 |
| Reels that show the KEY anticipation | 4, 5 |
| FS symbols that start the FS anticipation | 2 |
Symbols that start the slow motion step (slowdownSymbols) |
FISH4 |
Symbols before the stop that move on the true strip (slowdownRunSymbols) |
18 |
Reel speed in slow motion, symbols for each second (slowdownSpeed) |
2.8 |
How to change the configuration¶
There are two procedures.
Procedure A: change the JSON file.
- Change the values in
config/game_config.json. - If you changed the reel recipe, run
python3 gamemath/gen_reels.py. - Run
python3 gamemath/exact_calc.py --json build/theo.json. - Run
.venv/bin/python tools/build_excel.py. - Run
.venv/bin/python tools/gen_docs.py.
Procedure B: change the Excel workbook.
- Change the yellow cells in the workbook. The workbook shows the new RTP immediately.
- Save the workbook.
- Run
.venv/bin/python tools/excel_to_config.py. - Do steps 3 and 5 of procedure A.
Procedure C: try a change in the game.
The demo suite of the playable game has the tool "Math configuration". It shows the configuration as JSON. You can change values there and apply them in the game. This change is for a test only. It stays in the browser and does not change the file.