Thursday, October 16, 2025

Using Kumu for World of Darkness Relationship Maps

Relationships and Characters are the critical data for a World of Darkness Chronicle. They are the engine that makes the story run. But they are hard to keep track of at scale - Chronicles rapidly grow to dozens of SPCs when you've got a whole city to run.

I am a big proponent of Storyteller tools - I have a whole article on what I use. I started my most recent Chronicle with World Anvil, but I found keeping Storyteller Player Characters (SPCs) in World Anvil very difficult. The thing that matters most is the relationships between characters and that was hard to do in World Anvil.

So, I poked around and discovered that the standard tool people use is Kumu - https://kumu.io/ - it is free. The only thing on the paid tiers you might want is private projects, but if you don't want your players seeing your chart, just sign up with an account that isn't obviously you and name the project something you know but they don't - use a codeword or something. Then they can't accidentally run across it. I use private projects, but I don't feel they are necessary for most people.

Kumu is pretty awesome, but not exactly intuitive. It took me quite awhile to get things like I wanted them, so I'm sharing here. Let's set up a fake city's relationship chart - I'm making things up off the cuff here, so focus on the tool, not the level of creativity.

My settings are aimed at a Vampire Chronicle, but include some non-Vampire SPCs - if your Chronicle is a different splat or system, you can change or supplement this settings file to support your specific story.

Setting up your Kumu Account and a Kumu Chart

Go to Kumu.io and click Join for Free

  • Register a new account - choose a Username that your players won't know. Use something like a code name generator if you want - https://www.fantasynamegenerators.com/code-names.php - this is a lot cheaper than a private account. I'm using 'FormalHercules' for this
  • Create a new project - again, give it a non-obvious name - I'm using CuddlyLurker
  • Choose "Public (FREE)" and create in your workspace
  • Give your map a name - I just used the same one as the project - CuddlyLurker
  • Choose Stakeholder as your template
  • Go through the basic help popups to get to know Kumu

Installing My Map Settings

I have custom settings specifically for Vampire / World of Darkness chronicles. Click the Settings button:


Click Switch to Advanced Editor

Press the Copy button at the end of  the code below and paste it into the Advanced Editor, removing the boilerplate code that exists already. Make sure that Automatically apply changes is clicked and click Save on the You've made changes to this view.

@controls {
  top {
    filter {
      target: element;
      by: "tags";
      as: dropdown;
      placeholder: "Filter by Tags";
      multiple: true;
      default: show-all;
    }

    showcase {
      target: element;
      by: "tags";
      as: dropdown;
      placeholder: "Showcase by Tags";
      multiple: true;
      default: select-none;
      mode: normal;
    }
  }
}

@settings {
  template: custom;
  layout-gravity: 0.0003;
  layout-particle-charge: 350;
  connection-length: 150;
  connection-strength: 0.5;
  layout: force;
}

element {
  label: "{{label}}";
  size: 40;
  border-width: 4;
  shape: circle;
}

connection {
  direction: undirected;
  strength: 0.5;
}

.minor {
  size: 20;
}

.kindred {
  border-color: red;
}

.pc {
  border-color: #ff9999;
}

.mortal {
  border-color: green;
}

.warlock {
  border-color: purple;
  shape: square;
}

.werewolf {
  border-color: blue;
  shape: square;
}

.ghoul {
  border-color: #90ee90;
}

.dead {
  bullseye-color: #8B0000;
}

.ghost {
  bullseye-color: purple;
}

.camarilla {
  shape: octagon;
}

.anarch {
  shape: pentagon;
}

.sabbat {
  shape: hexagon;
}

.independent {
  shape: diamond;
}

.hunter {
  shape: square;
}

connection["label"*="Ghoul"] {
  color: #90ee90;
  strength: 0.8;
}

connection["label"*="Investig"] {
  strength: 0.2;
}

connection["label"="Coterie"] {
  color: #ff9999;
  strength: 1;
}

connection["label"*="Sire"] {
  color: #540304;
}

connection["label"*="Touchstone"] {
  color: #cc0eb9;
  strength: 1;
}

connection["label"*="Court Oath"] {
  color: #888c07;
}


