This is a pure compatibility patch mod. It adds no new gameplay content, items, mobs, weapons, spells, or mechanics.
Its purpose is to keep T.O Magic 'n Extras (Traveloptics) and several related spell mods working correctly with newer versions of Cataclysm and AzureLib by restoring removed classes, adapting changed APIs, repairing broken Mixin targets, and providing runtime compatibility bridges.
Fixes traveloptics_cataclysm_compat crashes caused by Cataclysm 3.31 removing or renaming classes and particle data types.
Fixes NoClassDefFoundError for removed particle data classes such as:
LightningParticle$OrbData
CircleLightningParticle$CircleData
Custom_Poof_Particle$PoofData
LightTrailParticle$OrbData
Lightning_Zap_Particle$ZapData
Not_Spin_TrailParticle$NSTData
RingParticle$RingData
RoarParticle$RoarData
StormParticle$OrbData
Provides compatibility implementations for the removed particle option data classes and converts them to the real Cataclysm 3.31 Options.* particle records at runtime.
Supports synchronization of particle parameters from server to client.
Fixes renamed classes:
Dungeon_Eye / DungeonEyeItem → DungeonEyeItem
Boltstrike_Entity → Bolt_strike_Entity
Provides compatibility for removed CMConfig values:
HarbingerLightFire
HarbingerHealingMultiplier
Fixes the ModParticle.SANDSTORM → ModParticle.STORM field rename.
Fixes the DeadKingAnimatedWarlockAttackGoal package relocation in Iron's Spells 'n Spellbooks 3.16+.
Removes obsolete Traveloptics entity type references from its entity tags:
spectral_blink_blacklist
aerial_collapse_dr
element_fire
These fixes allow Traveloptics features such as its spell effects, particles, entities, and Cataclysm integrations to continue functioning with Cataclysm 3.31+.
Fixes a client-side Mixin injection failure in SomakeSpells.
SomakeSpells' RendererAltarOfFireMixin redirects a CMRenderTypes.getGlowingEffect(...) call that existed in older Cataclysm versions. The corresponding glow-layer call was removed in Cataclysm 3.31, causing the Mixin to fail during client initialization.
Restores the required glow-layer call inside RendererAltar_of_Fire#render.
Places the compatibility call after the base model pass and before renderFlamePart.
Restores the target invocation required by SomakeSpells' @Redirect.
The compatibility glow layer is only enabled when SomakeSpells is installed.
Without SomakeSpells, Cataclysm 3.31 retains its native altar rendering.
Fixes server crashes caused by spell projectiles whose original caster has already disappeared.
Several Legendary Spellbooks projectiles can remain alive after their caster dies or unloads. Their getOwner() call may then return null, which was passed directly to AbstractSpell.getDamageSource(...).
Affected projectiles include:
Soul Trident
Annihilation Beam
Poison Wave
Annihilation Arrow
Spell Bomb
Spell Cloud
Annihilation Bomb
Fire Pillar
The compatibility patch changes the behavior to:
Owner exists → use the original owner
Owner is null → use the projectile itself as the damage source
Normal behavior is unchanged whenever the original owner still exists.
This prevents NullPointerException crashes during projectile ticking after the caster has disappeared.
Cataclysm: Spellbooks 1.2.5 was compiled against older Cataclysm APIs and references several classes, fields, and constructors that were removed or changed in Cataclysm 3.31.
Provides compatibility for the removed:
LightTrailParticle$OrbData
StormParticle$OrbData
TrackLightningParticle$OrbData
RingParticle$RingData
The client-side compatibility bridge converts the legacy particle data into the corresponding Cataclysm 3.31 Options.* records.
This covers particle effects used by features including:
Freezing / Molten Bullets
Parting Shot
Gravitation Pull
Thoth's Witness
King's Wrath
Cursed Frenzy
Mechanical Flight Armor
Restores the removed:
CMConfig.Armor_Infinity_Durability
field for armor and Murasama durability handling.
Redirects the removed:
Ancient_Remnant_Rework_Renderer
reference to the Cataclysm 3.31 renderer:
Ancient_Remnant_Renderer
This prevents client-side renderer registration crashes involving the Phantom Ancient Remnant.
Cataclysm 3.31 changed the Wither_Missile_Entity velocity constructor.
The old velocity parameters used by AerialAssaultSpell are converted into the new Vec3 format through a compatibility factory.
Fixes compatibility problems caused by the AzureLib 3.1 package and API migration.
Cataclysm: Spellbooks 1.2.5 references AzureLib 3.0.x classes under:
mod.azure.azurelib.rewrite.*
AzureLib 3.1.x removed the rewrite package and moved these classes to:
mod.azure.azurelib.*
The compatibility layer updates AzureLib references across 38 classes, including:
Armor renderers
Item renderers
Animation classes
Registration classes
Method descriptors
Field references
Stack frames
Generic signatures
Inner classes
invokedynamic / bootstrap method handles
Additional API changes are also handled:
AzArmorRenderer constructor:
AzRendererConfig
→ AzArmorRendererConfig
RenderUtils:
util.RenderUtils
→ util.client.RenderUtils
CoreGeoBone
→ AzBone
for matchModelPartRot
This prevents both startup crashes and delayed client crashes that would otherwise occur when affected armor, items, or animations are first rendered.
This mod does not modify the original mod JAR files.
Instead, it uses runtime bytecode transformations and dedicated compatibility classes to adapt older mods to newer APIs.
No new gameplay content
No new items or blocks
No new mobs
No new spells
No balance changes
No changes to the original mod JARs
Optional compatibility targets are only activated when the corresponding mod/classes are present
Client-only particle logic is isolated from dedicated-server code
Particle data can be synchronized between server and client
Compatibility classes are kept in this mod's own package to avoid package conflicts and JPMS split-package issues
Minecraft: 1.20.1
Forge: 47.4.x
Cataclysm: 3.31+
T.O Magic 'n Extras / Traveloptics: 6.3.0+
Iron's Spells 'n Spellbooks: 3.16+
AzureLib: 3.1.x