v1.1.0 Patch Notes

What's new in v1.1.0

The largest release since v0.10. Three new player-facing systems land together — Currencies, Ability Mastery, and a Stat Source Breakdown page. Mastery ships paired with a separate MMOSkillMasteryPack content pack that holds the mastery tracks, currencies, mastery-point milestones, and mastery-themed quests + achievements — drop it into mods/ alongside the plugin. The content-pack format gains four new content-type families (Masteries, Currencies, CommandRewards, and per-type Templates with an extends + params + overrides + extras DSL) so pack authors can extend or replace any of it without writing Java. Reward feedback gains a full SFX palette. Mastery launches with deliberate balance: skill-investment gates, level-92 Eternals, repeatable endgame quests, and unique L100 capstones.

Updates

  • Currencies — define as many as you want. New mods/mmoskilltree/currencies.json defines named currencies in two flavours: item-backed (wraps a native Hytale item like Ingredient_Life_Essence — stackable, tradeable, drops on death) or counter-backed (pure plugin-tracked number, like XP). Caps, on-death loss, daily decay, and XP-to-currency conversion are all per-currency. Counter-backed currencies carry a cosmetic icon (Mastery Points shows a purple crystal in the wallet and sidebar). /mmocurrency manages from console / script / in-game.
  • Earn currency through play. Award any currency from quests, achievements, and command/level rewards via a CURRENCY reward type (currencyId + amount) or /mmocurrency give {player} . Offline players get queued payouts on next login. Reward cards display the currency icon; receiving a counter-backed currency pops a notification with icon + amount + new total.
  • Ability Mastery. New mods/mmoskilltree/mastery.json defines purchasable upgrade tracks targeting either a single ability (target: ability:fireball) or a whole skill (target: skill:MAGIC). Each node costs currencies + optionally Hytale items + optionally a permanent stat sacrifice (Max HP/Stamina/Mana). Buffs are permanent. Linear, branching, and flat track shapes all supported by the same node/prereq/choice-group schema. Recursive AND/OR/NOT requirements gate every node and every track — same engine quests use.
  • In-game Ability Mastery page. Open with /mastery, the Mastery tab in the main menu, the Mastery button on any skill's Skill Tree page, or — new — the purple MASTERY button on any ability card whose ability has its own mastery track. Master-detail layout: track list left, node tree right, wallet up top. Each track lays out by shape — linear tracks render top-to-bottom as a connected chain, branching tracks as a side-by-side "Pick 1" fork with an OR divider, open tracks as a free grid — so you can read its structure at a glance.
  • Node descriptions are dynamically generated. Each mastery node's summary is rendered from its actual modifier values + cooldown clauses + HP thresholds, so the description always matches what the node does and updates the instant a server owner retunes a number.
  • Refund confirmation in Ability Mastery. Refunding a node asks you to confirm first, just like buying does — a misclick can't undo a purchase. The full-width Refund button is per-node only; the bulk-refund-track flow lives behind /mmomastery respec for admins.
  • Save toward a mastery node over time (partial contributions). On any unaffordable node, a Contribute max button per cost component deposits as much as your wallet has into the node's running total. Cost chips switch to paid / owed; once everything is funded the BUY button becomes CLAIM. Items can be deposited piecewise. For pick-one (ANY) nodes, the first deposit locks the route until you respec. Respec refunds partial deposits at the same rate as a normal node refund.
  • Stat-sacrifice costs are real. A node can cost permanent Max HP (or Stamina/Mana). Buying it reduces your stat immediately across logins; refunding restores it. The confirm screen shows a before→after preview ("Max Health: 100 → 90"). A sacrifice that would drop you below the configurable safety floor (statSacrifice.minRemaining, default 1) is greyed out. A one-time current-HP cost is labelled "(one-time)" to distinguish it from a permanent Max-HP cut.
  • Six modifier shapes. FLAT (+10 damage), PERCENT (+10%), OVERRIDE (cooldown = 1000ms), ADD_PARAM (inject pierceCount), CONDITIONAL (only at <30% HP, reuses the v0.17 passive-tier HP-range / filter logic), TRIGGER (subscribes the player to a triggered passive — the named ability must exist in ActiveAbilitiesConfig as a passive AbilityDefinition).
  • Configurable respec. Refund a node, whole track, or everything. Refund percentages configurable per node (e.g. 25% on a legendary), per track, or globally (default 50%). Repeatable nodes refund the latest purchase at its scaled cost. Refund buttons show the actual rate ("REFUND (50%)"). Admin override: /mmomastery respec [trackId].
  • Toggle off cleanly. Set enabled: false in either config to disable the system; player balances and owned-node lists are preserved across re-enable. The Mastery tab in every menu auto-hides when the system is disabled or has zero tracks configured. Same for the Currency surfaces.
  • Mastery page tells you why. A locked node lists every reason it's locked, not just the first; multi-prereq nodes show progress ("Prereqs: 1/2"); a tier gated by an earlier tier draws a connector that turns green once unlocked. AND/OR failures collapse to Need one of: A or B so OR groups read distinctly from AND. Currency icon hover shows the currency's name, not the underlying icon item's.
  • Standalone MMOSkillMasteryPack content pack. Mastery tracks, the two starter currencies (Mastery Points, Life Essence), the per-skill mastery-point milestones, and the mastery-themed quests + achievements ship in a separate Hytale content pack you drop into mods/ alongside the plugin. With the pack installed everything works as designed; without it, the Mastery and Currency UI tabs hide and no mastery-point rewards fire — degrades cleanly to a plugin without mastery/currency.
  • 20 default mastery tracks ship in the pack — 11 combat-skill (Swords, Daggers, Polearms, Staves, Axes, Blunt, Unarmed, Archery, Magic, Artillery, Defense), 6 marquee ability (Fireball, Meteor, Whirlwind, Piercing Shot, Shield Slam, Shadowstep), 3 gathering (Mining, Woodcutting, Harvesting). Each track has 3-5 finite identity nodes capped with one infinitely-repeatable Eternal node. Combat-skill Eternals give +0.5% damage per purchase; marquee ability Eternals each buff their own ability (Fireball +1% damage, Shadowstep -1% cooldown, Meteor -1% cooldown + +0.75% damage, etc.); gathering Eternals give +0.5% bonus-drop chance (paramKey=lootMultiplier, additive into the existing skill-tree LUCK roll). Three additional tracks (Fishing, Enchanting, Acrobatics) ship "disabled": true and activate in a future pack release without a plugin update.
  • Earn Mastery Points by leveling. Every 15 levels in any of the 20 skills you now earn 1 Mastery Point, claimable from that skill's rewards, up to the skill's max level. Spend them in Ability Mastery. The milestones are delivered by the pack — turn off the Mastery Points currency (or remove it) and the rewards automatically hide everywhere: rewards screen, unclaimed-glow indicator, claim button.
  • Mastery skill-investment gates. Every track gates T2 nodes at the relevant skill level 40 and T3 capstones at 70 — so Mastery Points alone don't buy upgrades in a skill you've never picked up. Ability-scoped tracks gate on the parent skill (Fireball / Meteor → Magic, Shadowstep → Daggers, Shield Slam → Defense, Piercing Shot → Archery, Whirlwind → Axes).
  • Eternal mastery — infinite, exponential grind. Every default track ends with one Eternal node that has no purchase cap and a cost that grows 10% per buy (50th purchase ≈ 117× base, 100th ≈ 13,780× — self-limiting plateau). Eternals gate behind skill level 92 (the last 8 levels unlock the infinite tail) and cost 1 Mastery Point on top of Life Essence + thematic essence items (Fire / Ice / Lightning / Void / Water / Crystal / Voidheart). MP cost scales with the same 10% ramp — stays at 1 MP for the first 5 buys, ticks to 2 at purchase 6. Combat Eternals start at 350 LE base; marquee abilities range 250-500 LE depending on track (Shadowstep 250, most 300, Meteor 400, Fireball 500); gathering Eternals start at 200 LE. Fireball uses a steeper 1.25× scaling (the most expensive endgame Eternal); Meteor's cooldown Eternal uses soft-capped scaling that plateaus cost at -70% CDR. Per-purchase effects vary per track: combat Eternals give +0.5% damage/buy, Fireball +1% damage/buy, Meteor -1% cooldown + +0.75% damage/buy, Shadowstep -1% cooldown/buy, gathering Eternals +0.5% bonus-drop chance/buy.
  • Identity-node cost curve. Combat + marquee ability tracks use T1 = 600 Life Essence, T2 = 1500, T3 = 4000 (Meteor uniquely has a T4 at 8000 LE). Gathering tracks are lighter at T1 = 500, T2 = 1200, T3 = 3500. Each track is themed (Magic/Staves/Artillery → Fire Essence; Daggers/Shadowstep → Void Essence; Defense/Shield Slam → Water Essence; Mining → Crystal Blue; etc.). Capstones layer 1-3 Voidheart (Hytale's rarest item) on top.
  • Inferno (Fireball capstone) is an "all of the above" gauntlet — requires Life Essence + Fire Essence items + a permanent Max-HP cut simultaneously, showcasing every cost component in one purchase.
  • Magic Mastery L100 capstone: Archmagus. Beyond the Eternal node, Magic has a one-time Archmagus purchase: 30 Mastery Points + 8000 Life Essence + 5 Fire Essence + 5 Voidheart + a permanent -10 Mana sacrifice. Grants +15% damage on all magic abilities. Only Magic has this; other tracks ship the standard combat shape.
  • Defense Mastery is a tank track. T1 Pick-1: Bulwark (+25% Shield Slam i-frame window) vs Charge (+25% Shield Slam dash range). T2 Pick-1: Banner Bearer (+30% Guardian's Call aura radius) vs Swift (-15% Defense ability cooldown). Blood Pact capstone extends Guardian's Call's aura duration +40%. Eternal grants +0.5% Shield Slam i-frame duration per purchase. Every node boosts a specific Defense ability rather than a generic damage/lifesteal stat.
  • Eternal Cataclysm (Meteor) grants both -1% Meteor cooldown and +0.75% Meteor damage per purchase.
  • Shadowstep Mastery T3 capstone: Voidwalk — 12 Mastery Points + 4000 Life Essence + 3 Void Essence + 2 Voidheart + a permanent -10 Stamina sacrifice. Grants -20% Shadowstep cooldown. Required prerequisite for the Shadowstep Eternal, matching every other ability mastery's T3-gates-Eternal pattern.
  • New repeatable quest: Mastery Tithe — auto-accepts at login, 6-hour cooldown. Slay 10 mobs + chop 10 logs → 1 Mastery Point. Endgame-only: requires Total Level 500 + the new Mastery Hoarder achievement (earn 300 Mastery Points lifetime) before it unlocks, so the trickle stays an endgame faucet rather than an early-game boost.
  • New achievement: Mastery Hoarder — 50 points + 5 Mastery Points bonus on claim, awarded for earning 300 Mastery Points lifetime. Counts cumulatively across milestone rewards, quests, and admin grants; refunds don't subtract.
  • Stat Source Breakdown — see exactly which nodes feed each buff. A new STAT SOURCES button on the XP Overview's buff bar opens a per-stat breakdown — one row per skill-tree reward and mastery node feeding your Damage, Crit, Lifesteal, Combo, Block, Fall Reduction, XP Boost, Flat Damage, Flat Lifesteal, or Flat Combo total. Each row shows the source's name, its contribution, and any gating clause ("vs <25% HP", "filter: Fireball"). Master-detail layout: stat rail on the left lists every stat with its total at a glance, right panel shows the source rows. Reachable from the new STATS footer button on the Skill Tree and Mastery pages too; cross-nav buttons close the loop. Landing defaults to ALL skills + ALL stats so you can survey your build before narrowing. Conditional sources stay visible regardless of current HP; mastery rows annotate their weapon scope (e.g. scope: Swords).
  • Pack-author content extensibility. Drop a .zip (or folder) in mods/ with Server/MMOSkillTree/Masteries/, Currencies/, CommandRewards/, MasteryTemplates/, QuestTemplates/, AchievementTemplates/, or CommandRewardTemplates/ JSON to add or replace content without writing any Java. The same extends + params + overrides + extras template DSL works for all four template families. Concrete demo: the mastery pack's per-skill milestone file collapsed from 2,386 lines (240 identical reward objects) to 6 lines using one template + a single new {{ALL_SKILLS}} catch-all that fans the template to every skill. Explicit per-skill entries always win over the catch-all. See CONTENT_PACKS.md.
  • Quests and achievements can declare a feature dependency. A new optional requiresFeatures field on any quest or achievement (or its pack template) hides the entry everywhere when a listed feature is disabled — no UI listing, no event progress, no auto-accept, no claim. Drop a mastery-themed quest into a pack with "requiresFeatures": ["mastery"] and a server with mastery disabled simply never sees it. Known feature ids: mastery, abilities, currency, elite_mobs, xp_tokens, command_rewards, item_requirements, action_requirements. Templates pass the gate down to extending entries; concrete entries can override (set [] to ungate).
  • Reward feedback now has its own sound. Claiming a skill-tree node, picking up a level-up command reward, unlocking an achievement, claiming an achievement / point milestone / quest, a quest becoming ready to claim, leveling up in a skill, and confirming a mastery purchase each play a distinct 3D cue at your character — skill-tree gets a mystical unlock chime, command rewards a coin chink, achievement unlocks a triumphant fanfare, claims a chest-open, quest completions a discovery flourish, ready-to-claim a lighter cue, level-ups a workbench-upgrade chime. Failed mastery buys stay silent.

Fixes

  • Fixed a skill's XP-page card showing the orange "Reward Ready!" indicator for skill-tree rewards that aren't actually shown — for example ability rewards while active abilities are turned off server-wide. The indicator and the "next reward at Lv N" hint now only count rewards the player can really see and claim.
  • Fixed cast-ability items showing an "Active abilities are disabled on this server" message every time they were used when active abilities are turned off. They now behave like ordinary items, matching how bound hotbar keys already behaved.
  • Fixed misconfigured choice tiers — a tier set to require more picks than it offers (e.g. "Pick 3 of 2") — showing a nonsensical header, never turning green, and keeping the "Reward Ready!" indicator lit forever. Such a tier now caps at the number of rewards actually on offer and completes once those are claimed. Correctly-configured multi-pick tiers also keep the indicator lit until *every* pick is taken, instead of clearing after the first.
  • Fixed the Reset a Skill scroll picker listing every configured skill regardless of admin or permission setup. The picker now applies the same filter as the XP screen — skills the admin has disabled via the custom-skills config, and skills the player has no permission to gain XP in, are hidden, so players only see skills they can actually train.
  • Fixed tree-specific triggered passives — Archmage, Coup de Grâce, Skewer, Butcher's Cleaver, Pummel, Drunken Master, Clean Kill, Pyromaniac, Sniper, and Power Strike Mastery — firing regardless of what weapon you were wielding, and forcing their parent tree's XP onto whatever you hit next. For example, Archmage's spell-echo would arm when you hit with a sword and then push Staves XP onto your follow-up swing. Each of these passives now only procs when you're actually holding the matching weapon class, and if a buff is still armed when you weapon-swap mid-window, the follow-up hit's XP follows the weapon you're swinging — not the passive's source tree. Punishing Dodge stays weapon-agnostic on purpose, and the Lv 100 capstones were already gated this way.
  • Fixed several admin and player commands crashing with an internal error when typed in-game by a player (they worked fine from the server console). /mmoboost, /mmoawardxp, /bulksetxp, /mmocurrency, /mmomastery, /mmoclass, /mmoquestadmin, /mmoquestui, /mmofingerprint, /mmopacks, and /mmoachadmin now run reliably whether typed in-game or from the console. /mmoclass list also now shows your current class when run in-game.

Looking for technical details? View full developer changelog for v1.1.0