Skip to content

Lucky Funatic

Lucky Funatic is a Telegram Mini App tapper/idle game built by Funtico, a web3 gaming platform. Players tap a Joker logo to earn Funz (the primary currency), level up cards for passive income, compete in minigame tournaments, and earn rewards that can be transferred to the Funtico Platform.

The game runs entirely inside Telegram as a Mini App -- no separate download needed. Just open the bot, start tapping, and you're in. The experience is optimized for mobile but works on any device that supports Telegram.

Lucky Funatic main screen
Lucky Funatic main screen

Game Overview

At its core, Lucky Funatic is a tapper game with idle mechanics layered on top. You tap to earn Funz, spend Funz on cards that generate passive income, and use that passive income to buy more cards. On top of that core loop, there are tournaments, quests, a shop, boosters, and a frenzy bonus round to keep things interesting.

flowchart LR
    Tap["Tap the Joker"] --> Funz["Earn Funz"]
    Funz --> Cards["Buy Story Cards"]
    Cards --> Passive["Passive Income"]
    Passive --> Funz
    Funz --> Shop["Pawn Shop"]
    Shop --> Tickets["Tournament Tickets"]
    Tickets --> Tourney["Play Tournaments"]
    Tourney --> Rewards["Win TICO &\nPrivate Passes"]
    Rewards --> Platform["Transfer to\nFuntico Platform"]

The game is organized into five main tabs at the bottom of the screen:

  • Home -- the main tapping screen where you earn Funz
  • Stories -- collectible cards that generate passive income
  • Win -- minigames and tournaments where you compete for prizes
  • Quests -- one-time tasks and daily bonus wheel
  • Saga -- coming soon

Additional screens are accessible from the main screen: the Pawn Shop (Toolbag button), Boosters (lightning bolt), Inventory, Account, and Raffle.

Currencies

Lucky Funatic has several currencies, each earned and spent in different ways. Here's a quick reference:

Currency Icon How to get it What it's for
Funz Silver casino chip Tapping, passive income from Stories cards Buying cards, shop purchases, general spending
Jokers Joker face chip Rare drop from tapping (0.05% per tap), quest rewards Shop purchases, converting to other items
Bond Bells Bell icon Inviting friends (1 friend = 1 Bond Bell) Permanent boosters, shop purchases
Lady Jokers Lady Joker Premium currency Convertible to Funz
Baby Jokers Baby Joker Premium currency Convertible to Funz
Mini Tickets Blue ticket Bought in Pawn Shop Entering Mini Rumble tournaments
Maxi Tickets Gold ticket Bought in Pawn Shop Entering Maxi Rumble tournaments
TICO Purple coins Won in tournaments Funtico Platform cryptocurrency
Private Passes Pass card Won in tournaments Tournament entry on Funtico Platform
flowchart TD
    subgraph Earned["How currencies are earned"]
        Tapping["Tapping"] --> Funz["Funz"]
        Tapping -.->|0.05% chance| Jokers["Jokers"]
        Stories["Story Cards"] --> Funz
        Friends["Invite Friends"] --> BondBells["Bond Bells"]
        Tournaments["Tournaments"] --> TICO["TICO"]
        Tournaments --> PP["Private Passes"]
    end

    subgraph Spent["How currencies are spent"]
        Funz --> BuyCards["Buy Story Cards"]
        Funz --> PawnShop["Pawn Shop"]
        Jokers --> PawnShop
        BondBells --> Boosters["Permanent Boosters"]
        BondBells --> PawnShop
        PawnShop --> MiniTix["Mini Tickets"]
        PawnShop --> MaxiTix["Maxi Tickets"]
        MiniTix --> MiniRumble["Mini Rumble"]
        MaxiTix --> MaxiRumble["Maxi Rumble"]
        TICO --> FunticoPlatform["Funtico Platform"]
        PP --> FunticoPlatform
    end

New Player Starting Values

When you first open Lucky Funatic, here's what you start with:

Stat Starting Value
Funz 1,000
Energy 500 / 500
Funz per tap 3
Energy per tap 1
Energy regeneration 1 per second
Passive income 0 (until you buy Story cards)
Bonus Multiplier 1x (Level 1)
Jokers 0
Tickets 0

From here, the goal is to grow your Funz balance through tapping and passive income, invest in Story cards to increase your hourly earnings, and eventually compete in tournaments for real platform rewards.

Tech Stack

The Lucky Funatic backend is a Go REST API built with the Fiber web framework. It serves the Telegram Mini App frontend and handles all game logic server-side to prevent cheating.

Data is distributed across three databases, each chosen for its strengths:

flowchart LR
    API["Go API\n(Fiber)"] --> MySQL["MySQL\nRelational data"]
    API --> Redis["Redis\nReal-time state"]
    API --> Scylla["ScyllaDB\nTime-series data"]

    MySQL --- M1["Users, game state,\ntournaments, inventory,\ncards, quests"]
    Redis --- R1["Leaderboards, boosters,\npassive income calc,\nsession cache"]
    Scylla --- S1["Transaction history,\nsession tracking,\nleaderboard snapshots"]
  • MySQL stores all relational data: user accounts, game state, tournaments, inventory, cards, quests, and store items
  • Redis handles real-time state: leaderboards (sorted sets), active boosters, passive income calculations (via Lua scripts for atomicity), and session caching
  • ScyllaDB stores time-series and audit data: transaction history, session tracking, and periodic leaderboard snapshots

Authentication works through Telegram's Mini App protocol: the client sends initData signed by Telegram, the server validates the HMAC-SHA256 signature against the bot token, and issues a JWT for subsequent API calls.

Background workers handle periodic tasks like persisting leaderboards from Redis to ScyllaDB (every 5 minutes), processing scheduled quest completions (every second), and tracking user sessions (every 60 seconds).

Project layout

.
├── config              # Configuration management
├── deployment          # Docker & deployment configs
│   └── local
├── internal
│   ├── app             # Application bootstrap
│   ├── handlers        # HTTP request handlers
│   ├── logger          # Structured logging (Zerolog)
│   ├── models          # Data models & response types
│   │   └── wsmsg       # WebSocket message types
│   ├── newservices      # Business logic layer
│   ├── repositories    # Data access layer
│   ├── server
│   │   ├── middleware   # Auth, CORS, rate limiting
│   │   └── routes       # API route definitions
│   ├── services        # Core services
│   └── workers         # Background job workers
├── lua                 # Redis Lua scripts
└── pkg
    ├── jwt             # JWT token utilities
    ├── locals          # Fiber context helpers
    └── snowflake       # Unique ID generation