[RPG Maker MZ Plugin] Battlepass System v1.2.0 — Max Freedom, Visual Editors, Daily/Weekly Quests
by Rpx & Just Dev
GALLERY FIRST
A commercial-grade Battlepass system for RPG Maker MZ with maximum freedom: any reward type, flexible premium costs, season dates, and fully visual editors.
WHAT IS THIS?
This plugin transforms your RPG Maker MZ game into a modern Battlepass experience similar to Fortnite, Brawlhalla, or any AAA title with seasonal progression systems. Players earn Battle Points (BP) through gameplay, level up through tiers, and unlock rewards on both Free and Premium tracks.
FEATURES OVERVIEW
- Up to 999 levels with JS formula per level for BP requirements
- Two tracks: Free + Premium with fully customizable rewards
- ANY reward type MZ supports:
- Gold, Items, Weapons, Armor, Skills
- Variables, Switches, Actors, Classes
- Experience, Levels, States
- BGM/BGS/ME/SE, Common Events
- Custom Scripts (JS execution)
- Multiple rewards per level
- Fully visual editors — Reward Tiers, Daily/Weekly missions are struct tables with clickable rows (no more one-line JSON!)
- Flexible Premium Costs — mix of Gold, Variable, Switch, Level, Item/Weapon/Armor (AND condition)
- Season system with START/END dates + countdown (auto/days/weeks/both/hms)
- Daily & Weekly Missions with auto-reset, each grants BP
- Popup notifier, optional main menu integration
- Plugin Commands +
$gameBattlepassAPI
VIDEO TUTORIAL
Watch the full setup guide on YouTube:
youtu be / YOUR_VIDEO_ID (remove spaces)
QUICK SETUP
- Copy
BattlepassSystem.jsto yourjs/plugins/folder - Enable it in Plugin Manager
- Configure
MaxLevel,BPFormula, andRewardData - (Optional) Set
PremiumCost/PremiumItemId - Add to menu automatically or call via Plugin Command:
Battlepass OpenBattlepass - Grant BP from events:
Battlepass AddBP 100
PARAMETERS OVERVIEW
| Parameter | Description | Default |
|---|---|---|
| MaxLevel | Max attainable level | 50 |
| BPFormula | JS expression using level |
100 * level |
| BattlepassName | Header title | Battlepass |
| MenuIcon / AddToMenu | Menu integration | 0 / true |
| PremiumCost | Gold price | 1000 |
| PremiumItemId | Alternative currency | 0 (disabled) |
| GainBPOnVictory | Auto BP on win | false |
| BPAwardPerVictory | Number or formula | 15 |
| RewardData / RewardTiers | Visual tier editor | [] |
| SeasonDurationDays | Season length | 60 |
| SeasonCountdownFormat | Timer display | auto |
| SeasonStartDate | Fixed start date | empty |
| SeasonExpireBehavior | none / reset_notify | none |
| DailyMissions / WeeklyMissions | Visual mission editor | (examples) |
| DailyResetHour | Daily reset time | 5 |
| WeeklyResetWeekday | Weekly reset day | 1 |
| NotificationDuration | Popup frames | 120 |
| SoundEffectClaim / LevelUp | SE names | Item3 / Up4 |
REWARD DATA EXAMPLE
[
{"level":1, "free":[{"type":"gold","value":300}], "premium":[{"type":"item","id":5,"amount":2}]},
{"level":2, "free":[{"type":"weapon","id":3}], "premium":[{"type":"skill","id":10}]},
{"level":3, "free":[{"type":"variable","id":10,"value":1,"mode":"add"}], "premium":[{"type":"switch","id":5,"value":true}]},
{"level":5, "free":[{"type":"commonEvent","id":3}], "premium":[{"type":"script","value":"$gameVariables.setValue(20, 999)"}]},
{"level":10,"free":[{"type":"armor","id":4,"amount":1}],"premium":[{"type":"gold","value":1500},{"type":"item","id":1,"amount":5}]}
]
Supported Reward Types & Required Fields:
| Type | Required Fields | Notes |
|---|---|---|
gold |
value: number |
Amount of gold |
item |
id: number, amount?: number |
Item database ID |
weapon |
id: number, amount?: number |
Weapon database ID |
armor |
id: number, amount?: number |
Armor database ID |
skill |
id: number |
Learned by party leader |
variable |
id: number, value: any, `mode?: “set” |
“add”` |
switch |
id: number, value?: boolean |
Default: true |
commonEvent |
id: number |
Also accepts “common_event” / “event” |
script |
value: string |
JS execution; a=leader, v=vars, s=switches |
actor |
id: number |
Adds actor to party |
class |
actorId: number, classId: number, keepExp?: boolean |
Default keepExp: true |
exp |
value: number, actorId?: number |
0 = all party members |
level |
value: number, actorId?: number |
0 = all party members |
state |
id: number, actorId?: number |
0 = all party members |
bgm / bgs / me / se |
name: string |
Audio file name |
MISSIONS EXAMPLE
Daily Missions:
[
{"id":"d1","name":"Warrior's Duty","desc":"Win 3 battles","type":"win_battle","target":3,"bp":30,"icon":76},
{"id":"d2","name":"Treasure Hunter","desc":"Earn 500 Gold","type":"earn_gold","target":500,"bp":25,"icon":314},
{"id":"d3","name":"Slayer","desc":"Defeat 10 enemies","type":"kill_enemies","target":10,"bp":40,"icon":16}
]
Weekly Missions:
[
{"id":"w1","name":"Veteran","desc":"Win 15 battles","type":"win_battle","target":15,"bp":120,"icon":160},
{"id":"w2","name":"Rich & Famous","desc":"Earn 5000 Gold","type":"earn_gold","target":5000,"bp":150,"icon":314}
]
Mission Types:
win_battle— Win X battleskill_enemies— Defeat X enemiesearn_gold— Earn X goldgain_item— Obtain X itemsuse_item— Use X itemsgain_bp— Gain X BPcustom— Use Plugin Command or script call
PLUGIN COMMANDS (MZ 1.5+)
| Command | Example | Description |
|---|---|---|
Battlepass AddBP |
Battlepass AddBP 100 |
Add BP |
Battlepass RemoveBP |
Battlepass RemoveBP 20 |
Remove BP (clamped) |
Battlepass SetBP |
Battlepass SetBP 350 |
Set BP absolute |
Battlepass SetLevel |
Battlepass SetLevel 10 |
Jump to level |
Battlepass AddLevel |
Battlepass AddLevel 5 |
Add levels (negative to subtract) |
Battlepass SubtractLevel |
Battlepass SubtractLevel 3 |
Remove levels |
Battlepass UnlockPremium |
— | Grant premium instantly |
Battlepass SetPremium |
Battlepass SetPremium true/false |
Enable/disable premium |
Battlepass ResetBattlepass |
— | Wipe progress (testing) |
Battlepass OpenBattlepass |
— | Open Scene_Battlepass |
Battlepass OpenMissions |
— | Open Missions scene |
Battlepass AddMissionProgress |
Battlepass AddMissionProgress kill_enemies 5 |
Advance mission type |
Battlepass ClaimMission |
Battlepass ClaimMission d1 |
Claim mission by ID |
Battlepass ResetDaily |
— | Force-reset daily missions |
Battlepass ResetWeekly |
— | Force-reset weekly missions |
Battlepass SetSeasonDays |
Battlepass SetSeasonDays 30 |
Override season days |
Battlepass AddSeasonDays |
Battlepass AddSeasonDays 7 |
Add/subtract season days |
SCRIPT CALLS
$gameBattlepass.addBP(100)
$gameBattlepass.removeBP(20)
$gameBattlepass.setBP(350)
$gameBattlepass.setLevel(10)
$gameBattlepass.addLevel(5)
$gameBattlepass.subtractLevel(3)
$gameBattlepass.isPremium() // boolean
$gameBattlepass.getLevel() // number
$gameBattlepass.getBP() // number
$gameBattlepass.getProgress() // {level, bp, need, ratio, nextLevel}
$gameBattlepass.claim(level, track, index) // track "free"|"premium"
$gameBattlepass.claimAll() // claims all currently available
$gameBattlepass.reset() // same as ResetBattlepass
$gameBattlepass.getSeasonInfo() // {days, weeks, remainingMs, isExpired, ...}
$gameBattlepass.getDailyMissions() // array of mission objects
$gameBattlepass.getWeeklyMissions() // array of mission objects
$gameBattlepass.addMissionProgress(type, amount, extra)
$gameBattlepass.claimMission(id)
$gameBattlepass.resetDaily()
$gameBattlepass.resetWeekly()
// Aliases
BattlepassSystem.isPremium()
BattlepassSystem.open() // OpenBattlepass
BattlepassSystem.openMissions()
BATTLE FORMULA NOTE
BPAwardPerVictory can be a fixed number or a JS formula:
Available variables:
enemyLevel— The enemy’s level (from enemy metadata or default 1)level— Alias for enemyLevela—$gameParty.leader()b— The enemy battlertroop— The troop array
Examples:
"12"— Fixed 12 BP per enemy"enemyLevel * 5 + 10"— Scales with enemy level"Math.floor(a.level * 0.5) + troop.length * 2"— Based on leader level and troop size
KEYBOARD SHORTCUTS
| Key | Action | Parameter |
|---|---|---|
Shift |
Claim All rewards | KeyClaimAll |
P |
Buy Premium | KeyBuyPremium |
M |
Open Missions | KeyOpenMissions |
Q / W |
Switch tabs (left/right) | KeyTabLeft / KeyTabRight |
Space / Enter |
Confirm / Claim | KeyConfirm |
Esc |
Cancel / Close | KeyCancel |
All keys are fully customizable via plugin parameters.
THEMES
The plugin includes 8 built-in themes:
- Default Dark
- Light
- Midnight Blue
- Royal Purple
- Emerald
- Crimson
- Gold
- Cyan Neon
- Minimalist
You can also create a Custom theme with your own colors via VisualConfig.json.
PARAMETER REFERENCE
(Full parameter list from plugin help)
| Parameter | Type | Default | Description |
|---|---|---|---|
| MaxLevel | number | 50 | Highest battlepass level |
| BPFormula | string | 100 * level | JS expression for BP requirement |
| BattlepassName | string | Battlepass | Header title |
| MenuIcon | number | 0 | Menu entry icon |
| AddToMenu | boolean | true | Add command to main menu |
| MenuText | string | Battlepass | Menu label |
| MenuPosition | number | 4 | Menu command position |
| PremiumCost | number | 1000 | Gold cost |
| PremiumItemId | number | 0 | Alternative currency item ID |
| PremiumItemAmount | number | 1 | Quantity needed |
| GainBPOnVictory | boolean | false | Auto-award BP after battle |
| BPAwardPerVictory | string | 15 | Number or JS formula |
| RewardData / RewardTiers | struct | Visual tier editor | |
| NotifyOnLevelUp | boolean | true | Show level-up popup |
| NotifyOnRewardUnlock | boolean | true | Show reward popup |
| NotificationDuration | number | 120 | Frames popups stay |
| NotificationPosition | select | top | top / bottom / center |
| SoundEffectClaim | string | Item3 | Claim SE |
| SoundEffectLevelUp | string | Up4 | Level-up SE |
| LevelUpCommonEvent | number | 0 | Event on level-up |
| SeasonDurationDays | number | 60 | Season length |
| SeasonCountdownFormat | select | auto | auto / days / weeks / both / hms |
| SeasonStartDate | string | (empty) | YYYY-MM-DD |
| SeasonEndDate | string | (empty) | YYYY-MM-DD |
| SeasonExpireBehavior | select | none | none / reset_notify |
| PremiumCosts | struct | Flexible cost list | |
| DailyMissions / WeeklyMissions | struct | (examples) | Visual mission editor |
| DailyMissionsData / WeeklyMissionsData | struct | Additional missions | |
| DailyResetHour | number | 5 | 0-23 |
| WeeklyResetWeekday | number | 1 | 0=Sun..6=Sat |
| MissionCompleteSE | string | Item2 | SE on mission completion |
| ConfirmTitle / Desc / Yes / No | string | (various) | Dialog customization |
| KeyClaimAll / BuyPremium / etc. | string | (various) | Keyboard keys |
TROUBLESHOOTING
Nothing happens on AddBP:
Check MaxLevel not already reached, or BPFormula returning 0/NaN — console will warn and fallback to100*level.
Rewards not showing:
Validate RewardData JSON in an online validator; console warns per malformed entry but never crashes.
Old saves without battlepass:
Auto-migrates to defaults on first load.
Icons/sounds missing:
Graceful fallback to 0 / silence.
Visual glitch on ultra-wide:
Scene usesGraphics.boxWidth/Heightdynamically.
DOWNLOAD
Download: (link in description / attached file)
Author Website: rpxgames.win
CREDITS
Created by: Rpx & Just Dev
Website:rpxgames.win
Terms of Use:
- Free for commercial and non-commercial projects
- Credit required
- Do not redistribute or resell
LINKS
Plugin Website: rpxgames.win/
YouTube Tutorial: https://www.youtube.com/watch?v=XYFTDyimx4c
itchio https://r-px.itch.io/battlepass-system-for-rpg-maker-mz
Thank you for using Battlepass System! If you encounter any issues or have suggestions, please let us know. ![]()



