ars_zero-1.20.1-2.0.2.jar
Curse Maven Snippet
What's new
## Added
- Conjure Arcane Shield, a tier-two Manipulation glyph with a stationary spherical barrier, projectile and melee absorption, durability, a 60-second base lifespan, and full support for Amplify, Extend Time, Split, AOE, Anchor, and Sustain.
- Full-bright layered Arcane Shield visuals, item model, icon, recipe, documentation, and English, Simplified Chinese, and Traditional Chinese localization.
- Staff of Aetherwalk, which creates an AOE phantom-block path under the caster while channeled.
- A rainbow Creative Filial, installed by default on the Creative Spell Staff.
- All seven static staves ship in production: Telekinesis, Aetherwalk, Demonbane, Geometrize, Convergence, Lakes, and Switcheroo.
- Dedicated regression coverage for multiphase casting, static-staff presets, beams, shields, Temporal Context, damage attribution, gravity, and Fire, Water, Ice, Stone, Wind, and Arcane voxel behavior.
## Changed
- All seven static staves are exclusive Lich boss drops. Their crafting recipes and Telekinesis's generic Ars Nouveau dungeon-loot injection were removed.
- A Lich drops one random static staff, with Looting independently adding zero to the Looting level in bonus staffs, up to four total at Looting III.
- Static staff presets now use data version 202 and are rebuilt on old or malformed stacks, while preserving safe player-facing settings.
- Packet protocol version is now `2.0.2-network-2`; mismatched clients and servers are rejected instead of silently decoding incompatible packet data.
- The Necropolis structure, structure set, processors, biome modifiers, and loot configuration have been brought to parity with the stable 1.21.1 implementation.
- The release artifact is named `Ars zero 2.0.2 1.20.1.jar`.
## Fixed
### Multiphase spells and staves
- Staff Begin, Tick, and End phases now advance independently and no longer wait forever for projectile Begin spells to hit a target.
- Empty Begin phases advance into Tick correctly for staves, circlets, and turrets.
- Empty selected staff slots remain empty instead of unexpectedly casting another slot.
- Turret phases use independent cast state, clear completed contexts, and no longer inherit stale runtime power after a world reload.
- Demonbane, Geometrize, Telekinesis, Aetherwalk, Convergence, Lakes, and Switcheroo are rebuilt from their intended presets when created or upgraded.
- Static staff creation actually installs its preset immediately; missing optional glyphs use safe 1.20.1 fallbacks, including Geometrize's fallback path.
- Static boss staffs cannot be altered through forged sound-edit packets.
- Staff displays return their stored item when removed instead of deleting it.
- Staff visuals use the correct model hierarchy, GUI transform, tier bones, preset filials, central source crystal, and stable dye data.
### Beams and Temporal Context
- Beam split origins and AOE beam formation are stable and consistent across player and turret casts.
- Beam's default lifespan is restored to its original five ticks, preventing every Beam-based caster from leaving long-lived beams behind.
- Temporal Context ignores removed targets and resolves each stored entity UUID only once, preventing duplicated falling blocks and drops.
- Beam entities preserve resolver, owner, color, remaining life, maximum life, damage, and turret context across save/load.
- Beam damage and follow-up resolution reject removed or duplicate targets and avoid ordinary invulnerability frames swallowing rapid beam ticks.
### Networking and inventory safety
- Every spell-edit packet validates its target item, exact hand or Curios slot, phase, spell slot, action count, glyph tier, learned-glyph state, casting style, particle data, and numeric bounds on the server.
- Staff slot, casting style, particle, tick-delay, scroll, sound, and parchment updates can no longer mutate a different stack after inventory movement or target the wrong hand.
- Invalid, oversized, non-finite, unregistered, or unauthorized packet values are ignored instead of corrupting item data or destabilizing the server.
- Circlet edits use safe stack transactions and synchronize the exact equipped or temporary stack.
- Geometry move and cancel requests enforce owner, dimension, distance, rate, finite-coordinate, and entity-state checks.
- The obsolete ambiguous staff-slot packet was removed.
### Voxels, claims, and world interaction
- Moving voxels use relative-motion collision detection, preventing small opposing voxels from tunneling through each other between ticks.
- Voxel pairs have a one-tick interaction guard, preventing the same CONTINUE/CONTINUE pair from applying twice, sticking together, or deleting both participants through the inverse result.
- Voxel block traces detect fluids and shape-less occupied blocks such as fire while retaining normal outline collision behavior.
- Wind voxels can hit and push item entities even though vanilla item entities are not projectile-pickable.
- Wind plus Fire explosions originate at the fire block, use the intended strength, and consistently consume the interaction.
- Fire voxels use actual precipitation at their position, so covered blocks and dry biomes no longer trigger false rain behavior.
- Fire and Water voxel periodic environmental effects no longer execute immediately on their spawn tick.
- Water, Fire, Ice, Stone, Blight, and Wind world mutations respect protection checks, including secondary and adjacent target blocks.
- Claim checks without a live caster use a dedicated fake player instead of borrowing the first online player and their permissions.
- Voxel damage is attributed to its real caster when available and remains safe when the caster is offline or unavailable.
- Gravity suppression tracks only affected entities, preserves their original gravity flag, expires cleanly, and survives the intended save/load paths.
- Voxel NBT now preserves size, lifetime, freeze state, gravity state, spawner ownership/source, caster, and spell resolver data with bounded values.
- Spawner-owned voxels reconnect to their source after reload and self-clean if that source is gone.
### Geometry, persistence, and performance
- Geometry terrain saves its full casting context, original block states, work queues, ownership, and progress, then deterministically resumes after a reload.
- Geometry NBT and network inputs clamp sizes, durations, speeds, queue counts, coordinates, and other numeric values to prevent invalid data, hangs, and memory spikes.
- Geometry and voxel block changes consistently honor claims and immutable blocks before every mutation.
- Large explosions use bounded incremental block processing instead of attempting all block work in one server tick.
- Ossuary reservations discard stale entity UUIDs, remain bounded, release correctly on removal, and charge mana transactionally.
### Effects and compatibility
- Anchor cleanup is permission-safe across chunk boundaries and cannot leave detached state behind when the stored owner, level, or context is missing.
- Anchor damage handling works through the actual multiphase spell context without null caster crashes.
- Particle-timeline access is safe on dedicated servers.
- Optional Ars Elemental ingredients resolve through a safe item tag, invalid 1.21-only glyph IDs map to their 1.20 equivalents, and absent optional glyphs no longer break static staff initialization.
- The Blight Archwood Leaves loot predicate uses the 1.20.1 schema so loot data loads cleanly.
- The Soulbound item tag uses the correct plural tag directory.
### World generation, loot, and data
- Necropolis loot composite entries now use groups, allowing every weighted child to participate instead of always selecting the first alternative.
- Duplicate Necropolis spawn injection was removed.
- Missing block loot tables were added, and slab loot now returns the correct quantity.
- All static staff entries are registered in production and remain available through the Lich staff item tag.
- Blight Forest frequency reads a startup-safe common configuration, and TerraBlender is declared as a required dependency.
- English, Simplified Chinese, and Traditional Chinese now contain the same complete 386-key localization set; broken encoding and missing strings were repaired.
- All 340 JSON resources parse successfully, and invalid or version-mismatched data files found during the audit were corrected.
## Stability and validation
- The enabled Forge GameTest suite now performs real assertions rather than unconditional success shortcuts.
- Test structures are valid compressed NBT, test players use Forge's supported fake-player implementation, and failures include their actual exception details.
- The complete 73-test server suite passes together, covering the concurrency and persistence paths most likely to affect multiplayer servers.
This mod has no additional files

