AsyncWorldEdit 3.5.4

Async WorldEdit - Edit millions of blocks without lag!

  1. SB_prime
    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.




    Plugin recommended by:
    [​IMG]

    1.13 Compatibility

    A 1.13 compatible version is currently available as a Release Candidate. The JAR is currently available ONLY for premium users. Source code will be available in couple of days. The free JAR will be available after the premium one reaches release state.
    To get the source code for 1.13 please go to github.

    The premium version
    Starting from the 1'st of January 2018 the AsyncWorldEdit Premium and the free versions are again one software. All the changes and features added to the premium are now available for everyone.

    So what do I get when I buy the premium version? First thin, and most important, you will get support (starting from simple trouble shooting to help in working with the source code). Secondly you won't need to build the jar file by yourself, you will get a pre-build jar file.

    Repository and project page

    GitHub

    I'm missing... (I need...)
    If AsyncWorldEdit lacks a feature that you would like to have, that would make your work much easier send me a PM describing your needs.

    Installation tutorial

    Installation for versions to 3.x:


    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
    Installation for versions starting from 3.x:

    To install the plugin you need to download the source code from the github release and compile the source. After that you can simply put the jar in your plugins directory and restart. Or you can get the premium version and follow the instructions there.

    Error performing safe operation...
    AsyncWorldEdit queues changed blocks in a async thread and then places them in packages. Since many WorldEdit operations need to acquire blocks from the map AsyncWorldEdit needs to get the blocks during the preparation phase (in async thread). Since almost none of the API calls should be called from async thread (its risky at most) AsyncWorldEdit checks if it can do the block get in a async thread. If it detects that it is not possible/not allowed it dispatches this to the main thread. Sometimes AWE is not able to detect that the operation is not allowed, this causes the operation to fail. AWE logs this fact in the log (Error performing safe operation) and does the operation using the dispatcher. If all the operations ware processed using the dispatcher you would experience a drasticall speed decrease. On the other hand it is not possible to be 100% sure that the get operation will not fail from async thread. To be 100% sure AWE would need to inject its own classes into Bukkit inner workings.

    License
    For the full license please go to this link

    Issues
    To report issues please use the Github (or the premium one here) issue tracker.

    I'm still experiencing lag!
    Read

    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.

    Direct Chunk API
    Since version 3.x the plugin contains a new super fast world editing feature. It is based on direct chunk data access. It allows you to copy large pieces of the map instantly. Currently the Direct Chunk API supports Spigot since 1.8r3 up to 1.12.2. To find out more simply try the "/chunk" (not "//chunk"!) command while in game.


    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.

    WARNING: To enable Direct Chunk API and BlocksHub integration you need to enable it in the options.

    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).

    Plugin X stopped working after installing AWE
    If a plugin stopped working after installing AsyncWorldEdit please contact me. I'll try to help.

    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.

    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. You might also want to check: Plugin API

    Roadmap
    Roadmap

    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

    Former developer: EDawg878
    Former tester: RulingKyle1496, Lukeer31, PsychoNavigat
    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.
    xan61789, Lambsauce, LordDWT and 27 others like this.

Recent Reviews

  1. nagundagun1
    nagundagun1
    5/5,
    Version: 3.5.4
    the free version gets updated to 1.13 stable at a later time, please calm down people and wait.
    1. SB_prime
      Author's Response
      Actually the free version is already updated to 1.13, but not released on spigot. You need to go to github and compile it by yourself.
  2. x0Z3ro0x
    x0Z3ro0x
    1/5,
    Version: 3.5.4
    If you are using 1.12 and under this remains a 5 star plugin. However due to recent bad apples the dev has let the entire bunch spoil. Let me explain. 1.13 users must wait or purchase which is fair and I HIGHLY recommend purchasing. The developer is very friendly and is great at helping you as well as pumping out updates. But due to bad apples charging back their purchase, they know have to manually verify each transaction. This is a lot of trouble to go through, a lot more than I am worth doing. So for me, it means not purchasing the plugin, and instead switching to a less effective alt. This is the only thing holding me back, should it change I will gladly switch back and edit my review.
    1. SB_prime
      Author's Response
      First thing first you are rating a plugin that is free not premium.

      Putting that aside don't blame me for not accepting each and every transaction. I do this simply because of multiple frauds from UNVERIFIED account. Therefore I will not change the model of payment acceptance.
      All information about the payments is described on the plugin main page, therefore when you click buy you accept those terms. I do not force anyone to buy my plugin you can use the free version (even for 1.13 since the source is available) ergo I'm not forcing anyone to verify their account. Don't like my terms don't like my terms, don't buy my plugin.

      I would rather not get couple of buck then have to pay additional 20$ for each charge-back.
  3. dohuuduc
    dohuuduc
    5/5,
    Version: 3.5.4
    -----------------------------------------------------------------------------------------
    I like you. your mother ♥
  4. Misio12320
    Misio12320
    5/5,
    Version: 3.5.4
    Great plugin congrats... If the author could make a download now option that would be better also 5 stars for this plugin...
  5. Nizzus
    Nizzus
    5/5,
    Version: 3.5.4
    One of the most important plug-in when you use World Edit. We had some corrupted chunks by doing heavy work with WE hopefully you save our life with your work. Thanks a lot for your work.
  6. rmellis
    rmellis
    5/5,
    Version: 3.5.4
    The best World Edit plugin Ever!
    This plugin actually puts the official world edit to shame
    And the Paper-Spigot comparability update has helped us out a lot!
    Thank You, Keep up the awesome work SB_prime :D
  7. AppleCraft12345
    AppleCraft12345
    1/5,
    Version: 3.5.4
    So slow, rare updates that usually don't change many things.
    FastAsyncWorldEdit is much better alternative to this.
    1. SB_prime
      Author's Response
      slow - AWE never was designed for speed, its main goal is to eliminate lag, if you wanted speed you should have tried chunk commands. Besides, in 99% of the cases you could have tweaked your config for the best performance.
      rare updates - I can say one thing: rare updates = mature product, feature compleat, good quality = no update needed, frequent updates - immature product, buggy. Besides I always stated that the free version will receive updates from time to time. The premium version is updated more frequently,
  8. JeuneGeek
    JeuneGeek
    5/5,
    Version: 3.4.11
    Hi i made a video about your plugin in french. It explain How to install and use your plugin. If it is possible I would like my video to appear on the spigot page of your plugin.
    Link of the video : https://www.youtube.com/watch?v=7th1TsfyuiE
    Contact me on discord: Thomas#6532
    Thank you Best regards.
    PS: Very good plugin
  9. Jaman45
    Jaman45
    5/5,
    Version: 3.4.11
    Thank you this is a life saver!

    Loads my large schematics with ease, server was cashing all the time before using this.

    Didn't have any problem setting up the free version, simply put the latest jar into plugins... guess some people just cant read ¯\_(ツ)_/¯
  10. i0xHeX
    i0xHeX
    5/5,
    Version: 3.5.1
    You are able to share free jars even if you have premium plugin. See CraftBook page for example.
    1. SB_prime
      Author's Response
      Actually your right, I rechecked the submission rules. I was 100% sure that you could not publish the jar, I must have misread or the rules might have changed. Thank you for pointing this out for me. I'm going to take this into consideration.

      Unfortunately this does not solve the root problem: how do I make happy the free users, old premium users and new premium users. If you have any suggestions it would be great if you could share those with me.