Aaron Fischer Ingenieur, Vater, Heimwerker, Problemlöser

10 September, 2019

Toolheim

TL;DR:

You love to play Mordheim, the skirmish variant of the Warhammer tabletop game from Games Workshop. But managing the roster sheets is tedious, especially when you play in a group larger than two. The Toolheim app for Android is your companion tool to manage warband rosters within a team and track progress -- nerd style!

Overview

The traditional way of creating a warband roster (your warband configuration) consists of filling out the warband roster sheet PDF by hand or with a PDF editing tool. After each battle, you have to update your roster sheet, which essentially means to fill out the complete form once again from scratch. Most likely you want to share each state of your warband PDF with your friends, so they can see, verify and compare it. After some battles, this process gets tedious and kills most of the fun.

warband

Toolheim try to fix this with a little bit of technology. Warband roster sheets will be described in a structured way, so other tools can read, manipulate and work with it. The Toolheim app can read this files from a GitHub repository and display it. This sounds way too abstract, so lets just dive into the warband roster files.

Warband File Syntax

Here you see a simplified version of my Dwarf Rangers warband:

warband: The Revolting Dwarfs (Dwarf Rangers)
active: true
campaign: 11
objective: The Lure of Fortune
alignment: Lawful/Neutral
achievments: |
    Land Train
    Silk Trader
gc: 78
shards: 2
equipment: Lucky Charm

# Max 12 units
# Racial maximums (Dwarfs):
# M3, WS7, BS6, S4, T5, W3, I5, A4, Ld10
heros:
    - hero: Ragnar (Runesmith) [32XP]
      stats: M3, WS5, BS4, S3, T4, W1, I3, A1, Ld10, Sv-
      skilllists: Combat, Shooting, Academic, Strength, Special
      weapons: Axe, Axe
      armour: Helmet, Light Armour, Lucky Charm
      rules: Leader, Blackblood, Expert Axeman, Tactician
      warbandaddition: 5
      # Skill wishlist:
      # * Two-Weapon Master (ignore -2 to hit for offhand)
      # * Money Maker (D6+2 GC after battle)

    - hero: Floki (Apprentice Runesmith) [8XP]
      skilllists: Combat, Academic, Strength, Special
      stats: M3, WS3, BS2, S3, T4, W1, I2, A1, Ld9, Sv-
      weapons: Axe, Dagger
      armour: Helmet, Heavy Armour, Lucky Charm
      rules: Extra Set Of Hands, Skilled Driver, Haggle

    - hero: Bjørn (Troll Slayer) [15XP]
      skilllists: Combat, Academic, Strength, Special
      stats: M3, WS5, BS3, S3, T4, W1, I2, A1, Ld10, Sv-
      weapons: Dwarf Axe, Dagger
      armour: Lucky Charm
      rules: Deathwish, Fearsome

henchmen:
    - group: Beard Mob (4 Beardling) [13XP]
      stats: M3, WS4, BS3, S3, T4, W1, I2, A2, Ld8, Sv-
      weapons: Axe, Dagger
      armour: Helmet

notes: |
    Inscribe rune before battle
    Blackblood (Ragnar) = Anyone in base contact got S3 hit if wounded

As you might already notice, the warband definition file is valid YAML syntax with some constraints. To read a warband file, you just need a YAML parser and some regular expressions. There are some fields which need to be in a specific format. Here are all specialties:

In addition to that, there are some flags you can set for heros and henchmen groups, which are:

The rest of the keys are self explanatory. Missing keys will be filled out with default values.

GitHub

So, what is the whole deal about the warband roster files? Why not just fill out the PDF and save each revision? The warband roster files (and text files in general) have the big advantage of versioning, comparing and sharing -- for free! Text files can be managed in a git repository, which will track the changes and make it easy to see the changes. For that, Toolheim uses GitHub to store the warband files. Here is an example of a post game sequence. The changes to the warband are shown easily.

The Toolheim App

And here comes the Toolheim app into play. The app searches a GitHub repository for suitable warband files (.warband.yml extension), parse it's content and display it. That's basically it. There are some nice features and a stable sync mechanism, so you see which warbands have changes since you last watched it. The app will give you an overview of your own warband and the warbands of your playmates.

To search for warbands on a GitHub repo, the folder structure need to be in a specific way. Take the example repository as a quick reference. The warband files need to be in the root folder or a sub directory (which can be specified in the app). Each directory name represents a player, so name it accordingly. In this directories there can be one or more .mordheim.yml files. Use the active: true flag to enable/disable warbands. Specify the GitHub repository, the optional sub directory and click the Start search button to crawl the repo for warbands.

toolheim app

When finished, you can see all found warbands in the drawer, ordered by CP. If you hit the sync button (the left button on the top right), all found warbands will be checked against new commits. If there are changes, the warband name will be shown in bold.

toolheim app

The warband name can be clicked to see it's units and their stats. Heros are green, henchmen groups are orange and hired swords are black. Red colored stats stood out and purple stats are exceptional. This makes it easy to quickly see the important parts of the unit.

The calculated rating and rout limit will be shown at the top. If you scroll to the bottom, there are some less important information like the objective or stored equipment.