CC3+ Maps in VTT’s – Hiding and Unhiding Objects

Last month, I talked about how to bring your DD3 map into various Virtual Table Top (VTT) systems. Now, that is all well and good, but simply exporting a flat image from CC3+ to a VTT do have some limitation. For example, if you make a beautiful forest, the player token would be walking atop your trees, and the players wouldn’t see what is below the trees. In the real world, when you take a walk in the forest, you actually see the forest floor, not the treetops. Same happens when your characters encounters this mysterious house in the forest. Your gorgeous maps shows the scene, and as with any outdoor map, seen from above, the map shows the roof of the house. Then your players announce they are going inside. What now?

There are two ways of handling this. The first is just to have separate maps, one for inside the house, and another for outside. Then you can just load the inside map whenever the players enter the house. But what if someone stays outside and someone goes inside? Well, you could have an identical map still showing the outside, but now revealing the insides of the house instead of the roof. But this approach still means you need to move the player/monster tokens from one map to the next.

The other approach is to have items in your battlemaps that can be hidden to show additional features. This is something we are quite used to doing inside CC3+ by hiding and showing sheets, and the subject of an earlier article. This is a very nice approach, but it is also a bit trickier. The problem here is that when we export a map from CC3+, we end up with a flat image file, we lose things like sheets and layer. There are image formats supporting layers, but CC3+ can’t export to these, nor can the VTT software import them, so we need to do it differently.

For this article, I’ll use MapTool as an example, as it is both free, and my VTT of choice. But any VTT that supports the concept of layers should be able to do this in a very similar manner.


Our first step will be making the CC3+ map itself. I’ll not describe the entire process here, but the main idea is to make a CC3+ map, and put hideable features on separate sheets. For example, in my sample map, I’ve made a simple battlemap in DD3 with a house and some trees. The house symbol (from CD3) is put on a sheet by itself, named ROOF. The trees are also on a separate sheet, called TREES. I’ve drawn walls and furniture for the house, and I’ve put symbols below the trees. I’ve also placed some tree trunks in the middle of the trees (DD3 is unfortunately short on tree trunks, but I found some great ones in the excellent CSUAC 2.0 collection). As long as the ROOF and TREES sheets are visible, all these things are hidden by the building symbol and tree symbols, but if I hide those two sheets I can see the building interior and the symbols below the trees (You may even use transparency instead of hiding the sheets completely). You can download my example map, but you’ll need CC3+, DD3, CD3 and CSUAC 2.0 for it to work.


With the map done, the next step is to export it. However, to be able to hide the trees and roof, we actually need this as separate components.

For this example, I’m going to export the map at 100 pixels per grid square. I discussed the export steps in last month’s article, so I am not going into the details here, but since this map is 20 by 16 grid squares, the export size is 2000×1600. remember to use the rectangular png export option so you can grab just the map, and not the border. Also, remember to hide the grid before exporting.

For the first export (this is going to be the actual map in the VTT), we export it without the hideable elements. So, for this map, I am hiding the TREES and ROOF sheets. The export should end up looking like the bottom image above.

Now, the point of the second export is to primarily to export the hidables, i.e. the trees and roof. However, exporting just a tree is problematic because of elements with partial transparency, such as the shadow. It is also tricky to figure out the exact export size for the tree, and this is important to make the elements match up perfectly in the VTT. So, what we will be doing is actually export the entire map again, using the exact same settings as before, but this time with the TREES and ROOF sheets visible. The export should look like the top image above.

Image editing

The next step requires an external image editor. I assume you know how to use your preferred editor, so I won’t go into details, but the point here is to copy the trees from our second export image and make their own images. Images are of course square, but try to make them as tight to the edge of the trees as possible. Do remember that we want to keep the shadows from the trees however.

Then, I take the eraser tool and erase the parts of the tree images I don’t need. You don’t have to do a perfect job here, the idea is mainly to get rid of parts of other hideable symbols, each image should only display a single tree, and no part of another. Look at the image to the right to see my work, as you can see I didn’t bother erasing all the ground near the tree. Make sure the erased sections are transparent, and not just a solid color though. Do NOT resize these images in any ways, we need to keep the size of the trees. When done, save each tree as it’s own png image.

We could handle the roof now too, but we’ll do that in a different way.

Virtual Tabletop

Now, we are ready to set up our VTT environment. For this step, I assume all your images; the main map and trees are all located in the same folder on your computer.

