FLESHNOTE / DOCS / ENTITIES / RELATIONSHIP TRACKER

Character Relationship Dynamics

RELATIONSHIPS

Tracking evolving interpersonal dynamics as discrete, time-anchored Turning Points: handling subjective vs mutual bonds, emotional vectors, and POV filtering.

Temporal Relationship Modeling #

In traditional writing tools, character relationships are static fields (e.g. "Bob is Alice's friend"). This breaks down in long-form fiction where trust erodes, alliances fracture, and enemies reconcile.

FleshNote treats relationships as temporal streams of Turning Points. Every shift in dynamic is stored in the character_relationships junction table with exact narrative and chronological timestamps.

Database Schema (`character_relationships`) #

Column Type Description
id PRIMARY KEY Unique record identifier (UUID / integer).
character_id UUID / INT Source Character: Who feels this emotion or holds this status?
target_character_id UUID / INT Target Character: Towards whom is this directed?
rel_type TEXT Standard preset (friendship, love, hate, trust, spite) or custom label.
is_one_sided INTEGER 1 = Unidirectional (subjective feeling); 0 = Mutual (shared status).
chapter_id INT / NULL Narrative chapter anchor where the turning point occurred.
word_offset INT / NULL Exact word count location inside the chapter text.
world_time TEXT / NULL In-universe calendar date string of the event.
notes TEXT Author's commentary or direct quote explaining the shift.

Directionality: Unidirectional vs Mutual #

Relationships in FleshNote explicitly distinguish between subjective feelings and social bonds:

Unidirectional (`is_one_sided = 1`)

Represents subjective or asymmetrical emotional states. For example: Alice completely trusts Bob, but Bob harbors deep spite towards Alice. Inspecting Alice's profile reflects her trust, while Bob's profile reflects his hostility.

Mutual (`is_one_sided = 0`)

Represents bilateral social or legal bonds (e.g. Married, Sworn Allies, Siblings). The UI renders these symmetrically across both character inspectors.

Preset Emotional Vectors & Colors #

The IDE provides semantic color-coded presets to allow instant visual audits in the Character Inspector:

Relationship Vector Color Token UI Color Intended Usage
friendship --accent-green Green Comradeship, positive alliance, mutual aid.
love / hate --accent-red Crimson / Rose Passionate romantic attachment or lethal enmity.
trust / distrust --accent-cyan / --accent-orange Cyan / Orange Tactical reliance vs suspicion of betrayal.
spite --accent-purple Purple Resentment, jealousy, grudge-bearing.
guilt --accent-blue Blue Burden of past mistakes or unpayable debts.

Authoring Workflow in Editor #

Turning points are authored directly from the text:

  1. Select Text: Highlight a pivotal line of dialogue or narrative revelation in the editor.
  2. Right-Click Context Menu: Choose "Relationship Turning Point".
  3. Turning Point Popup (`RelationshipTurningPointPopup.jsx`): The IDE automatically pre-selects the characters mentioned in the highlighted text, allowing you to select the vector, set the world time, and write brief notes.
  4. Live Inspector Update: The relationship appears immediately in the character's inspector timeline with a clickable link back to the exact chapter and word offset.
On This Page