[RPG Maker MZ Plugin] Battlepass System v1.2.0

[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.


:pushpin: 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.


:sparkles: 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 + $gameBattlepass API

:television: VIDEO TUTORIAL

Watch the full setup guide on YouTube:
youtu be / YOUR_VIDEO_ID (remove spaces)


:high_voltage: QUICK SETUP

  1. Copy BattlepassSystem.js to your js/plugins/ folder
  2. Enable it in Plugin Manager
  3. Configure MaxLevel, BPFormula, and RewardData
  4. (Optional) Set PremiumCost / PremiumItemId
  5. Add to menu automatically or call via Plugin Command:
    Battlepass OpenBattlepass
  6. Grant BP from events: Battlepass AddBP 100

:clipboard: 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

:wrapped_gift: 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

:bullseye: 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 battles
  • kill_enemies — Defeat X enemies
  • earn_gold — Earn X gold
  • gain_item — Obtain X items
  • use_item — Use X items
  • gain_bp — Gain X BP
  • custom — Use Plugin Command or script call

:keyboard: 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

:scroll: 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()

:crossed_swords: 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 enemyLevel
  • a$gameParty.leader()
  • b — The enemy battler
  • troop — 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

:artist_palette: 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.


:artist_palette: 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.


:wrench: 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

:hammer_and_wrench: TROUBLESHOOTING

Nothing happens on AddBP:
Check MaxLevel not already reached, or BPFormula returning 0/NaN — console will warn and fallback to 100*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 uses Graphics.boxWidth/Height dynamically.


:package: DOWNLOAD

Download: (link in description / attached file)

Author Website: rpxgames.win


:memo: 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

:link: 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. :video_game: