FiveM Battle Pass and Seasonal Progression: Season Passes That Respect Your Players

FiveM Battle Pass and Seasonal Progression: Season Passes That Respect Your Players

Open the reward config on almost any FiveM battle pass script you can buy and the defaults are the same: cash, weapons, ammo, XP boosts. Ship it as-is and you've created two problems in one afternoon — a Tebex compliance risk on the premium track, and an economy leak your job payouts were never balanced to absorb. The season-pass model is fine for roleplay. The reward table it ships with usually isn't.

A pass isn't the permanent progression and skill system you already run, and it isn't a fancier daily login streak. Those two belong to the character. A season pass is a time-boxed wrapper layered on top: a themed reward set, a deadline, and something the whole city is chasing at once. Get the layering wrong and you ship three overlapping XP bars.

What a FiveM Battle Pass Can Actually Contain

A compliant FiveM battle pass rewards presentation, not power: clothing and EUP variants, emotes and animations, vehicle liveries and plate designs, housing and garage decor, name colours and Discord roles, queue priority, and extra character or garage slots. Anything that changes cash flow, weapon damage, or job payout belongs on the free track or nowhere at all.

The Cfx.re and Tebex position has been consistent for years: sell things tied to your own community that you hold rights to, and sell convenience rather than advantage. Sort your rewards against that line before you build the ladder.

| Reward type | Free track | Premium track |
|---|---|---|
| Cosmetic clothing, EUP, hairstyles | Yes | Yes |
| Emotes, animations, walk styles | Yes | Yes |
| Vehicle liveries, wheels, plates | Yes | Yes |
| Interior/garage decor props | Yes | Yes |
| Queue priority (timed, e.g. 30 days) | Yes | Yes |
| Extra character or garage slot | Yes | Yes |
| In-game cash, crypto, bonds | Free only, small | Never |
| Weapons, ammo, armour | Free only, if at all | Never |
| Payout multipliers, XP boosts | Free only | Never |
| Random crates / mystery tiers | Never | Never |

That last row catches people out. Chance-based rewards are banned regardless of which currency opens them, so a "mystery tier" in a paid pass breaches policy even when the contents are pure cosmetics. If you want surprise, use a known item with a hidden colourway revealed on claim.

The other trap is licensing. You can put a livery you commissioned on the premium track. You cannot put a vehicle you bought from a third-party creator on it, because that resells their file inside a paid product. Most of the vehicle and clothing packs on store-tebex.io are licensed for use on your server — which is not the same permission as bundling them into something you charge for.

Free Track vs Premium Track Without Selling Advantage

Split by quantity and vanity, never by capability. The free track carries roughly 40% of the tiers plus every reward that touches gameplay; premium carries the volume, the exclusive colourways and the flexes.

Price it like a movie ticket, not a subscription — around $8–15 for an eight-week season is where FiveM cities land without anyone feeling fleeced. If you already sell a monthly supporter tier, bundle the pass into it rather than stacking a second charge.

Two details matter more than the price:

  1. Sell on progress, not on time. When someone buys at week six, retroactively grant every premium reward their current XP already earned. A pass that starts you at tier zero on purchase is a pass nobody buys after week three.
  2. Stop selling near the end. Pull the premium option in the final 10 days, or halve the price. Selling a $12 pass to someone with nine days left generates one refund request and one Discord thread.

Season Length and the Pacing Math Most Servers Skip

Eight weeks is the sweet spot for a city with a normal content budget. Twelve is what the big shooters run, and only because they have art teams. Four turns every season into a scramble.

Then do the arithmetic instead of guessing at tier costs. Target the median engaged player hitting the final tier at about 85% of the season, so the top 20% finish early and feel good and the middle finishes at all.

XP per tier = (weeks × weekly_hours × 0.85 × xp_per_hour) / tiers

Worked example for a 56-day season, 50 tiers, a median engaged player who logs 6 hours a week, and an organic play rate of 400 XP/hour:

(8 × 6 × 0.85 × 400) / 50 = 16,320 / 50 = 326 XP per tier

Round to 325 and you're done. Now the constraint that keeps it roleplay: cap the challenge lane at 35% of the total. Here that means dailies and weeklies together must not exceed about 5,700 XP for the season. One daily worth 40 XP (2,240 over 56 days) plus two weeklies worth 200 each (3,200 over 8 weeks) lands at 5,440, or 33%.

