Integrate with Protection Plugins
mainFAWE is compatible with common Bukkit protection plugins, ensuring that world editing respects defined regions and plots. Supported plugins include:
- WorldGuard
- PlotSquared
repository·main·Indexed 21 days ago
https://github.com/intellectualsites/fastasyncworldeditA high-performance fork of WorldEdit for Minecraft servers providing asynchronous world editing, advanced masking, and robust rollback capabilities. Includes documentation on installation, the Developer API, CraftScripts for JavaScript-based editing, and the WorldEdit CLI. Covers build instructions using Gradle and Java 21, as well as detailed command references for operations like //replace, //set, //copy, and //paste.
FAWE is compatible with common Bukkit protection plugins, ensuring that world editing respects defined regions and plots. Supported plugins include:
FastAsyncWorldEdit uses shading specifically for API libraries—libraries whose classes are publicly referenced by -core classes.
Implementation libraries (those used internally by the project but not exposed via the public API) are not shaded. This distinction ensures that when you depend on the -core API, you only receive the shading necessary for the public-facing interfaces you are interacting with, while implementation-specific dependencies remain internal to the project's runtime.
When using the -sources jar of FastAsyncWorldEdit (FAWE) in a Maven or Gradle project, you can identify where FAWE has modified the original WorldEdit codebase by looking for specific comment annotations. This allows developers to easily see differences between the standard WorldEdit and the FAWE implementation.
There are three types of annotations used:
//FAWE start - [explanation] and end with //FAWE end. The explanation provides context on what was changed and why.//FAWE start and //FAWE end without in-line explanations.package-info.java file is included in that package. This file contains a Javadoc comment listing the FAWE-added classes using @see tags.// Example of In-line annotation
//FAWE start - Get player from PlayerProxy instead of BukkitPlayer if null
player = PlayerProxy.unwrap(player);
//FAWE end
// Example of Block annotation
//FAWE start
@Override
public void setPermission(String permission, boolean value) {
}
//FAWE endFAWE processes editing asynchronously to minimize impact on the main server thread. It utilizes different placement modes to optimize throughput. The default mode is chunk placement.
Available placement modes:
FAWE provides built-in tools to inspect and revert changes.
//inspect to examine changes.//history rollback to search and restore previous states.//fast command.Optimization Tip: To reduce disk usage caused by logging, you can increase the compression level and buffer size in the configuration.
//inspect
//history rollback
//fastYou can generate project files for your preferred Integrated Development Environment (IDE) using the following Gradle commands:
gradlew idea to generate an IntelliJ IDEA module for each folder.gradlew eclipse to generate an Eclipse project for each folder (Note: this command may be unreliable/broken).gradlew idea
gradlew eclipseTo compile FastAsyncWorldEdit, you must have Java 21 or greater installed.
Important Notes:
FastAsyncWorldEdit (FAWE) is a high-performance fork of WorldEdit designed for efficient world editing. It can be installed as a standalone plugin or used to boost the performance of other plugins that depend on WorldEdit.
Stable releases are available on:
For developers or testers needing the latest features, experimental builds can be found on Jenkins.
https://modrinth.com/plugin/fastasyncworldedit/
https://dev.bukkit.org/projects/faweAfter a successful build, the compiled files are located in the build/libs directory of each module:
worldedit-core/build/libsworldedit-bukkit/build/libsworldedit-cli/build/libsUsage Tip: If you intend to use FastAsyncWorldEdit as a Bukkit plugin, use the file named FastAsyncWorldEdit-<identifier> found in worldedit-bukkit/build/libs. The version suffixed with -# includes FastAsyncWorldEdit and all necessary libraries.
CraftScripts allow you to write world editing scripts using JavaScript. To use them, you must perform two steps:
craftscripts/ folder into the directory corresponding to your WorldEdit installation platform.Note: Installing these scripts is optional.
# Example command structure for running a script
/cs maze.js glowstone 10 10FastAsyncWorldEdit is a multi-module project consisting of worldedit-core (API), worldedit-bukkit (Bukkit plugin), and worldedit-cli (CLI). Use the following commands to build the project from the root directory.
gradlew clean build.cd /path/to/fawe/files../gradlew clean build.# Windows
gradlew clean build
# Linux/macOS
./gradlew clean buildcli. These are registered via the CLIExtraCommands registration and are intended for managing the CLI environment itself.