Features
Seasons
Scheduled battle passes with start/end dates and timezone support.
Tiers
Multiple progression tiers with permissions, priorities, and rewards.
Weekly Quests
Time-gated quests that unlock week by week.
XP System
Configurable XP per quest, per level thresholds, and max XP.
Custom UI
Every button template is configurable: fill, tiers, weeks, quests, navigation.
Messages
All chat messages customizable with placeholders.
Architecture
Entry Library
Configuration
Messages
Customize all chat messages with placeholders.
Definitions
Battle Pass Definition
Define the full battle pass: tiers, weeks, layout, buttons, and schedule.
Actions
Open Battle Pass
Action that opens the battle pass menu for a player.
Artifacts
Battle Pass Data
Persistent storage for player progress (XP, level, rewards).
Facts
Quest Active Fact
Returns 1 when a configured battle pass week is active for the player.
Quick Start
1. Create the Data Artifact
Start by adding a Battle Pass Data artifact entry. This stores all player progress (XP, level, claimed rewards) persistently.
- The artifact acts as the database for one battle pass
- Link it in the definition in the next step
2. Customize Messages (Optional)
Add a BattlePass Messages entry to customize all chat messages. Configure notifications for XP gained, rewards claimed, level ups, and command feedback.
- Messages support
%player%,%pass%,%amount%,%level%,%reward%,%tier%placeholders - Leave empty to use built-in defaults
3. Define the Battle Pass
Add a Battle Pass Definition entry. This is the core configuration:
data→ Link to the artifact from step 1icon→ Item shown in menus (e.g.minecraft:book)tiers→ Progression levels with permissions, priorities, and rewardsweeks→ Weekly quest sets with unlock dates and XP rewardslayout→ Menu size, slot assignments, navigation buttonsschedule→ Start/end dates and week durationxp→ Level thresholds and max XPbuttons→ Customize every button: tiers (locked/unlocked/current), weeks (locked/available/active/completed), quests (locked/available/active/completed), navigation, sort, info
4. Open the Menu
Add an Open Battle Pass action entry to let players access the menu. Trigger it from:
- A command or NPC interaction
- Another menu button
- A quest event or cinematic
Commands
| Command | Permission | Description |
|---|---|---|
/battlepass pass <id> xp add <amount> [player] | typewriter.battlepass | Add XP to a player’s battle pass. |
/battlepass pass <id> xp remove <amount> [player] | typewriter.battlepass | Remove XP from a player’s battle pass. |
/battlepass pass <id> xp set <amount> [player] | typewriter.battlepass | Set a player’s battle pass XP. |
/battlepass pass <id> level add <amount> [player] | typewriter.battlepass | Add levels to a player’s battle pass. |
/battlepass pass <id> level remove <amount> [player] | typewriter.battlepass | Remove levels from a player’s battle pass. |
/battlepass pass <id> level set <amount> [player] | typewriter.battlepass | Set a player’s battle pass level. |
/battlepass pass <id> info [player] | typewriter.battlepass | View battle pass progress info. |
Placeholders
Prefix:%battlepass:<pass_id>:<key>% or %typewriter_<pass_id>:<key>%
Global Placeholders
Global Placeholders
| Placeholder | Returns | Example |
|---|---|---|
%battlepass:<id>:name% | Battle pass name | Season 1 |
%battlepass:<id>:active% | 1 if active, 0 otherwise | 1 |
%battlepass:<id>:level% | Player’s current level | 5 |
%battlepass:<id>:xp% | Player’s current XP | 1250 |
%battlepass:<id>:xp:max% | Max XP (total or current level) | 5000 |
%battlepass:<id>:xp:next% | XP required for next level | 2000 |
%battlepass:<id>:xp:remaining% | XP remaining until next level | 750 |
Reward Placeholders
Reward Placeholders
| Placeholder | Returns |
|---|---|
%battlepass:<id>:rewards:total% | Total number of rewards |
%battlepass:<id>:rewards:claimed% | Number of claimed rewards |
%battlepass:<id>:rewards:available% | Number of available rewards |
%battlepass:<id>:rewards:unclaimed% | Available minus claimed |
Week Placeholders
Week Placeholders
| Placeholder | Returns |
|---|---|
%battlepass:<id>:week:<n>:state% | Week state: LOCKED, AVAILABLE, COMPLETED |
%battlepass:<id>:week:<n>:active% | 1 if active, 0 otherwise |
%battlepass:<id>:week:<n>:title% | Week title |
%battlepass:<id>:week:<n>:description% | Week description |
%battlepass:<id>:week:<n>:release% | Release date (formatted) |
%battlepass:<id>:week:<n>:release_in% | Time until release (e.g., 2d 5h) |
Template Variables (in Button @Placeholder fields)
Template Variables (in Button @Placeholder fields)
Message Placeholders
Message Placeholders
Used in
BattlePassMessages entry fields:| Placeholder | Context |
|---|---|
%player% | Player name |
%pass% | Battle pass name |
%amount% / %total% / %value% | XP amounts |
%level% | Player level |
%xp% | Player XP |
%reward% | Reward name |
%tier% | Tier level |
Permissions
| Permission | Default | Description |
|---|---|---|
typewriter.battlepass | OP | Access to all /battlepass admin commands. |
typewriter.battlepass.open | (none) | Open the battle pass menu (default: everyone). |
Dependencies
| Extension | Required | Usage |
|---|---|---|
| GUI Extension | Required | Menu rendering and layout system. |
| PlaceholderAPI | Optional | For @Placeholder fields. |