If you see any red Syntax Errors, make sure that you have properly copy and pasted everything from the code - it should start with controls { and end with }. 
If everything worked correctly, you can close the Settings (by clicking the Settings button a second time) and you should see two new dropdowns at the top of the main map - "Filter by Tags" and "Showcase by Tags". Neither will do anything (until we have some data) but their presence shows that we're ready to enter some characters!

Entering Characters into our Map

Let's add some characters. Let's consider a small Chronicle (this tool supports quite large Chronicles - my current story with this tool has nearly 100 PCs and SPCs included, but this is just a sample):
PCs (all Kindred):
  • Mary, Anarch, Brujah
  • Priya, Anarch, Tremere
  • Bob, Anarch,Toreador
  • Fred, Anarch, Malkavian
And some SPCs (Kindred with 2 Werewolves, plus some Ghouls and a few Touchstones), with some relationships:
  • Rocco, Camarilla Brujah, Emissary, Mary's Sire
  • Silas, Anarch Malkavian, Neonate, Fred's Sire
  • Jeremiah, Anarch Ventrue, Sweeper
  • Lil, Anarch Toreador, Baron, Bob's Sire
  • Elijah, Anarch Ministry, Cult Priest
  • Gutter, Anarch Nosferatu, Neonate
  • Bart, Anarch Banu Haqim, Neonate
  • Samael, Sabbat Tzimisce, Infiltrator, Targeting to assassinate Jeremiah
  • Saskia, Shadow Lords, Pack member, Killed by Elijah
  • Alistair, Bone Gnawers, Pack member
  • Zeke, Mary's Touchstone and Ghoul
  • Lisa, Bob's Touchstone
  • Arnold, Bob's Ghoul
We'll start with the PC Coterie, picking, arbitrarily, Mary (the order you enter characters does not matter, Kumu will arrange them based on the relationships and the tags you give them).

Click the green Plus at the bottom of the screen, then Add element. (Maps have two major components - Elements, which are the Characters, and Connections, which are the Relationships between those characters).


Type "Mary" and press Enter

Mary will open up on the left hand side of the screen. We can type a description by clicking 'Add Description' and typing it in. We can also upload a picture for her by clicking the Camera. And add Tags by choosing Add Tag. These are the three primary capabilities that we want for our Characters. 


