File Details
rpgmoblevelingsystem-neoforge-1.21.1-2.0.0.jar
- R
- Jul 14, 2026
- 337.34 KB
- 161
- 1.21.1
- NeoForge
File Name
rpgmoblevelingsystem-neoforge-1.21.1-2.0.0.jar
Supported Versions
- 1.21.1
Curse Maven Snippet
Supported platforms: Minecraft 1.20.1 (Fabric, Forge) · Minecraft 1.21.1 (Fabric, NeoForge)
New features
- Unified leveling architecture — mob levels are calculated once on spawn through
LevelCalculationService, with attribute scaling, classification, and storage handled by dedicated services. - RPG Attribute System integration — optional player-based scaling (
nearest,highest_nearby,average_nearby) and combat rebalance whenrpg_attribute_system4.1+ is installed. - Public API (
RmlApi) — other mods can read mob levels, force recalculation, and inspect level breakdowns. - Debug commands —
/rml inspect,/rml recalculate,/rml config,/rml distance(op level 2). - Percentage attribute scaling — per-rule
additiveorpercentmodes inattributes_settings.json. - Gson JSON config — all settings live under
config/rpgmoblevelingsystem/(replaces Jauml on 1.20.1). - Namespace bans — exclude entire mods (e.g.
cobblemon) viabanned_namespaces. - Hostile-only scaling — optional global or per-rule hostile filter.
- Structure & boss level locks —
structureMinLevelsandbossLevelLocksin config. - Custom loot by level — optional
loot_by_level.jsonfor level-band drops. - Configurable name format —
%mob_name% [Lv. %level%]inglobal_settings.json. - Ascendant elites — ported to common code on all loaders (buffs, boss bar, death loot).
- Documentation — usage guide, API reference, and community feedback resolution report in
docs/.
Bug fixes
- Distance scaling — now uses Euclidean block distance divided by
scaleDistance(was incorrectly using squared distance). - Day scaling — uses total elapsed world time (
gameTime / 24000) instead of wrap-sensitive day time alone. - Movement speed corruption — attributes applied via idempotent named modifiers instead of mutating base values; speed skipped for non-hostiles by default.
- Locked mob HP — locked/boss mobs no longer keep incorrect stacked HP forever.
- Zero XP in modded dimensions — XP scaling works on Fabric (mixin) and NeoForge/Forge (event).
- Ender Dragon / boss scaling — dedicated boss lock defaults and locked-level path.
- Overlay console spam — removed periodic debug logging; optional
overlayDebugflag. - Jade / name display — overlay no longer overwrites mob custom names with
Lv.N. - Performance — levels applied once on spawn, never every tick; early exit for banned namespaces.
- Low-level mobs vs high RAS players — optional
playerBalanceEnabledscales mob power relative to nearby player combat snapshot.
Config changes
New / updated files in config/rpgmoblevelingsystem/:
| File | What's new |
|---|---|
scale_settings.json |
rounding_mode, playerScaleMode, playerScaleRadius, playerScaleFactor, balance ratios |
attributes_settings.json |
mode (additive / percent), hostileOnly per rule |
mobs_list_settings.json |
banned_namespaces, hostileOnly, bossLevelLocks, structureMinLevels |
global_settings.json |
nameFormat, jadeEnabled, overlayDebug |
loot_by_level.json |
Level-band custom drops (disabled by default) |
Legacy configs with scaleDistance >= 100000 and near-zero progression auto-migrate on first launch.
Breaking changes
- Config format — JSON only in 2.0; Jauml string configs on 1.20.1 are no longer read.
- Attribute application — uses Minecraft attribute modifiers instead of permanent
setBaseValuemutations. Existing worlds keep stored level tags; use/rml recalculateto refresh mobs if needed.
For mod developers
import tn.nightbeam.rpgmoblevelingsystem.api.RmlApi;
int level = RmlApi.getLevel(entity);
RmlApi.recalculate(entity);
LevelDebugBreakdown breakdown = RmlApi.getDebugBreakdown(entity);
See docs/API.md for full reference.