AsyncWorldEdit 2.3.3


Tested Minecraft Versions:
  • 1.7
  • 1.8
  • 1.9
  • 1.10
  • 1.11
  • 1.12
Source Code:
https://github.com/SBPrime/AsyncWorldEdit/
Description

This plugin has only one function: eliminate the lag caused by the WorldEdit! This is done by replacing the WorldEdits session with an special asynchronous one. All the block drawing is done in packages. The package size and how often the blocks are drawn are configurable in the config. AsyncWorldEdit is not a reimplementation of WorldEdit! It attaches the original WorldEdit API and WorldEdit classes and tries to fix the lags. There fore you have access to all the WorldEdit operations, and all those operations work exactly like in the original WorldEdit. So basically you get the same commands, same permissions and the same experience. In addition to that if WorldEdit team releases a new feature, fixes a bug all you need to do is update WorldEdit and AWE will do its job as usual.



The premium version
If you want to have more features, want more frequent updates check out the AsyncWorldEdit Premium.

Repository and project page


GitHub

Installation tutorial


Installation for Spigot (Bukkit)

  1. download and install WorldEdit
  2. download the plugin
    • If you are using WorldEdit 5.x you need to get AsyncWorldEdit 1.x
    • If you are using WorldEdit 6.x you need to get AsyncWorldEdit 2.2.2 or earlier
    • If you are using WorldEdit 6.1.2+ you need to get AsyncWorldEdit 2.3.0 or later
  3. install the AsyncWorldEdit plugin
    • For AsyncWorldEdit 1.x put the AsyncWorldEdit.jar into plugins
    • For AsyncWorldEdit 2.x put the AsyncWorldEdit.jar and AsyncWorldEditInjector.jar into plugins.
  4. to enable blocks login and blocks access control download and install BlocksHub
  5. if you are using PlotMe and want to enable the PlotMeFix put AsyncWorldEdit-PlotMe* in your plugins folder. Use the jar that's for your PlotMe version!
  6. restart server
  7. edit the config file
  8. restart server or do /AWE reload
Installation for cauldron (since AsyncWorldEdit 2.1.0)
  1. download WorldEdit and Forge WorldEdit
    1. install WorldEdit into plugins folder
    2. install WorldEdit forge into mods folder
  2. download AsyncWorldEdit
    1. install AsyncWorldEditInjector into mods folder (do not put it into the plugins folder!)
    2. install AsyncWorldEdit into plugins folder (do not put it into the mods folder!)
  3. to enable blocks login and blocks access control download BlocksHub
  4. if you are using PlotMe and want to enable the PlotMeFix put AsyncWorldEdit-PlotMe* in your plugins folder. Use the jar that's for your PlotMe version!
  5. restart server
  6. edit the config file
  7. restart server or do /AWE reload
Alternative download from GitHub
Check the release page.

Auto updates
This plugin does not provide auto update feature it only nags the server owner's when there's an update. To disable this feature set checkVersion to false in the config. Alternatively you can remove the AWE.admin.version permission node if you don't want to receive update information.

I'm still experiencing lag!
Read

Block loggers & Block access control
The enables logging of blocks placed by WorldEdit and can enforce block access. This is done using a special plugin called BlocksHub. To enable block logging (or block access control) you need to enable it in AWE config. This feature requires you to download, install and configure BlocksHub and then install any of the supported block loggers (access controllers).

New loggers and new access control plugins are going to by added directly to BlocksHub plugin.

How fast you can go?

Recently a thread has been started on spigotmc.org where you can show others how fast you can place blocks using AsyncWorldEdit. You can also use that thread for reference on how to configurate AsyncWorldEdit for you hardware specification.
The thread can be found here.


How many blocks can I queue?
All tests ware done in a controlled environment. Using the official spigot, only AWE and WE ware installed and there was 1 player on the server. The AWE config was not changed.

On a minimum server (512m) free memory ~200m I managed to queue up to 1 000 000 blocks. But after the queue reached 500 000 blocks TPS started to dropped drastically because of the garbage collector. Therefore I do not recommend to queue more then 500 000 blocks on a server that has 200m free ram.

On a server that had 1g ram, approximately ~700m free, I managed to queue up to 2 500 000 blocks. After the queue reached 2 000 000 blocks the TPS started dropping because of the garbage collector.

Adding additional ram resulted in increase of the maximum number of queued blocks approximately by 1 500 000 blocks for each 500m of additional free ram. When I disabled the blocks freeze function I managed to queue additional 20% blocks, (1 800 000 for each additional 500m of free ram).

AsyncWorldEdit 2.x has lower BPS then in 1.x. Whats wrong?
In AsyncWorldEdit 2.x I added a maximum time limit for blocks placing. This was introduced to optimize the plugin for low end machines. You need to remember that AsyncWorldEdit aims to limit the TPS drop not to make perform the operations as fast as possible. Therefore the default config is optimized to limit the TPS usage not the BPS. If you have a beefy machine or you can live with a small TPS drop you should optimize the config for your specs. If you want to have a steady BPS, like in version 1.x you should disable the time limit in the config file.

Plugin X stopped working after installing AWE
My plugin hooks into WorldEdit's session factory, many other plugins do the same (mainly block loggers). The difference between my and other plugins is that my plugin makes sure its attached to WorldEdit's session factory. Since WorldEdit allows only one plugin to provide a session factory plugins that ust this feature of WorldEdit are in conflict and (probably) wont work properly. If you have a plugin that stopped working after installing AsyncWorldEdit and the plugin uses WorldEdit in some way send me a PM with the plugin name and version, I'll try to add a workaround into my plugin


Third party videos:
.

Plugins that use AsyncWorldEdit

If you are a plugin author and your plugin uses AWE API contact me I'll add your plugin to the list.

API
For API and Maven please to go to Github. Send feature requests and suggestions in this github issue.

Commands
Commands page

Permissions
Permissions page

Configuration
Configuration page

Dependencies
This plugin depends on:
BlocksHub - block loggin and blocks access
Other optional dependencies:
Progress display plugins:

MCStats
This plugin uses MCStats to gather statistics. It gathers only the standard stats gathered for most of MCStat's enabled plugins (for example: OS, Java version, CPU, country, plugin and server version). For details what exactly is gathered click on the graph below. To disable the stats you need to disable stats gathering for MCStats (set opt-out to true in plugins/PluginMetrics/config.yml). This disables all the stats gathering for all plugins that use the default MCStats.

Thank you for using this plugin.

[​IMG]

Project staff
Project author/Developer: SBPrime
Tester: PsychoNavigator

Former developer: EDawg878
Former tester: RulingKyle1496, Lukeer31
Former wiki author: Phudster, Magic

Donate
Programmer: "an organism that turns caffeine and pizza into software".

If you like you can buy me a pizza ;)

If you like my work you can buy the premium version of the plugin.