Modules: Battle pass¶
A reusable seasonal progression system (@rbx/battle-pass). Status: Implemented (29 tests).
Purpose¶
- Provide seasonal progression with rewards.
- Support both free and premium tracks.
- Work across multiple games with shared account progression.
Core rules¶
- Progress is granted server-side only.
- Claims are idempotent (
battlePassClaimId). - Rewards must be ledgered if economy-impacting.
Data model¶
seasonId— active season identifierxp— current season XPtier— current tier (computed from XP)claimedFree[]— claimed free-track rewards (bounded set)claimedPremium[]— claimed premium-track rewardspremiumUnlocked: boolean
Security¶
- Client may request claim for a reward tier.
- Server verifies eligibility and marks claim idempotently.
- Rate limit claim requests.
Config/flags¶
battlePass.enabled(kill-switch)battlePass.seasonIdbattlePass.tiers(reward definitions)
Observability¶
progression.battlepass_xp_grantedprogression.battlepass_reward_claimedsecurity.battlepass_invalid_claim
Rollout¶
- Dev: enable by default
- Stage: canary with a small segment
- Prod: progressive rollout + instant kill-switch