Using PlantUML to Model RPG Relationship Maps

Leveraging Open Source Software for RPGs

For our Burning Locusts series, the game facilitator wrote the campaign’s relationship graph in dot notation: a text format for representing relationships. See Graphviz) for more details on dot notation.

In years past, I used dot notation. I used dot notation to make the diagrams for .

I decided to write up a relationship diagram using PlantUML: an open-source tool allowing users to create diagrams from a plain text language. See PlantUML for more details.

These days, I prefer PlantUML as it’s intergrated with Org-Mode 📖.

Below I have both the diagram’s source and a png rendering. I chose to render using the amiga theme.

Source and Rendering

PlantUML source for The Mistimed Scroll relationship diagram

@startuml
!theme amiga

'PCs (using the "actor" node)
actor Cloak as cloak
actor Soliana as soliana
actor Keth as keth

'NPCs (using the "actor/" node)
actor/ Tondilo as tondilo
actor/ Gwynn as gwynn
actor/ Vars as vars
actor/ Sollar as sollar

'Factions (using the "cloud" node)
cloud house_jorasco as "House Jorasco"
cloud house_deneith as "House Deneith"
cloud house_tharashk as "House Tharash"

'Locations
frame "New Cyre" as new_cyre {
  actor/ "Prince Oargev" as prince_o
}

'Objects
entity "The\nScroll" as scroll

cloak <-l-> tondilo   : "friends*"
cloak -d-> scroll    : "possesses"
soliana -d-> scroll  : "knows about"
soliana <-l-> tondilo : "friends"
soliana <--> gwynn   : "healed*"
soliana <--> sollar  : "siblings*"
keth <--> vars       : "coworkers*"
cloak <--> vars      : "shot"

house_jorasco --> vars : "tending to"
gwynn --> house_deneith : "works for"
keth --> house_tharashk : "works for"
vars --> house_tharashk : "works for"
@enduml