File Details
Runic Races 1.0.2 (Forge 1.20.1)
- R
- Apr 19, 2026
- 642.63 KB
- 507
- 1.20.1
- Forge
File Name
runic_races-1.0.2.jar
Supported Versions
- 1.20.1
Curse Maven Snippet
[1.0.2] - 2026-04-17
Bug Fixes
- Runecraft crash at startup -- Deploying 1.0.1 to the Runecraft instance crashed Forge during the overlay render phase with
NoClassDefFoundError: com/otectus/spells_n_gods/compat/SpellsNGodsEvents$OfferingEvent. The sibling mod was renamed from "Spells 'n Gods" to "Runic Gods" (java packagecom.otectus.spells_n_gods→com.otectus.runic_gods, API classSpellsNGodsAPI→RunicGodsAPI, events classSpellsNGodsEvents→RunicGodsEvents). OurModList.isLoaded("runic_gods")gate still passed because the mod id was unchanged, so we instantiated the integration — but Forge'sEventBus#registerintrospects method parameter types, which failed to resolve the stale FQCN. Ported the integration to the new namespace; API method signatures are identical so the port was a pure rename. Dependency updated:Dependencies/spells_n_gods-0.1.0.jar→runic_gods-1.0.1.jar. Integration renamed:com.otectus.runic_races.integration.spellsngods.SpellsNGodsIntegration→com.otectus.runic_races.integration.runicgods.RunicGodsIntegration.
Hardening
- IntegrationManager now catches
Throwable, notException--NoClassDefFoundError/LinkageErrorareError, notException, so a single renamed optional-mod class would bypass the per-integration guard and crash the entire mod load. Widening the catch means one failed integration is logged and skipped while the others still load. Three other integrations (IronsSpellsIntegration,ArsNouveauIntegration,SpellsNGodsIntegration/nowRunicGodsIntegration) reference optional-mod classes in their@SubscribeEventmethod signatures and all had the same latent crash vector — now defended against.
[1.0.1] - 2026-04-17
New Features
- Back to Heritage button in race picker -- Once a family/heritage is selected, the race-picker screen now shows a "← Back to Heritage" button in the top-left corner. Clicking it clears the family origin server-side and re-opens Origins' picker on the family carousel, letting players change heritage without admin commands.
Networking
- New
C2SReturnToFamilyPacket(client → server). Server resets therunic_races:familylayer's origin to Origins'EMPTYsentinel viaIOriginContainer.setOrigin(familyLayer, EMPTY)-- that routes throughsetOriginInternal, which revokes the family's Apoli powers, clearshadAllOrigins, and syncs. Server then dispatches Origins' ownS2COpenOriginScreenback to the player viaOriginsCommon.CHANNELso the picker re-opens on the family carousel.
Bug Fixes
- Back-to-Heritage click did nothing -- First cut tried to remove the family entry by iterating
IOriginContainer.getOrigins()and callingIterator.remove(). That map isImmutableMap.copyOf(layers), so the mutation evaporated and the server-side family origin was never cleared. Switched tosetOrigin(familyLayer, EMPTY).