It's been almost a year since the last big WorldEdit update. We're pleased to present WorldEdit 7.2, containing many new features, improvements, and bug fixes.
This release's primary goal was to improve performance, especially on large Minecraft servers with many other plugins running. When testing with some more extreme server setups with a large number of plugins, we found that some of the other plugins were making WorldEdit thousands of times slower. While we can't make sure that all plugins behave correctly, we can minimise other plugins' ability to slow WorldEdit down unintentionally. As for plugins that hook the WorldEdit API, we spoke to the developers of a few popular integrations, such as CoreProtect, to assist them in improving performance. Most servers should notice considerable performance improvements over WorldEdit 7.1, especially with more plugins in use.
Speeding up other plugins wasn't the only performance boost we made. The optimisation effort was so extensive that I had enough content to write a technical talk about it. If you'd like some in-depth technical details about what was changed and performance optimisation in general, check out my talk slides here.
When you manipulate the world with WorldEdit, you're not just setting the blocks. Changing a block triggers a ton of side effects, from updating neighbouring blocks, causing block updates, updating lighting, and even notifying other mods and plugins about the changes. Previously we had fast mode to turn some of these off, but with WorldEdit 7.2, we've added the ability to turn each on and off individually.
To try it out, run
//perf to bring up a menu of the various side effects that can be toggled on or off. Some are off by default and can be enabled if needed, such as updating entity pathfinding for modifying mob arenas.
One thing WorldEdit has lacked in the past is flexibility in user-created brushes. With the image heightmap brush system, you can create custom brushes and share them around like you would with a photoshop brush. The brushes load from an image and shape the terrain accordingly.
We've had the
//snow command for a while, but in WorldEdit 7.2, we're adding an option to stack snow layers. Run `//snow -s' and existing snow will grow taller. We've also added a snow brush that also supports the new snow stack mode. Perfect for terraforming a snowy mountain!
One of the most common pain points we see with users trying to create builds with intricate details is how many steps are involved in setting long lines of rotatable blocks like stairs. We've added a stacker tool that can repeat a block towards the side the player clicked to address this. The block then repeats outwards until it either hits the maximum range or no longer matches a mask. By default, the mask allows replacing up until any non-air block. This tool makes it easy to create intricate castle roofs without thinking!
We've added a few new masks to fill a few everyday use cases we see. The first is
#air, which matches any air block. These include
void_air. Previously people would have to use an inversed "existing" mask, with
!#existing. The other mask we added is a
#surface mask, which matches any block that is touching an air block. Perfect for lining the walls of a cave!
This post just covered a few considerable or exciting changes; there are still plenty more to try out. If you'd like to read the full changelog, it's available here.
We know it took a long time for this release to come out, and we plan to stop that from happening in the future. One of the main reasons this release took so long was that we had a few significant internal changes (the side effect system) that required a considerable amount of work and testing. We plan on changing the way we develop WorldEdit so that these more time-consuming features stay in test versions until they are ready to become part of WorldEdit. Doing this allows us to keep making WorldEdit releases even before those changes are complete.
WorldEdit is a team effort, and we volunteer a large amount of our time to make the software as good as possible for our users. We do this in our spare time without getting paid for the time we spend. If you use WorldEdit and can help support us, we accept and appreciate contributions on our GitHub Sponsors page.
Also, each release adds numerous new lines of text to translate. If you speak a language other than English, we much appreciate any translations you can contribute to the WorldEdit CrowdIn project.
As always, links to downloads for each platform from the WorldEdit website.