Skip to content
evilcursefix

Quick rating

Community listing page, reviews 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).