Open-source project
IntellectualSites/FastAsyncWorldEdit avatar
IntellectualSites/FastAsyncWorldEdit

FastAsyncWorldEdit and the case for asynchronous world editing on Minecraft servers

Blazingly fast world manipulation for artists, builders and everyone else.

809 stars412 forksJavaNOASSERTION

At a glance

What is it?
FastAsyncWorldEdit is a Java fork of WorldEdit that moves bulk block edits off the server main thread across three placement modes, while keeping the WorldEdit API intact for existing plugins. It fits large build teams and map publishers, but the custom licence and the heavy dependence on server internals need checking before adoption.
Who is it for?
FastAsyncWorldEdit is worth adopting on a Minecraft server that runs heavy builds, where a single player can freeze the main thread with a large paste and where staff need real rollback rather than a guess. It is the wrong choice for a small survival server that edits rarely, since the plugin and its configuration exist to solve a problem those servers do not have.
Can I use it commercially?
Check first. The repository uses a licence we do not classify automatically, so read its LICENSE file before any commercial use.
Is it still maintained?
Yes. The repository last received commits 1 day ago.
What is it written in?
Mainly Java, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on October 22, 2026, and from our analysis. They are not legal advice.

Editorial analysis

Why a WorldEdit fork exists at all

FastAsyncWorldEdit is a fork of WorldEdit for Minecraft servers, written in Java, and its stated purpose is world manipulation for artists, builders and everyone else. The fork exists because bulk block edits on a live server are slow and memory hungry in stock WorldEdit, and this rewrite moves that work off the main thread while keeping the same API surface. That combination is the real design decision here. It is not a new command vocabulary that forces staff to relearn everything, it is a different execution model sitting behind commands that plugin authors already target.

The practical audience is layered. Map publishers who generate continent-sized terrain are the obvious case, since they paste and transform at volumes that make the main thread the bottleneck. Build teams working on a shared survival or creative server form the second group, and the per-player limits that the project exposes point directly at that use case. A third group is indirect: the project states that if other plugins depend on WorldEdit, simply having FastAsyncWorldEdit installed will boost their performance, because those plugins end up running against the faster fork.

That last point is the one that changes decisions. You do not have to be a builder to benefit. Replacing WorldEdit on an existing server can speed up unrelated tooling without any code changes on your part.

Three placement modes set the throughput ceiling

The project offers several placement modes, each supporting higher throughput than the previous, and all editing is processed asynchronously with certain tasks broken up on the main thread. The default mode is chunk placement, which tells you how the plugin normally behaves out of the box.

The three named modes differ in how much work they hand to the server internals. Blocks, using the Bukkit API, is the fallback and is used only if chunk placement is not supported, and even this mode is described as faster than any other plugin on Spigot. Chunks, using NMS, places entire chunk sections rather than individual blocks. World, using CFI, is the mode used to generate new worlds and regions outright.

The progression is the point. Each step up skips more of the per-block overhead, so the ceiling on a large paste is set by the mode the server build allows rather than by the operator's patience. The catch is that the highest modes reach deeper into server internals, which is why a block fallback exists at all. If chunk placement is unavailable in your environment, the plugin quietly drops to the slower path, and the performance difference you expected from a fork may not appear.

Getting the jar and running a first real edit

There is no package manager entry or scripted install path in the project documentation. Releases are available on Modrinth or on CurseForge, and both are download destinations for the plugin jar rather than commands you would run on the server. Experimental builds are published separately through a Jenkins instance, which is where you look if you want a build that is newer than the tagged releases.

The compiled releases move fast. The recent version history shows 2.16.1 on 2026-10-09, 2.16.0 on 2026-10-04 and 2.15.4 on 2026-08-16, and the repository was last pushed on 2026-10-22, so you are dealing with a project that ships often enough that pinning a version matters.

Once the jar is on the server, the first useful thing to try is a clipboard round trip. The project offers instant copying of arbitrary size with a lazy copy command, and the clipboard feature works with web integration and needs no setup:

code
//lazycopy

After that, check that you can find your own edits and put them back. By default you can use the inspect command and the history rollback command to search and restore changes:

code
//inspect
//history rollback

If those two commands find your edits and restore them, the core loop works. If they do not, the problem is almost always the placement mode your server supports rather than your own syntax.

Per-player limits and an undo history that does not expire

The plugin exposes advanced per-player limits covering entity, tiles, memory, changes, iterations, regions and inventory. That list is the clearest statement of the intended workload, because each limit maps to a resource that a single player can otherwise consume without bound on a shared server. A paste that spawns tens of thousands of entities, or a brush that runs across a huge number of regions, hits a ceiling defined by configuration rather than by server hardware.

The undo side is generous. The project advertises unlimited undo, per-world history, instant lookups and rollback, and cross-server clipboards. Unlimited history is unusual in this category, and it shifts the cost of that policy into disk usage rather than into lost work. Per-world history also keeps a build team's rollback scoped to the world they were working in.

For editors this combination is close to ideal: a mistake can be undone repeatedly, across sessions, without an operator needing to restore a backup. The trade-off appears on the server side, because history that never expires is history that never stops growing, and the project addresses this through logging settings rather than through retention limits.

Logging, rollback and the fast bypass

Logging is a separate concern from undo, and the project treats it as a tunable cost. The documented knobs are the compression level and the buffer size, and the guidance is to increase them to reduce disk usage. A server that records every change for every player on a busy build server produces a meaningful amount of write traffic, and the compression setting is where you trade CPU for disk.

