MapMaster DM’s Screen – Virtual Tabletop Software

I recently started playing Dungeons & Dragons, and was having a lot of fun. Soon the inevitable bug hit, and I wanted to play more often than our DM could manage.

So with very little experience even playing D&D, I did the most logical thing. Told my friends I would try my hand at running a couple of one shots.

Two weeks later, I had an entire GitHub repo dedicated to the world I was building, characters, places, towns and plot threads. I had spent hours on Inkcarnate making beautiful world and place maps. Maps that my players might not even get to see!

But most of all, it let me make some beautiful battle maps, and I found that my players really responded to having at least a basic representation of the combat that otherwise was happening in the theater of our minds.

The problem, was sharing these maps and manipulating the player or NPC icons or meeples to respond to the actions the players were giving me for their characters to do. First I was using Draw.io, a favorite of mine for quick diagramming, as it makes tokens and shapes very quickly, its interface is simple and I could do things like mask off areas of the map so the players couldn’t see areas they had not entered yet. But this was ugly. All the shape and formatting palettes were visible, the actual play area was restricted because of this. Sometimes when trying to move a shape the software decided I was trying to draw an arrow, which was annoying but not the end of the world. Mostly, and this is really what made it unusable for me, the problem was the hideous light mode interface!

So, the path ahead was clear to me, if not my players. Who are still wandering around wondering why legions of undead animals are chasing after them. I could either;
Learn to use existing online Virtual Tabletop software, which would likely cost me money or be clunky to use, or I could use this opportunity to reuse a python tkinter interface I build for a work project, and turn it into my ideal, simple but nice looking virtual tabletop.

All I needed was the ability to share a map in one window, which would be share screened with Discord, or captured as a window capture in OBS (D&D Stream when?)
So I dusted off the old Tkinter interface, deleted almost everything apart from the Dark Theme UI Elements I had previously made, and set to work.

And this is the result:

MapMaster V0.1

DM’s Virtual Tabletop Tool

DMs Map Manager – Virtual Tabletop Software with DM Screen and Live Map Window. Designed live streaming of battle, world and town maps & combat management.

image

If you use/enjoy this software, consider buying me a coffee.

Virtual Tabletop Functions

This free and Open Source virtual tabletop software currently has the following functions.

  • Set Image generated with online or offline mapmaking tools as background
  • Insert Icons and Images for player tokens & meeples
  • Save and Recall progress, allowing combat encounters to easily resume on the next session
  • Set masked areas that block players from seeing further than they are able.
  • DMs Screen and seperate players window to use via screen share or 2nd monitor
  • Designed to make sharing maps over discord or video conferenceing easy and clean using window share
  • Easy intergration into live streaming setups. Clean interface for streaming.

Installing:

Download zippled .exe file from releases. It is best to keep this bundled with the folders contained in this folder:

  • Icons
  • logs
  • map_backgrounds
  • map_icons
  • saved_games

You can also compile yourself using compile_exe.py in the SOURCE folder. Feel free to adapt and use this software as you wish.

Using MapMaster

MapMaster opens with default map & icons loaded. <br>

Changing The Background

To change background image, select Open Background Map <br> Then select a new image to insert as the background. I use Inkcarnate to create my maps, then screenshot and save the files into the map_backgrounds folder. MapMaster will resize the image to fit the window.

Adding & Deleting Icons & Images

Icons

Adding new icons using image files is accomplished by selecting Add Icon and selecting any image file. Adding an image as an Icon, will reduce its size down to 25x25px. For this reason it is best to use icons that remain clear at this small size. I included some examples in the default map, using bright colours and large text. I used draw.io to create all the icons, then imported them into graphics software to remove the background and export as a transparent PNG. You can also use player character pictures and artwork.

  • To Be Added: I want to include a slider to increase or decrease the size of player Icons.

Images

