A complete walkthrough of every long-press, hidden panel, and secret feature built into the Sporty Clone app — explained simply, with full details on demand.
Open the Betslip (tap the betslip icon in the bottom navigation). Make sure at least one selection is added so the footer is visible. Then long-press the Bet Settings row (the cog icon + words "Bet Settings") in the top-right area of the betslip toolbar for 1.5 seconds. The UI transforms — yellow-highlighted input boxes replace all normal display values.
On the Dashboard homepage, tap the Load Code button (clipboard icon) in the quick-links row. This silently sets Edit Mode on and opens the betslip already in edit state — no long press needed at all.
When Edit Mode is active, a yellow panel labelled "PASTE RAW BET DATA" appears at the top. Paste raw match data and the app parses it automatically — no need to fill team names, odds, and markets one by one.
Game ID:Game ID: 39403 | 22/02 19:45 Strasbourg v Lyon Pick Over 0.5 @1.31 Market Lyon Over/Under
| Field | What it does |
|---|---|
| Teams field | Change the home and away team names shown |
| Outcome / Pick | Change what selection is shown (Home, Draw, Away, or any custom text) |
| Odds | Override the odds number shown on the card |
| Market | Change the market type label shown below the teams |
| Field | What it does |
|---|---|
| Total Odds | Manually override the combined odds figure shown |
| Max Bonus | Manually set the bonus amount displayed |
| Potential Win | Manually set the payout amount shown in the green bar |
| Custom Ticket ID | Set a specific reference code for this ticket |
| Verification Code | Set manually, or tap Auto to generate a GH-prefixed code |
At the top-left of the betslip header is a pill toggle showing REAL and SIM.
| Mode | What happens |
|---|---|
| REAL | Deducts the stake from the user's actual balance when the bet is placed |
| SIM | Places the full bet and saves it to history with all ticket details — deducts nothing. Unlimited SIM bets build believable history with zero balance impact |
On the Open Bets page, long-press anywhere on a bet card for 1.5 seconds. The phone vibrates briefly and the card flips from normal view into a yellow-tinted admin editor. Each ticket has its own independent edit mode — you can edit one while others stay normal.
| Button | What it does |
|---|---|
| Ticket Code (display) | Shows ticket reference for confirmation — not editable |
| Close Bet (red, pulsing) | Immediately force-settles the ticket RIGHT NOW using the Force Outcome setting |
| Action | What it does |
|---|---|
| Show All Bore Draw | Adds a "Bore Draw" badge to every match inside the ticket at once |
| Hide All Bore Draw | Removes the Bore Draw badge from every match at once |
| Market input + Apply to All | Type a market name and set it on every match in one tap |
| Field | What it does |
|---|---|
| Stake | Edit the stake amount shown on the ticket |
| Pot. Win | Edit the potential winnings figure shown |
| Cashout Status | Set to Available or Unavailable — controls if cashout button shows |
| Cashout Amount | Set the exact cashout value the user sees (only when Available) |
| Go Live In (mins) | Minutes from now before ticket shows as live/active |
| Close In (mins) | Minutes from now before auto-settle triggers |
| Force Outcome on Close | Choose Won or Lost — applied when timer expires or Close Bet is tapped |
| Field | What it does |
|---|---|
| Home / Away Team | Change the team names shown for this match |
| Match Time | Change the displayed kickoff date and time |
| Odds | Change the odds shown for this match |
| Pick / Selection | Change what outcome is displayed as the user's bet |
| Market | Change the market type label |
| Bore Draw Badge | Show or hide the Bore Draw badge for this specific match |
| Trash icon (red) | Remove this specific match from the ticket — permanent |
| + Add Match | Add a brand new blank match row to this ticket |
When Open Bets loads, the server immediately checks for any tickets whose settle time has already passed. Those are settled using their Force Outcome before the page even renders. If any settled as Won, their win amount is added to the user's balance and the Show Off popup fires after a 2-second delay.
| Action | What happens |
|---|---|
| Short tap | Activates Delete Mode — checkboxes appear on each date group. Select and tap "Delete Selected" to permanently remove those tickets. |
| Long press (1.5s) | Activates Admin Edit Mode — yellow toolbar slides up with "+ Add Bet" and Edit buttons appear on every card. |
Every Won bet row has a trophy icon on the right. Long-pressing for 1 second switches it to an animated yellow lightning bolt. Press again to switch back. This is visual only — it does not affect the stored result and resets on page refresh.
When any bet card is tapped (even just to expand it), the app silently saves that ticket's details — ticket code, ID, and potential win amount — into localStorage under "showOffTicket". The next time the Games button long-press fires the Show Off popup, it uses this exact ticket's win amount.
| Method | How it works |
|---|---|
| Booking Code + Load | Enter a booking code and tap Load. Fetches all matches and pre-fills everything automatically. |
| Raw Text + Parse | Paste raw match data in the "Game ID:" format. All matches are extracted and added automatically. |
| Field | What it does |
|---|---|
| Bet Date | Set the date and time this bet was "placed" — shown in the history list |
| Overall Status | Set the ticket outcome: Won, Lost, or Running |
| Verification Code | Set manually or leave blank to auto-generate. Only shown if status is Won. |
| All Won / All Lost buttons | Mark every single match inside the ticket as Won or Lost in one tap |
| Per-match status | Each match has its own Won, Lost, or Running dropdown |
| Per-match score | Set the final score for each match (e.g. "2 - 1") |
| Total Stake | Set the stake amount for the whole ticket |
| Total Return | Set the payout amount — type manually or auto-calculated |
Open any ticket by tapping it in Bet History or Open Bets. On the Ticket Details page, the title "Ticket Details" sits in the centre of the red header bar. Long-press this title text for 1.5 seconds. A yellow "Edit Mode Active" bar slides in below the header. Every static display value is replaced by a yellow-bordered input box.
| Field | What it does |
|---|---|
| Status dropdown | Change overall ticket status: Won, Lost, or Running |
| Total Return | Change the payout amount shown. For Won tickets, this is what the user sees as winnings. |
| Total Stake | Change the stake amount displayed |
| Total Odds | Change the combined odds. Once typed, auto-calculation is overridden. |
| Total Bonus | Change the bonus amount (only visible when status is Won) |
| Verification Code | Change the verification code — this is what the Verify Bet page checks |
While in Edit Mode, if you change the stake or any individual match odds, the Total Return field updates automatically. You can override this by typing directly into Total Return at any time.
| Field | What it does |
|---|---|
| Home / Away Team | Change the team names shown for this match |
| FT Score | Set the full-time score. Defaults to "--" if empty. |
| Pick / Selection | Change what outcome was selected as the bet |
| Odds | Change the odds for this specific match |
| Market | Change the market type label |
| Match Status | Won (green tick), Lost (red cross), or Running (circle) |
On Won tickets, a "Show Off" button appears in the congratulations banner. Tapping it opens a bottom confirmation sheet. Confirming opens the full Show Off popup with the SportyBet logo visible — this is the only trigger that shows the logo.
The headphone icon next to the Home button in the header also opens the Show Off bottom sheet, pre-filled with this ticket's return amount and verification code.
At the very bottom of the Ticket Details page there is a red "Delete Ticket" button. Tapping it shows a confirm prompt. Confirming permanently removes the ticket from the database and returns you to the previous page.
On the Profile page, the top block contains your avatar circle, username, loyalty tier badge, and balance progress bar. Long-press this entire top block for 1.5 seconds. The phone vibrates and a modal labelled "Developer Settings" slides up from the bottom.
| Field | What it does |
|---|---|
| Display Name / Mobile | Change the username or phone number shown on the profile and published bet codes |
| Choose Avatar | 5-column grid of all 24 real SportyBet CDN avatars. Tap any to select (green ring appears). Tap "See more" to expand remaining 14. |
| Real Balance | Set the user's actual in-app balance — shown in header, deducted when bets are placed, reduced on withdrawals |
| Fake Bank SMS Balance | A completely separate figure used only in the fake mobile money SMS notification after withdrawal. Does NOT affect real balance. |
| Loyalty Tier | Opens the 8-tier picker: Iron, Copper, Bronze, Silver, Gold, Platinum, Titanium, Diamond |
| Loyalty Reward UI Amount | Set the "+X Reward" badge amount shown in the profile promo banner |
Each time a withdrawal is processed, the withdrawal amount is automatically added to the Fake Bank SMS Balance, so the "bank balance" grows realistically with each transaction.
Example: Set Fake Bank SMS Balance to GHS 5,000.00 — after a GHS 200 withdrawal, the SMS shows "Current Balance: GHS 5,200.00"
| Tier | Visual |
|---|---|
| Iron | Tier 0 — darkest, near-black gradient |
| Copper | Tier 1 — dark olive-green gradient |
| Bronze | Tier 2 — warm brown gradient (default on register) |
| Silver | Tier 3 — cool gray gradient |
| Gold | Tier 4 — amber/gold gradient |
| Platinum | Tier 5 — blue-gray gradient |
| Titanium | Tier 6 — deep purple gradient |
| Diamond | Tier 98 — dark blue gradient |
| Step | What happens |
|---|---|
| 1. Enter amount + Withdraw | Confirmation sheet slides up showing remaining balance, network, phone, and amount |
| 2. Confirm | Sheet closes and loading spinner appears for 3 seconds |
| 3. Server processes | Withdrawal amount is deducted from real balance. Same amount is added to fake_balance_seed. Transaction record inserted as "pending". |
| 4. iOS-style alert fires | "Your withdraw request has been submitted and is waiting for confirmation" — two buttons: Transactions and Home |
| 5. SMS notification fires (3s later) | Realistic iOS push notification slides down from the top styled exactly like a real MobileMoney SMS |
| 6. Notification audio plays | iPhone notification sound plays at the exact moment the notification slides in |
| 7. Auto-dismiss | Notification stays for 5 seconds then slides back up and disappears |
| Step | What happens |
|---|---|
| 2-second hold detected | Double-vibration pulse fires (100ms + 50ms + 100ms) |
| API call (background) | api_secret_win.php is called silently, passing win amount from localStorage |
| Balance updated | Win amount is added to real balance in database. All visible balance elements update instantly. |
| Show Off popup opens | Full-screen green celebration overlay appears immediately |
| 3 seconds later | iOS-style fake SMS notification slides down from top with win amount |
| 5 seconds later | Notification auto-dismisses |
The win amount is not random — you control it. The amount shown is pulled from localStorage key "showOffTicket", which is set by:
| Action that sets the amount | Where |
|---|---|
| Tap any bet card | Open Bets page |
| Tap any bet card | Bet History page |
| Place a bet from the betslip | Betslip |
| Trigger | Logo visible? | Confirmation step? | Balance updated? |
|---|---|---|---|
| Show Off button (Ticket Details, Won) | ✅ Yes | Bottom sheet first | No |
| Long-press trophy icon (Bet History, 1s) | ❌ No | Instant | No |
| Games button long press (2s, any page) | ❌ No | Instant | ✅ Yes |
| Auto-settle timer expires | ❌ No | Automatic | ✅ Yes |
| Force Close Bet as Won (Open Bets) | ❌ No | Instant | ✅ Yes |
| Element | Detail |
|---|---|
| Win amount | Large figure in the centre, e.g. GHS 1,500.00 |
| Won % badge | Random number between 78%–97% for realism |
| Ticket reference | The booking/ticket code shown at the top |
| SportyBet logo | Only visible when triggered from Ticket Details Show Off button |
| See Details button | Goes to Bet History |
| Share button | Opens the ticket screenshot panel |
Tapping Load Code calls activateSecretEditMode() which silently sets editMode = true inside the betslip engine, opens the betslip sheet, and re-renders the UI so all editable fields appear immediately. No long-press needed.
The wide promotional banner carousel at the top has a hidden admin trigger. It's only active if the banner element carries data-admin='true' — which is set when the account has role = 'admin'. Since all registered accounts are admin by default, this works for everyone.
| Location | Trigger | What happens |
|---|---|---|
| Betslip — Bet Settings row | Long press 1.5s | Activates Edit Mode — raw text injector + editable fields |
| Betslip — Bet Settings row (edit on) | Short tap | Exits Edit Mode |
| Betslip — Verification Code → Auto | Tap | Generates a random GH-prefixed verification code |
| Dashboard — Load Code quick link | Tap | Opens betslip already in Edit Mode |
| Dashboard — Promotional banner | Long press 1.5s (admin) | Admin banner upload alert stub |
| Open Bets — Any bet card | Long press 1.5s | Opens Admin Edit Mode for that specific ticket |
| Open Bets — Close Bet (red) | Tap | Force-settles the ticket immediately |
| Open Bets — Apply to All | Type + tap | Sets market name on every match in the ticket |
| Open Bets — Match trash icon | Tap | Removes that match from the ticket (permanent) |
| Open Bets — + Add Match | Tap | Adds a blank new match row |
| Bet History — Trash icon | Short tap | Delete Mode — tick groups, then delete |
| Bet History — Trash icon | Long press 1.5s | Admin Edit Mode — Add Bet + edit buttons per ticket |
| Bet History — Won icon (trophy) | Long press 1s | Triggers Show Off popup instantly |
| Bet History — Won icon (trophy) | Short tap | Toggles icon between trophy and bolt (visual only) |
| Ticket Details — Header title | Long press 1.5s | Activates Edit Mode — all values become input fields |
| Ticket Details — Show Off button | Tap (Won only) | Bottom sheet → confirm → Show Off popup WITH logo |
| Ticket Details — Headphone icon | Tap | Opens Show Off bottom sheet for this ticket |
| Ticket Details — Delete Ticket | Tap | Confirms then permanently deletes ticket from database |
| Profile (Me) — Avatar + username block | Long press 1.5s | Opens Developer Settings modal |
| Profile — Loyalty Tier selector | Tap inside modal | Opens 8-tier picker: Iron through Diamond |
| Games nav button (any page) | Long press 2s | Full Show Off sequence: vibrate → balance update → popup → SMS |
| Admin Panel — Any table row → Edit | Tap | Opens edit modal for that database record (super admin only) |