There is also an explicit escape hatch. To bypass logging entirely, the fast command skips the record. That is the fastest possible path for a throwaway edit on a temporary world, and it is also the path that cannot be rolled back through the inspect and history tooling, so it is a deliberate trade rather than a free speedup.

The set of tools is wider than the two logged commands. The feature list mentions visualization, targeting modes and masks, scroll actions, biome mixing, in-game world painting, dynamic view distance, vanilla CUI, off-axis rotation, image importing, cave generation, multi-clipboards, interactive messages, schematic visualization, lag prevention and persistent brushes, along with over 200 commands. The project also adds edit transforms that can be applied to a source during a paste, new mask and pattern syntax, support for formats such as Structure Blocks, and automatic repair of partially corrupt schematic files.

Protection plugins and a compatibility promise for API users

Two protection plugins are listed as supported with Bukkit: WorldGuard and PlotSquared. That matters in practice, because region protection and per-plot rules are the usual reason a server owner hesitates to hand editing tools to players, and the list tells you which combinations have been accounted for at least at the documentation level.

For developers, the claim is that the plugin maintains API compatibility with WorldEdit, so the normal WorldEdit API can be used asynchronously, and that there are additional asynchronous wrappers for the Bukkit API. The wiki is where the project points for examples such as reading NBT, modifying world files, pasting schematics, splitting up tasks and lighting. Javadocs are published alongside it.

This compatibility layer is the quiet engine of the fork. It is what allows the performance rewrite to exist without breaking every plugin that was written against WorldEdit, and it is the reason the upgrade path is a jar swap rather than a migration project. It also sets a ceiling on what the project can change: any internal redesign that alters the WorldEdit API surface would undercut the one guarantee that makes the fork adoptable.

What the project does not settle for you

Several questions a buyer would ask are left open in the project documentation. The licence is the first. GitHub classifies it as Other, a custom licence that cannot be categorised, and the terms sit in the LICENSE.txt file in the repository root. The file exists and can be read, but there is no summary of what a server owner may or may not do with the jar, and nothing in the project text explains whether redistribution, modification or use on a commercial server is unrestricted. Anyone integrating this into a hosted business should read that file before shipping.

The second gap is platform coverage in practice. The repository is a multi-platform build with modules for Bukkit, Fabric, Forge, a mod package, Sponge, a CLI and shared core and libraries directories, and the topics list covers Bukkit, Spigot and Minecraft Bedrock as well as Java editions. But the performance modes are described in terms of Bukkit API and NMS, and the protection plugin list is explicitly scoped to Bukkit. Which modes are live on which platform is not stated, so the block fallback may be the practical outcome on some of them.

The third gap is memory accounting. The project states that it uses minimal CPU and memory and adds advanced per-player memory limits, yet it publishes no figures for what a given configuration costs on a given server. The last push was on 2026-10-22 and the repository is not archived, so the code is current, but the documentation gives you no baseline to compare a before and after server against.

Editorial conclusion

FastAsyncWorldEdit is worth adopting on a Minecraft server that runs heavy builds, where a single player can freeze the main thread with a large paste and where staff need real rollback rather than a guess. It is the wrong choice for a small survival server that edits rarely, since the plugin and its configuration exist to solve a problem those servers do not have. Before installing, check the LICENSE.txt file yourself, because the licence is a custom one that GitHub cannot classify, then read the wiki page for your exact server platform to confirm which of the three placement modes the build you downloaded actually supports.

Frequently asked questions

Does FastAsyncWorldEdit replace WorldEdit on my server?

Yes. FastAsyncWorldEdit is a fork of WorldEdit, and the project states that if you use other plugins that depend on WorldEdit, simply having FAWE installed will boost their performance. It also maintains API compatibility with WorldEdit, so the normal WorldEdit API can be used asynchronously.

How do I roll back a large edit in FastAsyncWorldEdit?

By default you can use //inspect and //history rollback to search and restore changes, and the plugin offers unlimited //undo with per-world history and instant lookups and rollback. To bypass logging and skip the record entirely, use //fast, which means that edit cannot be restored the same way.

Which server platforms does FastAsyncWorldEdit support?

The repository contains separate modules for Bukkit, Fabric, Forge, a mod package, Sponge, a CLI, and shared core and libraries code, and the topics list covers Bukkit, Spigot, Java editions and Minecraft Bedrock. The project states that the listed protection plugins, WorldGuard and PlotSquared, are supported with Bukkit, and it does not document per-platform support for each placement mode.

What licence is FastAsyncWorldEdit released under?

GitHub classifies the licence as Other, a custom licence it cannot categorise, and the terms are held in the LICENSE.txt file in the repository root. The project documentation does not summarise the permissions or restrictions in that file, so read it directly before redistributing the jar.

Is FastAsyncWorldEdit still being updated?

The repository is not archived and the last push was on 2026-10-22. Recent releases include 2.16.1 on 2026-10-09, 2.16.0 on 2026-10-04 and 2.15.4 on 2026-08-16, and experimental builds are produced by a Jenkins instance alongside the tagged releases.

Official sources

  1. IntellectualSites/FastAsyncWorldEdit on GitHub
  2. Issues
  3. Project website
  4. README
  5. Releases
Add this badge to your README

If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.

Add this badge to your README

markdown
[![Hysen Labs](https://hysenlabs.com/badge/intellectualsites-fastasyncworldedit.svg)](https://hysenlabs.com/projects/intellectualsites-fastasyncworldedit)

Was this useful?