Power Level
A single scalar summarizing a player's overall progress
Overview
Power Level Since 1.5.0 folds combat level, claimed skill-tree stat rewards, unlocked abilities, ability mastery, and claimed achievements into a single clamped scalar per player. The mod computes and caches it; Power Level changes nothing visible by itself.
Power Level exists for a consumer, not for its own sake
mods/mmoskilltree/power-level.jsonServer/MMOSkillTree/PowerLevel/*.jsonThe jar ships Server/MMOSkillTree/PowerLevel/Default.json as the base tuning. A pack can overlay a partial body; the owner file always wins. Every leaf folds independently - a partial file changes only the keys it mentions.
Modes
Power Level is computed under one of three named weight presets. DefaultMode in power-level.json (or a pack's PowerLevel asset) picks which one is active server-wide.
| Mode | Weighting |
|---|---|
COMBAT_ONLY | Weighs combat level and combat-relevant pillars heavily; ignores Achievements |
BALANCED (default) | Combat and stat rewards dominate, with smaller contributions from abilities, mastery, and achievements |
COMPLETIONIST | Spreads weight more evenly, giving achievements and mastery more relative influence |
Pillars
Each pillar contributes provider.contribution(...) * weight(activeMode, pillarId) to the total, which is then clamped. Six pillars are built in; a sibling mod can register additional pillars, which become first-class weight targets in Modes automatically.
| Field | Type | Default | Description |
|---|---|---|---|
Combat | object { Factor } | 1.5 | Scales the player's combat level (the max level across combat skills). |
StatRewards | object { Factors: map } | optional | A generic per-{stat key} factor map (e.g. STAT_HEALTH, DAMAGE_PCT, FLAT_DAMAGE) summing every claimed skill-tree + mastery stat reward. Adding a new surfaced stat is a JSON line, not a codec change. |
MaxHealth | object { BaseHealth, Factor } | 100 / 10.0 | Contributes (maxHealth / BaseHealth) * Factor. |
Abilities | object { Factor } | 3.0 | Scales unlocked active abilities. |
Mastery | object { Factor } | 4.5 | Scales claimed ability mastery nodes. |
Achievements | object { Factor } | 3.0 | Scales claimed achievement points. |
Clamp
| Field | Type | Default | Description |
|---|---|---|---|
MinPower | double | 1.0 | Floor of the scale; also the no-skill-data fallback returned by the API. |
MaxPower | double | 200.0 | Ceiling of the scale. |
BaseOffset | double | 0.0 | A flat offset added before clamping. |
The final value is clamp(pillarPower + BaseOffset, MinPower, MaxPower). A consumer mod that maps Power Level onto its own difficulty scale should read the live bounds from MMOSkillTreeAPI.getPowerLevelMin()/getPowerLevelMax() instead of hardcoding 1/200, so the two scales cannot silently drift apart when either config is retuned.
Current Tuning (1.5.1+)
Example figures were retuned in 1.5.1
| Build | Power Level (BALANCED) |
|---|---|
| Maxed weapon tree (e.g. Swords L98) alone | ~68 |
| Mid-progress, multi-pillar build | ~130 |
| Full completionist (every pillar maxed) | 200 (clamp ceiling) |
Example Owner Override
A partial power-level.json only needs the keys you want to change - every other leaf inherits from the jar default (or a pack overlay under it):
{
"SchemaVersion": 2,
"DefaultMode": "COMPLETIONIST",
"Clamp": { "MaxPower": 250.0 },
"Pillars": {
"Achievements": { "Factor": 4.0 }
}
}This raises the ceiling to 250, switches the server default to COMPLETIONIST weighting, and bumps the Achievements factor - every other pillar and mode weight stays at the jar/pack default.
Pack Authoring
A content pack can ship its own Server/MMOSkillTree/PowerLevel/*.json asset using the same nested Clamp/Pillars/Modes schema as the jar default. Precedence resolves
power-level.json always wins over both.API
A sibling mod reaches a player's power only through MMOSkillTreeAPI - never hyMMO internals directly.
| Field | Type | Default | Description |
|---|---|---|---|
getPowerLevel(store, ref) | double | optional | The player's current Power Level, cached and recomputed only after a pillar-input mutation or a config reload. |
getPowerLevelMin() | double | optional | The configured clamp minimum. |
getPowerLevelMax() | double | optional | The configured clamp maximum. |
getCombatLevel(store, ref) | int | optional | The cheap combat sub-input alone (max level across combat skills); returns 0 for a player with no skill data. |
statRewardSum(store, ref, statKey) | double | optional | The sum of a player's skill-tree + mastery stat-reward contributions for one stat key; 0.0 for an unrecognized key. |
Consumers
MMO Mob Scaling
Optional companion mod that scales mob difficulty using a player's Power Level and can cast abilities on non-player mobs through the same ability catalog. Replaces the removed built-in Elite Mobs system. Own CurseForge listing, own version numbers - it is not bundled with MMO Skill Tree or any of its content packs.