Worldpainter
Содержание:
- Creating a Filter
- What it does
- Creating a World from a Height Map
- Applying a Terrain Type Directly
- How do I make the borders of the map look nice and integrate well with the Minecraft landscape?
- Export from the command line
- Loading a Height Map
- Export the Map as a Minecraft Map
- How do I add custom blocks from mods to the map?
- WorldPainter runs out of memory
- How do I change what Minecraft does when I use Populate? How do I get rid of all the small water and lava lakes?
- Types of Tools in WorldPainter
- Comments
- How do I add custom brushes?
- Tips and Tricks
- Is Multiplayer supported? How do I put the map on a Minecraft server?
- Walls
- Présentation de World Painter
- JIDE Docking Framework
- Change Brush Size and Texture
- Materials
Creating a Filter
The height map, layer and terrain application operations described above can take a filter. Here is how you create one:
var filter = wp.createFilter()
.aboveLevel() // Optional. Apply the operation only at and above the specified terrain level
.belowLevel(255) // Optional. Apply the operation only at or below the specified terrain level
.feather() // Optional. When applying a continuously-valued layer, let it fade out around the specified terrain levels, instead of being cut off sharply
.aboveDegrees() // Optional. Mutuatlly exclusive with belowDegrees(). Specifies the slope in degrees above which the operation must be applied. PLEASE NOTE: only works well with worlds created from high res (16-bit) height maps or sculpted manually in WorldPainter!
.belowDegrees() // Optional. Mutuatlly exclusive with aboveDegrees(). Specifies the slope in degrees below which the operation must be applied. PLEASE NOTE: only works well with worlds created from high res (16-bit) height maps or sculpted manually in WorldPainter!
.onlyOnTerrain() // Optional. Mutually exclusive with all other onlyOn* and exceptOn* conditions. Specifies the terrain index of the terrain on which the operation should only be applied
.onlyOnLayer(layer) // Optional. Mutually exclusive with all other onlyOn* and exceptOn* conditions. Specifies the layer which must be present for the operation to be applied
.onlyOnBiome() // Optional. Mutually exclusive with all other onlyOn* and exceptOn* conditions. Specifies the biome ID of the manually painted biome on which the operation should only be applied
.onlyOnAutoBiome() // Optional. Mutually exclusive with all other onlyOn* and exceptOn* conditions. Specifies the biome ID of the automatically set biome on which the operation should only be applied
.onlyOnAutoBiomes() // Optional. Mutually exclusive with all other onlyOn* and exceptOn* conditions. Specifies that the operation must only be applied on automatically set biomes
.onlyOnWater() // Optional. Mutually exclusive with all other onlyOn* and exceptOn* conditions. Specifies that the operation must only be applied on flooded areas
.onlyOnLand() // Optional. Mutually exclusive with all other onlyOn* and exceptOn* conditions. Specifies that the operation must only be applied on dry areas
.exceptOnTerrain() // Optional. Mutually exclusive with all other onlyOn* and exceptOn* conditions. Specifies the terrain index of the terrain on which the operation must NOT be applied
.exceptOnLayer(layer) // Optional. Mutually exclusive with all other onlyOn* and exceptOn* conditions. Specifies the layer which must NOT be present for the operation to be applied
.exceptOnBiome() // Optional. Mutually exclusive with all other onlyOn* and exceptOn* conditions. Specifies the biome ID of the manually painted biome on which the operation should NOT be applied
.exceptOnAutoBiome() // Optional. Mutually exclusive with all other onlyOn* and exceptOn* conditions. Specifies the biome ID of the automatically set biome on which the operation should NOT be applied
.exceptOnAutoBiomes() // Optional. Mutually exclusive with all other onlyOn* and exceptOn* conditions. Specifies that the operation must only be applied on manually painted biomes
.exceptOnWater() // Optional. Mutually exclusive with all other onlyOn* and exceptOn* conditions. Specifies that the operation must only be applied on dry areas
.exceptOnLand() // Optional. Mutually exclusive with all other onlyOn* and exceptOn* conditions. Specifies that the operation must only be applied on flooded areas
.go();
For an overview of the actual terrain type indices to use in onlyOnTerrain() or exceptOnTerrain() and the terrain types to which they correspond, see this page. For an overview of the biome IDs to use in onlyOnBiome(), onlyOnAutoBiome(), exceptOnBiome() or exceptOnAutoBiome() see page.
What it does
Biomes (in Minecraft) are different combinations of temperature, precipitation, vegetation type, etc.. They are stored per horizontal (x, z) coordinate (in other words, per column of blocks) and they influence the colour of grass and leaves, whether it rains, snows or is dry, whether water freezes and which mobs will spawn.
When Minecraft generates land, it does so in two steps:
In step one, it calculates the biomes according to its own world generating algorithm and then generates the actual land mass, surface terrain (grass, sand, etc.), river or ocean water and caves, according to the biome. Since WorldPainter pre-generates the chunks, Minecraft never performs this step for those chunks.
In step two, the «populate» step, Minecraft adds underground resources (ores, lava and water lakes), creates the vegetation (trees, tall grass, mushrooms, flowers, lily pads, etc.), small lava and water lakes on the surface and structures (abandoned mines, NPC villages, strongholds, dungeons and desert and jungle temples). It does this according to the biome settings stored in the chunk. This second step can be performed by Minecraft on chunks generated by WorldPainter, because there is a flag for each chunk in the map data telling Minecraft whether that chunk has been populated yet.
This second step is what the Populate layer controls. If you paint the Populate layer on a chunk, or check «allow Minecraft to populate the entire terrain», WorldPainter will turn off the flag saying the chunk is already populated for that chunk (or all chunks), which will cause Minecraft to populate it the first time it loads the chunk. If you don’t use Populate, the chunk will be left as it is (which may include trees, etc. generated by WorldPainter using the other layers) when it is loaded by Minecraft.
Exactly what Minecraft will do depends on the biomes you painted (or WorldPainter chose automatically) for that chunk. Note that all WorldPainter can do is tell Minecraft to populate the chunk, or not populate the chunk. It has no control over what Minecraft will do exactly. For instance, there is no way to tell it not to generated surface lakes of water or lava. If you don’t want those, your only option is not to use Populate.
Note that whether or not you use Populate, the biomes will still determine the colour of grass and leaves, whether it will rain or snow or be dry, whether water will freeze and what kinds of mobs will spawn.
Creating a World from a Height Map
Creating a new world from a height map:
var world = wp.createWorld()
.fromHeightMap(heightMap) // See "Loading a Height Map"
.scale(100) // Optional. The % at which to scale the height map. Default value: 100%
.shift(, ) // Optional. The number of blocks the height map should be shifted east and south respectively (negative numbers shift west and north). Default value: 0, 0
.fromLevels(, 255).toLevels(, 255) // Optional. Specifies how image values should be mapped to surface heights. The first two values are the lower and upper bounds of the range of image values; the second pair of values if the corresponding range of surface heights those image values should be mapped to. The default is to map the values one on one
.go(); // Returns the created world for exporting, saving or using in other operations
Note that WorldPainter supports 16-bit height maps! You can import them to create worlds with high resolution height information, which will make smooth snow look better and editing work more smoothly. You’ll need to tell WorldPainter to map the full range of the height map (or any other desired range) to the full range of the world height though, by setting fromLevels() and toLevels() like this:
.fromLevels(, 65535).toLevels(, 255)
Applying a Terrain Type Directly
A terrain type can also be applied to a world directly, without a height map but optionally with a filter:
wp.applyTerrain() // The terrain type index to set
.toWorld(world) // See "Loading a World" or "Creating a World from a Height Map"
.withFilter(filter) // Optional. Specifies conditions for where the layer will be applied. See below for details about creating a filter
.applyToSurface() // Optional. Mutually exclusive with applyToNether() and applyToEnd(). Indicates that the layer should be applied to the Surface dimension. This is the default
.applyToNether() // Optional. Mutually exclusive with applyToSurface() and applyToEnd(). Indicates that the layer should be applied to the Nether dimension
.applyToEnd() // Optional. Mutually exclusive with applyToSurface() and applyToNether(). Indicates that the layer should be applied to the End dimension
.go();
For an overview of the actual terrain type indices to use in applyTerrain() and the terrain types to which they correspond, see this page. Note that if you want to include Custom Terrain types which aren’t already present in the world, you must install the Custom Terrain type on the world first (see «Installing a Custom Terrain» above) and that operation will return the terrain index to use for that particular Custom Terrain.
How do I make the borders of the map look nice and integrate well with the Minecraft landscape?
When you leave the WorldPainter-generated chunks, Minecraft will start generating land again, according to the seed you specified and its own algorithms. There is nothing WorldPainter can do to avoid that. If you don’t take this into account, the edges or seams between your world and the Minecraft world may be very abrupt and ugly. There are several strategies for making the seams look good:
- Make the edges of your world all water, and use the «ocean» Minecraft seed option (the default) on the New World screen. Make sure to use the default water level for your world (62) and make the water depth around the edges at least fifteen blocks so it will match the ocean floor better. This will embed your world into a huge ocean and since the seams are all water they will be almost unnoticeable. Note that this does mean that there will be no other continents anywhere nearby though!
- Configure a border on the Export screen. Note that this doesn’t get rid of the seams, it just moves them further away. Also note that if the edges of your world are land (instead of water), or if the water level of your map is different than the border level, there will still be an ugly edge between your land and the border.
- Use the «bedrock wall» option on the Export screen to make it hard to leave your world. Note that it is still possible to leave it, since you can just build your way to the top of the wall and walk right over it. And of course it means an ugly wall all around your world. You can combine this option with a border, so that you at least can’t see the wall from the shores of your world.
- Use the Import/Merge functions to smooth the seams after the fact:
- Export your world
- Load it in Minecraft, and fly along all the edges, forcing Minecraft to generate all the chunks around the edges
- Import the map into WorldPainter using Ctrl+I or File -> Import -> Existing Minecraft map…
- Use the Smooth tool, terrain tools, and any other tool of your choice to merge and smooth the seams
- Select the Read-only layer, select a large and solid brush and set the intensity to full, and paint the entire interior of the world with the Read-only layer. This will greatly speed up the merge process. Be careful not to mark any chunks near the seams read-only though, as your edits in those chunks would be lost
- Merge the changes with the original map using Ctrl+R or File -> Merge World…
- The downside of this is that changing the slope of the land will mess up any trees that were on it. You’ll have to visit all the seams again in Minecraft to manually fix problems introduced by the merge
Export from the command line
If none of the above worked and you’re comfortable getting your hands dirty on the command line, you can try using a script to export the world instead of using WorldPainter. Scripts use less memory than WorldPainter proper, so they might succeed if WorldPainter does not. Using a text editor, create a file in the directory where your .world file is stored, named , with the following contents:
var world = wp.getWorld().fromFile(argv1]).go();
wp.exportWorld(world).toDirectory('.').go();
Then export the world by opening a terminal or command prompt window, navigating to the directory where your .world file is stored, and executing the following command. For more information about what the «command prompt» is and how to access and use it on Windows, see this page. Similar information can be found for Mac OS X and UNIX/Linux. Google is your friend.
wpscript exportworld.js "MyWorldName.world"
Where is the name of your .world file, in double quotes in case the name contains spaces. This will export the map to a subdirectory of the current directory (which is the directory in which your .world file is stored), which you will then have to move to the Minecraft directory manually. You don’t have to use the command line for that; you can drag and drop it.
Note: the export script operation gives no progress feedback. This is normal, but it means there is no way to tell visually whether it is hanging or not, or how far along it is. Instead you should regularly check the total size of the files in the map directory it has created (on Windows you can do that by opening the properties of the folder in Explorer) to check whether it keeps steadily increasing.
Note: with this method you cannot change the export settings from WorldPainter’s Export screen. Those settings are stored in the .world file, so you can change them by starting an export with the desired settings in WorldPainter, immediately cancelling the export, and then saving the .world file. If you then export it with the script method the same settings will be used as for the aborted export.
Loading a Height Map
There are several operations which take a height map as input. Here is how to load one:
var heightMap = wp.getHeightMap()
.fromFile('path/to/heightmap/myheightmap.png') // The filename of the height map to load. Supported formats are dependent on the Java platform, but usually include at least PNG and TIFF
.selectRedChannel() // Optional. If the image is not a grayscale image you may invoke ONE OF selectRedChannel(), selectGreenChannel() or selectBlueChannel() to indicate which channel should be used to read values from. This is the default for colour images
.selectGreenChannel() // Optional. If the image is not a grayscale image you may invoke ONE OF selectRedChannel(), selectGreenChannel() or selectBlueChannel() to indicate which channel should be used to read values from. The default is to use the red channel for colour images.
.selectBlueChannel() // Optional. If the image is not a grayscale image you may invoke ONE OF selectRedChannel(), selectGreenChannel() or selectBlueChannel() to indicate which channel should be used to read values from. The default is to use the red channel for colour images.
.go(); // Returns the loaded height map for use in other operations
Export the Map as a Minecraft Map
Once you finished creating and editing your map in WorldPainter, it is time to export it as a Minecraft map! While saving your WorldPainter file saves your project for later editing, exporting it allows you to access it in Minecraft as a playable map. Then you get to see the fruits of your labor! To export your map, follow these steps:
- Left-click on the “File” menu option.
- Left-click on the “Export” option.
- Left-click on “Export as new Minecraft map”.
- Edit world name and options as desired.
- Left-click “Export” at the bottom of the window.
Choosing to export your map gives users a final chance to change some of the properties, as well as the type of map to create. Users can export their map in Survival, Creative or Adventure mode and enable or disable cheats. You can also choose the world type — Default, Superflat, or Large Biomes. The map will be exported directly into your Minecraft .saves folder unless you choose another location.
Once you’ve exported your world map, take it for a test drive! If something didn’t come out the way you planned, go back into the original WorldPainter file and edit it. Have fun making your own Minecraft worlds, and feel free to leave feedback in the comment section below!
How do I add custom blocks from mods to the map?
WorldPainter supports custom mod blocks with non-standard ID’s (even ID’s between 255 and 4096). Note: for block ID’s above 255 you have to enable «extended block IDs», either on the New World screen, or afterwards from the Edit menu.
We can’t help you with which block ID’s to use, you’ll have to find that out from the mod website or ask the authors or other users. Once you know the block ID to use there are four ways of adding custom blocks to the world:
- Use one of the Custom terrain types (one of the buttons with a question mark on them). This will set the surface layer of the world to the custom block wherever you paint that terrain.
- Create a Custom Underground Pockets layer (from the + button on the Layers panel). This will create random underground pockets of the material wherever you paint the layer. Good for things like underground ores or pockets of oil, etc.
- Create a Custom Ground Cover layer. This will create a layer of the material on top of the surface. Make it one block thick and sprinkle the layer around for things like plants and flowers, or make it several blocks thick and paint it in solidly to create glaciers, etc.
- Create a Custom Object Layer. This will load bo2 files and/or schematics and spawn them randomly on the map where you paint the layer. Schematics and bo2 files can contain custom blocks from mods if you export them from a map containing such blocks.
Please note: many mods have dynamic block ID’s at runtime which are different than the block ID’s stored on disk. The clue is often that these ID’s are higher than 4095, which is not possible on disk. Make sure to find out from the mod’s authors or documentation what the static, on-disk block ID’s are and use those in WorldPainter.
WorldPainter runs out of memory
- First, reconsider whether you really need to create a world of the size you’re trying to create. Focus on quality, not quantity, especially for adventure maps. A large map will take far longer to make, and many Minecraft hosters won’t allow maps larger than 5000 blocks squared. Server maps can generally support hundreds of players with just a few thousand blocks squared.
- Windows only: 64-bit WorldPainter can use much more memory than 32-bit WorldPainter. If you have 64-bit hardware, make sure to use the 64-bit version of Windows, Java and WorldPainter. If the installer tells you it can’t find a Java VM, you may have to install 64-bit Java first, which you can get here (pick the file ending in ).
- If you installed WorldPainter using an installer, it is already using the maximum recommended amount of memory (unless you are on Windows and are using the 32-bit version, see above). Install more memory (and reinstall WorldPainter, so that it will use it).
- If you installed WorldPainter from an archive, you can manually increase the amount of memory allocated to it by editing the file (Windows or Linux) or file (Mac OS X). See the MoreMemory page for details on how to do that.
How do I change what Minecraft does when I use Populate? How do I get rid of all the small water and lava lakes?
The small water and lava lakes aren’t created by WorldPainter, they are created by Minecraft when you use the Populate layer, or enable the «allow Minecraft to populate the entire terrain» option. WorldPainter has no control over what Minecraft does when it populates a chunk, at least not for the Default and Large Biomes world types. All it can do is tell it to populate the chunk, or not, for each individual chunk. If Minecraft populates a chunk it will add underground resources, vegetation, trees, small water and lava lakes, snow and ice, villages, ravines, strongholds and abandoned mines. It will not generate caves. For more details about the proper use of the Populate layer, see the Populate page.
If you don’t want the small water and lava lakes, you do have one option: you can set the world type to Superflat, and then use the Superflat preset to configure exactly what you want Minecraft to do during the population step. For more details about this technique, see this YouTube video by Fornan II.
You should also consider whether you need Populate, as WorldPainter has its own layers for almost everything. The only thing that WorldPainter can’t generate itself is structures (mines, villages, etc.). By default the Resources layer is «on everywhere», so WorldPainter already generates underground resources. You can use the other layers to add things like Deciduous or Pine forests, snow and ice, underground Caverns and Chasms, etc.
Types of Tools in WorldPainter
| Tool Types | Tool Descriptions |
|---|---|
|
Raise Rotated Pyramid |
Raises square pyramid out of the ground rotated 45 degrees |
|
Raise Pyramid |
Raises square pyramid out of the ground |
|
Flood |
Flood an area with water |
|
Lava |
Flood an area with lava |
|
Height |
Raise or lower the terrain |
|
Flatten |
Flatten an area |
|
Smooth |
Smooth the terrain out |
|
Raise Mountain |
Raises a mountain out of the ground |
|
Spawn |
Change the spawn point |
|
Sponge |
Dry up or reset water and lava |
|
Global Operations |
Fill or clear the world with a terrain, biome or layer |
By using these tools, you can create natural features like large, spanning mountains and massive lava-filled volcanoes. The spawn tool allows you to change the spawn point of players, a useful tool when you want to keep players from spawning into lava, voids and other dangerous map features.

