BetterStructures-FAWE
🟡 Updated this yearPreview

🔍 Analysis
- 👍 0.7% endorsement rate
- 🏆 #190 of 351 adventure mods in this game by downloads
📋 About This Mod
# 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
📊 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