BetterStructures-FAWE

⭐ — (4 endorsements) 📥 535 downloads 📌 v2.1.2-FAWE.8 📅 2/7/2026
🟡 Updated this year

By yeahnangua · adventure

⬇ Download Mod Source: Modrinth ↗ 📅 Updated: 2/24/2026 📅 Created: 2/7/2026

🔍 Analysis

  • 👍 0.7% endorsement rate
  • 🏆 #190 of 351 adventure mods in this game by downloads

📋 About This Mod

✅ Normal blocks, NBT blocks (spawners, dispensers, etc.), and bedrock replacement are all handled on FAWE async threads
✅ The `WorkloadRunnable` frame-splitting system and NMS fast paths have been removed
✅ Entity spawning and chest filling are deferred back to the main thread after FAWE completes
✅ The `percentageOfTickUsedForPasting` config option is now obsolete

# BetterStructures-FAWE # (https://github.com/yeahnangua/BetterStructures-FAWE/blob/master/README.zh-CN.md) A performance-focused fork of (https://github.com/MagmaGuy/BetterStructures), deeply adapted for the **Paper + FastAsyncWorldEdit (FAWE) + Terra** ecosystem. > Original plugin: (https://github.com/MagmaGuy/BetterStructures) | (https://modrinth.com/plugin/betterstructures) --- ## Key Differences from Upstream ### 1. FAWE Async Pasting (Zero Main-Thread Blocking) The original plugin uses `WorkloadRunnable` to place blocks on the main thread in frame-split batches, which still causes TPS drops for large structures. This fork migrates all block pasting to FAWE asynchronous `EditSession`: - Normal blocks, NBT blocks (spawners, dispensers, etc.), and bedrock replacement are all handled on FAWE async threads - The `WorkloadRunnable` frame-splitting system and NMS fast paths have been removed - Entity spawning and chest filling are deferred back to the main thread after FAWE completes - The `percentageOfTickUsedForPasting` config option is now obsolete **Dependency change**: Hard dependency changed from `WorldEdit` to `FastAsyncWorldEdit`. The plugin will automatically disable itself if FAWE is not detected on startup. ### 2. Terra / FAWE Compatibility Resolves chunk state issues when using async world generators like Terra with FAWE: - Added `ChunkValidationUtil`: samples multiple positions to detect whether a chunk is fully generated, preventing structures from being placed on empty chunks - Uses Paper API `getChunkAtAsync` for async chunk loading, with `PluginChunkTicket` to keep chunks loaded during pasting - All world block access operations ensure chunks are loaded into memory first ### 3. PersistentDataContainer Chunk Marking The original plugin relies on `ChunkLoadEvent.isNewChunk()` to identify new chunks, but after a server restart, previously generated but unmarked chunks get scanned again. This fork uses Bukkit `PersistentDataContainer` to persistently mark chunks: - Processed chunks are tagged with `betterstructures:chunk_processed` - No duplicate scanning of already-processed chunks after restart ### 4. Structure Location Persistence Added `StructureLocationManager` and `StructureLocationData` to persist all generated structure locations to YAML files: - Each world is stored independently under `structure_locations/` - Records structure coordinates, type, schematic name, and bounding box dimensions - In-memory cache with automatic dirty-data saving every minute - Provides the data foundation for the mob tracking system ### 5. Mob Tracking & Respawn System Added `MobTrackingManager` and `MobSpawnConfig` for tracking and respawning mobs within structures: - Records mob spawn configurations (position, type) for each structure - Supports Vanilla / EliteMobs / MythicMobs mob types - Spatial index (world-chunk) for fast nearby structure lookups - Triggers mob respawn checks when players approach - Fires `StructureClearedEvent` when all mobs in a structure are killed ### 6. Chinese Localization All user-facing logs, command feedback, and menu text have been translated to Chinese across 27 files. --- ## Requirements | Component | Requirement | |-----------|-------------| | Minecraft | 1.14+ (1.21+ recommended) | | Server | Paper (or forks like Purpur) | | Java | 21+ | | **FastAsyncWorldEdit** | **Required** (vanilla WorldEdit is not supported) | ### Optional Dependencies - EliteMobs - Custom bosses - MythicMobs - Custom mobs - WorldGuard - Region protection - Terra / Terralith / Iris / TerraformGenerator - Custom world generation ## License GPL-3.0, same as upstream. ## Credits - Original author: (https://github.com/MagmaGuy) - Original repository: https://github.com/MagmaGuy/BetterStructures - Modrinth: https://modrinth.com/plugin/betterstructures

# BetterStructures-FAWE

# [中文](https://github.com/yeahnangua/BetterStructures-FAWE/blob/master/README.zh-CN.md)

