The Season Pass uses a file-first localization system with automatic version management. Nine languages are bundled by default.
configs/kyuubisoft_seasonpass/localization/
├── en-US.json # English (default)
├── pt-BR.json # Portuguese (Brazil)
Set the active language in config.json:
The plugin checks localization/{lang}.json on disk
If the file doesn’t exist, it extracts the default from the JAR
Missing keys fall back to en-US
User edits to the file are preserved across updates
Each localization file contains a _localization_version field:
"_localization_version" : "9" ,
"seasonpass.ui.title" : "Season Pass" ,
When the plugin ships new keys (version bump), it:
Creates a backup of the existing file (e.g., en-US.json.backup-v8)
Replaces the file with the new version from the JAR
Updates the _localization_version field
Previous user edits are preserved in the backup file
:::info Version Bump Required
When adding new i18n keys to a custom build, you must bump the _localization_version number. Otherwise, deployed files will NOT be updated (file-first pattern skips files that already exist).
:::
Key Default (en-US) seasonpass.cmd.players_onlyThis command is for players only seasonpass.cmd.no_permissionYou don’t have permission seasonpass.cmd.player_not_foundPlayer not found seasonpass.cmd.season_infoSeason info message seasonpass.cmd.no_active_seasonNo active season seasonpass.cmd.premium_alreadyYou already have premium seasonpass.cmd.premium_disabledPremium is disabled seasonpass.cmd.premium_purchasedPremium purchased seasonpass.cmd.premium_insufficientNot enough currency seasonpass.cmd.openingOpening Season Pass…
Key Default (en-US) seasonpass.ui.titleSeason Pass seasonpass.ui.tab_tiersTiers seasonpass.ui.tab_challengesChallenges seasonpass.ui.tab_shopShop seasonpass.ui.tab_historyHistory seasonpass.ui.tab_settingsSettings seasonpass.ui.free_trackFree seasonpass.ui.premium_trackPremium seasonpass.ui.bonus_trackBonus seasonpass.ui.season_ends_inSeason ends in: {0} seasonpass.ui.xp_progress{0} / {1} XP seasonpass.ui.token_balance{0} Tokens seasonpass.ui.premium_badgePREMIUM
Key Default (en-US) seasonpass.tier.tier_upTier Up! You reached Tier {0} seasonpass.tier.claimClaim now seasonpass.tier.claimedClaimed seasonpass.tier.lockedLocked seasonpass.tier.premium_lockedPremium Only seasonpass.tier.reward_claimedReward claimed! seasonpass.tier.not_reachedTier not reached yet seasonpass.tier.need_premiumPremium pass required
Key Default (en-US) seasonpass.challenge.kill_mobsKill {0} mobs seasonpass.challenge.kill_specificKill {0} {1} seasonpass.challenge.break_blocksBreak {0} blocks seasonpass.challenge.break_specificBreak {0} {1} seasonpass.challenge.place_blocksPlace {0} blocks seasonpass.challenge.harvestHarvest {0} crops seasonpass.challenge.travelTravel {0} blocks seasonpass.challenge.discover_zoneDiscover {0} zones seasonpass.challenge.play_timePlay for {0} minutes seasonpass.challenge.completeChallenge completed!
Key Default (en-US) seasonpass.shop.titleSeason Shop seasonpass.shop.cost{0} Tokens seasonpass.shop.buyBuy seasonpass.shop.sold_outSOLD seasonpass.shop.purchasedPurchased {0}! seasonpass.shop.not_enough_tokensNot enough tokens seasonpass.shop.daily_rotationDaily Rotation seasonpass.shop.refreshes_inRefreshes in: {0}
Key Default (en-US) seasonpass.admin.season_startedSeason {0} started seasonpass.admin.season_endedSeason ended seasonpass.admin.season_pausedSeason paused seasonpass.admin.season_resumedSeason resumed seasonpass.admin.config_reloadedConfiguration reloaded seasonpass.admin.xp_grantedGranted {0} XP to {1} seasonpass.admin.tokens_grantedGranted {0} tokens to {1} seasonpass.admin.premium_grantedPremium granted to {0} seasonpass.admin.premium_revokedPremium revoked from {0} seasonpass.admin.tier_setSet {0}‘s tier to {1} seasonpass.admin.player_resetReset {0}‘s season data
Key Default (en-US) seasonpass.settings.titleSeason Pass Settings seasonpass.settings.hud_enabledShow HUD Tracker seasonpass.settings.hud_positionHUD Position seasonpass.settings.xp_notificationsXP Notifications seasonpass.settings.xp_allAll seasonpass.settings.xp_largeLarge only seasonpass.settings.xp_offOff seasonpass.settings.xp_notif.allAll seasonpass.settings.xp_notif.largeLarge only seasonpass.settings.xp_notif.noneOff seasonpass.settings.tier_notificationsTier Up Notifications seasonpass.settings.challenge_notificationsChallenge Notifications seasonpass.settings.saveSave Settings seasonpass.settings.savedSettings saved!
Key Default (en-US) seasonpass.booster.activatedXP Booster activated! {0}x for {1} minutes. seasonpass.booster.expiredYour XP Booster has expired. seasonpass.booster.active_multiplier{0}x XP | {1} seasonpass.booster.statusBooster: {0}x ({1} remaining) seasonpass.booster.replacedYour previous booster was replaced with a new one.
Key Default (en-US) seasonpass.event.startedDOUBLE XP EVENT! {0}x XP for {1} minutes! seasonpass.event.endedThe Double XP Event has ended. seasonpass.event.statusEvent: {0}x XP ({1} remaining) seasonpass.event.warning_5minThe Double XP Event ends in 5 minutes!
Key Default (en-US) seasonpass.prestige.buttonPRESTIGE seasonpass.prestige.achievedPRESTIGE! You reached Prestige Level {0}! seasonpass.prestige.levelPrestige {0} seasonpass.prestige.xp_boost+{0}% XP Boost from Prestige seasonpass.prestige.max_reachedMaximum Prestige Level reached! seasonpass.prestige.disabledPrestige is not enabled for this season. seasonpass.prestige.badgeP{0}
Key Default (en-US) seasonpass.claim_all.buttonClaim All ({0}) seasonpass.claim_all.successClaimed {0} rewards! seasonpass.claim_all.nothingNo rewards available to claim.
Key Default (en-US) seasonpass.season.activeActive seasonpass.season.endedEnded seasonpass.season.pausedPaused seasonpass.season.teaserComing Soon seasonpass.season.not_startedNot Started
Key Default (en-US) seasonpass.xp.block_brokenBlock broken seasonpass.xp.block_placedBlock placed seasonpass.xp.mob_killMob killed seasonpass.xp.pvp_killPvP kill seasonpass.xp.playtimePlaytime seasonpass.xp.zone_discoveredZone discovered seasonpass.xp.daily_loginDaily login seasonpass.xp.login_streakLogin streak seasonpass.xp.quest_completedQuest completed seasonpass.xp.achievement_unlockedAchievement unlocked seasonpass.xp.challengeChallenge reward seasonpass.xp.first_login_bonusFirst login bonus
Key Default (en-US) seasonpass.error.no_dataCould not load your season data. seasonpass.error.save_failedFailed to save data. seasonpass.error.season_inactiveNo season is currently active. seasonpass.error.already_claimedReward already claimed. seasonpass.error.tier_not_reachedYou haven’t reached this tier yet. seasonpass.error.premium_requiredPremium pass required.
Key Default (en-US) seasonpass.challenges.premium_headerPREMIUM CHALLENGES seasonpass.challenges.premium_lockedPremium Pass required for bonus challenges seasonpass.shop.premium_headerPREMIUM SHOP seasonpass.shop.premium_lockedPremium Pass required for exclusive items seasonpass.cmd.premium_command_onlyThe Premium Pass can only be granted by an admin. seasonpass.ui.premium_contact_adminContact an admin to get the Premium Pass
The Season Pass supports custom per-language translation overrides. Use the setCustomTranslation() API to set a custom value for any key. Custom translations are saved to custom_{lang}.json files in the localization folder (e.g., custom_en-US.json).
Copy en-US.json and rename to your locale (e.g., fr-FR.json)
Translate all values (keep the keys unchanged)
Set "language": "fr-FR" in config.json
Reload with /spadmin reload
:::tip Partial Translations
You don’t need to translate every key. Any missing key automatically falls back to the en-US value.
:::