Description
An RPG progression core for Minecraft 1.20.1 (Forge).
UNTESTED WITH ATTRIBUTE FIX
Ascend rewrites vanilla attribute min/max bounds so armour and health can exceed their hardcoded caps. That is the same technique AttributeFix uses, so running both is not supported for now.
Report bugs or join for fun in the Zarra Studios Discord: https://discord.gg/PVd6GNpvtW
Why this exists
PlayerEX is a great mod with no Forge support for the most part. I don't blame them; it's a daunting and annoying task. Ascend attempts to bridge the issues people using the mod face, including myself. It's the same core idea, built for Forge, and hopefully in the future I get some time for 1.21.1 NeoForge.
The six categories
Every level grants skill points (1 by default). You spend them on the Attributes page (default keybind: K). Each point feeds a list of child stats. The stats are shipped defaults, and every single one is editable in game (see In-game editors, below).
| Primary | What one point gives you |
|---|---|
| Constitution | +0.5 max health, +0.25 armour, +0.25 magic protection, +1 lung capacity, +0.5% poison resistance |
| Strength | +2% attack damage, +0.01 knockback resistance, +0.5% melee crit damage, +4% mining speed |
| Dexterity | +1% attack speed, +0.5% ranged crit damage, +2% draw speed, +2% ranged damage |
| Intelligence | +0.5% XP gain, +0.5% wither resistance |
| Luck | +0.5% melee crit chance, +0.5% ranged crit chance, +0.05 vanilla luck, +0.25% evasion |
| Focus | +1% health regen, +0.2% heal amplification, +0.2% lifesteal, +0.5% freeze / lightning / fire resistance |
Each attribute holds 100 points by default, and that ceiling is configurable per attribute. You could theoretically raise the Constitution category to 250 and leave the rest at 100 if that is the style or gameplay you want. Raising a cap automatically widens the attribute's own registered range, so the extra points are never silently clamped away.
The stats
These are real Minecraft attributes, so other mods, /attribute and gear modifiers all write to the same numbers Ascend reads.
Melee & ranged
| Stat | Effect |
|---|---|
melee_crit_chance |
Chance for a melee hit to crit |
melee_crit_damage |
Extra damage when it does |
ranged_crit_chance / ranged_crit_damage |
The same pair for bows and crossbows |
ranged_damage |
Multiplier on projectile damage |
draw_speed |
Shortens bow and crossbow charge time |
Defence & resistance
| Stat | Effect |
|---|---|
evasion |
Chance to dodge a hit outright — no damage, no knockback, no hurt animation |
magic_protection |
Reduces magic damage, 4% per point, capped at 80% |
fire / freeze / lightning / poison / wither_resistance |
Cuts damage from that source. Poison and wither also shorten the effect itself. Negative values mean vulnerability, so these double as a debuff channel |
Vigor
| Stat | Effect |
|---|---|
health_regeneration |
Passive regeneration, in half-hearts per second |
heal_amplification |
Scales every source of healing. This includes potions, food regeneration, everything |
lifesteal |
Heals you for a fraction of the damage you dealt. Paid as one visible lump on the kill by default, or per-hit if you prefer |
lung_capacity |
Extends how long you can hold your breath |
Utility
| Stat | Effect |
|---|---|
breaking_speed |
Mining speed multiplier, capped (5× by default) so a maxed build cannot instant-break obsidian |
dropped_experience |
Your XP gain multiplier |
level |
Your Ascend level, mirrored onto an attribute so commands, other mods and other players' clients can read it |
Two ways to level
Set source.xpSource to pick one:
- ASCEND (default) — Ascend keeps its own EXP pool, filled by kills and mining, and levels you up automatically. Vanilla experience is left completely alone, so enchanting works as normal.
- VANILLA — no EXP pool. Levels are bought with vanilla experience levels at a price you set, using the Level Up button. Your XP bar becomes the progress bar.
How a kill is priced (ASCEND mode)
There is no per-mob EXP list to maintain. A kill is valued from the victim's own combat stats, read live at the moment it dies. The max health, attack damage, armor, toughness, knockback resistance, movement speed, plus a bonus for its enchantments. A zombie in full diamond is worth far more than a naked one, and a modded mob nobody has ever heard of is priced on exactly the same scale with zero extra config. A per-kill ceiling stops one modded 100k-health boss from handing over the level cap.
This also takes into account whether a mob is hostile, neutral, or passive. Bosses vs normal mobs scale a bit harder as well and works with modded bosses as well; the #ascend:bosses tag forces it for anything missed.
Mining does contribute too, with a default rate and a per-block override list (diamond, emerald, and ancient debris are worth more out of the box).
Who gets paid
By default EXP is split by damage dealt, not handed to whoever landed the last hit. Doing 99% of the work on a boss and losing the killing blow to a stray skeleton arrow still pays. Tamed pets credit their owner. You can optionally reserve a cut for the finisher or fold non-player damage into the split.
In-game editors or the actual point of this mod
Two full editor screens, both opened by command, both operator-gated, both saved on the server and synced to every client. No file editing, no restart, no rebuild.
/ascend config — Config editor
Every gameplay value is editable in a scrollable, categorized screen: the level curve, EXP weights, category multipliers, credit rules, per-attribute caps, death handling, and XP source.
/ascend editor — Attribute Scaling
The parent → child category to attribute table itself. Change what a point of Strength is worth, point a primary at an attribute from a completely different mod, add or delete functions, or switch a function between flat (+) and proportional (×). This is also where you arrange which stats appear under which heading on the Stats page.
Level curves
| Curve | Behavior |
|---|---|
| EXPONENTIAL (default) | Each level costs curveGrowth times the last. Cheap early, brutal late. At the default 1.08, level 100 costs about 41k EXP and the whole climb about 550k |
| LINEAR | Each level costs a fixed amount more than the last. Even and predictable |
| CUSTOM | Write the expression yourself as a function of x. Standard math functions plus stairs(x, stretch, steepness, xOffset, yOffset, yLimit) |
The level cap is 100 by default and configurable up to 10,000. Raising it makes the climb longer, but it does not change what any individual level costs.
Death
Fully configurable, from "lose nothing" to "lose everything":
resetOnDeathis a basic wipe level, EXP, points and every invested stat.keepOnDeathPercentis a keep a percentage instead, for partial loss. 100 keeps everything (the default).
The interface
Press K. Three pages:
- Attributes this is where you allocate points with
+and−. Allocation is a pending option; nothing is fully allocated until you press Confirm, and Clear throws it away. You can hover over an addition and get a overview on what it will actually do when you put a point into it. - Stats is an overview of every stat the player has, grouped together and organized on one screen.
- Overview shows your level, cost of the next level, unspent and refundable points, total EXP earned, and your death record.
Also included:
- A gold
<Lv. N>suffix on player nameplates, which is part of the nametag. - Optional bonuses are appended to item tooltips, so a netherite sword reads
8 (+1.6). - Three themes — GOLD, SLATE, ARCTIC.
- Interface sounds with their own volume slider, on top of the game's master volume.
By default, refunds are off. Turn allowRefund on if you would rather players change their minds freely.
Commands
All operator-only.
| Command | Does |
|---|---|
/ascend level add|remove|set <players> <n> |
Move a player's level. add pays out skill points exactly as earning the level would |
/ascend points add|remove|set <players> <n> |
Grant or take skill points |
/ascend exp add|remove|set <players> <n> |
Move the EXP pool |
/ascend refund <players> [attribute] |
Refund one attribute, or everything |
/ascend reset <players> |
Full wipe for those players |
/ascend refundall / /ascend resetall |
The same, server-wide |
/ascend query <players> |
Print a player's full progression |
/ascend config |
Open the config editor |
/ascend editor |
Open the attribute scaling editor |
/ascend editor reload |
Re-read the scaling table from disk |
Compatibility
- AttributeFix — untested and not supported. Both mods rewrite attribute bounds.
- Any mod that adds attributes — supported by design. Ascend's scaling editor can point a primary at any registered attribute, and its Stats page can display any of them.
Roadmap
The goal is to keep adding to this over time:
- Player titles, including adding your own
- Weapon and tool leveling
- Weapon, hand-to-hand and ranged mastery
A mod developed by Zarra Studios. Mechanics inspired by PlayerEX and Data Attributes by BareMinimumStudios.
Please report bugs to the Discord or GitHub.
Code will be open-sourced and is requestable (MIT)







