Linear Casual
50 · level
Constant XP per level. Friendly for mobile and idle games.
Interactive level-progression formulas with copy-paste Luau modules. Linear grinds, quadratic ramps, Pokémon canonicals, RuneScape, Minecraft, exponential walls. Pick the feel that matches your game.
Each card shows time-to-level-50 at this rate. Set it to match how fast your game awards XP. The Luau modules below stay the same; pacing depends on how much XP your gameplay grants, not the curve.
50 · level
Constant XP per level. Friendly for mobile and idle games.
100 · level
Steady 100 XP per level. Easy to communicate to players.
200 · level
Linear but heftier. Fits arcade ladders.
500 · level
Each level always costs 500 XP. Pure grind.
32 · level² − 32 · level
Smooth quadratic ramp with a closed-form level solver. No binary search needed.
50 · level · (level + 1) / 2
Classic n·(n+1)/2. Symmetric ramp used by JRPGs.
10 · level²
Gentle quadratic. Onboarding-friendly.
50 · level²
Balanced quadratic. Works for most RPGs.
100 · level² − 50 · level
Quadratic with linear damping. Late game gets meaty.
0.4 · level³
Cubic with a soft constant. Feels fair for grinders.
level³
Pokémon Medium-Fast cousin. Cubic growth.
1.25 · level³
Slow-grind cubic. Reserve for high-prestige modes.
0.05 · level⁴
Quartic walls. Every level past mid-game is a project.
0.005 · level⁵
Endgame-only. Designed for cap-fishing economies.
30 · level^1.5
Sub-quadratic. Gentle progress all the way through.
25 · level^1.8
Between linear and quadratic. Natural pacing.
12 · level^2.2
Slightly steeper than quadratic. Feels rewarding mid-game.
5 · level^2.5
Borderlands-flavoured grind without going full cubic.
3 · level^2.8
Almost cubic. Used by loot grinders for late-game walls.
50 · (1.05^(level-1) − 1) / 0.05
Geometric series at r=1.05. Smooth, predictable acceleration.
80 · (1.10^(level-1) − 1) / 0.10
10% step. The default exponential most idle games ship with.
100 · (1.15^(level-1) − 1) / 0.15
15% step. Hard wall arrives around level 30.
120 · (1.20^(level-1) − 1) / 0.20
20% step. Use for prestige tiers with multipliers.
150 · (1.25^(level-1) − 1) / 0.25
25% step. Diablo-esque late game.
10 · (2^(level-1) − 1)
Each level doubles the previous gap. Halt-style ascension.
0.8 · n³
Gen-III Fast growth group. 0.8·n³. Quick to mid-game.
n³
Plain n³. The default for most starters.
1.2·n³ − 15·n² + 100·n − 140
Slow start, fast middle, slow end. The most natural feel.
1.25 · n³
1.25·n³. Dragonair-flavoured grind.
piecewise · n³
Piecewise curve. Easy early, plateaus late.
piecewise · n³
Piecewise. Slow early, easy mid, hard late.
Σ ⌊i + 300·2^(i/7)⌋ / 4
The cult-classic: Σ floor(i + 300·2^(i/7)) / 4.
8 · level² + 75 · level
Approximation of vanilla WoW levelling tempo.
60 · (level + 1)^2.8
60·(level+1)^2.8. The looter-shooter classic.
500 · 1.5^(level-1)
Steep exponential late-game (approximation).
piecewise polynomial
Vanilla Java: piecewise polynomial at 17 and 32.
180 · level + 20 · level²
Sub-quadratic. Designed for ~30-min matches at any level.
300 · level^1.6
Front-loaded crafting feel. Fast to mid, plateaus near cap.
200 · level · ln(level + 1)
Grows by ln. Onboarding ladders, skill-tier displays.
1000 · √level − 1000
Front-loaded difficulty. Gets easier over time.
200000 / (1 + e^(−0.18·(level − 30)))
Slow → fast → slow. Perfect for season-pass tiers.
150 · level^1.3
level^1.3. Between linear and quadratic, never spikes.
50 · level + 5 · level²
Blends a constant grind with quadratic late-game scaling.
20 · level² + 0.5 · level³
Mid-grind quadratic with a cubic wall after level 25.
30 · level² + 200 · ⌊level / 10⌋
Quadratic base with rest plateaus every 10 levels.
level ≤ 20 ? 200·level : 4000 + (level−20)³
Linear early game; cubic ramp past level 20.
50 · (level mod 100)² · (1 + ⌊level/100⌋)
Quadratic that resets at level 100 with a prestige multiplier.
300·level² for level ≤ 5, else 7500 + 400·(level−5)
Steep first 5 levels, then linear. Tutorial bottleneck.
100·level for level ≤ 30, else 3000 + 100·(1.2^(level−30) − 1)/0.2
Gentle linear to level 30, exponential past. Endgame raids.
Every module exports the same Level table:
calculate(xp)current level for a given XP totalxpRequired(level)cumulative XP needed to reach a levelxpGap(xp)XP between current and next levelprogressPercentage(xp)0–1 progress to next levelgetOverview(xp)all of the above in one tableReplicatedStorage as a ModuleScript.Level.getOverview(xp).The only line that changes between curves is Level.xpRequired. Swap curves without touching the rest of your code.