Implementing Battle Pass Mechanics in Mobile Games

Implementing Battle Pass Mechanics in Mobile Games We develop Battle Pass mechanics — one of the most technically demanding monetization elements. In one project for a mobile RPG with 500k DAU, we implemented a five-tier progression system. The first version led to 30% of players completing it wi

Development and support of all types of mobile applications:

Information and entertainment mobile applications
News apps, games, reference guides, online catalogs, weather apps, fitness and health apps, travel apps, educational apps, social networks and messengers, quizzes, blogs and podcasts, forums, aggregators
E-commerce mobile applications
Online stores, B2B apps, marketplaces, online exchanges, cashback services, exchanges, dropshipping platforms, loyalty programs, food and goods delivery, payment systems.
Business process management mobile applications
CRM systems, ERP systems, project management, sales team tools, financial management, production management, logistics and delivery management, HR management, data monitoring systems
Electronic services mobile applications
Classified ads platforms, online schools, online cinemas, electronic service platforms, cashback platforms, video hosting, thematic portals, online booking and scheduling platforms, online trading platforms

These are just some of the types of mobile applications we work with, and each of them may have its own specific features and functionality, tailored to the specific needs and goals of the client.

Our competencies:

Frequently Asked Questions

Latest works

  • image_mobile-applications_feedme_467_0.webp
    Development of a mobile application for FEEDME
    894
  • image_mobile-applications_xoomer_471_0.webp
    Development of a mobile application for XOOMER
    782
  • image_mobile-applications_rhl_428_0.webp
    Development of a mobile application for RHL
    1216
  • image_mobile-applications_zippy_411_0.webp
    Development of a mobile application for ZIPPY
    1079
  • image_mobile-applications_affhome_429_0.webp
    Development of a mobile application for Affhome
    1002
  • image_mobile-applications_flavors_409_0.webp
    Development of a mobile application for the FLAVORS company
    597

Implementing Battle Pass Mechanics in Mobile Games

We develop Battle Pass mechanics — one of the most technically demanding monetization elements. In one project for a mobile RPG with 500k DAU, we implemented a five-tier progression system. The first version led to 30% of players completing it within the first week, requiring a recalculation of the XP curve. Based on this experience, we built a reusable and scalable architecture.

Our implementation covers more than just a reward list: it's a seasonal system with progression, two tracks, a timer, IAP purchase, and cross-device progress sync. We guarantee stable operation even under high load and provide full documentation.

How to Balance Battle Pass Progression

A key question is choosing between flat and scaling XP. Flat XP is easier but risks hardcore players finishing in the first week, losing motivation to pay. Scaling XP maintains interest but can become too aggressive.

Linear scaling with plateau works well: first 20 levels are cheap, levels 21–80 increase steadily, 81–100 have a fixed high cost for perfectionists. A casual player without skip reaches level 70–75 by season end — a good balance. We design the XP table in a spreadsheet: set expected XP from various activities (level completion, daily quest, event) and calculate how many days a casual player needs to complete each level.

Levels XP per level Notes
1–20 100 Quick start
21–80 100 + 10*(level-20) Steady growth
81–100 800 Plateau

Data Architecture and Integration

The server-side model includes at least three entities:

  • Season — current season with start/end dates, list of levels (50–100) with rewards for free and premium tracks.
  • PlayerSeasonProgress — individual progress: current level, accumulated XP, isPremium flag, list of claimedRewards.
  • SeasonXPTransaction — log of XP gains: source (level_complete, daily_quest, mission), amount, timestamp. Needed for auditing and anti-cheat.
