Skip to content

Relationship Type Creation

Relationship types define the kinds of connections that can exist between entities in your world.

  1. Go to Management > Relationship Types in the world sidebar.
  2. Click Create Relationship Type.
  3. Enter a forward name (e.g. “MENTORS”) — the internal identifier.
  4. Enter a forward label (e.g. “Mentors”) — how the relationship reads from source to target.
  5. Enter a reverse name and reverse label (e.g. “MENTORED_BY”, “Is mentored by”).
  6. Select a category (kinship, social, political, spatial, ownership, religious, etc.).
  7. Configure type constraints — which entity types can be sources and targets.
  8. Set additional options: temporal context, spatial context, symmetry, subtypes.
  9. Click Save.

Every relationship type has four name fields:

FieldPurposeExample
Forward nameInternal identifier (source → target)MENTORS
Forward labelDisplay text (source → target)“Mentors”
Reverse nameInternal identifier (target → source)MENTORED_BY
Reverse labelDisplay text (target → source)“Is mentored by”

Set the is_symmetric flag for relationships where direction doesn’t matter:

  • Symmetric: “Allied with”, “Spouse of”, “Hostile to” — both sides read the same
  • Asymmetric: “Parent of / Child of”, “Controls / Controlled by” — direction carries meaning

Control which entity types can participate:

SettingDescription
Allowed source typesEntity types that can be the source (null = any)
Allowed target typesEntity types that can be the target (null = any)
Max concurrentMaximum active relationships of this type per entity. 1 for exclusive relationships like “Lives in”. null for unlimited.

Enable has_temporal_context to give relationships a time dimension:

  • valid_from — when the relationship started
  • valid_to — when it ended (null if still active)

This integrates with the graph’s temporal controls, letting you view the state of relationships at any point in your world’s history.

Enable has_spatial_context to associate relationships with locations:

  • A primary location reference
  • Optional marker override for map positioning
  • Additional location references for multi-point relationships (trade routes, journeys)

Define custom fields on the relationship type using the same field definition system as entity types. This lets you add metadata specific to that relationship type.

For example, a “Trade with” relationship might have extended properties for trade goods, volume, and trade route.

Add subtypes for finer categorisation within a relationship type. Each subtype has:

FieldDescription
ValueInternal identifier (e.g. “biological”)
LabelDisplay name (e.g. “Biological”)
DescriptionExplanation of this subtype
IconVisual indicator

For example, “Parent of” includes subtypes: biological, adoptive, step, foster, guardian, divine birth, surrogate, mentor.

You can set a default subtype and configure a label template (e.g. {subtype} {forward_name}) for how the relationship displays when a subtype is selected.

  • System types are provided by MythTapestry and available to all worlds
  • World types are custom types you create for a specific world
  • World types can extend or override system types

Relationship types are grouped into categories for organisation:

  • Kinship — family and lineage relationships
  • Social — membership, allegiance, friendship
  • Political — control, alliance, hostility
  • Spatial — location, containment
  • Ownership — possession, stewardship
  • Religious — worship, devotion
  • Origin — creation, founding
  • Event — participation, witnessing

Relationship types map directly to edges in the knowledge graph:

  • Each type gets a distinct visual style
  • The arrow direction matches the forward label
  • Type filters in the graph toolbar let you show/hide specific types
  • Edge labels display the appropriate forward or reverse label based on viewing context