TestBlockRegistry now shares one Property instance per name, type and value list, as the real platforms do (CoreMcTransmogrifier's propertyCache). With that, the TypeApplyingPattern test in PatternParserTest passes, so it is re-enabled: it was a fixture artifact, not a bug. None of the other @Disabled findings depend on per-type Property instances. New tests in extent/clipboard/io: - SpongeSchematicRoundTripTest: write/read round trips for V2 and V3 over negative, degenerate and offset-origin regions, palettes of 1-2000 states, block entities, entities, biomes, size limits (V1 and MCEdit have no writer). - SpongeVarIntTest: sparse palette indices at every varint length edge (127/128, 16383/16384, up to Integer.MAX_VALUE) in hand-built V2/V3 files. - GoldenSchematicTest: tiny stored V1/V2/V3/MCEdit files (generated by a standalone script, not by WorldEdit) that must keep loading. - CorruptSchematicTest: truncation at every byte, garbage, missing/mistyped tags, bad palettes and varints, version mismatches. - SchematicDataFixerTest: when the DataFixer is applied and from which version, using a recording stand-in (real DFU needs Minecraft). - ClipboardFormatsTest: alias/extension registry and format detection. Real bugs found are recorded as @Disabled tests in CorruptSchematicTest: NPE on a palette index missing from the palette, block data length not checked against the dimensions (too short and too long), getDataVersion throwing for a foreign Version, and two ArrayIndexOutOfBounds cases in MCEditSchematicReader. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
A Minecraft Map Editor... that runs in-game!
- With selections, schematics, copy and paste, brushes, and scripting!
- Use it in creative, survival in single player or on your server.
- Use it on your Minecraft server to fix griefing and mistakes.
Java Edition required. WorldEdit is compatible with NeoForge, Fabric, Bukkit, Spigot, Paper, and Sponge.
Download WorldEdit
This place contains the Java code for WorldEdit, but if you want to just use WorldEdit, get the mod or plugin from Modrinth:
https://modrinth.com/plugin/worldedit/versions
Edit the Code
Want to add new features to WorldEdit or fix bugs yourself? You can get the game running, with WorldEdit, from the code here, without any additional outside steps, by doing the following four things:
- Download WorldEdit's source code and put it somewhere. We recommend you use something called Git if you already know how to use it, but you can also just download a .zip file. (If you plan on contributing the changes, you will need to figure out Git.)
- Install any version of Java greater than or equal to 21.
- Note that if you do not install JDK 21 exactly, Gradle will download it for you on first run. However, it is still required to have some form of Java installed for Gradle to start at all.
- Open terminal / command prompt / bash and navigate to the directory where you put the source code.
- Run one of these following commands:
- Mac OS X / Linux:
./gradlew :worldedit-fabric:runClient - Windows - Command Prompt:
gradlew :worldedit-fabric:runClient - Windows - PowerShell:
.\gradlew :worldedit-fabric:runClient
- Mac OS X / Linux:
🎉 That's it. 🎉 It takes a long time to actually transform WorldEdit into a mod. If it succeeds, the Minecraft game will open and you can create a single player world with WorldEdit.
When you make changes to the code, you have to restart the game by re-running the command for your changes to take effect. If there are errors in your Java syntax, the command will fail.
For additional information about compiling WorldEdit, see COMPILING.md.
Using a Java IDE
To edit WorldEdit in a Java IDE, follow these steps:
- Download and install IntelliJ IDEA Community Edition.
- In the IDE, open the folder that you saved WorldEdit's code in. This creates a new project in IDEA.
That's pretty much it.
If you want to be able to run the game also, follow these instructions:
- Go to Run -> Edit Configurations.
- Add a Gradle task:
- Choose
worldedit-fabricfor the project. - For the tasks, type in
runClient
- Choose
- Click OK
- Under the Run menu again, go to "Debug [your new task]".
Speeding up the Edit-Test-Edit-Test Cycle
It's a little annoying have to restart the game to test your changes. The best way to reduce the time is to run the server instead (using runServer instead of runClient) and then reconnect to the server after restarting it.
Submitting Your Changes
WorldEdit is open source (specifically licensed under GPL v3), so note that your contributions will also be open source. The best way to submit a change is to create a fork on GitHub, put your changes there, and then create a "pull request" on our WorldEdit repository.
Please read CONTRIBUTING.md for important guidelines to follow.
Links
Supporters
YourKit supports open source projects with innovative and intelligent tools for monitoring and profiling Java and .NET applications. YourKit is the creator of YourKit Java Profiler, YourKit .NET Profiler, and YourKit YouMonitor.