We will give her a picture (here I've taken it from a free use image from pexels.com). We will add a description (I normally include physical descriptions, backgrounds, etc - for PCs I include all sorts of things, including their provided background.) I do not include a character sheet - I store that in Foundry, for those characters that are fully statted out. For SPCs, I will include catch phrases, things that might help bring them alive, but I don't include all their plots - I run a separate plot document for that. 

We also include Tags, which are basically the important elements of her. Her clan, her supernatural status, her Sect, whatever. Some Tags have special properties in our Kumu settings that we added, which make them show up differently. By default, characters have a black outline and their shape is a circle. The special tags are:
  • Minor - Indicates this is a minor character, makes the character smaller in the map
  • Kindred - Indicates a Kindred, makes their outline red
  • PC - Indicates this is a PC, makes their outline a salmon colour
  • Mortal - Indicates this is a Mortal, makes their outline green
  • Warlock - Indicates a Mage or a Sorcerer, makes their outline purple and the shape a square
  • Werewolf - Indicates a Werewolf or Garou, makes their outline blue and the shape a square
  • Ghoul - Indicates a Ghoul, makes their outline light green
  • Dead - Indicates the character is dead, puts a dark red 'bullseye' on the middle of their shape
  • Ghost - Indicates the character is dead, but is a ghost or Wraith, puts a purple 'bullseye' on the middle of their shape
  • Camarilla - Indicates the character is aligned with the Camarilla, makes their shape an octagon
  • Anarch - Indicates the character is aligned with the Anarchs, makes their shape a pentagon
  • Sabbat - Indicates the character is aligned with the Sabbat, makes their shape a hexagon
  • Independent - Indicates the character is unaligned, makes their shape a diamond
  • Hunter - Indicates the character is a Hunter, makes their shape a square
You can customize these tags, adding more or changing them, by editing the code in the Settings. Instructions for doings so is beyond the scope of this instructions, but the Kumu docs have information on available shapes and syntax. The key thing to remember is that the last instruction in the file takes precedence, so if multiple things are changing shape or colour, the last one prevails - that is the reason for the somewhat odd ordering of the Tags in the above list. Let's consider Mary:


She has 'Kindred', which marks her as a Vampire and makes her border colour red. This is overridden by her 'PC' tag, which turns it Salmon, instead, marking the PCs in the Chronicle as different than the other vampires. She has Anarch, which changes her shape to a Pentagon, and Brujah, which has no effect on her visually, but makes it available for filtering and makes it visible on the character information. 

You will notice when adding tags that the first time you have to type the entire tag in and that for future characters, any tags that have been assigned to previous characters are available to chose. Case does not matter with tags, but they do need to be exact. You can add any other arbitrary tags to indicate alliances, coteries, or anything else that might matter, but only the tags above currently influence appearance.

Let's add some more characters. The easiest way to add a character with a relationship to an existing character is to click on the existing character, in this case Mary, and press C. Alternatively, you can hit the Green Plus at the bottom of the screen and choose Add connection. You'll be prompted to choose the two characters you want to connect. In this case, Mary and the next PC Priya. 

 

Once we have Priya open, we'll go ahead and all her information. We then need to define the relationship for the two. We click on the line that goes between the two characters.


When we click on that line, we are presented with an edit window on the left for the relationship with those two characters. Relationships can have tags, same as Characters, but I don't use the tags. Instead, I modify the relationship based on the name. This just seems to work better for me. 


You can see that the Coterie name on the Relationship set the colour of the relationship to the same salmon colour that the PCs have. The name is searched for letters that match specific patterns. Words that have meaning are:
  • Ghoul - makes the connection colour light green and makes it stronger than default, which tends to keep ghouls closer to their regent
  • Coterie - makes the connection colour salmon and keeps the Coterie mates close together
  • Sire - makes the connection colour dark red
  • Touchstone - makes the connection colour purple and makes it even stronger, which tends to keep touchstones close to the characters they are touchstones for
I will go ahead and add the rest of the characters to the relationship map, so we can highlight various aspects of the relationship map that gets built.

The Relationship Map will jump around while connections are being built. There are random elements to the way Kumu structures and lays out the map, so refreshing the web page can update how things are laid out. The Zoom Fit button on the top right can also be helpful. After entering all the characters and their relationships (I recommend at least two relationships per character), I get the following:


Let's looked at a zoomed in section and what we can see:


We can see two members of the Coterie - whose Relationship is coloured salmon because of the Coterie name. We can see they are PCs because of their salmon coloured border. We can see that Alistair and Saskia are Werewolves, because of their blue square borders. That Zeke is a Ghoul, and that his relationship with Mary is one that is a Touchstone shown in purple (which is more important than the Ghoul relationship) that is also indicated. We see that Priya, Mary, Jememiah, Elijah are all Anarch Kindred, with Samael Sabbat and Rocco Camarilla. We see the dark red Sire relationships - Lil being Bob's sire and Rocco being Mary's. We see Saskia is dead - her face obscured by a bullseye. And we see all the other relationships between the characters that we might want to add. 

The Relationship Map In Action

Ok, so we've got all this fabulous information and all these Characters and Relationships. How do I use it?

We can filter or showcase - where are my Ghouls? Here I've used the 'Showcase' functionality at the top of the screen to focus on anyone with a Ghoul tag.

We can search for names:



We can focus on specific characters, by long clicking on that character. Here is a search for Lil, followed by a long click on her:
Long clicking on any person in the zoomed in map adds their relationships as well. Pressing Escape returns us to the main map. 

There is a table view of Characters that can be very useful to ensure tags are correct. Click the Table button in the bottom right.


This Table view shows all of the Elements (Characters) in the Map, with their Tags


Press Back to Map to return.

Efficiency

If you have an existing Chronicle or you have a large number of characters that already exist, you can import the basic information through Excel sheets or comma delimited files or other import capabilities. This is beyond the scope of this Article, Kumu has excellent documentation on using those capabilities.

Conclusion

Hopefully this article will help you use Kumu in your game. I depend on it to check myself, for it to be my memory, paired with my Plot document and my Session logs. Kumu makes a big difference in my game. I'm going to conclude with a overview view of my Chronicle's relationship map - at time of writing and of this image, there are 94 characters and 183 relationships shown in this map.


No comments:

Post a Comment