In my first
article on Maptool
, I showed you how to download, install, and configure your own private, open source virtual tabletop so that you and your friends can play an RPG game together. Maptool is a complex application with lots of features, so this article demonstrates how a game master (GM) can make the most of it.
JavaFX update
Oracle, the maintainers of Java, recently stopped bundling JavaFX in Java downloads. This means that even though you have Java installed, you might not have JavaFX installed, which MapTool requires.
Some Linux distributions have a JavaFX package available, so if you download and try to run MapTool and get an error about JavaFX, download the latest self-contained version.
For Ubuntu and other Debian-based systems:
Github.com
For Fedora and Red Hat-based systems:
klaatu.fedorapeople.org/RPTools/maptool
Building a campaign
The top-level file in MapTool is a campaign (`.cmpgn`) file. A campaign can contain all of the maps required by the game you're running. As your players progress through the campaign, everyone changes to the appropriate map and plays.
For that to go smoothly, you must do a little prep work.
First, you need the digital equivalents of miniatures: *tokens* in MapTool terminology. Tokens are available from various sites, but the most prolific is
immortalnights.com/tokensite
. If you're still just trying out virtual tabletops and aren't ready to invest in digital art yet, you can get a stunning collection of starter tokens from immortalnights.com for $0.
Starter content can be added to MapTool quickly and easily using its built-in resource importer. Go to the **File** menu and select **Add Resource to Library**.
In the **Add Resource to Library** dialogue box, select the RPTools tab, located in the bottom left. This lists all of the free art packs available from the RPTools server, tokens and maps alike. Click to download and import.
Add Resource to Library [IMG]
Importing assets you already have on your computer can be added by selecting files from the file system in the same dialogue box.
MapTool resources appear in the Library panel. If your MapTool window has no Library panel, select **Library** in the **Window** menu to add one.
Gather your maps
The next step in preparing for your game is to gather maps. Depending on what you're playing, that might mean you need to draw your maps, or purchase a map pack, or just open a map bundled with a game module. If all you need is a generic dungeon, you can also download free maps from within MapTool's **Add Resource to Library**.
If you have a set of maps you intend to use often, you can import them as resources. If you are building a campaign you only intend to use once, you can quickly add any PNG or JPEG file as a **New Map** in the **Map** menu.
Creating a new map [IMG]
Set **background** to some texture that roughly matches your map, or set it to a neutral colour.
Set the **map** to your map graphic file.
Give your new map a unique name. The map name is visible to your players, so keep the name free of spoilers.
To switch between maps, click the **Select Map** button in the top right corner of the MapTool window and choose the map name in the drop-down menu that appears.
Select a map [IMG]
Before you have your players do that, though, you still have some important prep work.
Adjust the grid size
Since most RPGs govern how far players can move during their turn, especially during combat, game maps are designed to a specific scale. The most common scale is 1 map square for every 5 feet. Most maps you download have a grid already drawn on them, and if you're designing your own map you should draw on graph paper to keep your scale consistent. Whether your map graphic has a grid or not, MapTool doesn't know about it, but you can adjust the digital grid overlay so that your player tokens are constrained into squares along the grid.
You don't normally see MapTool's grid by default, so go to the **Map** menu and select **Adjust grid**. This displays MapTool's grid lines, and your goal is to make MapTool's grid line up with the grid drawn onto your map graphic. If your map graphic has no grid, it may indicate its scale; a common scale is 1 inch per 5 feet, and you can usually assume 72 pixels is 1 inch (on a 72 DPI screen). While adjusting the grid, you can adjust the colour of the grid lines for your own reference. Set cell size in pixels. Click and drag to align MapTool's grid to your map's grid.
Adjusting the grid [IMG]
If your map has no grid and you want the grid to remain visible after adjusting it, go to the **View** menu and select **Show Grid**.
Adding Players and NPCs
To add players and monsters to your map, find the appropriate tokens in your **Library** panel, and then drag and drop one onto your map. In the **New Token** dialogue box that appears, give the token a name and set it as an NPC or a PC, and then click the OK button.
Adding a player character to the map [IMG]
Once a token is on the map, try moving it to see how its movements are constrained to the grid you've designated. Make sure you have the **Interaction Tools**, located in the toolbar just under the **File** menu, selected.
A token moving within the grid [IMG]
Each token added to a map has its own set of properties, including the direction it's currently facing, a light source, player ownership, conditions (such as incapacitated, prone, dead, and so on), and even class attributes. You can set as many or as few of these as you want, but at the very least you should right-click on each token and assign it ownership. Your players must be logged into your MapTool server to have tokens assigned to them, but you can assign yourself NPCs and monsters in advance.
The right-click menu provides access to all the important token-related functions, including setting which direction it's facing, setting a health bar and health value, a copy and paste function (enabling you and your players to move tokens from map to map), and much more.
The token menu unlocks great arcane power [IMG]
Activate Fog-of-War
If you're using maps exclusively to coordinate combat, you may not require a fog-of-war effect, but if you're using maps to help your players visualize a dungeon they're exploring then you probably don't want them to see the whole map before they've made significant moves like opening locked doors or braving a decaying bridge over a pit of hot lava.
The fog-of-war effect is an invaluable tool for the GM, and it's important to set it up early so that your players don't accidentally get a sneak peek at all the horrors your dungeon holds for them.
To activate fog-of-war on a map, go to the **Map** and select **Fog-of-War**. This blackens the entire screen, for your players, so your next step is to reveal some portion of the map so that your players aren't faced with total darkness when they switch to the map. Fog-of-war is a subtractive process; it starts 100% dark, and as the players progress, you reveal new portions of the map using fog-of-war drawing tools available in the **FOG** toolbar, just under the **View** menu.
You can reveal sections of the map in rectangle blocks, ovals, polygon, diamond, and freehand. Once you've selected the shape, click and release on the map, then drag to define an area to reveal, and then click again.
Fog-of-war as experienced by a player [IMG]
If you're accidentally over-zealous with what you reveal, you have two ways to reverse what you've done: you can manually draw new fog or you can reset all fog. The quicker method is to reset all fog with **Ctrl+Shift+A**. The more elegant solution is to press **Shift**, and then click and release, draw an area of fog, and then click again. Instead of exposing an area of the map, it restores fog.
Lighting Effects
Fog-of-war mimics the natural phenomenon of not being able to see areas of the world other than the area you are located, but lighting effects mimic visibility player characters might experience in light and dark. For games like Pathfinder and D&D 5e, visibility is governed by light sources matched against light conditions.
First, activate lighting by clicking on the **Map** menu and selecting **Vision**, and then choosing either Daylight or Night. Now lighting effects are active, but none of your players have light sources, so they have no visibility.
To assign light sources to players, right-click on the appropriate token and choose **Light Source**. Definitions exist for the D20 system (candle, lantern, torch, and so on) and in generic measurements.
With lighting effects active, players are able to cause portions of fog-of-war to be exposed as their light sources get closer to unexposed fog. That's a great effect, but it doesn't make much sense when players can illuminate the next room right through a solid wall. To prevent that, you have to help MapTool differentiate between empty space and solid objects.
Define solid objects
Defining walls and other solid objects through which light should not pass is easier than it sounds. MapTool's **Vision Blocking Layer** (VBL) tools are basic and built to minimize prep time. There are several basic shapes available, including a basic rectangle and oval. Draw these shapes over all the solid walls, doors, pillars, and other obstructions, and you have instant rudimentary physics.
Setting up obstructions [IMG]
Now your players can move around the map with light sources without seeing what lurks in the shadows of a nearby pillar or behind an innocent-looking door...until it's too late!
Lighting effects [IMG]
Initiative
Eventually, your players are going to stumble on something that wants to kill them, and that means combat. In most RPG systems, combat is played in rounds, with the order of turns being decided by an *initiative* roll. During combat, each player (in order of their initiative roll, from greatest to lowest) tries to defeat their foe, ideally dealing enough damage until their foe is left with no health points (HP). It's usually the most paperwork a GM has to do during a game, because it involves tracking whose turn it is, how much damage each monster has taken, what amount of damage each monster's attack deals, what special abilities each monster has, and more. Luckily, MapTool can help with that, and better yet you can extend it with a custom macro to do even more.
The basic Initiative panel in MapTool helps you keep track of whose turn it is, and how many rounds have transpired so far. To view the initiative panel, go to the **Window** menu and select **Initiative**.
To add characters to initiative order, right-click a token and select **Add To Initiative**. As you add each token, the token and its label appears in the Initiative panel, in the order that you add them. If you make a mistake, or someone holds their action and changes initiative order, just click and drag the tokens in the Initiative panel to reorder them.
During combat, click the **Next** button in the top left of the Initiative panel to progress to the next character. As long as you use the **Next** button, the **Round** counter is incremented, helping you track how many rounds the combat has lasted (which is helpful when there are spells or effects that last only for a specific number of rounds).
Tracking combat order is helpful, but it's even better to track health points. Your players should be tracking their own health, but since everyone's staring at the same screen it doesn't hurt to track it publicly, in one place. There's an HP property assigned to each token, and a graphical health bar you can activate, so there's all the infrastructure you need to track HP in MapTool, but doing it manually takes a lot of clicking around. MapTool can be extended with macros, though, so it's trivial to bring all of these components together for a smooth GM experience.
The first step is to activate graphical health bars for your tokens. To do this, right-click on each token and select **Edit**. In the **Edit Token** dialog box, click on the **State** tab and deselect the radio button next to **Hide**.
Don't hide the health bar [IMG]
Do this for each token whose health you want exposed.
Writing a Macro
Macros have access to all token properties, so tracking HP for each token can be done by reading and writing whatever value exists in the token's HP property. The graphical health bar, however, bases its state on percentage, so for the health bars to be meaningful, your tokens also must have some value representing 100% of its HP.
Go to the **Edit** menu and select **Campaign Properties** to globally add properties to tokens. In the **Campaign Properties** window, select the **Token Properties** tab and then click the **Basic** category in the left column. Under `*@HP`, add `*@MaxHP` and then click the **Update** button. Click the **OK** button to close the window.
Adding a property to all tokens [IMG]
Now right-click a token and select **Edit**. In the **Edit Token** window, select the **State** tab and enter a value for the token's maximum HP (from the player's character sheet).
To create a new macro, reveal the **Campaign** panel in the **Window** menu.
In the **Campaign** panel that appears, right-click and select **Add New Macro**. A button labeled **New** appears in the panel. Right-click on the **New** button and select **Edit**.
In the macro editor window, enter this code:
[h:status = input(
"hpAmount|0|Points",
"hpType|Damage,Healing|Damage or heal?|RADIO|SELECT=0")]
[h:abort(status)]
[if(hpType == 0),CODE: {
[h:HP = HP - hpAmount]
[h:bar.Health = HP / MaxHP]
[r:token.name] takes [r:hpAmount] damage.};
{
[h:diff = MaxHP - HP]
[h:HP = min(HP+hpAmount, MaxHP)]
[h:bar.Health = HP / MaxHP]
[r:token.name] gains [r:min(diff,hpAmount)] HP. };]
Full documentation of functions available in MapTool macros and its syntax is available from the
RPTools wiki
.
In the **Details** tab, enable **Include Label** **Apply to Selected Tokens**, and leave all other values at their default. Give your macro a better name than **New**, such as **HPTracker**, and then click **Apply** and **OK**.
Macro editing [IMG]
Your campaign now has a new ability!
Select a token and click your **HPTracker** button. Enter the number of points to deduct from the token, click **OK**, and watch the health bar change to reflect the token's new state.
It may seem like a simple change, but in the heat of battle, this is a GM's greatest weapon.
During the game
There's obviously a lot you can do with MapTool, but with a little prep work, most of your work is done well before you start playing. You can even create a template campaign for yourself by creating an empty campaign with only the macros and settings you want so that all you have to do to prepare is import maps and stat out tokens.
During the game itself, your workflow is mostly revealing areas from Fog-of-War and managing combat. The players can manage their own tokens, and your prep work takes care of everything else.
MapTool makes digital gaming easy and fun, and most importantly it keeps it open source and self-contained. Level-up today by learning MapTool and using it for your games.