discai-1.5.jar
Curse Maven Snippet
What's new
# DISCAI 1.5 CHANGELOG
## DiscAI Mod (Forge 1.20.1)
### Version 1.5 — May 28, 2026
---
### Added
#### Reactor unit (`discai:reactor`)
- A block activated by **Shift + Right Click** triggers the destruction of an area of **256×256 blocks** (full column from Y=0 to Y=255).
- Destruction is performed in batches (**200 blocks per tick**) to reduce server load.
- Progress is displayed in chat; a completion message is sent when finished.
- Supports item and block models (texture, JSON model).
#### Crafting recipe
- JSON recipe: craft a reactor in a 3×3 workbench from obsidian, diamonds, and a netherite ingot.
- File: `data/discai/recipes/reactor.json`
#### Automatic reactor structure generation (optional)
- When creating a new world (Overworld only), with a **1% chance** the structure `my_reactor.nbt` is placed in a random location.
- The structure is saved via a Structure Block and placed in `data/discai/structures/`.
- Checks for a solid block under the placement location (prevents floating structures).
- One‑time generation attempt per world (using `SavedData`).
- Auto‑spawn is controlled via **config** and **commands** (see below).
#### Configuration (`discai-common.toml`)
- New section `[reactor_autospawn]`:
- `autoReactorEnabled = false` – enable/disable reactor auto‑spawn in new worlds.
- `autoReactorChancePercent = 1` – chance of occurrence (0–100%).
- All other mod parameters (fear, screamers, tunnels, entities, etc.) are also configurable.
#### Commands (operator rights required)
- `/discai reactor autospawn on|off|default` – override auto‑spawn for the current world.
- `/discai reactor spawn` – instantly place the reactor structure at the player's position.
- `/discai reactor status` – show current status (config or override).
- `/discai reactor stop` – **stop an ongoing reactor destruction** (prevents world lag).
#### Information message for old worlds
- When an existing world is loaded with auto‑spawn disabled, operators receive a one‑time message:
> "Use `/discai reactor autospawn on` or change `autoReactorEnabled = true` in the config."
---
### Optimized / Fixed
#### Performance & Lag Issues
- **Removed heavy processing from `ChunkEvent.Load`** in multiple systems:
- `MineshaftStructureGenerator` – now generates structures **only on block place**, no longer on chunk load.
- `CraterSpawner` – craters are generated **only around players every 30 seconds** (instead of every loaded chunk).
- `VanillaMineshaftWatcherSpawner` – watchers are spawned **only around players every 30 seconds**.
- These changes eliminate the massive lag spikes (up to 220 seconds) that occurred when loading many chunks.
#### Teleportation of horror mobs (SpiderEntity)
- Rewritten `EntityTeleportHandler` to **prevent mobs from getting stuck inside solid blocks**:
- Searches for a safe position (solid ground below, air for feet and head).
- Falls back to teleporting directly onto the player if no safe spot is found.
- Teleportation now works reliably every 2 seconds when the player's fear > 50 and the mob is farther than 20 blocks.
#### Reactor Destruction
- Added command `/discai reactor stop` to immediately halt the destruction process.
- Reduced default `maxPerTick` from 1000 to 200 blocks for smoother performance.
---
### Known Limitations
- Destruction of **16 million blocks** (256×256×256) can still take up to 5–10 minutes and may cause temporary lag.
*Recommendation:* Reduce `RADIUS` in `ReactorBlock.java` to 32–48 for smaller areas.
- Auto‑spawn works only in the **Overworld**.
- Operator rights (`hasPermissions(2)`) are required to activate the reactor or use most commands.
---
### Planned for Future Versions
- Configurable destruction radius, height, and speed.
- Auto‑spawn support for Nether and End.
- Async crater carving to avoid any freeze.
---
### Previous Versions (before 2026-05-28)
The basic fear system, screamers, tunnel generation, random doors, horror entities, and player data collection (IP, geolocation, hostname) were implemented earlier and remain unchanged in this update.
---
**Note for players with old worlds:**
Reactor auto‑spawn is **disabled by default** to protect your existing builds.
To enable it, use `/discai reactor autospawn on` or set `autoReactorEnabled = true` in `discai-common.toml`.
This mod has no additional files