Two-thirds of progression therefore comes from being in the city doing things. That ratio is the whole ballgame. Flip it and you'll watch people abandon a scene to drive to a checklist marker, because you told them that's where the points are.

XP Sources That Reward Roleplay Instead of AFK Time

Pure time-based XP is an invitation to park a car behind Legion and alt-tab. Gate the accrual instead:

Notice what's missing: kills. Combat XP on a roleplay server is a direct instruction to shoot people, and no config tuning fixes that signal.

Building It: Existing Script vs Your Own Table

Most paid battlepass resources give you a working UI in an evening, and the UI is genuinely the expensive part. What you'll still rewrite is the reward handler, because the defaults hand out items and cash. Budget for that before you buy, and check the resource exposes a server-side hook for granting rewards rather than firing a client event with the payload attached.

Building on your framework instead? Resist shoving everything into player metadata. QBCore metadata is one JSON blob per character, so every XP tick rewrites the whole thing. Use your own tables:

bp_progress (citizenid VARCHAR(64), season INT, xp INT,
             premium TINYINT, claimed JSON,
             PRIMARY KEY (citizenid, season))

bp_xp_log  (id BIGINT AUTO_INCREMENT PRIMARY KEY,
            citizenid VARCHAR(64), season INT,
            source VARCHAR(32), amount INT, ts TIMESTAMP,
            INDEX (citizenid, season, ts))

The log table is not optional. It's how you answer "why is this guy at tier 48 on day nine", and the only way to tune caps against real data instead of vibes.

Three rules keep it clean:

Stamp the season integer on every row so last season's data stays queryable when you're deciding what worked.

Season Themes That Ride Your Server's Story Arc

The strongest seasons aren't calendar-themed, they're plot-themed. If your writers are running a port expansion arc, the pass rewards dockworker EUP, a shipping-container patio set, and a haulage livery. Players wearing those cosmetics become walking evidence the story happened — a far better hook than a snowman hat in December.

This is where a pass and a seasonal event calendar reinforce each other: the calendar schedules the beats, the pass gives players something to carry out of them. Shop before you commission — decor and props on xdopestore.com or framework-ready systems on official-tebex.io will cover half a reward table for less than one custom commission.

Nine or ten themed items is enough for 50 tiers. Recolours, variants and a matching plate design do the rest.

Sunsetting a Season Without Weaponising FOMO

Hard-deleting rewards forever is the part of the model most worth abandoning. It buys a burst of panic-buying and a permanent undercurrent of resentment from everyone who was in hospital, on exams, or just busy that month.

Metrics That Tell You the Pass Is Working

Revenue is the lagging indicator and the one that lies to you. A pass can sell brilliantly in week one and still be quietly killing your roleplay.

  1. Distinct play-days per active player per week. The primary number. Baseline it for four weeks before launch, then compare season weeks two through seven. A working pass moves it 0.5 to 1.0 days.
  2. Tier completion histogram. Healthy: 8–15% of holders at max tier, a broad shoulder in the 60–90% band, under 10% stuck at tiers 1–3. A spike at the bottom means the pass isn't legible in your UI, not that players don't care.
  3. Session length against distinct player interactions. If median session length jumps 20%+ while interactions per session fall, grinding has displaced roleplay. Watch the ratio, never the raw duration.
  4. Premium conversion. 6–12% of monthly actives is healthy. Above 20%, check whether you've made the free track feel broken.
  5. Report category mix. A rise in low-effort-RP reports two weeks in is your XP sources telling you what they actually incentivise.

Run the same five numbers every season, keep them in one sheet, and change one variable at a time. Most cities that give up on the pass model do it after a single badly-paced attempt, and the arithmetic above is a lot cheaper than that.

Related posts

FiveM Progression and Skill Systems: Levels, Unlocks and Long-Term Goals That Keep Players Grinding
Guide
FiveM Progression and Skill Systems: Levels, Unlocks and Long-Term Goals That Keep Players Grinding
FiveM Daily Activities and Login Rewards: Streaks, Challenges and Habits That Bring Players Back
Guide
FiveM Daily Activities and Login Rewards: Streaks, Challenges and Habits That Bring Players Back
FiveM Player Feedback Systems: Surveys, Suggestion Boards and Acting on What Players Want
Guide
FiveM Player Feedback Systems: Surveys, Suggestion Boards and Acting on What Players Want
Published · Aug 11, 2026 Read more posts →