Creating battle passes

Battle Passes are built on top of the challenge system. Battle passes have levels, that are unlocked incrementally. Each level contains one or more challenges which must be achieved to complete the level and unlock the next level.

Once a level is completed, the reward can be claimed by the user. Rewards can be “fashion” items in multiplayer games to express “status” or can be new features, levels, and maps.

Depending on the challenges you have created, levels also express skill. You can use that for match finding in multiplayer games and just shuffle players around with the same or equal level. Battle Passes are often used as a monetization feature, but they are much more than that. It all depends on you and we serve the tools that you can implement whatever you like quickly and easily.

Quick Overview

Challenges are isolated, single tasks with a direct reward. Challenges also need to be activated and unlocked. That does not make sense for all applications. Many applications want to group multiple challenges and even want to build a level system.

Our battle pass system solves all these pain points for you and is a very flexible system. It can be used for a lot of different game and business logics. We call it “Battle Pass” because that is well-known in the industry.

Battle passes have these features:

  • Start and end date
  • One or more levels
  • Each level contains any number of challenges
  • Levels are unlocked incrementally or are unlocked by default
  • Only challenges of unlocked levels track progress

With our battle pass system you can build many different applications and business logics. A couple of use-cases and examples can be found in our Battle Pass Use Cases document.

The Battle Pass system shares basically the same system as challenges. However, in the Admin Panel both products are separated.

Follow these steps to implement Battle Passes into your application:

1Create Challenges

In the Admin Panel create an app, and API key for the app and create some challenges in the “Battle Pass” area of the Admin Panel. If you already have Personal Challenges, you can copy them to the Battle Pass section by selecting them and clicking on the “Copy to Battle Pass” button. More info on this topic can be found in our Create Challenges section.

2Create Battle Pass

Next, you need to create a battle pass in Admin Panel. Provide some data like a name, start and end date of the battle pass. Then add levels to the battle pass and select challenges that must be completed in order to complete the level and unlock the next level. More Info can be found in th section below.

3Test in Playground

In the app list in Admin Panel we provide a Playground button next to each app. Click on that button and a new browser window will be opened with the Playground-Application. The Application settings have already been made for you and you can directly start playing around with your battle pass you have created. More info on that topic in our Testing Battle Passes section.

4Add SDK

We provide SDKs for many programming languages and platforms. Please consult the documentation on how to add the SDK to your application or game. Official SCILL SDKs.

5Add events

Below the “Send Event” button in Playground you’ll see code generated for you that you just need to Copy & Paste in your applications source code. Just select your programming language and copy the code generated by Playground to your own codebase to send the same event from your code.

6Unlock rewards

Depending on your settings, Challenges have rewards that users can claim. There are various different methods of unlocking rewards to the user, either by implementing real time notification into your client to handle unlocking in your app or game or Webhooks to unlock rewards from your backend (i.e. send a mail with a redeem code). More info in our Rewarding Users section.


Implement User Interfaces to show challenges to your users. We have built some examples for various different platforms. Check out our Github repository for example code or the Examples section of this documentation.

Create a battle pass

In the Admin Panel you setup the challenges, the battle pass, and the level and rewards. Let’s get started by creating our first battle pass. In the Admin Panel select Battle Passes in the menu.

In this view, you’ll see two modules: Battle Passes with Webhook settings and the challenges. We’ll come to the challenges later:

The list with your battle passes and webhooks

The list with your battle passes and webhooks

Start creating a Battle Pass by clicking the Add Battle Pass button. A new view will show up allowing you to set up the battle pass.

Adding a battle pass

Adding a battle pass

This is the battle pass name.
Short Description
A short description that you can show in your game or app to indicate what this battle pass is all about. You can just leave it blank if you don’t need it.
A longer text describing the battle pass. Leave it blank if you don’t need it.
Put in some text that outlines limitations or rules that apply to this battle pass.
Start Date
Battle Passes have a start date. This way you can create multiple battle passes that form seasons.
End Date
Battle Passes have an end date. Once this date is reached, the battle pass is marked inactive. As there is only a limited time available to complete all challenges and levels and to collect all rewards users will invest more time in this period. If not set, the default battle pass duration will be 1 month, and the end date will be set accordingly.
Package SKU Android
If you want to sell the battle pass you can enter a SKU for In-App purchases on Android devices. Please note: You still need to implement the purchase process yourself, but this way you don’t need to implement some sort of mapping on your side.
Package SKU iOS
Use it to enter a SKU that will allow you to connect your battle pass with the In-App purchase system of Apple.
Read more link
Many game publishers build nice landing pages for their battle passes. Outlining the rewards users will get. If you have such a website you can use that link to show users “Additional info” or something like that.
Image (XS - XL)
In these fields enter a URL or a string pointing to an asset in your application bundle. In Unity for example it can be the name of a UI Sprite resource, in a web application it can be the URL to your static image server location. It’s up to you how you distribute image sizes over these settings. In our example we used the XS image as a small icon representing the season and the XL image as a background image in the battle pass UI.
Can purchase with money
You can set to Yes or No (true or false). There is no logic behind it, but you can use that to setup if users can purchase the battle pass with real money via In-App purchase.
Can purchase with coins
If you have your own virtual currency you can use this switch to set it users will be able to use coins for purchasing a battle pass. Again, no logic, just some data you can set that you don’t need to handle yourself somewhere in your backend.
Unlock incrementally:
Battle Passes are typically unlocked incrementally. The first level will be unlocked and once challenges of the first level have been achieved the next second level will be unlocked and users can claim the reward of the first challenge. You can also set it to false, then all levels will be unlocked immediately.
Set to active or inactive. Inactive battle passes will not be part of the GetBattleBasses response. Battle passes will be set to inactive automatically once the End Date is reached.

Congratulations - you have created your first battle pass. Next, we need to define some challenges and levels.

Creating challenges

If you have followed the previous guide of creating challenges you already know hot to setup challenges. You just need to click that Add Challenge button in the Battle Pass Challenges section.

And the list with battle pass challenges:

Available challenges to be picked for levels

Available challenges to be picked for levels

If you have already created personal challenges, you can copy challenges to the battle pass system. In the Personal Challenges section mark the checkbox of challenges that you want to copy to the battle pass system and click on the Copy selected to Battle Pass button, or click individual Promote to Battle Pass challenge.

Copy challenges to the battle pass

Copy challenges to the battle pass

More info on challenges can be found in the previous guide.

Creating levels

Creating levels is easy. In the list with your battle passes, click on the Edit button to edit the battle pass you just created. Click on the Levels tab at the top of the Edit Battle Pass view.

You see a view similar to this one: A list with your levels and rewards:

Battle Pass levels

Battle Pass levels

Click on the Add Level button to add a level to your battle pass:

The add level dialog

The add level dialog

Levels can be made inactive to exclude them from the responses on client side. Use this switch to activate or deactivate the level.
Reward Type
You can set different types of rewards. There is no logic within SCILL for rewards, it’s up to you to unlock rewards, but using our options it’s easier to organize your data. Choose an item from the list. Within the API response or SDK this will be available as reward_type_name in the BattlePassLevel object.
Enter any string you like. This will be returned as reward_amount in the BattlePassLevel.
Add Challenge
Click on that button and choose one of your challenges from the list. You can add multiple challenges to the list.

That’s it. Create a couple of levels and challenges that build a nice battle pass with increasing complexity and difficulty.

In the next chapter, we’ll be testing your battle pass in the SCILL Playground application.