evilcursefix

Quick rating

Community listing page, reviews here may not be monitored by the author.

evilcursefix

No reviews yet

Defensive crash and recursion fixes for the CLOSING SONG EZHOU 1.3.1+ modpack.

Mod Loaders
Minecraft

About

Description

# Evil Curse Fix (evilcursefix)

**Mod Summary**

A defensive patch mod for the modpack "CLOSING SONG EZHOU 1.3.1" (Minecraft 1.20.1 / Forge 47.4.0).
It fixes crash loops, null-pointer failures, recursive event re-entry and version-skew
incompatibilities between the modpack's third-party mods — without modifying any of them.

## What it does

All fixes are applied at runtime through Mixin injection. No third-party mod file is
ever changed; removing this mod fully reverts every patch.

| Area | Fixes |
|---|---|
| **Fatal crashes** | EventBus error-logging path (log4j `MessageSupplier` classloading conflict), Apotheosis loot conversion crashes on curios items with no affix pool |
| **Recursion / stack overflow** | Reflective-damage loops between tcc / Spudiversity (5 handlers) / Goety robes / RankHandler / SlashBlade `doSlash` / YakumoBlade `Highfrequency` / time_slow armor piercing — each guarded with thread-local re-entrancy checks |
| **Null-pointer crashes** | Vanilla & mod villager trades, SlashBlade `EntityDrive` save, Goety `Owned.isAlliedTo(null)`, AttributeMap missing-attribute-supplier accessors, empty-player GUI/LightTexture rendering |
| **Version-skew APIs** | traveloptics ↔ Cataclysm laser constructor & ring particle data, maid spell ↔ Goety `WandUtil.getStats`, Virtual Witch Arrangement learn-spell packets |
| **Concurrency** | flame_chase_artifacts attribute-map `ConcurrentModificationException` guard |
| **Performance** | curios `TagKey` intern-storm cache (lock-free), cached reflective method handles on damage hot paths, re-entrancy guards that stop duplicate damage chains |
| **Diagnostics** | Built-in watchdog thread: 60 s status summaries (memory / TPS / FPS) and automatic full thread-stack dumps when the server or render thread stalls ≥ 30 s; `LivingHurtEvent` latency probe with per-30 s stats and slow-event stack traces |

## Requirements

- Minecraft 1.20.1, Forge 47+
- All third-party mod targets are **optional**: if a target mod is absent, its patch is
  silently skipped (a WARN is logged) and everything else keeps working.

## Installation

1. Put `evilcursefix-<version>.jar` into the instance's `mods/` folder.
2. If an older `ezfix-*.jar` is present, remove it (same functionality, new mod id).
3. Launch the game. Watch for `[ezfix-monitor]` lines in `latest.log` to confirm the
   watchdog is active.

## File / artifact naming

- Mod id: `evilcursefix`
- Display name: `Evil Curse Fix`
- Jar: `evilcursefix-<version>.jar`
- Internal Java packages keep the historical `com.example.ezfix` namespace
  (implementation detail only; invisible to the end user).