AsyncWorldEdit 3.6.20

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
    • 1.13
    • 1.14
    • 1.15
    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:
    mineacademy-banner.png

    Don't have a server...
    try out BisectHosting and get 25% off with code SBPrime

    Baner.jpg

    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.

    Ok so wher's the cache? First and most important, you won't receive support for the free version. Basically your on your own. All the updates to the premium version will eventually be added to the free version (it might be days it might be weeks) after the premium release. First the changes will be available as source code. The JAR release for the free version might be released might not. It might skip some versions, it might be released the same day as the premium, it might be released after couple of weeks. The source code will be provided without compilation instructions and without DRM modules.

    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. WARNING: You can download a jar file of the plugin only from the Premium download page, if you got it from other source it is an illegal copy (providing downloads for the jar breaks the license).

    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


    To install the plugin simply follow those steps (steps 5-6 are optional):
    1. download and install WorldEdit 7.1.0
    2. buy the plugin on spigotmc.org
    3. download AsyncWorldEdit.jar
    4. install AsyncWorldEdit (the injector is no longer needed)
    5. (o) to enable blocks loggin and blocks access control download BlocksHub
    6. (o) the appropriate bridge for your progress display plugin (For example: if you want to use ActionBarAPI you need AsyncWorldEdit-ActionBarAPI)
    7. (o) if you would like to use the built in bos bar please consider installing this plugin: AsyncWorldEdit - Boss Bar
    8. restart server
    9. edit the config file
    10. restart server or do /AWE reload

    Upgrading from older version:
    If you are upgrading from an older version of AWE in most cases you don't need to do anything special. Although if you are using an old version that still has the injector you need to remove it. In addition its a good practice to remove the AWE bridge plugins (fund in /plugins/AsyncWorldEdit/plugins/) and the installed file.

    Version before 3.6.0

    To install the plugin simply follow those steps (steps 5-7 are optional):
    1. download and install WorldEdit 6.1.2 (check release notes for exact version)
    2. buy the plugin on spigotmc.org
    3. download AsyncWorldEdit.jar (for WorldEdit dev you need to download AsyncWorldEdit-dev.jar, you can find it on the version history. Go to version history and click "download" for on the latest dev version)
    4. install AsyncWorldEdit (the injector will install automatically)
    5. (o) to enable blocks loggin and blocks access control download BlocksHub
    6. (o) if you are using PlotMe older then 0.17 and want to enable the PlotMeFix got to plugins/AsyncWorldEdit/plugins and change AsyncWorldEdit-PlotMe*.jar.dis to AsyncWorldEdit-PlotMe*.jar. Use the jar that's for your PlotMe version!
    7. (o) if you want to use additional progress display plugins enable the appropriate bridge for your progress display plugin (For example: if you want to use ActionBarAPI you need AsyncWorldEdit-ActionBarAPI)
    8. restart server
    9. edit the config file
    10. restart server or do /AWE reload
    IMPORTANT: For Minecraft 1.12 and older please use old version 3.5.4 and WE 6.1.7.3.

    Version before 3.3.0
    To install the plugin simply follow those steps (steps 5-7 are optional):
    1. download and install WorldEdit
    2. buy the plugin on spigotmc.org
    3. download AsyncWorldEdit
    4. install AsyncWorldEdit and AsyncWorldEditInjector
    5. (o) to enable blocks loggin and blocks access control download BlocksHub
    6. (o) if you are using PlotMe older then 0.17 and want to enable the PlotMeFix put AsyncWorldEdit-PlotMe* in your plugins folder. Use the jar that's for your PlotMe version!
    7. (o) if you want to use additional progress display plugins put the appropriate bridge for your progress display plugin (For example: if you want to use ActionBarAPI you need AsyncWorldEdit-ActionBarAPI)
    8. restart server
    9. edit the config file
    10. restart server or do /AWE reload
    Installation - Forge (Cauldron)
    To install the plugin simply follow those steps:

    1. download WorldEdit and WorldEdit Forge
      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. Follow the installation instruction from the regular version starting from p5.

    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.

    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.

