promotional bannermobile promotional banner

RPG Leveling And Stats/Skills

RPG Leveling turns Hytale into a true RPG with XP, levels, zones, scaling difficulty, and stat progression. Easy–Extreme modes; spend points on Damage, Defense, Health, Stamina. 0.3.0: classes and 18 passives (LifeSteal, Impact…). HUD, GUI, leaderboard.

File Details

RPGLeveling-0.3.3.jar

  • R
  • Mar 30, 2026
  • 13.47 MB
  • 5.8K
  • Early Access

File Name

RPGLeveling-0.3.3.jar

Supported Versions

  • Early Access

[0.3.3] — 2026-03-30

Mod version: 0.3.3 · Game version: Hytale 2026.03.26-89796e57b

Ko-fi Discord

API ✨ Added

  • Config Defaults Override API — External mods can now call RPGLevelingAPI.registerConfigDefaults(modId, configurator) in their setup() to override any RPG Leveling config default (scalar values or array appends). Overrides only apply when the on-disk value matches the bundled default (admin-customized values are never overwritten). Supports alsoReplaces for updating previous mod overrides across versions. First mod to register a field wins; conflicts are logged at startup.
  • Player class API — New methods getPlayerClassInfo, getPlayerClassId, getPlayerClassTier, and getPlayerAllClassTiers let external mods read the player's selected class, display name, tier (0–4), kills in current tier, and all class progress. Available by UUID (Holder-only) or with PlayerRef + entity Ref + Store for world-thread contexts.

✨ Added

  • NameplateBuilder (optional) — When Frotty27:NameplateBuilder and its API are on the server, look-at level text is published as nameplate segment rpgleveling_level via register / remove so it composes with other segments; otherwise the plugin keeps using the vanilla Nameplate component as before.
  • Chat placeholders — Server chat formats can use %rpglevelling_level%, %rpglevelling_xp%, %rpglevelling_xp_to_next% / %rpglevelling_xp_to_level%, %rpglevelling_max_level%, %rpglevelling_is_max_level%, and class tokens %rpglevelling_class%, %rpglevelling_class_display%, %rpglevelling_class_name%, %rpglevelling_class_id%, %rpglevelling_class_tier%.
  • Admin timed XP rate boost/lvl xprateboost (alias /lvl xpmult) sets an extra XP multiplier for a duration in seconds: all <multiplier> <seconds> for every player, player <name> <multiplier> <seconds> for one player (online or resolvable offline), plus clearall, clearplayer <name>, and stop (clears global and all per-player boosts at once). Global and per-player boosts multiply together. The timed multiplier applies after RateExp and zone rates (e.g. RateExp 3 and timed ×2 vs the raw formula baseline, not 5×). Applies to kills, block XP, and API XP; /lvl addxp is unchanged. Runtime-only (not persisted). Documented in Commands (docs/commands.mdx) and Main Plugin Config (docs/config-main.mdx).
  • Class change cooldown — After you change or clear your selected class in the Stats GUI, a configurable cooldown applies before you can change again (default 5 minutes). ClassChangeCooldownSeconds in Classes/ClassesGlobalConfig.json controls the wait (0 disables the cooldown). While active, SET and UNSET show a remaining time (m:ss) and are disabled; the server also ignores class-change actions during the cooldown.

🔄 Changed

  • Level HUD (without MultipleHUD) — HUD handling when MultipleHUD isn’t installed now avoids full refreshes on every update, so the level bar updates more lightly and performs better.

🐛 Fixed

  • On-kill timed passives — In rare cases, when a kill triggered several short on-kill buffs at once (for example multiple class passives stacking), the server could hit a severe error and the world had to stop or unload. That situation is now handled safely.
  • Movement Speed stat after water / world change — The game can reset ground MovementManager baseSpeed when you swim, touch water, or change worlds, while RPG stats are only fully re-applied when StatsAppliedMarker is cleared—so Movement Speed bonuses could appear to stick at vanilla until something else refreshed stats. A MovementSpeedReconciliationSystem now compares live baseSpeed to the RPG-expected value (when using the MovementManager path, not the engine stat-map path) and re-applies the stat; it skips while timed movement passives like Overkill are active so kill buffs are not overwritten.