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
Your curve
XP needed to reach each next level.
| Level | XP to next | Total 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
- Pick a formula and a max level.
- Set Base XP: the XP needed to reach level 2.
- Tune the exponent, growth or increase while watching the chart and the "last level needs" number.
- Round to a friendly number (10 or 50) so the values look clean in your UI.
- 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
- Create a Structure named
FLevelRowwith integersLevel,XPToNextandTotalXP. - Download the CSV and drag it into the Content Browser.
- Choose DataTable and pick your structure as the row type.
- Use Get Data Table Row with the level number as the row name.
Using the curve in Unity
- Download the Unity JSON and add it to your project (for example in a
Resourcesfolder, or reference it as aTextAsset). - Create two
[Serializable]classes:LevelRowwith int fieldslevel,xpToNextandtotalXp, andXPCurvewith aLevelRow[] levelsfield. - 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
Shop Economy Calculator
Balance prices, margins and daily profit for shop, tycoon and simulator games. Finds the price that earns the most.
Open tool →Drop Rate & Loot Table Calculator
See the real odds of a drop after N tries and turn loot table weights into percentages players understand.
Open tool →Normal Map Generator
Turn a height map or texture into a normal map. DirectX for Unreal, OpenGL for Unity, seamless tiling.
Open tool →