Using the cracks brush will speckle terrain on your map as opposed to a solid brush.
Comments
Alexandra on August 29, 2015:
I like to make world for minecraft
Jessica Peri (author) from United States on March 24, 2014:
Yeah it will definitely export into those file types. I’d love to hear how it goes if you do! I don’t run any roleplaying campaigns, and the GM isn’t really that thorough with our roleplaying. I’ve always thought this could be a big help for campaigns, though!
Cameron Corniuk from Painesville, OH on March 24, 2014:
Thanks, Dreamhowl.An image like PNG, or JPG is what I was looking for. It could be a new way to make some of my RPG maps.
Jessica Peri (author) from United States on March 24, 2014:
Unless there is another option hiding in the menu, you can only export it as a Minecraft map file, an image file (looks like all types), or as a height map.
Cameron Corniuk from Painesville, OH on March 24, 2014:
I’m curious, what other export options are there for this application?
Jessica Peri (author) from United States on January 03, 2014:
I haven’t messed much with the more advanced features, but maybe you could edit the biome to remove or prevent frost? I’ll have to take a closer look — I’ll let you know if I figure it out!
trying to remove frost…. on January 03, 2014:
my name says it!
How do I add custom brushes?
A custom brush is a grey scale bitmap image file. You can create it yourself using a paint program such as GIMP or Paint.NET or download it off the Internet. Height maps of mountains, for instance, make good custom brush images. To install the custom brush, copy the image file to the custom brushes folder, which you can open from the Tools menu in WorldPainter. You have to restart WorldPainter for the custom brush to show up. For more details, see the CustomBrushes page.
Note: you can organise the custom brushes into separate subdirectories inside the brushes folder, which will show up as separate palettes in WorldPainter. This is especially convenient if you have many custom brushes, to prevent the palette from becoming so large that it doesn’t fit on the screen.
Tips and Tricks
- Use a solid brush and 100% intensity for painting the layer! (Although having some noisy edges can give interesting effects, so experiment with it.)
- Keep the caves small. What seems small in the editor quickly becomes huge in Minecraft. Also, if the cave is too large Minecraft’s distance fog will light it up weirdly and unnaturally. Keep your tunnels and caves smaller than your initial instinct tells you to.
- Make your tunnels winding. Again, this helps prevent the Minecraft fog from lighting up your tunnels.
- If there are no other caves around for mobs to spawn in your caves and tunnels will be crawling with them. Consider adding some generic caves in the neighbourhood using the Caverns layer, which you don’t necessarily intend players to find but which will absorb mobs.
- Instead of trying to adjust the layer parameters to stop it breaking the surface unintentionally, it may be easier to just adjust the terrain after painting the caves. The fact that the layer turns solid where it breaks the surface makes it very easy to adjust the terrain until all solid patches are gone.
Is Multiplayer supported? How do I put the map on a Minecraft server?
Yes, Multiplayer is supported. Multiplayer maps are exactly the same as Singleplayer maps. Just Export the world like normal. Then, if you run the Minecraft server on the same computer, just move or copy the generated map directory to your Minecraft server installation directory, edit the property in the file to be the same name as the directory, and (re)start the server. If the server is on a different computer the steps are the same, but you will have to transfer the map to the server somehow, generally by zipping it and transferring it to the server using a program such as Filezilla. Those details are beyond the scope of this site though. Ask your server administrator for the best way to transfer maps to the server, or google the subject.
Walls
The settings described so far will result in perfectly flat walls that meet the floors and ceilings at 90 degree angles (or whatever angle the floor or ceiling is at). If you want smoother transitions of floors to walls and walls to ceilings you can do so with the bottom width and top width settings. These determine how far, in blocks, the wall will come ‘into’ the cave at the bottom and top of the wall, respectively. From there, the wall will make a quarter circular turn upwards or downwards, so the height of the section that comes into the cave will be the same as the width (unless the cave is not high enough for that of course).
If you want a square cave or tunnel, set these to 0. If you want a perfectly circular cave or tunnel, set them to half the cave height (the difference between the floor and ceiling levels), and make sure to paint the layer at the correct width by setting the brush radius to the same value.
Présentation de World Painter
Ce logiciel se démarque clairement des autres par le biais de son aspect plutôt simpliste et optimisé, afin de répondre aux attentes des utilisateurs les plus exigeants.
Interface du logiciel et carte générée
World Painter est pourvu de nombreux boutons permettant de varier les résultats : on peut ainsi construire une gigantesque montagne comme une petite forêt de pins. Il offre aussi la possibilité de créer des pyramides plus ou moins grandes, des souterrains, de grandes fosses, etc.
On appréciera aussi la possibilité de visualiser en 3D les résultats de la création en direct, afin d’avoir une légère impression du rendu en jeu.
Vue en 3D de la carte
Enfin, il est aussi envisageable de gérer les différents biomes : on peut donc choisir d’avoir un monde entièrement désertique comme uniquement marécageux. Il est bien évidemment possible de les répartir dans plusieurs zones pour augmenter la diversité des lieux ! Voici ses autres fonctionnalités :
- Peinture personnalisée du biome
- Créez vos propres brush personnalisés
- Ajouter au monde des objets personnalisés à partir de fichiers bo2 ou de schémas
- Personnaliser l’emplacement et la fréquence des minerais et des ressources souterraines
- Ajouter de la neige et de la glace
- Des outils faciles à utiliser, mais flexibles et puissants qui ressemblent à de la peinture
- Créer des océans, des masses terrestres, des plaines et des montagnes
- Changer le type de terrain, ajouter des arbres et créer des cavernes
JIDE Docking Framework
For the docks, WorldPainter uses the JIDE Docking Framework (http://www.jidesoft.com/products/dock.htm), which is a commercial product. For development, you can download an evaluation version of the product here, with user ID and password documented here. The evaluation version will expire after two months, but you can keep downloading it again whenever it expires for two more months of development time.
Once you have your copy, either the evaluation version or the release version, install the , and files in your local Maven repository by executing the following commands from inside the directory where you extracted them:
mvn install:install-file -DgroupId=com.jidesoft -DartifactId=jide-plaf-jdk7 -Dversion=3.7.3 -Dpackaging=jar -Dfile=jide-plaf-jdk7-3.7.3.jar mvn install:install-file -DgroupId=com.jidesoft -DartifactId=jide-dock -Dversion=3.7.3 -Dpackaging=jar -Dfile=jide-dock-3.7.3.jar mvn install:install-file -DgroupId=com.jidesoft -DartifactId=jide-common -Dversion=3.7.3 -Dpackaging=jar -Dfile=jide-common-3.7.3.jar
Note: if you downloaded a different version than 3.7.3 you must use the correct version numbers in these commands, and update the version numbers in the pom.xml of the WPGUI module!
If you ever want to distribute your own version of WorldPainter (although I respectfully request that you don’t), you’ll have to download the release version of the framework and get your own licence. JIDE Software give out open source licences, which are free. When using the release version of the framework, you have to create a file called in the WPGUI module to fill in your actual licence details. It should have the following contents, filling in the actual values in place of the texts after the equals signs:
companyName=<company name> projectName=<project name> licenceKey=<licence key>
Note: make sure not to commit that file to any publicly visible source code repository, as your licence is associated with you and may not be used by other people!
Alternatively you could remove the JIDE Docking Framework from the code and replace it with some alternative docking framework. It’s a lot of work, but doable.
Change Brush Size and Texture
In the right toolbar of WorldPainter, there are fourteen brush tools of differing sizes and textures. There are also more brush options, such as rotation, intensity, and more specific level adjustments. Using these tools properly can help you create a sparse forest, a deep ocean, and other natural landmarks. The brush tools include the following:
- Spike Circle
- Spike Square
- Noise
- Linear Circle
- Linear Square
- Cracks
- Sine Circle
- Sine Square
- Constant Circle
- Plateau Circle
- Plateau Square
- Constant Square
- Dome Circle
- Dome Square
Different types of brushes are more suitable for different terrain; for example, you’ll want to use a circle-shaped brush to make a large body of water for a more natural look. You can use the cracks brush to sprinkle grassy land with rock or snow. Experiment with the brushes to figure out which ones suit your need best.

Editing your dimension properties is a great way to completely customize your map.
Materials
By default, the cave or tunnel will just be excavated out of the blocks that are already there, so the floors, walls and ceilings will be made of whatever the underground material happens to be in that location.
If you want the floors, walls and ceilings to be made of a particular kind of material you can do so by setting the material option in the corresponding section(s). You have the same mixed material options as when configuring a custom terrain type. You can leave it at just one block type, or you can configure a mix of different block types.
The floor and ceiling materials are only used for the «actual» floors and ceilings, in other words only those parts which aren’t the wall extending into the cave, or have random variation applies to them. The walls material setting includes the parts of the wall that extend into the cave, as well as any random variation of cloors and ceilings, so in rougher, more natural looking caves the walls material will actually probably be by far the most prevalent.
You don’t have to set a material for every section. You can have a floor made of Bricks or Stone Bricks or something like that, for instance, while leaving the walls and ceilings natural.