Open Issues
14
Completed This Cycle
12
In Progress
4
In Review
3
Cycle 9 burndown
โ โ Idealโโ Actual- - AI forecast
AI forecast: 2 issues likely to carry over based on current velocity
Issues by week
OpenedClosed
Issue breakdown
Done 12
In Progress 7
In Review 3
Backlog 6
Recent activity
Dan R. merged MR "Fix win line number"
2h
Nova AI pushed 3 commits to
fix/nva-047-auth-token2h
Priya K. approved MR "QA cert fixes"
8h
Dan R. opened issue "Game spec review needed"
2d
โน
Dashboard data is derived from GitLab issues, milestones, and merge requests. The burndown updates automatically as issues are closed. AI forecast uses historical velocity to project completion.
๐ฎMicro-client
๐Game Spec
๐จMiro Board
๐Cheats Doc
โEngine API
Project Docs
๐ฎ
Micro-client
Live playable build. SDK setup, build config, deployment targets.
๐
Game Specification
Core game design. UltraNudge mechanics, Fishy Cashways, progression.
๐จ
UI/UX Design Board
Miro board with screen flows and component specs.
๐
Cheats Documentation
Force tool configs, cheat codes, test commands, debug flags.
โ
Engine API
Game-specific API: symbols, bet modes, bonus system, response format.
Releases
๐
Deployments ยท 3 targets ยท Client v1.0.9 ยท Engine v1.0.3
GCP Dev v1.0.9 ยท Spark Dev v1.0.8 ยท Spark QA v1.0.7 (TC2)
Translations
๐
Translation Files ยท 16 locales ยท 60 keys
All locales 100% complete. Source: assets/locale/game/copy/ in repo.
Cheats
๐ฎ
Force Tool Config ยท 46 cheats ยท 8 categories
RTPs: 94, 96. Source: source/json/playzido/cheatsData.json in repo.
Engine Dependencies
โ
nova-engine
min_version: 2.1.0
Marketing
6 folders ยท 13 assets๐ Game SheetPDFโผ
๐จ Logos4 filesโผ
๐ผ Banners5 filesโผ
๐ฐ Game Tile1 fileโผ
๐ Backgrounds2 filesโผ
๐ธ Screenshots1 fileโผ
Pulled From The Deep โ Game Specification
Source: FishinUltraNudge_GDD_V04.xlsx ยท Math by Jamie Kroon
Grid
6ร4
Lines
40
Max Win
10,000ร
RTPs
3
Game Overview
Base Game
Fixed 6ร4 grid ยท 40 pay lines
Wins left-to-right on adjacent reels
Wild substitutes for all except Scatter
All wins multiplied by Base Bet
Wins left-to-right on adjacent reels
Wild substitutes for all except Scatter
All wins multiplied by Base Bet
Free Spins
Variable grid: 6ร5 โ 6ร8
12 Free Spins awarded
3 locked rows above reels
Every win triggers Nudge Feature
12 Free Spins awarded
3 locked rows above reels
Every win triggers Nudge Feature
Key Features
๐
UltraNudge
Wild in winning combo triggers nudge. All reels shift down. Continues until no wins.
๐
Fishy Cashways
Bonus symbols with Cash Prizes + Jackpots. Need reels 1-3 covered. Consecutive from reel 1.
๐
Keys to the Deep
3+ Scatters trigger Free Spins. Mystery symbols on reel 6. Each Scatter unlocks a row + 2 spins.
Paytable
| Symbol | ร6 | ร5 | ร4 | ร3 | ร2 |
|---|---|---|---|---|---|
| High1 | 5.0 | 3.0 | 1.0 | 0.3 | โ |
| High2 | 3.0 | 1.5 | 0.5 | 0.2 | โ |
| High3 | 2.0 | 1.0 | 0.4 | 0.2 | โ |
| High4 | 1.5 | 0.8 | 0.3 | 0.2 | โ |
| Low1 | 1.0 | 0.5 | 0.2 | 0.1 | โ |
| Low2 | 1.0 | 0.5 | 0.2 | 0.1 | โ |
| Low3 | 1.0 | 0.5 | 0.2 | 0.1 | โ |
| Low4 | 1.0 | 0.5 | 0.2 | 0.1 | โ |
๐ก
All wins multiplied by total Base Bet amount. Base Bet must be a multiple of 0.1 for two-decimal precision.
Jackpot Values
| Level | Prize (ร Base Bet) | Appears On |
|---|---|---|
| Grand | 5,000ร | Reel 6 only |
| Major | 1,000ร | Reel 6 only |
| Minor | 200ร | Reel 6 only |
| Mini | 100ร | Reel 6 only |
RTP Summary
| RTP | Normal Bet | Ante Bet | Buy Bonus | Super BB |
|---|---|---|---|---|
| 96% | 96.08% | 96.04% | 96.05% | 96.06% |
| 94% | 94.04% | 94.04% | 94.06% | 94.08% |
| 90.5% | 90.52% | 90.59% | 90.59% | 90.54% |
Feature Statistics (96% RTP)
| Stat | Normal | Ante Bet |
|---|---|---|
| Feature Hit Rate | 1 in 236 | 1 in 116 |
| Avg Free Spins | 14.8 | 15.3 |
| Stat | Buy Bonus | Super BB |
|---|---|---|
| Cost | 75ร Base Bet | 200ร Base Bet |
| Avg Free Spins | 15.0 | 16.6 |
Bet Modes
Ante Bet
Total bet increased 3ร. Base game grid becomes 6ร5. Free Spins start at 6ร6. Paytable wins based on Base Bet only.
Buy Bonus
Cost: 75ร Base Bet. Triggers 3-Scatter spin. 12 Free Spins. Standard rules apply.
Super Buy Bonus
Cost: 200ร Base Bet. Triggers 3-Scatter spin. 12 Free Spins. Starts at max 6ร8 grid.
Grid Configurations
| Grid | Lines | Context |
|---|---|---|
| 6ร4 | 40 | Base Game (Normal Bet) |
| 6ร5 | 60 | Base Game (Ante Bet) / Free Spins start |
| 6ร6 | 80 | Free Spins (Ante Bet start / 1 unlock) |
| 6ร7 | 100 | Free Spins (2 unlocks) |
| 6ร8 | 120 | Free Spins max / Super Buy Bonus start |
๐
Math model: FishinUltraNudge_GDD_V04.xlsx โ 7 base game reel sets, 7 free spin reel sets. Version 4 by Jamie Kroon.
Pulled From The Deep โ Cheat Documentation
Force tool format reference ยท RNG consumption order
Cheat Format
816, 190, 140, 318, 348, 489, 330
๐ก
Each number is consumed sequentially as either an INDEX (reel stop position) or a WEIGHT (weighted random selection from a table). 7 base game reel sets (BaseSet0โ6), 5 free spin reel sets (FreeSet0โ4).
RNG Consumption Order โ Base Game Spin
| Order | Type | Item | Notes |
|---|---|---|---|
| 1 | Weight | Base Game Reel Set | Normal: 1โ2200, AnteBet: 1โ3190. Buy Bonus forces BaseSet0. |
| 2โ7 | Index | Reel Stops (per reel, LโR) | 6 numbers. Index into reel strip for selected set. |
| 8โ8+x | Weight | Bonus Symbol Cash Prizes | Per bonus symbol. Col 0โ4: cash prize. Col 5: jackpot vs cash, then prize. |
| x+1 | Weight | Jackpot Level | Only if bonus on reel 6 is jackpot. 1โ6110. Grand/Major/Minor/Mini. |
| x+2 | Weight | Free Spin Reel Set | If free spins awarded. Normal: 1โ3410, AnteBet: 1โ2860. |
| x+y | Weight | Mystery Symbol Replacements | Reel 6 only. Scatter vs Normal (1โ1000), then symbol (1โ740). |
Detailed RNG Sequence
1. Buy Bonus trigger conditional โ one number for trigger reel stop positions
2. Reel Set Selection 1 number โ base set or free spin set
3. Reel Stops 6 numbers โ index per reel, left to right
4. Mystery Replacements 1โ2 per mystery โ reel 6: Scatter/Normal, then symbol
5. Bonus Prizes 1โ3 per bonus โ cash prize, or jackpot level + replacement
6. Respin repeats 3โ5 โ if wild in win or bonus stream, loop reel stops + mystery + bonus
7. Free Spins loops โ each spin: reel set + reel stops + mystery + bonus
Respin Triggers
Base Game
Wild or special wild in a winning combination, OR a bonus winning stream (bonus symbols on reels 0โ3 consecutively).
Respins & Free Spins
Any win (bonus winnings > 0 or line wins) triggers another respin.
Free Spins Pattern
Per free spin:
(#C), (#F), (#F), (#F), (#F), (#F), (#F), (#M)
#C = Choose free spin reel set (FreeSet0โFreeSet4)
#F = Reel stop per reel (6 numbers)
#M = Mystery symbol replacements on last reel
Useful Scenarios
| Scenario | Cheat Array |
|---|---|
| Trigger a reel bonus | 1, 20, 23, 24, 23, 22, 23 |
| Trigger Grand Jackpot | 1, 20, 5, 24, 13, 22, 24, 1, 1508, 1, 998, 542, 543, 5, 9, 473 |
| Enter Free Spins (3 scatters) | 720, 559, 106, 142, 33, 528, 423 |
| 3 Scatters + line wins | 720, 559, 106, 142, 33, 528, 423 |
| Nudge + Free Spins | 1, 369, 318, 11, 139, 197, 310 |
| Full Grid Wilds | 1, 5, 5, 5, 5, 5, 5 |
๐
This game is a port of the TypeScript game. The RNG format is identical. See the force tool editor for the full cheat catalogue per RTP.
Pulled From The Deep โ Engine API
Game-specific API reference ยท PyRoller format
Game Type
6-reel slot
Win Direction
LโR
Symbols
12
Bet Modes
4
Game Information
| Property | Value |
|---|---|
| Game Name | pulled-from-the-deep-ultranudge |
| Game Type | 6-reel line-pay slot with UltraNudge and expanding layouts |
| RTP Variants | 96%94%90% |
| Layouts | 6X4, 6X5, 6X6, 6X7, 6X8 |
| Paylines | 40, 60, 80, 100, 120 |
Symbol Definitions
| ID | Name | Type | Wild | Description |
|---|---|---|---|---|
| 0 | Wild | Feature | Yes | Substitutes for all paying symbols |
| 1โ4 | High1โHigh4 | Paying | No | High paying regular symbols |
| 5โ8 | Low1โLow4 | Paying | No | Low paying regular symbols |
| 9 | Bonus | Feature | No | Carries cash prizes ("fish" symbols) |
| 10 | Scatter | Feature | No | Triggers free spins (3+ required) |
| 11 | Mystery | Feature | No | Replaced by scatter or normal symbol |
Bet Modes
| Mode | Stake | Description |
|---|---|---|
| NORMAL_BET | 1ร | Standard bet. Base layout 6X4. |
| ANTE_BET | 3ร | Expanded starting layout (6X8). Increases scatter chance. |
| BUY_BONUS | 75ร | Instantly triggers free spins. Starts at 6X5. |
| SUPER_BUY_BONUS | 200ร | Instantly triggers free spins at maximum 6X8. |
Cash Prize Values by Reel
| Reel | Prize Values (ร baseStake) |
|---|---|
| 1 | 0.2, 0.3, 0.4, 0.5, 0.8, 1, 1.2, 1.5, 1.8, 2 |
| 2 | 0.4, 0.5, 0.8, 1, 1.2, 1.5, 1.8, 2, 2.5, 3 |
| 3 | 1, 1.2, 1.5, 1.8, 2, 2.5, 3, 3.5, 4, 5 |
| 4 | 2, 2.5, 3, 3.5, 4, 5, 6, 7, 8, 10 |
| 5 | 4, 5, 6, 7, 8, 9, 10, 12, 15, 20 |
| 6 | 10, 12, 15, 20, 25, 30, 35, 40, 45, 50 |
Jackpot Selection Weights
| Level | Multiplier | Weight |
|---|---|---|
| Grand | 5,000ร | 10 |
| Major | 1,000ร | 100 |
| Minor | 200ร | 1,000 |
| Mini | 100ร | 5,000 |
| Game Mode | Jackpot Wt | Cash Wt |
|---|---|---|
| Base Game | 10 | 40 |
| Free Spins | 10 | 160 |
Game Flow โ Base Game Spin
1. Request received (action: "Spin")
2. Determine bet mode (Normal / Ante / Buy Bonus / Super Buy Bonus)
3. If Buy Bonus: get trigger reel stops
4. Select reel set (BaseSet0โ6 via weighted choice)
5. Generate grid (6 reel stops โ 6X4 or 6X8 grid)
6. Replace mystery symbols on last reel
7. Render bonus symbols with cash prizes
8. Evaluate payline wins (40โ120 lines)
9. Calculate bonus winnings (consecutive stream reels 0โ3)
10. Check respin trigger: Wild in win โ ReSpin, Bonus stream โ ReSpin
11. Check free spin trigger: 3+ scatters โ 12 Free Spins
Key Response Structures
class FishinClientData(ClientData):
finished: bool
finalGrid: List[List[int]]
totalStake: float
baseStake: float
currentAction: str # "Spin", "ReSpin", "FreeSpin"
nextActions: List[str]
reelLayoutID: str # "6X4", "6X5", ... "6X8"
lockedRows: List[int]
bonus: BonusData
respinState: RespinState
freeSpinState: FreeSpinState
class BonusData:
bonusWinnings: float
bonusWinningSymbols: List[str] # ["col:row", ...]
bonusPrizes: Dict[str, float] # {"col:row": prize}
class BonusSymbol:
symbolId: int # 0=Wild, 9=Bonus
prize: float # ร baseStake
type: str # "CashPrize", "Jackpot", "Wild"
jackpot: Optional[JackpotData]
Free Spin Starting Layouts
| Bet Mode | Starting Layout | Locked Rows |
|---|---|---|
| NORMAL_BET | 6X5 | 3 |
| BUY_BONUS | 6X5 | 3 |
| ANTE_BET | 6X8 | 0 |
| SUPER_BUY_BONUS | 6X8 | 0 |
๐
Read in conjunction with the General PyRoller API Documentation. Nudge override applies after 100 consecutive nudges to prevent infinite loops.
Pulled From The Deep โ Micro-client
Live playable build ยท spark-engines.nw.r.appspot.com
Team Roles
Client Devs
D
Dandan@bangbang.gamesA
Alicealice@bangbang.gamesServer Devs
J
Jamesjames@bangbang.gamesArtists
M
Mikemike@bangbang.gamesAudio Engineers
M
Music Mikemusicmike@external.comQA Engineers
B
Benben@bangbang.gamesProducers
S
Sebseb@bangbang.games๐ก
Team roles defined in nova.yml. Edit the file in GitLab to update.
nova.yml
โ ValidVersion 1Validated 2h ago
version: 1
project: pulled-from-the-deep-ultranudge
display_name: Pulled From The Deep
# Team roles
roles:
client_devs:
- dan@bangbang.games
- alice@bangbang.games
server_devs:
- james@bangbang.games
artists:
- mike@bangbang.games
audio_engineers:
- musicmike@external.com
qa_engineers:
- ben@bangbang.games
producers:
- seb@bangbang.games
# Translations
translations:
source_locale: en
path: "assets/locale/game/copy"
file_pattern: "{locale}.copy.yml"
# Cheats
cheats:
rtps: [94, 96]
source: "source/json/playzido/cheatsData.json"
game_slug: "pulledfromthedeepultranudge"
๐ฃ Pulled From The Deep In QA
Releases ยท 3 targets configured ยท Client v1.0.9 ยท Engine v1.0.3
Current Deployments
Spark Dev LIVE
Client v1.0.8
Engine v1.0.1
Mar 20 ยท Dan
release/1.0.8 @ e91b0f4
Spark QA LIVE
Client v1.0.7
Engine v1.0.0
Mar 12 ยท Dan
release/1.0.7 @ 7cc4d12
โ Email sent ยท TC2
Release History
| Version | Type | Target | Test Cycle | When | Who | ||
|---|---|---|---|---|---|---|---|
| 1.0.9 | CLIENT | โกGCP Dev | โ | Mar 23 | Dan | โ | |
| 1.0.3 | ENGINE | โกGCP Dev | โ | Mar 27 | Dan | โ | |
| 1.0.8 | CLIENT | โSpark Dev | โ | Mar 20 | Dan | โ | |
| 1.0.1 | ENGINE | โSpark Dev | โ | Mar 13 | Dan | โ | |
| 1.0.7 | CLIENT | โSpark QA | TC2 | Mar 12 | Dan | โ Sent | |
| 1.0.0 | ENGINE | โSpark QA | TC1 | Mar 9 | Dan | โ Sent | |
| 1.0.6 | CLIENT | โกGCP Dev | โ | Mar 12 | Dan | โ | |
| 1.0.5 | CLIENT | โSpark Dev | โ | Mar 10 | Dan | โ |
๐
Deployment targets are configured in nova.yml under deployments.targets. Release emails are sent automatically when deploying to targets with notify_on_deploy configured.
Deploy to Spark QA
โ
1.0.9extracted from tag
TC3auto-incrementedOverride โ
โ
Release email will be sent
To: qa-team@endemol.com, pm@endemol.com
Template: spark-qa-release
Cycle 9 Current
Open
5
Completed
6
In Progress
3
Velocity
8 pts
Cycle 9 burndown
โ โ Idealโโ Actual- - Forecast
AI forecast: 2 issues likely to carry over based on current velocity
In Progress 3
| ID | Title | Type | Assignee | Pts | Updated | |
|---|---|---|---|---|---|---|
| NVA-047 | Auth tokens expire silently | Bug | AINova AI | 3 | 2m | |
| NVA-046 | Add โK global command palette | Feature | DRDan R. | 3 | 34m | |
| NVA-055 | Add loading skeleton to dashboard | Task | AINova AI | 2 | 18m |
To Do 5
| ID | Title | Type | Assignee | Pts | Updated | |
|---|---|---|---|---|---|---|
| NVA-045 | GitLab MR status not syncing | Bug | Unassigned | 3 | โ | |
| NVA-042 | Engine release notification emails | Feature | Unassigned | 5 | โ | |
| NVA-048 | Update footer copyright year | Task | AINova AI | 1 | โ | |
| NVA-041 | Error boundary styling on 500 page | Task | Unassigned | 2 | โ | |
| NVA-037 | Refactor GitLab API client | Task | DRDan R. | 3 | โ |
Done 6
| ID | Title | Type | Assignee | Pts | Updated | |
|---|---|---|---|---|---|---|
| NVA-044 | Roadmap milestone view | Feature | AINova AI | 3 | 2h | |
| NVA-040 | Fix pagination on issues list | Bug | DRDan R. | 2 | 1d | |
| NVA-038 | SSE endpoint for live execution | Feature | PKPriya K. | 3 | 3d |
+3 more completed issues
โน
Cycles map to GitLab project milestones. This view shows Cycle 9 for Pulled From The Deep only. Issues are assigned to cycles by adding them to the corresponding milestone.












