Runic Skills 2.0.2 (Forge 1.20.1)
Curse Maven Snippet
What's new
Runic Skills 2.0.2
Powers you can actually see, item locks that stop grabbing the wrong items, and commands that no longer fight other mods for their own names.
Update both sides. Network protocol moved from 10 to 11 in this release. A 2.0.0 client can't join a 2.0.2 server or vice versa — you'll get a clear mismatch message at connect rather than strange behavior later. (2.0.1 and 2.0.2 pair freely with each other.)
Powers you can see
Every Power has its own icon. All seventy-five previously shared one placeholder square, so the Powers panel couldn't tell you anything about a Power until you read its name. Icons are generated directly from the Power registry, so tier and school in the art always match tier and school in the code.
Procs happen where they happen. Previously, a Power triggering spawned eight randomly placed vanilla enchantment particles around you, regardless of which Power fired or where. Now a damage amplifier brands the mob it hit; a chain detonation draws at each corpse. Procs are also visible to everyone nearby, not just the caster.
A visual grammar, not just more particles. Tier is the glyph shape — broken ring, closed ring, triple ring — along with count and duration, so Mark, Seal and Crown are distinguishable in grayscale. School is color, motion and sound. Nothing depends on hue alone, so a color-vision deficiency, a grayscale display or a muted client each costs you one channel out of three.
Effects are capped, not best-effort. Repeat procs coalesce into a counter on an existing HUD card instead of stacking up, and a server-side throttle collapses repeats before they're ever sent. A Power that keys off every hit won't multiply by the size of the crowd.
Accessibility settings, with safe defaults. powerVfxQuality (OFF / REDUCED / FULL), powerHudFeedback, powerProcSounds, highContrastRunes and a particle multiplier. Screen shake and flashes default to off — both are common migraine and photosensitivity triggers, and neither carries information the glyph silhouette and HUD card don't already give you.
The Powers panel is reachable. A button on the Skills screen opens it. Rows show each Power's icon, pulse when your Power fires, and now tell you why a Power can't be equipped instead of just refusing to light up. The keybind ships unbound — no default can be picked safely without testing against a real pack's controls.
For pack developers: PowerProcEvent is public API, fired after a Power's behavior commits. The built-in presentation is just its first subscriber.
Fixes
Item locks stopped gating unrelated items. Keyword matching was bare substring, so bow claimed bowls and rainbows, axe claimed every waxed_* block, and rod claimed fishing and lightning rods. Matching is now on _-delimited segments. If your pack disabled a mod's locks entirely to work around this, you can re-enable them — and the new disabledDiscoveredLockItems option lets you opt out one item at a time. No save data is affected.
Commands are namespaced. All nine command literals — /skills, /titles, /powers, /respec among them — were generic top-level words, and whichever mod registered last won the name. A /runicskills <sub> root now mirrors every one of them with the same permissions. Short forms are unchanged.
Inventory tab strip no longer switches tabs on its own. Closing the inventory with a click could queue a tab switch that fired in the next screen to draw the strip. This was a mixin conflict — with Highlighter installed, our close handler was silently dropped at startup. It now uses a Forge screen event that composes with other mods, and the startup warning is gone.
Notices and skill-lock overlays lasted their full duration. Both were counting down on two tick phases, so everything displayed for half as long as configured.
Level-up cancellation from KubeJS is authoritative. The veto was fired from the client's Skills screen click handler, so a script cancelling it only blocked that one path — a command or hand-sent packet went straight past. It now fires server-side. The compatibility shim for the old behavior will be removed in 2.1.0.
Also fixed: leaked blend state that bled into whatever rendered after an overlay, unbounded growth of per-player Power runtime state over a session, and two silent failures (a failed mana grant in the Iron's Spells compat layer, and Angler's Luck when its upstream loot table is renamed) that now log.
A core tooltip was broken in all sixteen non-English locales. tooltip.skill.level_up still used three-argument wording after the call site moved to two, so those players saw a literal %s. Fixed and switched to indexed placeholders so languages that order arguments differently can.
Known limitations
- The VFX and accessibility test matrix hasn't been run on a real client yet. The presentation path is compile- and logic-verified and the caps and validation are covered by construction, but the grayscale tier-recognition check and the proc-storm budget test still need a live run. Treat the rendering as unverified.
- Proc sounds are vanilla sound events selected per tier and school, not the bespoke layered stems the design calls for. Every school is audibly distinct and every event carries a translated subtitle, so the accessibility requirement is met — but it's a substitution.
- Non-English locales are roughly a quarter translated. This release fixes the one key that was actively broken and drops ten stale ones; the remaining gap is declared and guarded against regression, not closed.
- The nineteen Iron's Spells Powers remain inert — the integration matrix that would validate them still hasn't run. Unchanged from 2.0.0.
This mod has no additional files