struct BattlePassLevel: Codable { let level: Int let xpRequired: Int let freeReward: Reward? let premiumReward: Reward? } struct PlayerSeasonProgress: Codable { let seasonId: String let currentLevel: Int let currentXP: Int let isPremium: Bool let claimedRewards: [String] // "level_\(n)_free", "level_\(n)_premium" } 

How to Integrate IAP for Battle Pass

Battle Pass can be sold as non-consumable or auto-renewable subscription. One-time per season purchase is simpler for the player and easier to implement. Subscription with autorenewal yields stable revenue, but requires careful management via StoreKit 2 (iOS) or Google Play Billing Library 6+.

According to StoreKit 2 documentation, server-side transaction validation is mandatory for premium content. The client sends a transactionId, the server verifies it via App Store Server API or Google Play Developer API.

On iOS with StoreKit 2:

let products = try await Product.products(for: ["battle_pass_season_1"]) guard let battlePass = products.first else { return } let result = try await battlePass.purchase() switch result { case .success(let verification): let transaction = try verification.payloadValue await transaction.finish() await unlockPremiumTrack(for: transaction.id) case .pending: break case .userCancelled: break } 

The Battle Pass concept is described on Wikipedia, but our implementation includes several additional features.

When to Use Subscription Instead of One-Time Purchase

One-time purchase suits the classic model. An auto-renewable subscription increases LTV by 2x compared to one-time purchase — a significant improvement — but requires thorough implementation: proper handling of cancellations, renewals, and refunds. Our experience shows subscription delivers more predictable revenue.

Parameter Non-consumable Auto-renewable subscription
Revenue type One-time Recurring
LTV Lower 2x higher
Implementation complexity Low High (subscription management)
Example XP calculation for casual player At 10,000 XP per day (daily + mission), a casual player passes 20 levels in ~7 days, 50 levels in 20 days.

Skip Levels, Gifting, and Pricing

Skip levels (skipping levels for premium currency) generate extra revenue. Typically, 1 level = 100–150 gems, a pack of 10 levels with a small discount (e.g., $1.99 for 10 skips). Technically: consumable IAP or deduction from the wallet with server-side verification.

Gifting a Battle Pass to a friend is a feature often requested but rarely implemented. It requires Gift Purchase support from the platform: iOS supports it via StoreKit, Android partially via Google Play Gifting API (in beta since 2023).

UI and Season Timer

The standard UI is a horizontal scroll with levels, current level centered, rewards above/below for free/premium tracks. A "Claim" button is active only for earned and unclaimed rewards.

Key UI states for each level:

  • Locked (not yet reached)
  • Earned, not claimed (reached, reward not collected)
  • Claimed (collected)
  • Premium locked (premium only, player hasn't purchased)

Reward claim animation — full-screen with particles. This is a retention moment: the player should feel satisfaction from progress.

A countdown timer creates urgency. Displayed on the main menu and the Battle Pass screen. 3 days before the end — push notification: "3 days left in the season, you have X levels remaining."

Upon season expiry: progress is archived, unclaimed rewards expire (with a 7-day warning), the next season starts automatically. Data from previous seasons is stored for profile history.

Step-by-Step Implementation and Timelines

  1. Design XP curve – Define level count, XP per level, and expected player progression.
  2. Set up backend – Create Season, PlayerSeasonProgress, and SeasonXPTransaction models.
  3. Implement IAP – Configure products in App Store / Google Play, integrate purchase flow with server verification.
  4. Build UI – Develop horizontal scroll with level states and claim animations.
  5. Add season timer – Implement countdown and season-end logic.
  6. Test and balance – Run simulations to ensure correct pacing and adjust XP if needed.
  7. Deploy with analytics – Track player progress, conversion, and engagement.

Basic implementation (without subscription, skip levels) — 5 days. Full system with subscription, skip levels, gifting, and analytics — 2–3 weeks. We guarantee timely delivery and transparent reporting.

What's Included and Why Choose Us

During implementation, we provide:

  • Complete server-side API documentation
  • Client integration code in Swift and Kotlin
  • IAP setup instructions for App Store and Google Play consoles
  • 30-day post-release support

With over 5 years of experience, 30+ completed projects, and a strong presence in the mobile gaming market, we deliver robust Battle Pass systems that retain players and boost revenue. Our approach is typically 40% faster than building in-house, saving both time and money. For example, our subscription system achieves a 2x higher LTV compared to one-time purchases, outperforming many competitor solutions.

Leave a request to discuss your project — we'll help implement a Battle Pass that retains players and increases revenue.