New: 12 free tools for Unreal Engine and Unity developers.Try them →

XP Level Curve Generator

Design levelling curves with linear, power or exponential formulas. Export to an Unreal DataTable or Unity JSON.

  • ✓ Free, no sign-up
  • ✓ Works for Unreal Engine & Unity
  • ✓ Runs in your browser

Curve settings

Your curve

Level 2 needs
Last level needs
Total XP to max

XP needed to reach each next level.

LevelXP to nextTotal XP

How to design a good XP curve

An XP curve decides how long each level takes. A good one makes early levels quick and rewarding, then slows down so later levels feel like real achievements, without ever feeling like a grind.

  • Power curve (most popular): base × level^exponent. Smooth growth that never explodes. Exponents between 1.5 and 2.2 suit most RPGs and action games.
  • Exponential curve: base × growth^(level−1). Every level is a fixed percentage harder. Great for idle and incremental games, but numbers become huge quickly.
  • Linear curve: base + increase × (level−1). Each level costs a fixed amount more. Simple and predictable for short games or skill trees.

How to use the generator

  1. Pick a formula and a max level.
  2. Set Base XP: the XP needed to reach level 2.
  3. Tune the exponent, growth or increase while watching the chart and the "last level needs" number.
  4. Round to a friendly number (10 or 50) so the values look clean in your UI.
  5. Export to an Unreal DataTable or Unity JSON.

Check the curve against play time

XP numbers mean nothing on their own. What matters is time. Estimate how much XP a player earns per minute at each stage of the game, then divide:

minutes to level = XP to next ÷ XP per minute

A common target is a few minutes per level early on, growing to 20–60 minutes for late levels. Remember that XP per minute usually rises too, because later enemies and quests give more XP. That is why many games can use steeper curves than they first expect.

Using the curve in Unreal Engine

  1. Create a Structure named FLevelRow with integers Level, XPToNext and TotalXP.
  2. Download the CSV and drag it into the Content Browser.
  3. Choose DataTable and pick your structure as the row type.
  4. Use Get Data Table Row with the level number as the row name.

Using the curve in Unity

  1. Download the Unity JSON and add it to your project (for example in a Resources folder, or reference it as a TextAsset).
  2. Create two [Serializable] classes: LevelRow with int fields level, xpToNext and totalXp, and XPCurve with a LevelRow[] levels field.
  3. Load it with JsonUtility.FromJson<XPCurve>(textAsset.text).

Common mistakes

  • A curve that is too flat: players out-level your content and the last levels feel meaningless.
  • A curve that is too steep: the last few levels take longer than the rest of the game combined.
  • Forgetting level-ups are rewards: make sure each level gives something, especially when levels slow down.

FAQ

Which XP formula should I use?

Power curves (base × level^exponent) are the most common because they grow smoothly. Exponential curves grow very fast and suit idle games. Linear curves are simple and work for short games with few levels.

How do I import the CSV into Unreal Engine?

Create a Blueprint Structure with integer variables Level, XPToNext and TotalXP. Then drag the CSV file into the Content Browser and choose DataTable with that structure as the row type.

How do I use the curve in Unity?

Download the Unity JSON, add it to your project as a TextAsset and load it with JsonUtility.FromJson into a class with a LevelRow[] levels field (each row has level, xpToNext and totalXp).

How many levels should my game have?

It depends on length. Short games often use 10 to 30 levels, RPGs 50 to 100. More important than the number is that every level-up arrives at a satisfying pace and gives the player something new.

Is the generator free?

Yes, completely free with no sign-up. It runs in your browser.

More free tools