I’d like to recreate the attribute tree from the “Kult: Divinity Lost” TTRPG in Typst for a custom-built character sheet. Could someone give me a push in the right direction? Is this even possible using Typst’s built-in tools?
Depends a bit on what “using Typst’s built-in tools” means to you
you can definitely draw all the shapes here, worst case it’s just very manual.
This is a graph, so the natural choice is fletcher – Typst Universe. It usually expects labels within notes, I’m not sure if anything has changed there, so labels below might need some tweaking.
However, I’m not sure about the edges. I would attempt to draw those as edges with no strokes and elongated, inverted arrow marks at both ends; that should work, I think.
Edit: got a tiny demo working ![]()
#import "@preview/fletcher:0.5.8" as fletcher: diagram, node, edge
#set page(width: auto, height: auto, margin: (top: 5mm, rest: 12mm))
#diagram(node-stroke: 2pt, edge-stroke: white, {
import fletcher.shapes: diamond
let tree-node(..args, body) = {
node(width: 8mm, height: 8mm, shape: circle, ..args, {
show: place.with(center, dy: 11mm)
show: box.with(width: 5cm)
set align(center)
body
})
}
tree-node((0, 0), shape: diamond)[*Fortitude*\ _Endure Injury_]
tree-node((1, 2))[*Perception*\ _Observe a Situation_]
edge((0, 0), (1, 2), marks: (
(inherit: "|>", size: 20, fill: black, sharpness: 10deg),
(inherit: "<|", size: 50, fill: black, sharpness: 4deg),
))
})
the edge length is indirectly specified by the sharpness; if you don’t want to guess fitting values, you’ll have to do some light trigonometry.

