FAQ & Troubleshooting
FAQ & Troubleshooting
Section titled “FAQ & Troubleshooting”Common questions and solutions for the Season Pass system.
General
Section titled “General”How do I start a season?
Section titled “How do I start a season?”Seasons do not start automatically. An admin must explicitly start a season using:
/spadmin start season_1Or use the admin panel (/spadmin panel) and click Start Season on the Events or Season tab.
Can I run multiple seasons at once?
Section titled “Can I run multiple seasons at once?”No. Only one season can be active at a time. You must end the current season before starting a new one:
/spadmin end/spadmin start season_2What happens when a season ends?
Section titled “What happens when a season ends?”When a season ends (either manually via /spadmin end or automatically when the duration expires):
- All online players’ season data is archived to their history
- Players can view past season summaries in the History tab
- The
activeSeasonIdinconfig.jsonis cleared - No more XP, challenges, or shop interactions are possible until a new season starts
How do I create a new season?
Section titled “How do I create a new season?”- Copy
seasons/season_1.jsonto a new file (e.g.,season_2.json) - Change the
"id"field to match the filename (e.g.,"season_2") - Customize tiers, challenges, shop items, and settings
- Run
/spadmin reloadto load the new definition - Start it with
/spadmin start season_2
Alternatively, use the admin panel’s Season tab and click Create Season to generate a blank season definition in-game.
Player Issues
Section titled “Player Issues”Players are not earning XP
Section titled “Players are not earning XP”Check the following:
- Is a season active? Run
/spadmin infoto verify. - Is the season paused? The admin panel Events tab or
/spadmin infoshows paused state. Resume with/spadmin resume. - Is Core TrackingService running? XP from gameplay requires the Core mod’s
TrackingService. Check the server log for"Registered SeasonPassTrackingListener with Core TrackingService". - Are XP values set to 0? Check the season’s
xpSourcesconfiguration. Any source set to0is disabled. - Has the daily XP cap been hit? If
dailyXpCapis set, players stop earning XP after reaching the limit for the day.
Players are not receiving the Season Pass Book
Section titled “Players are not receiving the Season Pass Book”The Season Pass Book is only given when:
item.enabledistrueinconfig.json- A season is currently active
- The player does not already have the item in their inventory (duplicate protection)
item.giveOnFirstJoinoritem.giveOnEveryJoinis enabled
There is a configurable delay (giveDelaySeconds, default: 3 seconds) before the item appears to allow the world to load first.
A player’s data was lost
Section titled “A player’s data was lost”Player data is saved in two ways:
- File mode:
configs/kyuubisoft_seasonpass/players/{uuid}.jsonwith.bakbackup files - MySQL mode: Via the Core mod’s
PlayerDataStorageabstraction
Check if a .bak backup file exists. Data is auto-saved at the configured autoSaveIntervalSeconds interval (default: 300 seconds / 5 minutes) and always saved on player disconnect.
Player progress did not reset for a new season
Section titled “Player progress did not reset for a new season”When a new season starts, player progress is reset on their next login (lazy reset). If a player was online when the season changed, their data is synchronized automatically. If the issue persists, use:
/spadmin resetplayer <playername>Premium Pass
Section titled “Premium Pass”How do players buy the premium pass?
Section titled “How do players buy the premium pass?”Players can purchase the premium pass using:
/sp buyThis requires:
premiumEnabledistruein the season configpremiumCommandOnlyisfalse- The player has sufficient currency (configured via
premiumCostandpremiumCurrencyId)
How do I give premium for free?
Section titled “How do I give premium for free?”Use the admin command:
/spadmin grantpremium <playername>Or toggle premium via the admin panel’s Players tab.
Can I disable premium entirely?
Section titled “Can I disable premium entirely?”Yes. Set premiumEnabled to false in the season definition. This completely hides the premium track, purchase button, and lock overlays. All tiers become free-track only.
What is premiumCommandOnly mode?
Section titled “What is premiumCommandOnly mode?”When premiumCommandOnly is true, the /sp buy command is disabled. Premium can only be granted by an admin using /spadmin grantpremium. This is useful when premium is sold through an external store or website.
Do players keep premium rewards if premium is revoked?
Section titled “Do players keep premium rewards if premium is revoked?”Yes. Revoking premium (/spadmin revokepremium) only prevents claiming future premium rewards. Already-claimed rewards are not reclaimed.
Challenges
Section titled “Challenges”Challenges are not resetting
Section titled “Challenges are not resetting”Challenges use a lazy reset system — they reset when the player next logs in or opens the Season Pass UI, not at a fixed server time. This is by design to ensure offline players get fresh challenges when they return.
If challenges are stuck, you can force a reset via the admin panel or wait for the player to reconnect.
Players see different challenges from each other
Section titled “Players see different challenges from each other”This is intended behavior. Challenge rotation uses a per-player seed based on playerUuid.hashCode() + dayOfEpoch, so each player sees a different set of challenges. This prevents coordination where all players do the same thing.
A challenge type appears twice in the same day
Section titled “A challenge type appears twice in the same day”This should not happen. The rotation algorithm enforces type deduplication — at most one challenge per type within each category (daily or weekly). If this occurs, check that your challenge pool has enough variety across different types.
The shop shows the same items every day
Section titled “The shop shows the same items every day”The shop rotation is deterministic per player per day. The same player will see the same items all day. Items change at midnight in the configured timezone. Different players may see different items.
If the shop pool is small (fewer items than dailyShopSlots), items may repeat across days.
How do I force a shop rotation?
Section titled “How do I force a shop rotation?”Shop rotation is date-based and per-player. There is no global force-rotation mechanism. To change what appears, modify the shopItems array in the season definition and reload with /spadmin reload.
XP & Progression
Section titled “XP & Progression”How is XP calculated per tier?
Section titled “How is XP calculated per tier?”The XP curve follows an exponential formula:
XP for Tier N = baseXpPerTier * (tierXpScaling ^ (N - 1))With defaults (baseXpPerTier: 1000, tierXpScaling: 1.08):
- Tier 1: 1,000 XP
- Tier 10: ~2,000 XP
- Tier 20: ~4,316 XP
- Tier 30: ~9,317 XP
How do XP boosters stack?
Section titled “How do XP boosters stack?”XP multipliers stack multiplicatively:
Final XP = Base XP * Premium Boost * Prestige Boost * Personal Booster * Global EventFor example: 10 XP base with 1.5x premium + 1.05x prestige + 2.0x booster + 2.0x event = 10 * 1.5 * 1.05 * 2.0 * 2.0 = 63 XP.
What is the soft cap?
Section titled “What is the soft cap?”The soft cap reduces XP earning after a threshold without stopping it entirely. With dailyXpSoftCap: 5000 and softCapMultiplier: 0.25:
- First 5,000 XP earned at full rate
- After 5,000 XP: each 100 XP earned only grants 25 XP
- The hard cap (
dailyXpCap) stops all earning when reached - Set both to
0to disable caps entirely
How do login streaks work?
Section titled “How do login streaks work?”- Each consecutive daily login increments the streak counter
- Missing a day resets the streak to 0 (it restarts at 1 on the next login)
- Streak XP bonus:
min(currentStreak, loginStreakMaxDays) * loginStreakPerDay - First season login grants a one-time bonus of
firstLoginBonusXpXP andfirstLoginBonusTokenstokens
Prestige
Section titled “Prestige”How does prestige work?
Section titled “How does prestige work?”When a player reaches the maximum tier and prestigeEnabled is true:
- A Prestige button appears in the Tiers tab
- Clicking it resets: tier, XP, and claimed rewards
- The player gains +1 prestige level
- Each prestige level grants a permanent XP boost of
prestigeXpBoostPercent% - Prestige resets do not affect: premium status, season tokens, challenge progress, or settings
Is there a maximum prestige level?
Section titled “Is there a maximum prestige level?”Yes, controlled by maxPrestigeLevel (default: 10). Once reached, the prestige button no longer appears.
Admin Panel
Section titled “Admin Panel”The admin panel won’t open
Section titled “The admin panel won’t open”Verify that you have the seasonpass.admin permission. The panel also requires the player to be online (it cannot be opened from console).
Changes in the admin panel are not saving
Section titled “Changes in the admin panel are not saving”- Make sure you click the Save button on each tab — changes are not auto-saved.
- Check the status bar at the top of the panel for error messages.
- If running on a showcase server, write operations are blocked by
ShowcaseCompat.
The season selector dropdown is empty
Section titled “The season selector dropdown is empty”This means no season definition files were found in configs/kyuubisoft_seasonpass/seasons/. Run /spadmin reload or restart the server to regenerate the default season_1.json.
Technical
Section titled “Technical”What are the mod dependencies?
Section titled “What are the mod dependencies?”| Dependency | Type | Purpose |
|---|---|---|
kyuubisoft:core | Required | TrackingService, RewardGrantHelper, ShopService, ModMenuRegistry, PlayerDataStorage |
kyuubisoft:achievements | Optional | Achievement XP integration |
kyuubisoft:quests | Optional | Quest XP integration |
Buuz135:MHUD | Optional | HUD framework compatibility |
Where is player data stored?
Section titled “Where is player data stored?”- File mode (default):
configs/kyuubisoft_seasonpass/players/{uuid}.json - MySQL mode: In the database via Core’s
PlayerDataStorageabstraction
File mode creates .bak backup files alongside each player data file.
How do I back up season data?
Section titled “How do I back up season data?”Back up the entire configs/kyuubisoft_seasonpass/ directory, which contains:
config.json— Plugin configurationseasons/— Season definitionslocalization/— Language filesplayers/— Player data (file mode only)
What Java version is required?
Section titled “What Java version is required?”The plugin requires Java 25 or later (as configured in build.gradle.kts).
Can I hot-reload the config?
Section titled “Can I hot-reload the config?”Yes. Use /spadmin reload or the admin panel’s Reload button. This reloads config.json, all season definitions in seasons/, and all localization files. No server restart is required.
:::note Active Season Reloading does not affect an active season’s runtime state. It reloads the definition files, so changes to tiers, challenges, or shop items will be reflected for new interactions. Existing player data is not modified. :::