Recent Reviews

  1. jaylawl
    jaylawl
    1/5,
    Version: 3.6.20
    AWE in itself is an amazing plugin, but i'm at a point where i'd rather deal with the irregularly updated FAWE and will no longer use this.

    The plugin is (according to the author: purposely!) delaying your server startup by 10 seconds. There is no processing going on, nothing that needs to be calculated - it's simply a 10 second timeout because it's not the premium version.

    As good as the plugin as functionally, said issue kills it completely.
    1. SB_prime
      Author's Response
      I told you exactly why as an answer to your PM: I believe in no free lunch. If you can't dont want to get the premium version you can always compile the plugin by yourself and have the same functionality. If you don't want to lift a finger then you the option to use the free jar.
  2. QuikMiner
    QuikMiner
    5/5,
    Version: 3.6.20
    This plugin is a must-have! It seriously just eliminates any lag that could possibly come from world editing and allows builders to do huge, complex edits without having to worry about whether the server is going to crash or not.
  3. NotVeryRice
    NotVeryRice
    5/5,
    Version: 3.6.20
    Incredible. Even with a beefy server i used to crash my server with big schematic pastes. With this plugin it makes pasting so efficient and not as load heavy. Im truly impressed. Well done!
  4. NicholasHogan
    NicholasHogan
    4/5,
    Version: 3.6.19
    This plugin is great and works with WorldEdit great! The only reason I am giving it a four star review is the update message (I know it can be toggled off), I plan on getting the premium version at some point, but find it a bit unfair to say there is an update, but we can not actually download it. Otherwise great plugin and it helps reduce lag. Great work!

    Thanks,
    Nicholas Hogan
  5. dinoboss2001
    dinoboss2001
    3/5,
    Version: 3.6.19
    1 yo creo que sigue dando los mismos lag.
    2 que requiera world edit me parece un poco raro ya que se supone que esto elimina el lag de worldedit pero necesita si o si su api como es eso posible :V
    3 yo probé en mi vps de pruebas 1 con world edit y el otro world edit + AWE y me parece peor porque dirás 1 ocupa una runa de plugin mas que esto da retrasos de por si a la ram 2 creo que si uso world edit es lo mismo segun los tps bajan y suben y mi vps aguanto muchos hoppers de mfhoppers y es imposible que se caiga a 15 tps con solo un schrematic .... por eso la critica creo que hay que mejorar el rendimiento ..
  6. PhantomXCraft
    PhantomXCraft
    3/5,
    Version: 3.6.19
    hmm?

    AsyncWorldEdit::Combined Totalcount(60) total(61.21% 3.261s, 232.96% of tick)avg(54.36ms per - 116.48ms/2.14 per tick)
  7. _Thibaud_
    _Thibaud_
    3/5,
    Version: 3.6.19
    Why this plugin places an advertisment on start up of my server? This takes at least 5 seconds extra before my server is running. How can I disable this?
    1. SB_prime
      Author's Response
      There is no advertisement, the plugin shows only its banner. To get rid of it compile the plugin by yourself.
  8. notashelf
    notashelf
    5/5,
    Version: 3.6.19
    Fascinating plugin. I sure do reccoment if you are intending to use WorldEdit with huge sized builds which can not be handled by your server hardware. This amazing plugin helped me paste 67 million blocks with only 8gb ram WITHOUT crashing the server. Simply brilliant. I would rate more stars if I could.
  9. ANRV
    ANRV
    5/5,
    Version: 3.6.19
    I can't buy it Via PayPal(Always get refused) but the free version is good enough, BTW how to make it even a bit faster in 1.14? It is too slow even I canceled the limit.
    1. SB_prime
      Author's Response
      Send me a PM.
  10. kixmc
    kixmc
    5/5,
    Version: 3.6.19
    Amazing plugin, works perfectly
    ~
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~