A performance-focused fork of (https://github.com/MagmaGuy/BetterStructures), deeply adapted for the Paper + FastAsyncWorldEdit (FAWE) + Terra ecosystem.

> Original plugin: (https://github.com/MagmaGuy/BetterStructures) | (https://modrinth.com/plugin/betterstructures)

## Key Differences from Upstream

### 1. FAWE Async Pasting (Zero Main-Thread Blocking)

The original plugin uses `WorkloadRunnable` to place blocks on the main thread in frame-split batches, which still causes TPS drops for large structures. This fork migrates all block pasting to FAWE asynchronous `EditSession`:

  • Normal blocks, NBT blocks (spawners, dispensers, etc.), and bedrock replacement are all handled on FAWE async threads
  • The `WorkloadRunnable` frame-splitting system and NMS fast paths have been removed
  • Entity spawning and chest filling are deferred back to the main thread after FAWE completes
  • The `percentageOfTickUsedForPasting` config option is now obsolete

Dependency change: Hard dependency changed from `WorldEdit` to `FastAsyncWorldEdit`. The plugin will automatically disable itself if FAWE is not detected on startup.

### 2. Terra / FAWE Compatibility

Resolves chunk state issues when using async world generators like Terra with FAWE:

  • Added `ChunkValidationUtil`: samples multiple positions to detect whether a chunk is fully generated, preventing structures from being placed on empty chunks
  • Uses Paper API `getChunkAtAsync` for async chunk loading, with `PluginChunkTicket` to keep chunks loaded during pasting
  • All world block access operations ensure chunks are loaded into memory first

### 3. PersistentDataContainer Chunk Marking

The original plugin relies on `ChunkLoadEvent.isNewChunk()` to identify new chunks, but after a server restart, previously generated but unmarked chunks get scanned again. This fork uses Bukkit `PersistentDataContainer` to persistently mark chunks:

  • Processed chunks are tagged with `betterstructures:chunk_processed`
  • No duplicate scanning of already-processed chunks after restart

### 4. Structure Location Persistence

Added `StructureLocationManager` and `StructureLocationData` to persist all generated structure locations to YAML files:

  • Each world is stored independently under `structure_locations/`
  • Records structure coordinates, type, schematic name, and bounding box dimensions
  • In-memory cache with automatic dirty-data saving every minute
  • Provides the data foundation for the mob tracking system

### 5. Mob Tracking & Respawn System

Added `MobTrackingManager` and `MobSpawnConfig` for tracking and respawning mobs within structures:

  • Records mob spawn configurations (position, type) for each structure
  • Supports Vanilla / EliteMobs / MythicMobs mob types
  • Spatial index (world-chunk) for fast nearby structure lookups
  • Triggers mob respawn checks when players approach
  • Fires `StructureClearedEvent` when all mobs in a structure are killed

### 6. Chinese Localization

All user-facing logs, command feedback, and menu text have been translated to Chinese across 27 files.

## Requirements

| Component | Requirement | |-----------|-------------| | Minecraft | 1. 14+ (1. 21+ recommended) | | Server | Paper (or forks like Purpur) | | Java | 21+ | | FastAsyncWorldEdit | Required (vanilla WorldEdit is not supported) |

### Optional Dependencies

  • EliteMobs - Custom bosses
  • MythicMobs - Custom mobs
  • WorldGuard - Region protection
  • Terra / Terralith / Iris / TerraformGenerator - Custom world generation

GPL-3. 0, same as upstream.

  • Original author: (https://github.com/MagmaGuy)
  • Original repository: https://github.com/MagmaGuy/BetterStructures
  • Modrinth: https://modrinth.com/plugin/betterstructures
🤖 AI-enhanced — based on mod data

📊 Mod Details

Game
Minecraft Plugins
Author
yeahnangua
Version
2.1.2-FAWE.8
Downloads
535
Endorsements
4
Category
adventure
Created
2/7/2026
Updated
2/24/2026
Game Versions
1.20, 1.20.1, 1.20.2, 1.20.3, 1.20.4
Tags
adventure, utility, worldgen

🔧 How to Install Minecraft Plugins Mods

Download from Modrinth. Use Prism Launcher or drop into your mods folder.

📖 Full step-by-step install guide for Minecraft Plugins →

Visit the official mod page for specific installation instructions for this mod.

🎮 Need cheat codes or console commands? Check ur gaming wiki for Minecraft Plugins commands, item IDs, and more.

❓ Frequently Asked Questions

Which Minecraft Plugins versions does BetterStructures-FAWE support?

The author lists 1.20, 1.20.1, 1.20.2, 1.20.3, 1.20.4, 1.20.5. Other versions may work but are untested by the author.

What is the latest version of BetterStructures-FAWE?

Version 2.1.2-FAWE.8, published 2026-02-24 with 535 downloads recorded at the source.

Keep browsing — more Minecraft Plugins mods await

📋 All Minecraft Plugins Mods 🏆 Top 25 📂 More adventure 👤 More by yeahnangua 🔎 Similar Mods 🌐 Best adventure (All Games) 🔀 Check Compatibility ⚖️ Compare Mods 🆕 New Mods