Adding images is a similar process to Icons, select Add Image and select an image file to insert. Images are NOT resized to fit the window. I wish to add this feature in the future. But for now, either use the python script included in SOURCE XXXXXX(Coming Soon) To quickly resize and save images at a suitable size, or resize them using your favourite image editor. I tend to use images to show players artwork, eg of a monster they have just encountered, but then use Icons for combat encounters. I mostly added this to avoid having to drop images into group chat.

  • To Be Added: I want to include a slider to increase or decrease the size of Inserted Images.

image Insert an image of a large troll to shock your players into running away like cowards

Deleting Icons and Images

Deleting an icon or image is done by dragging it towards the top left hand corner of the DM’s map, and pressing the delete button. I wish to improve the function of this in later releases.

The Live Map

The live map is intended as the window the players can view. It lets the DM hide parts of the map, images and tokens they may be arranging out of sight of the players. If using MapMaster for Discord or Zoom games, or for Streaming Setups, the Live Map should be activated with Activate Live Map, and this window can be set as the source for Video Conferencing or Window Capture in streaming setups.

Live Map View with Mask Set

If your players are trapped in a dungeon, make sure they can only see as far as the nearest doorway. image

Map Mask

To set a map mask, click the Show Mask button. This will show a grid and the current applied mask on the DM’s Screen map. The Current Applied Mask will ALWAYS be visible on the Live Map, letting the DM pre-select a mask, ensuring the players dont get to see a dungeon layout or hidden trap that they shouldnt be able to see yet. The live map mask will update when the DM’s Screen Map Mask is closed using Hide Mask Use the Add Mask and Subtract Mask buttons to add or remove mask squares. Clear Mask will both clear the entire mask, and update the live map, so use with care. I will change the function of this later to avoid mistakes. <br><br>

The mask can be set on the DM’s screen, then applied to the Live Map.

Setting the Mask DM’s View

image

Applied Mask on Players Window

image <br><br> Have enemies lurking just out of sight for a more realistic reveal of the world around your players <br><br> Players View image DM’s View image

Blackout

Blackout is set with the Blackout button. It applies a black mask to the entire Live Map screen, allowing for scene changes out of sight of the players.

Rename Map

Rename Map Button to change the text at the top of the map. Thats it thats all it does.

Saving Map

Save As and Save Buttons both open a file dialogue to name and save the file in JSON format. Open File will let you recall saved maps. Ensuring that you can save progress mid encounter to resume at a later session.

Range and Scale Functions

Coming in a later release

Icon Window

Any opened icons should be visible here to avoid opening a new file each time a new icon is required. To be added in a later release

Create Token

Create player Icons and Meeples with basic graphical shapes and text. To be added in a later release.

Known issues

  • On Hiding Mask after using Subtract Mask function, some mask squares occasionally do not clear. Showing the mask and removing them again will clear them from the live map.
  • Sometimes Live map does not update with a newly inserted background map. Reinserting the image usually works the 2nd time.
  • Occasional exception errors. If found- Please save log and Email Me
  • Images may not always save with the saved game. This does not seem to affect Icons

GUI Initial Concept

image

Desired Features

  • Open image as background
  • Open image and save to object palette
  • Place Objects from palette onto map area
  • Save Map & Object locations
  • Recall Saved Maps
  • Show live map in second window with live updates
  • Freeze 2nd window map, and update only on "live map active" button press
  • Apply blackout mask to 2nd window map
  • Button to show/hide blackout mask on master map
  • Blackout button, keeps 2nd window open but in blackout mode
  • Movement – Highlights movement distance + dash action as coloured radius
  • Range – Highlight spell/Distance attack range as coloured radius (Could be combined with movement?)
  • Area of Attack – Highlight area of attack, cone & Cube shaped attacks with button click
  • Set Scale – Click on grid/map area twice to set 5ft, 10ft or 15ft scale
  • Map filters – Apply gradient filters for underground or nighttime maps

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.