What's new in WorldEdit 7.1?
With over half a year since the last big WorldEdit update, we're now releasing WorldEdit 7.1, with many new features and improvements.
A few of the main features include significant memory usage reductions, WorldEdit-CLI, running WorldEdit from the console and command blocks, watchdog ticking, translations, and more!
After the release of WorldEdit 7, we focused on different ways to maximise the performance of the new WorldEdit architecture. This work paid off, significantly decreasing memory usage across almost all WorldEdit operations. We also sped up expression parsing for commands such as
//gen. On top of this, the Bukkit-section of the API now performs better when converting between Bukkit and WorldEdit types.
WorldEdit-CLI is a command-line application that allows you to use WorldEdit operations on schematics, and worlds in the future, without launching a Minecraft server. It is also usable as an API to create an application or service that uses WorldEdit. An example that we've made is WorldEdit Golf, a competition game site where you can compete to turn one schematic into another with as few commands as possible.
For more information on WorldEdit CLI, see this article.
Almost all of WorldEdit is now usable from the server console and on Bukkit-based servers, from within command blocks. A new command,
//world <worldname>, has been added, allowing for world selection. Setting the world is required from the console, but command blocks will use the block's world.
Due to a bug in Minecraft itself with command blocks, we can only currently support them on Bukkit. Minecraft now strips all
/ characters away from the beginning of command block commands, preventing any double-slash command from working. As Bukkit supports namespaced commands,
/worldedit:/set can be used instead, which works around the Minecraft bug. Until Mojang fixes this bug or other platforms add support for namespaced commands, this will continue to be the case.
When using command blocks, if you want them to all use the same WorldEdit session (same selection, same history, same masks, etc.), make sure to give them all the same name using an Anvil. The name differentiates different command block WorldEdit sessions, allowing them to act as a single unit.
Every so often, someone comes and tells us that WorldEdit is crashing their server. We then need to explain to them that it's not WorldEdit causing a crash but the server's watchdog implementation. The one in Spigot is notorious for this, as it often triggers significantly earlier than it should.
The solution before now has been to disable the watchdog in the Spigot config file. However, this is not ideal and can be potentially dangerous as it prevents real server hangs from being detected.
As of WorldEdit 7.1, there is now a
//watchdog command. This command tells WorldEdit to talk to the server's watchdog, ensuring that it doesn't incorrectly trigger when WorldEdit is applying modifications to the world. The plan is to have this enabled by default in the future if everything works out.
There are still legitimate reasons the watchdog may be triggered, and these are often the cases where the server crashes for edits below 100 million blocks. For example, Minecraft has a rare bug that can cause chunks to load forever. As WorldEdit triggers many chunk loads, it's statistically more likely to run into this issue, especially on larger edits. As the server is going to be stuck forever, this is a legitimate crash caused by Minecraft. If you're encountering issues like this frequently on Bukkit-based servers, we recommend switching to Paper as they fix most causes of this bug.
WorldEdit has a massive community of users whose primary language is not English. Until now, they've had to rely on unsupported third-party modifications or stick with English. Now, WorldEdit natively supports every language that Minecraft supports.
As the WorldEdit team cannot possibly know over one hundred languages, this is a community effort. We have a CrowdIn page where we massively appreciate contributions. Translations will also, of course, not be perfect from the start. As of writing, only a few languages have complete translations, one of which being LOLCAT.
If you want to override any messages or download new translations, you can create a new folder within the WorldEdit directory named
lang. The default translations file is called
strings.json, and per-language files are called
language-Code/strings.json. For example, an Australian English file is
Aside from these more substantial changes, many minor improvements have happened across the board. If you'd like to read the full changelog, it's available here.