dig1t.dev
    // XP & Level Progression

    49 XP curves for your next game

    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.

    49 curves·Levels 1 → 50 plotted·MIT. Copy & ship
    XP / minute

    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.

    family:
    feel:  

    Linear Casual

    50 · level

    Casual

    Constant XP per level. Friendly for mobile and idle games.

    L25 1.3K·L50 2.5K
    ≈ 8 min to L50

    Linear Standard

    100 · level

    Standard

    Steady 100 XP per level. Easy to communicate to players.

    L25 2.5K·L50 5.0K
    ≈ 17 min to L50

    Linear Strong

    200 · level

    Standard

    Linear but heftier. Fits arcade ladders.

    L25 5.0K·L50 10.0K
    ≈ 33 min to L50

    Linear Grind

    500 · level

    Grindy

    Each level always costs 500 XP. Pure grind.

    L25 12.5K·L50 25.0K
    ≈ 1.4 hr to L50

    Quadratic (Closed-Form)

    32 · level² − 32 · level

    Standard

    Smooth quadratic ramp with a closed-form level solver. No binary search needed.

    L25 19.2K·L50 78.4K
    ≈ 4.4 hr to L50

    Triangular

    50 · level · (level + 1) / 2

    Standard

    Classic n·(n+1)/2. Symmetric ramp used by JRPGs.

    L25 16.3K·L50 63.8K
    ≈ 3.5 hr to L50

    Quadratic Light

    10 · level²

    Casual

    Gentle quadratic. Onboarding-friendly.

    L25 6.3K·L50 25.0K
    ≈ 1.4 hr to L50

    Quadratic Standard

    50 · level²

    Standard

    Balanced quadratic. Works for most RPGs.

    L25 31.3K·L50 125.0K
    ≈ 6.9 hr to L50

    Quadratic Strong

    100 · level² − 50 · level

    Grindy

    Quadratic with linear damping. Late game gets meaty.

    L25 61.3K·L50 247.5K
    ≈ 14 hr to L50

    Cubic Gentle

    0.4 · level³

    Standard

    Cubic with a soft constant. Feels fair for grinders.

    L25 6.3K·L50 50.0K
    ≈ 2.8 hr to L50

    Cubic Standard

    level³

    Grindy

    Pokémon Medium-Fast cousin. Cubic growth.

    L25 15.6K·L50 125.0K
    ≈ 6.9 hr to L50

    Cubic Heavy

    1.25 · level³

    Brutal

    Slow-grind cubic. Reserve for high-prestige modes.

    L25 19.5K·L50 156.3K
    ≈ 8.7 hr to L50

    Quartic Brutal

    0.05 · level⁴

    Brutal

    Quartic walls. Every level past mid-game is a project.

    L25 19.5K·L50 312.5K
    ≈ 17 hr to L50

    Quintic Extreme

    0.005 · level⁵

    Brutal

    Endgame-only. Designed for cap-fishing economies.

    L25 48.8K·L50 1.6M
    ≈ 3.6 days to L50

    Power 1.5

    30 · level^1.5

    Casual

    Sub-quadratic. Gentle progress all the way through.

    L25 3.8K·L50 10.6K
    ≈ 35 min to L50

    Power 1.8

    25 · level^1.8

    Standard

    Between linear and quadratic. Natural pacing.

    L25 8.2K·L50 28.6K
    ≈ 1.6 hr to L50

    Power 2.2

    12 · level^2.2

    Standard

    Slightly steeper than quadratic. Feels rewarding mid-game.

    L25 14.3K·L50 65.6K
    ≈ 3.6 hr to L50

    Power 2.5

    5 · level^2.5

    Grindy

    Borderlands-flavoured grind without going full cubic.

    L25 15.6K·L50 88.4K
    ≈ 4.9 hr to L50

    Power 2.8

    3 · level^2.8

    Grindy

    Almost cubic. Used by loot grinders for late-game walls.

    L25 24.6K·L50 171.5K
    ≈ 9.5 hr to L50

    Exponential Mild

    50 · (1.05^(level-1) − 1) / 0.05

    Casual

    Geometric series at r=1.05. Smooth, predictable acceleration.

    L25 2.2K·L50 9.9K
    ≈ 33 min to L50

    Exponential Standard

    80 · (1.10^(level-1) − 1) / 0.10

    Standard

    10% step. The default exponential most idle games ship with.

    L25 7.1K·L50 84.6K
    ≈ 4.7 hr to L50

    Exponential Strong

    100 · (1.15^(level-1) − 1) / 0.15

    Grindy

    15% step. Hard wall arrives around level 30.

    L25 18.4K·L50 627.5K
    ≈ 1.5 days to L50

    Exponential Steep

    120 · (1.20^(level-1) − 1) / 0.20

    Brutal

    20% step. Use for prestige tiers with multipliers.

    L25 47.1K·L50 4.5M
    ≈ 11 days to L50

    Exponential Brutal

    150 · (1.25^(level-1) − 1) / 0.25

    Brutal

    25% step. Diablo-esque late game.

    L25 126.5K·L50 33.6M
    ≈ 2.6 mo to L50

    Doubling

    10 · (2^(level-1) − 1)

    Brutal

    Each level doubles the previous gap. Halt-style ascension.

    L25 167.8M·L50 5629499.5B
    ≈ >1M yr to L50

    Pokémon Fast

    0.8 · n³

    Casual

    Gen-III Fast growth group. 0.8·n³. Quick to mid-game.

    L25 12.5K·L50 100.0K
    ≈ 5.6 hr to L50

    Pokémon Medium-Fast

    Standard

    Plain n³. The default for most starters.

    L25 15.6K·L50 125.0K
    ≈ 6.9 hr to L50

    Pokémon Medium-Slow

    1.2·n³ − 15·n² + 100·n − 140

    Grindy

    Slow start, fast middle, slow end. The most natural feel.

    L25 11.7K·L50 117.4K
    ≈ 6.5 hr to L50

    Pokémon Slow

    1.25 · n³

    Grindy

    1.25·n³. Dragonair-flavoured grind.

    L25 19.5K·L50 156.3K
    ≈ 8.7 hr to L50

    Pokémon Erratic

    piecewise · n³

    Standard

    Piecewise curve. Easy early, plateaus late.

    L25 23.4K·L50 125.0K
    ≈ 6.9 hr to L50

    Pokémon Fluctuating

    piecewise · n³

    Grindy

    Piecewise. Slow early, easy mid, hard late.

    L25 12.2K·L50 142.5K
    ≈ 7.9 hr to L50

    RuneScape

    Σ ⌊i + 300·2^(i/7)⌋ / 4

    Grindy

    The cult-classic: Σ floor(i + 300·2^(i/7)) / 4.

    L25 7.8K·L50 101.3K
    ≈ 5.6 hr to L50

    WoW Vanilla

    8 · level² + 75 · level

    Grindy

    Approximation of vanilla WoW levelling tempo.

    L25 6.9K·L50 23.8K
    ≈ 1.3 hr to L50

    Borderlands 2

    60 · (level + 1)^2.8

    Brutal

    60·(level+1)^2.8. The looter-shooter classic.

    L25 549.6K·L50 3.6M
    ≈ 8.4 days to L50

    Diablo II

    500 · 1.5^(level-1)

    Brutal

    Steep exponential late-game (approximation).

    L25 16.8M·L50 425.1B
    ≈ 2.7k yr to L50

    Minecraft

    piecewise polynomial

    Standard

    Vanilla Java: piecewise polynomial at 17 and 32.

    L25 910·L50 5.3K
    ≈ 18 min to L50

    League of Legends

    180 · level + 20 · level²

    Standard

    Sub-quadratic. Designed for ~30-min matches at any level.

    L25 17.0K·L50 59.0K
    ≈ 3.3 hr to L50

    Terraria-style

    300 · level^1.6

    Standard

    Front-loaded crafting feel. Fast to mid, plateaus near cap.

    L25 51.7K·L50 156.8K
    ≈ 8.7 hr to L50

    Logarithmic

    200 · level · ln(level + 1)

    Casual

    Grows by ln. Onboarding ladders, skill-tier displays.

    L25 16.3K·L50 39.3K
    ≈ 2.2 hr to L50

    Square-Root

    1000 · √level − 1000

    Casual

    Front-loaded difficulty. Gets easier over time.

    L25 4.0K·L50 6.1K
    ≈ 20 min to L50

    Logistic S-Curve

    200000 / (1 + e^(−0.18·(level − 30)))

    Grindy

    Slow → fast → slow. Perfect for season-pass tiers.

    L25 57.8K·L50 194.7K
    ≈ 11 hr to L50

    Soft-Cap Polynomial

    150 · level^1.3

    Standard

    level^1.3. Between linear and quadratic, never spikes.

    L25 9.8K·L50 24.3K
    ≈ 1.3 hr to L50

    Linear + Quadratic

    50 · level + 5 · level²

    Standard

    Blends a constant grind with quadratic late-game scaling.

    L25 4.4K·L50 15.0K
    ≈ 50 min to L50

    Quadratic + Cubic

    20 · level² + 0.5 · level³

    Grindy

    Mid-grind quadratic with a cubic wall after level 25.

    L25 20.3K·L50 112.5K
    ≈ 6.3 hr to L50

    Plateau Steps

    30 · level² + 200 · ⌊level / 10⌋

    Standard

    Quadratic base with rest plateaus every 10 levels.

    L25 19.1K·L50 76.0K
    ≈ 4.2 hr to L50

    Two-Phase

    level ≤ 20 ? 200·level : 4000 + (level−20)³

    Grindy

    Linear early game; cubic ramp past level 20.

    L25 4.1K·L50 31.0K
    ≈ 1.7 hr to L50

    Prestige Loop

    50 · (level mod 100)² · (1 + ⌊level/100⌋)

    Standard

    Quadratic that resets at level 100 with a prestige multiplier.

    L25 31.3K·L50 125.0K
    ≈ 6.9 hr to L50

    Early Wall

    300·level² for level ≤ 5, else 7500 + 400·(level−5)

    Standard

    Steep first 5 levels, then linear. Tutorial bottleneck.

    L25 15.5K·L50 25.5K
    ≈ 1.4 hr to L50

    Late Wall

    100·level for level ≤ 30, else 3000 + 100·(1.2^(level−30) − 1)/0.2

    Grindy

    Gentle linear to level 30, exponential past. Endgame raids.

    L25 2.5K·L50 21.7K
    ≈ 1.2 hr to L50

    # How the Luau modules work

    The Level API

    Every module exports the same Level table:

    • calculate(xp)current level for a given XP total
    • xpRequired(level)cumulative XP needed to reach a level
    • xpGap(xp)XP between current and next level
    • progressPercentage(xp)0–1 progress to next level
    • getOverview(xp)all of the above in one table

    How to use it

    1. Click View Luau on a curve and copy the module.
    2. Drop it into ReplicatedStorage as a ModuleScript.
    3. Require it from server or client and call Level.getOverview(xp).

    The only line that changes between curves is Level.xpRequired. Swap curves without touching the rest of your code.