Now, in MapTool, go to File -> Add Resource to Library. In the dialog, browse to the folder you stored the files, and click Install. This will make this folder available in the Resource Library window.

Then, create a new map. Remember to set the Pixels per cell to match our export (100 in my example), then click the Map button, pick the correct folder in the resource library navigator in the dialog, and pick the map image. This should get our map file into MapTool like we talked about in last month’s article.

The next step is to add our trees and the roof. Select the Object layer in the layer selector in the top right. When you add things to the object layer, it is not resized/snapped to the grid, which means our trees will keep their size. And if you followed along this far, the size of the trees should be exact, meaning that when you drag them into the map, you don’t need to resize them, so just drag them into the map, and position them. It can be a bit fiddly to position them, but just use the terrain around the trees as a guide. If you did like me and just made a coarse edit to the trees, there will be terrain around the tree, and you just need to line that up with the background terrain in the map.

At this point, you can also try out the transparency of the trees. Right click the tree object, pick Edit from the popup menu, and in the dialog, go to the config pane, and change the Token Opacity Slider. You may also want to give the token a new name, but if you named the images tree1, tree2 and so on like I did, that name is probably fine.

The last thing we need to add is the house roof. This is a house symbol from CD3, and since we don’t need any shadows here (I’ve set the shadows from the house to be cast from the floor instead of the roof, doesn’t make a difference for the map, but is easier to handle when I have a hideable roof) we can actually just use the image directly from the symbol. This has a downside in that the image size won’t necessarily be correct, but we can resize inside of MapTool.

To make CC3+ symbols available inside maptool, we need to add them to the resource library. We do this like we did above, go to File -> Add Resource to Library, and browse to the CC3+ data directory. If you installed this to the default location, it will be c:\ProgramData\ProFantasy\CC3Plus. (ProgramData is a hidden directory by default, so if you can’t see it in the browse dialog, just try to copy and past this path into the path field instead of browsing for it. Note that MapTool may thrown an error message when you add the CC3+ directory, but you should be able to just close it and continue. Also note that MapTool will take some time caching references to all the files in the CC3+ directory, but this just happens once)

Now, with the CC3+ directory exposed to maptool, just expand CC3Plus > Symbols > Cities > CD3 > Bitmap A > Wooden in the resource library. Now, each CD3 symbol actually consists of 8 different image files. When you use the symbol catalogs in CC3+ you won’t see this, but MapTool doesn’t know what a CC3+ symbol is, and simply show all 8 images. These images are different quality versions of the same image (CC3+ uses these to speed up performance) and varicolor maps (the weird colored ones. MapTool has no concept of varicolor images, so just ignore them). Now, pick the Wooden 4_VH image and drag it into the map. Manually resize it so that it covers the house properly, and the pipe lines up. (Obviously, this was the house symbol I used in my map. If you are using your own map, you’ll need to identify the correct image yourself. The image should match the name of the symbol in CC3+, and the _VH just means it is the highest quality version, which is what you want for the VTT).

We could of course just have inserted the tree symbols the same way, instead of exporting them and manually cropping the images, but that means we’ll loose out on the effects, in this case the shadows.

Note that if you right click one of the objects and set the ‘Visible over FOW’ option, the player tokens will actually appear below the object instead of above it. This means that if you set the roof to a partial transparency, any tokens under the roof will be partially obscured by it, making for a nice effect. Of course, this also makes it visible over Fog of War, which may be an issue since it can reveal locations.

Once done placing the objects, remember to switch back to the Token layer, as you don’t want your character/monster tokens on the object layer. You’ll need to switch back to object each time you need to manipulate them however.


MapTool supports macros, and you can easily change the transparency of any object with this quick macro command. Just type it into the chat box:

[h: setTokenOpacity(0.5, “House”)]

“House” is the name of the token/object to affect, you can easily see/change an object name by right clicking on it and hitting Edit (with the correct layer active). 0.5 is the opacity value, it goes from 1 (fully opaque) to 0 (fully transparent).

The great thing about using the macro commands is that you can change the opacity of the objects without switching to the appropriate layer first, saves you from going back and forth between token and object layers. And the chat box do have command history, just hit arrow up to go back to the last command typed and change it instead of typing it from scratch every time.

There is this nice package out there called the Bag of Tricks which contains macros that can automatically hide trees and roofs as tokens move under them. Since these are now separate objects in our map, you can use such tools on them. I won’t get into the Bag of Tricks here though, that is a rather complicated thing, just wanted to mention it.

You can download my CC3+ map, and my MapTool campaign.




Comments are closed.