Runic Races 1.6.0 (Forge 1.20.1)
Curse Maven Snippet
What's new
[1.6.0] — 2026-07-06 — Every Ability Reads
A full VFX overhaul: every active plays out in staged beats, every passive with a real moment shows it, and every severe weakness warns you the instant it starts biting. No network protocol change — protocol stays 2; 1.6.0 clients and servers pair freely with 1.5.0's packets.
Added
- Staged signature presentation. Sfx/Vfx specs take
.delayed(n)beats (anticipation → impact → settle), run by a server-side scheduler that tracks the caster's live position — a strafing caster keeps their effect, and Sprite's re-appear pop lands at the blink destination. Two new emission shapes:CONE(aimed along the live look vector) andBURST_UP(fountain column). - Five new identity particles —
mirror_shard,moon_sliver,rock_chip,pollen_mote,gale_streak— and six curated sound events (pounce.strike,mirror.shatter,moon.veil,breath.inhale,sizzle.sunlight,warn.kindling), all vanilla-curated and resource-pack swappable. - Passive proc cues: Primian's adaptation glint on learning a new place, Valen's shoulder-check thuds with iron dust along the impact line, Zombie's deathless flesh shrugs off poison/hunger in a puff of grave-ash, Arachnid's web trembles when the sense-pulse marks prey, and drake hides shimmer while their element immunity is actively working.
- Weakness onset cues (bannerless — the notification system keeps the words): grave-kin sear when the sun finds them while Deep One/Skeleton get a silent glare instead; Dryad's Kindling flares embers, panicked leaves, and heat-shimmer the moment they ignite; frost-kin thaw hiss; Feline's underwater yowl; Volt Drake's short-circuit; dry-land crack for Sea Serpen/Nymph; cold-iron quench for Faerie.
vfx.signatureParticleDensityserver config (0–2) scales signature particles with per-shape floors so a turned-down ring still reads as a ring.- Tests:
SignatureTierTest(every recipe in its Minor/Major/Mythic band, delays clamped, instant feedback guaranteed),BeatQueueTest(scheduler core), andWeaknessCueCoverageTest(cue registry integrity, bannerless enforcement).
Changed
- All 37 actives restaged. Highlights: Blood Elf's frenzy beats twice (blood drawn in, then erupting); Ice Elf gathers inward before the nova bursts; Deep One's tremor and Canine's howl roll out as expanding wavefronts; Changeling forms an orbiting mirror that shatters on the shift; Feline Pounce is now a bespoke Major with claw streaks raking down the lunge line.
- Fire Drake's breath is actual fire — flame and embers replace the purple vanilla
dragon_breathin both the signature and the cone; Terra Drake's breath spits real stone chips instead of crit sparks; every breath now opens with an inhale layer and carries an element-matched screen cue (volt gets a white lightning strobe). - Faerie and Sprite wing flaps de-duplicated — faerie flaps shed fae dust, sprite keeps the end-rod shimmer.
- Fragility procs moved from hand-rolled handler code into bannerless signature-registry entries behind a shared debounce channel (same sounds and sparks, one source of truth).
Fixed
- Kitsune's foxfire renders as actual foxfire — a dedicated flicker-and-flare behavior replaces the soul-wisp alias that made it look like generic undead ambience.
venom_dripandbone_chipidentity particles finally appear in signature recipes (Serpen's shed skin, Skeleton's conscription) instead of existing only as proc dust.- Dead state runes removed: BEAST_SURGE and REGROWTH_SUPPRESSED had textures and HUD definitions but no server-side setter — they could never light.
[1.5.0] — 2026-07-05 — Full-Audit Remediation
A deep audit of the codebase, datapack, integrations, balance, docs, and tests — and the fixes that came out of it. Network protocol bumps to 2: update client and server together.
Fixed
- Wings render again for all winged races (Avian, Sprite, Faerie, Wind Wyrm, and the
four drakes). Since the two-layer selection,
RaceHelpercould resolve the family origin (family_bestialetc.) instead of the race — origin-map iteration order is undefined — which silently disabled everything race-keyed: wings, Pehkui scale, ambience, HUD icons, and integrations. Race resolution now reads therunic_races:racelayer explicitly. - Magi's Arcane Overflow works on standalone installs. Under the default fail-closed
resource gating, the 30-mana activation gate read 0 mana without Iron's Spellbooks —
the signature active was permanently dead, silently. A new
runic_races:resource_availablecondition lets the shipped powers apply resource gates only when the backing mod is actually present; a refused cast now shows a red banner and no longer consumes the cooldown. - Flap packets are rejected unless actually gliding. The old guard accepted flaps from any airborne moment, letting a modified client chain free vertical boosts without wings deployed. The legit client only flaps mid-glide; the server now enforces it.
- Breath weapons and offensive AoE spare allies and pets. A drake's cone hit teammates
and owned wolves; the shared hostility heuristic also debuffed your own pet while it
defended you. New
util/Hostilityis the single source of truth: teams, PvP-protected players, and owned/ally-owned tamed animals are never hit; the aggro clause narrows to mobs targeting the caster. Breath still hits neutral and passive mobs — aim is the counterplay. - Feather's max-stamina resets when a player no longer has a race (all other integrations already restored their baselines). Guarded by a persisted marker so packs that customize feather maxima are never stomped.
- Datapack-stacked powers no longer overwrite each other's attribute modifiers —
scaling_attributeandbiome_affinityderive modifier UUIDs from their config instead of sharing fixed constants.
Added
- "< Back" button on the race selection screen (top-left). Players who confirmed a heritage can return to the family screen and pick a different one; the server un-chooses the family layer and Origins re-prompts from the top. Guarded server-side so a finished character can't replay it to reset.
- Wing flaps cost feathers when Feather's Mod is present (1 for small wings, 2 for the
Wind Wyrm;
flight.flapStaminaCostto disable). Exhausted wings refuse with a red banner and the deny sound — never a burned cooldown. Standalone flight is unchanged. - Foreign-origins warning: when clean two-layer mode hides origins registered by other Origins add-ons or datapacks, the server log now names every hidden origin and the exact config remedy at startup.
- Learning-mode hints:
show_bannergains an optionallearning_hint— one explanatory chat line per player (e.g. the first time a Magi is mana-blocked), gated bynotifications.learningMode. - CI: GitHub Actions workflow compiles and runs the full test suite on every push;
ci/fetch-deps.shbootstraps the compile-only jars from Modrinth (Apoli/Calio extracted from the Origins all-jar).
Balance
- Sprite: speed +30% → +20%, attack speed +15% → +10% (flight, tiny hitbox, and Phase Shift untouched).
- Faerie: ground speed +20% → +15%.
- Feline: Nine Lives cadence 10 → 15 minutes, and a spent life leaves 5s of Weakness II.
- Fire Drake: breath 7 → 6 damage; cold/wet vulnerability +30% → +35% (fire immunity stays — the sharpened opposite element is the counterplay).
- Changeling: Mirror Shift 40s → 25s; attack penalty −10% → −5%.
- Canine: hunger drain +40% → +25%; taigas now count as pack home ground.
- Zombie: healing penalty −25% → −15% (sun decay unchanged — it's the identity).
- Valen: the twin slow softens to −8% speed / −8% attack speed.
- Iron One: integration penalties only — Iron's spell power −15% → −10%, Ars cost +15% → +10%; the standalone kit is untouched.
- Kitsune: weakness re-shaped from a High Elf twin (flat physical vulnerability) to +20% damage taken under the open daytime sky — a night-predator pattern.
- Volt Drake: new storm-charged rider — an extra +10% attack speed while in the rain, so the lightning identity has a moment.
- Dead
damage_penalty: 0.0no-op fields removed from seven biome-affinity powers.
Diagnostics & tests
- Five new regression suites: resource-gate lint (no active may dead-gate on an integration-backed condition), network append-only + protocol fixture, flap-guard scan, hostility-heuristic consolidation, version-consistency (docs must name the built version), plus a zero-value no-op lint in the power JSON linter.
All Relations
- All Relations
- Embedded Library
- Optional Dependency
- Required Dependency
- Tool
- Incompatible
- Include

