๐Ÿ—บ๏ธ Minecraft map editor and mod

Overview

WorldEdit

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 grieving and mistakes.

Java Edition required. WorldEdit is compatible with Forge, 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 these pages:

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:

  1. 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.)
  2. Install any version of Java greater than or equal to 8.
    • Note that if you do not install JDK 8 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.
  3. Open terminal / command prompt / bash and navigate to the directory where you put the source code.
  4. 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

๐ŸŽ‰ 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:

  1. Download and install IntelliJ IDEA Community Edition.
  2. 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:

  1. Go to Run -> Edit Configurations.
  2. Add a Gradle task:
    1. Choose worldedit-fabric for the project.
    2. For the tasks, type in runClient
  3. Click OK
  4. 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

Issues
  • [WIP] Update WorldEdit to 1.13, and heavily refactor the internals.

    [WIP] Update WorldEdit to 1.13, and heavily refactor the internals.

    This is still a very much WIP branch, however making a PR allows people to comment and view what I'm doing much easier.

    Things I've done:

    • Setup an 'Item' registry
    • Refactored the block registry system (specifically states)
    • Setup an immutable BlockState class (More to do)
    • Removed a tonne of legacy code
    • Fully transitioned items
    • Add a migration from (id, data) -> (blockstate) for schematics and command compatibility
    • Add a way to get states by name. Needed to write converters between platform States to WorldEdit States.

    To do:

    • Implement the Sponge Schematic Format, as it supports 1.13
    • Platforms other than Spigot
    opened by me4502 156
  • //line and //curve

    //line and //curve

    I've always wondered why WorldEdit didn't have commands like these.

    Thanks to TomyLobo for letting me use his interpolation classes from his routes project. Also, his new convex polyhedral regions allowed convenient user input for //curve, and he's given me much advice.

    Thanks to wizjany for not pulling this after my first commit, as I'd requested :P

    @Command(
        aliases = { "/line" },
        usage = "<block> [thickness]",
        desc = "Draws a line segment between cuboid selection corners",
        help =
            "Draws a line segment between cuboid selection corners.\n" +
            "Can only be used with cuboid selections.\n" +
            "Flags:\n" +
            "  -h generates only a shell\n",
        flags = "h",
        min = 1,
        max = 2
    )
    
    @Command(
            aliases = { "/curve" },
            usage = "<block> [thickness]",
            desc = "Draws a spline through selected points",
            help =
                "Draws a spline through selected points.\n" +
                "Can only be uesd with convex polyhedral selections.\n" +
                "Flags:\n" +
                "  -h generates only a shell",
            flags = "h",
            min = 1,
            max = 2
        )
    
    opened by orthoplex64 104
  • Worldedit won't start

    Worldedit won't start

    WORLDEDIT-3030 - Reported by NickthedickNS

    this happened once upon a time, I just normally started my server and then, i typed in the chat //wand, then it said there was no command like that. So, i checked that my .jar file was in the folder and it was. I don't really know what happened. I tried to redownload the worldedit.jar file and it did but didn't work when i pasted it in the plugins folder. Now i look like am a noob without Worldedit. Please fix thisโ€ฆ:(

    opened by LadyCailinBot 32
  • Fixed compilation issues and console spam

    Fixed compilation issues and console spam

    -Spout repo changed its URL, causing compile issues -Console spam occurs on using a custom-compiled server, no point in seeing that.

    opened by vemacs 30
  • Allow configuration keys to contain a '.' character.

    Allow configuration keys to contain a '.' character.

    This PR allows a configuration key to contain a '.' character.

    opened by me4502 30
  • Update Forge version to 1.7.10

    Update Forge version to 1.7.10

    Updated everything in the forge package to Forge 1207. Everything works perfectly as far as I can tell, tested copy/paste, move, setblock, etc. Does not work properly with mods yet, but that is for another PR.

    opened by octylFractal 27
  • Trivial changes that wizjany keeps removing from master for no reason

    Trivial changes that wizjany keeps removing from master for no reason

    1. New blocks have made the compass and other player teleports inaccurate and you end up above blocks or inside stone walls and snow.
    2. EditSession.countBlocks is an abominable violation of a Java interface contract and there's more copying than necessary going on in there.

    Note: As I add more changes to the develop branch, the above list might become incomplete Latest build is available at http://builds.enginehub.org/job/worldedit/last-successful/?branch=develop

    opened by TomyLobo 24
  • Fix bounds error when loading negative block IDs

    Fix bounds error when loading negative block IDs

    Fixes the error when pasting schematics with large block IDs which which wrap around and cause this out of bounds error:

    19:01:33 [SEVERE] java.lang.ArrayIndexOutOfBoundsException: -28
    19:01:33 [SEVERE]   at org.bukkit.Material.getMaterial(Material.java:438)
    19:01:33 [SEVERE]   at com.sk89q.worldedit.bukkit.BukkitWorld.isValidBlockType(BukkitWorld.java:844)
    19:01:33 [SEVERE]   at com.sk89q.worldedit.EditSession.rawSetBlock(EditSession.java:178)
    19:01:33 [SEVERE]   at com.sk89q.worldedit.EditSession.flushQueue(EditSession.java:731)
    19:01:33 [SEVERE]   at com.sk89q.worldedit.WorldEdit.handleCommand(WorldEdit.java:1265)
    19:01:33 [SEVERE]   at com.sk89q.worldedit.bukkit.WorldEditPlugin.onCommand(WorldEditPlugin.java:204)
    19:01:33 [SEVERE]   at com.sk89q.bukkit.util.DynamicPluginCommand.execute(DynamicPluginCommand.java:44)
    19:01:33 [SEVERE]   at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:166)
    19:01:33 [SEVERE]   at org.bukkit.craftbukkit.CraftServer.dispatchCommand(CraftServer.java:469)
    19:01:33 [SEVERE]   at net.minecraft.server.NetServerHandler.handleCommand(NetServerHandler.java:914)
    19:01:33 [SEVERE]   at net.minecraft.server.NetServerHandler.chat(NetServerHandler.java:874)
    19:01:33 [SEVERE]   at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:857)
    19:01:33 [SEVERE]   at net.minecraft.server.Packet3Chat.handle(Packet3Chat.java:33)
    19:01:33 [SEVERE]   at net.minecraft.server.NetworkManager.b(NetworkManager.java:234)
    19:01:33 [SEVERE]   at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:118)
    19:01:33 [SEVERE]   at net.minecraft.server.NetworkListenThread.a(NetworkListenThread.java:78)
    19:01:33 [SEVERE]   at net.minecraft.server.MinecraftServer.w(MinecraftServer.java:557)
    19:01:33 [SEVERE]   at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:455)
    19:01:33 [SEVERE]   at net.minecraft.server.ThreadServerApplication.run(SourceFile:490)
    

    To reproduce:

    1. Install MCPC 1.2.3 with IndustrialCraft^2 from http://www.mcportcentral.co.za/index.php?topic=1692.0
    2. Load an MCEdit schematic containing machine block IDs , example: http://dl.dropbox.com/u/65303659/Schematics.zip
    3. //schem load XPHCFactory
    4. //paste

    Without the patch, the above error occurs, and the IC2 machines and cables are missing. With the patch, they're pasted successfully.

    opened by mushroomhostage 24
  • Crash with WorldEdit, java.lang.NoClassDefFoundError: org.apache.logging.log4j.util.ReflectionUtil

    Crash with WorldEdit, java.lang.NoClassDefFoundError: org.apache.logging.log4j.util.ReflectionUtil

    Versions

    WorldEdit version: 7.2.0-beta-01 (fabric) Platform version: Minecraft 1.16.1, Fabric Loader 0.8.8, MultiMC 5

    Describe the bug

    Crash while loading world.

    To Reproduce

    1. Install MultiMC 5,
    2. Create an 1.16.1 instance and add Fabric to the instance,
    3. Add WorldEdit,
    4. Start the game, and load a world,
    5. Crash occurs.

    Expected behavior

    No crashes.

    Screenshots

    None.

    Additional context

    Crash report: crash-2020-06-28_11.06.59-server.txt

    type:bug platform:forge status:accepted 
    opened by Axelandre42 24
  • //Setbiome /biomelist (we bukkit 6.0)

    //Setbiome /biomelist (we bukkit 6.0)

    WORLDEDIT-3236 - Reported by Cronosus

    setting biome only says: "For parameter 'basebiome': Can't recognize biome type 'Desert' -- use /biomelist to list available types Usage: //setbiome "

    and under /biomelist is nothing no error logs

    Server Cauldron 1.7.10 modded (BoP,Forestry,IC2)

    bug or still not implemented? Thanks in advance

    opened by LadyCailinBot 23
  • Can't add more vertices to convex region after creating a line of vertices.

    Can't add more vertices to convex region after creating a line of vertices.

    WorldEdit Version

    Bukkit-Official(7.2.7+9f3e795)

    Platform Version

    git-Paper-788

    Confirmations

    • [X] I am using the most recent Minecraft release.
    • [X] I am using a version of WorldEdit compatible with my Minecraft version.
    • [X] I am using the latest or recommended version of my platform software.
    • [X] I am NOT using a hybrid server, e.g. a server that combines Bukkit and Forge. Examples include Arclight, Mohist, and Cardboard.
    • [X] I am NOT using a fork of WorldEdit, such as FastAsyncWorldEdit (FAWE) or AsyncWorldEdit (AWE)

    Bug Description

    When adding vertices to a convex region, if you add them in a line no other vertices will be added.

    Expected Behavior

    To add extra vertices.

    Reproduction Steps

    Start a convex region selection. Add a vertex to the left. Add a vertex to the right. Try to add more vertices somewhere else (Part that doesn't work).

    Anything Else?

    Issue is still present using 7.2.8-SNAPSHOT (7.2.8-SNAPSHOT+5982-1aad921) and 7.3.0-SNAPSHOT (7.3.0-SNAPSHOT+5979-de6fa17).

    Video of the issue: (Shown using FAWE, but confirmed the issue still happens using default WE) https://user-images.githubusercontent.com/32806171/143670759-d7e2ff4d-fa56-4708-b5ea-f3651e390588.mp4

    type:bug status:pending 
    opened by Zephy1 1
  • Add JApiCmp for binary compat checking

    Add JApiCmp for binary compat checking

    We currently rely on my massive brain [/j] to detect binary compatibility issues. We should use a proper tool for this, so I don't have to keep thinking about it.

    status:accepted type:tech-debt 
    opened by octylFractal 0
  • Remove finalize, use a Cleaner instead

    Remove finalize, use a Cleaner instead

    This fixes #1927.

    I also enabled the trace by default, since it's pretty useful. It can always be turned off if it's causing issues.

    status:accepted type:tech-debt 
    opened by octylFractal 1
  • 1.18

    1.18

    It's finally here, and we can't wait.

    Drafted until 1.18 comes out. Use at your own risk.

    platform:bukkit-spigot-paper platform:forge platform:fabric type:feature-request 
    opened by octylFractal 1
  • Move to JB annotations

    Move to JB annotations

    It's about time.

    status:accepted type:tech-debt 
    opened by octylFractal 0
  • 1.18 Update Notes

    1.18 Update Notes

    • :crab: :crab: Horizontal biome stuff is dead!!! :crab: :crab:
    • No intermediary biome array? stored directly in section
    • No need for mutable hacks, the biome container is directly modifiable
    • BlockEntity nbt saving is restructured. I used the one with just the id.
    • Be careful with biome container indexing, needs & 3.
    • The structure block packet is both easier and harder, forge will need new AT, bukkit will need reflection.

    More to come?

    type:feature-request 
    opened by octylFractal 0
  • Manipulating region spawns duplicate items/blocks

    Manipulating region spawns duplicate items/blocks

    WorldEdit Version

    7.2.7

    Platform Version

    Purpur 1.17.1-R0.1-SNAPSHOT

    Confirmations

    • [X] I am using the most recent Minecraft release.
    • [X] I am using a version of WorldEdit compatible with my Minecraft version.
    • [X] I am using the latest or recommended version of my platform software.
    • [X] I am NOT using a hybrid server, e.g. a server that combines Bukkit and Forge. Examples include Arclight, Mohist, and Cardboard.
    • [X] I am NOT using a fork of WorldEdit, such as FastAsyncWorldEdit (FAWE) or AsyncWorldEdit (AWE)

    Bug Description

    When copying and pasting selection or moving and doing other region manipulations, some duplicate blocks are dropped like lanterns, doors, torches, signs and others.

    Expected Behavior

    Nothing should be dropped.

    Reproduction Steps

    1. Select a region with lanterns, torches, signs.
    2. Copy this region and paste somewhere, move or do anything that moves a region.
    3. Duplicate items are dropped like lanterns, signs and so on.

    Anything Else?

    No response

    type:bug status:accepted 
    opened by Bloodlex 11
  • Missing tab completion on hand argument

    Missing tab completion on hand argument

    WorldEdit Version

    7.2.8-SNAPSHOT+5955-3ba0890

    Platform Version

    Paper version git-Paper-377

    Confirmations

    • [X] I am using the most recent Minecraft release.
    • [X] I am using a version of WorldEdit compatible with my Minecraft version.
    • [X] I am using the latest or recommended version of my platform software.
    • [X] I am NOT using a hybrid server, e.g. a server that combines Bukkit and Forge. Examples include Arclight, Mohist, and Cardboard.
    • [X] I am NOT using a fork of WorldEdit, such as FastAsyncWorldEdit (FAWE) or AsyncWorldEdit (AWE)

    Bug Description

    If you use "//set hand[" while holding leaves for example, it doesn't show the optional tags.

    Expected Behavior

    Show optional arguments like on //set

    Reproduction Steps

    1. Hold oak leaves in your hand
    2. Type "//set hand[""
    3. Notice the tab completion is missing

    Anything Else?

    No response

    type:bug status:accepted 
    opened by josephjthomas 0
  • Bundle Mojang mapped adapters as output jar

    Bundle Mojang mapped adapters as output jar

    WorldEdit Version

    7.2.8-SNAPSHOT+5955-3ba0890

    Platform Version

    git-Paper-"3f17694"

    Confirmations

    • [X] I am using the most recent Minecraft release.
    • [X] I am using a version of WorldEdit compatible with my Minecraft version.
    • [X] I am using the latest or recommended version of my platform software.
    • [X] I am NOT using a hybrid server, e.g. a server that combines Bukkit and Forge. Examples include Arclight, Mohist, and Cardboard.
    • [X] I am NOT using a fork of WorldEdit, such as FastAsyncWorldEdit (FAWE) or AsyncWorldEdit (AWE)

    Bug Description

    Loading WorldEdit on a Mojang mapped jar, leads to it firing the message below.

    [12:18:52] [Server thread/WARN]: 
    **********************************************
    ** This WorldEdit version does not fully support your version of Bukkit.
    **
    ** When working with blocks or undoing, chests will be empty, signs
    ** will be blank, and so on. There will be no support for entity
    ** and block property-related functions.
    **
    ** Please see https://worldedit.enginehub.org/en/latest/faq/#bukkit-adapters
    **********************************************
    

    Expected Behavior

    WorldEdit loading fine.

    Reproduction Steps

    1. Use WorldEdit on a Mojang mapped jar
    2. Notice the adapters failing to load/be provided

    Anything Else?

    No response

    type:feature-request status:pending 
    opened by NotMyFault 6
  • Add divide command

    Add divide command

    This PR adds a relatively simple yet useful command: //divide [number] [pattern].

    This command performs a similar task to the existing //center [pattern] command, but gives the user more control by allowing the player to specify a division factor. This command would divide the selected region by the provided quantity and set those blocks to the provided pattern.

    opened by Lennart99 2
Owner
EngineHub
Open-source mods for and by the Minecraft community
EngineHub
An elegant Minecraft mod template for the Fabric mod loader

Fabric Example Mod Lorem ipsum dolor sit amet Example is a Minecraft mod that lorem ipsum dolor sit amet. Ut mi lectus, egestas a justo nec, hendrerit

Axieum 24 Dec 4, 2021
A Minecraft Mod for Fabric which aims to make Block Entity rendering faster and more customizable with almost no compromises.

Enhanced Block Entities EBE is a 100% client side mod for Minecraft on the Fabric mod loader which aims to increase the performance of block entity re

null 92 Nov 26, 2021
Minecraft 1.16.5 Utility Mod for Anarchy and Crystal PvP

Fabric 1.16.5 port for GameSense. A more interesting readme will be coming soon, but check out the main repo at https://github.com/IUDevman/gamesense-

null 24 Aug 31, 2021
The Minecraft Mod API

Bukkit A Minecraft Server API. Website: http://bukkit.org Bugs/Suggestions: http://leaky.bukkit.org Contributing Guidelines: CONTRIBUTING.md Compilati

The Bukkit Project 2.1k Nov 28, 2021
Essentials - Minecraft server command mod - Adds over 100 commands for use in-game to help manage a server

Essentials Development Readme The official repository is at: https://github.com/essentials/Essentials We use NetBeans 7.3 for development. Recommended

Essentials 759 Nov 28, 2021
A minecraft mod that allows additional windows to be opened alongside the game

Breakout API BreakoutAPI is a Minecraft mod which allows developers to create new windows that run alongside Minecraft. All the windows run on the sam

Raph Hennessy 9 May 31, 2021
A Fabric mod designed to improve the chunk performance of Minecraft.

C^2M-Engine A Fabric mod designed to improve the chunk performance of Minecraft. So what is C2ME? C^2M-Engine, or C2ME for short, is a Fabric mod desi

null 251 Dec 1, 2021
A minecraft utility mod for 1.12.2.

Teddyware Utility Mod Teddyware is a utility mod for minecraft anarchy servers for 1.12.2. It is like optifine, and should only be used on servers tha

null 26 Oct 25, 2021
A minecraft mod that allows using minecrafts structure block based test system

MC Tester Mod This mod allows using the automated structure based test system Mojang created for minecraft. The test system is only partially included

2No2Name 15 Nov 14, 2021
A Minecraft Mod For TeaCon 2021

Source installation information for modders ------------------------------------------- This code follows the Minecraft Forge installation methodology

null 6 Sep 24, 2021
Minecraft Multi-Threading Mod Fabric Port

MCMTFabric - Minecraft Multi-Threading Mod Fabric Port This mod is based on the amazing work on JMT-MCMT. Please check that repository for details. No

Grider 52 Dec 1, 2021
sexc forge mod for 1.12.2 minecraft

Wurst+3 Discord | Donate | Download 1.12.2 forge minecraft client Made for crystalpvp and killing noobs. On first run ensure your voices volume is max

Wurst+ 179 Nov 24, 2021
Minecraft mod running on the TTCp engine to load modules written in JS at runtime - with runtime deobfuscation!

PolyFire ClickGUI opens with NUMROW_0 How to use: Run -jsmodules to initialize Navigate to your .minecraft folder Go to config/pf/modules/ Copy Exampl

Daniel H. 2 Aug 24, 2021
Fabric mod for rainbow backgrounds in minecraft guis

rainbowify rainbowify is a Fabric mod for Minecraft 1.17 that adds a customizable rainbow background to many Minecraft HUDs. Discord: https://discord.

Lennox 12 Nov 20, 2021
A Minecraft mod on the Fabric modloader which aims to add some useful vehicles.

Automobility A Minecraft vehicle mod adding customizable cars. Made for ModFest 1.17 Screenshots Try it out! Recommended to use along with LambdaContr

null 13 Nov 9, 2021
A mod for 1.17 which fixes common bugs in Minecraft

Astatine Astatine is a mod for Minecraft which fixes common bugs in the game Astatine uses the Fabric Mod Loader, Forge will not be supported. About A

Conor Byrne 4 Jul 8, 2021
Minecraft mod to change the stack size of all items. Fabric 1.17

Stacker Minecraft mod to change the stack size of all items. For Fabric 1.17 Note: This mod has a config that defaults to 64. Change it to be whatever

Andrew Grant 11 Nov 3, 2021
1.17.1 minecraft utility mod

Blitz 1.17.1 minecraft utility mod Designed to be used as a mod with the fabric mod loader Project Status This project is basically on hold until 2b2t

Gavin 13 Oct 29, 2021