diff --git a/PlotLine/Help/Articles/Characters/AttributeHistory.md b/PlotLine/Help/Articles/Characters/AttributeHistory.md new file mode 100644 index 0000000..24e31cf --- /dev/null +++ b/PlotLine/Help/Articles/Characters/AttributeHistory.md @@ -0,0 +1,43 @@ +--- +title: Attribute History +category: Characters +tags: characters, attributes, changes, continuity +contextKey: characters.attributeHistory +micro: Track visible or story-relevant character attribute changes over time. +quickTitle: What is Attribute History? +quickSummary: Attribute History records changes such as condition, status, appearance or other traits that matter to continuity. +screenshot: +--- + +# Overview + +Attribute History captures changes to a character that occur through the story. It is useful for injuries, disguises, emotional states, social status, possessions, abilities or any other tracked trait. + +# When Should I Use This? + +Use it when a change needs to remain true after the scene where it happens. If an injury, disguise or revealed trait affects later chapters, record it. + +# How To Use It + +Review attribute entries in scene order. Use the linked scene to check whether the change is introduced clearly and whether later scenes respect it. + +# Example + +If Rebecca injures her hand in Chapter 8, later scenes should not show her playing piano easily unless the story accounts for recovery. Attribute history helps catch that. + +# Writer Tip + +Record the first moment a change becomes true, not every scene where it remains true. + +# Common Mistakes + +- Tracking minor details that never affect the story. +- Forgetting to add an attribute event when a visible condition changes. +- Mixing author planning notes with in-story changes. +- Leaving recovery or reversal moments unrecorded. + +# Related Guides + +- [Character Details](/Help/Article/characters.details) +- [Scene Appearances](/Help/Article/characters.sceneAppearances) +- [Warnings](/Help/Article/warnings.overview) diff --git a/PlotLine/Help/Articles/Characters/CurrentRelationships.md b/PlotLine/Help/Articles/Characters/CurrentRelationships.md new file mode 100644 index 0000000..f8bb19e --- /dev/null +++ b/PlotLine/Help/Articles/Characters/CurrentRelationships.md @@ -0,0 +1,43 @@ +--- +title: Current Relationships +category: Characters +tags: characters, relationships, current-state, history +contextKey: characters.currentRelationships +micro: See the latest calculated relationship state after story events have been applied. +quickTitle: What are Current Relationships? +quickSummary: Current Relationships show where each relationship has ended up so far, based on the initial state and later relationship events. +screenshot: +--- + +# Overview + +Current Relationships show the latest known state between this character and others. They are calculated from the initial relationship plus relationship events in story order. + +# When Should I Use This? + +Use this section when you need a quick answer to "Where does this relationship stand now?" It is especially useful before writing scenes with emotional tension, betrayal, reconciliation or reveal fallout. + +# How To Use It + +Read the current state first, then open View History when you need the sequence that led there. Use the links to open the related character or relationship evolution page for deeper checking. + +# Example + +Rebecca may begin as a friend, become estranged after a discovery, and later reconcile. Current Relationships should show the latest state while preserving the earlier turns in history. + +# Writer Tip + +If the current state surprises you, that is useful. It may reveal either an exciting story turn or a missing relationship event. + +# Common Mistakes + +- Expecting current state to overwrite history. +- Forgetting that current state depends on story order. +- Adding a new initial relationship when the change should be an event. +- Ignoring relationship confidence or intensity when emotion matters. + +# Related Guides + +- [Initial Relationships](/Help/Article/characters.initialRelationships) +- [Relationship Events](/Help/Article/characters.relationshipEvents) +- [Character Details](/Help/Article/characters.details) diff --git a/PlotLine/Help/Articles/Characters/Details.md b/PlotLine/Help/Articles/Characters/Details.md new file mode 100644 index 0000000..45a6004 --- /dev/null +++ b/PlotLine/Help/Articles/Characters/Details.md @@ -0,0 +1,43 @@ +--- +title: Character Details +category: Characters +tags: characters, cast, profile, continuity +contextKey: characters.details +micro: Review one character's profile, relationships, appearances, attributes and knowledge in one place. +quickTitle: What is Character Details? +quickSummary: The Character Details page gathers the continuity record for a single character so you can see who they are, where they appear and what changes around them. +screenshot: +--- + +# Overview + +Character Details is the working record for one character. It brings together profile information, relationships, scene appearances, attribute changes and knowledge so you can understand the character as they exists across the story rather than only inside one scene. + +# When Should I Use This? + +Use this page when you are checking continuity, revising a character arc, preparing a scene that features the character, or asking whether their relationships and knowledge still make sense at a particular point in the story. + +# How To Use It + +Start with the profile for identity details, then move through relationships, appearances, attribute history and knowledge. Open linked scenes when you need to inspect the surrounding narrative context. Use the relationship and knowledge sections as continuity checks before major revisions. + +# Example + +Before rewriting a reveal scene, open Beth's character record and check her recent appearances, what she already knows, and how her relationship with Rebecca has changed. This helps prevent the scene from contradicting earlier material. + +# Writer Tip + +Treat this page as a continuity lens, not a biography form. The most useful entries are the ones that explain how the story changes what the character knows, feels or can do. + +# Common Mistakes + +- Updating profile notes but forgetting scene appearances. +- Treating relationship history as static. +- Recording private author knowledge as if the character already knows it. +- Ignoring small attribute changes that matter later. + +# Related Guides + +- [Characters](/Help/Article/characters.overview) +- [Scene Appearances](/Help/Article/characters.sceneAppearances) +- [Knowledge](/Help/Article/characters.knowledge) diff --git a/PlotLine/Help/Articles/Characters/InitialRelationships.md b/PlotLine/Help/Articles/Characters/InitialRelationships.md new file mode 100644 index 0000000..aa1c70b --- /dev/null +++ b/PlotLine/Help/Articles/Characters/InitialRelationships.md @@ -0,0 +1,43 @@ +--- +title: Initial Relationships +category: Characters +tags: characters, relationships, starting-state, continuity +contextKey: characters.initialRelationships +micro: Define how characters relate to each other before the story changes them. +quickTitle: What are Initial Relationships? +quickSummary: Initial Relationships describe the starting state between characters before later scenes create changes, reveals or reversals. +screenshot: +--- + +# Overview + +Initial Relationships record how characters begin. They are the baseline for later relationship events, current relationship state and future relationship map views. + +# When Should I Use This? + +Use initial relationships for bonds that already exist at project start or before a character first appears. Family ties, old friendships, rivalries, debts, secrets and professional roles often belong here. + +# How To Use It + +Choose the related character, relationship type, awareness state and confidence or intensity. Add notes for hidden history or reader knowledge, especially when the relationship is true in the world but not yet known to the reader. + +# Example + +Maggie and Beth may begin as strangers to the reader, while the writer knows there is a hidden family connection. The initial relationship can capture the author-facing truth while later events handle the reveal. + +# Writer Tip + +Initial does not mean permanent. It is the first marker on the relationship timeline. + +# Common Mistakes + +- Using initial relationships for changes that happen during scenes. +- Forgetting to mark whether the reader initially knows the relationship. +- Recording only romantic or family bonds and missing professional or hostile ones. +- Duplicating a relationship instead of editing the existing baseline. + +# Related Guides + +- [Current Relationships](/Help/Article/characters.currentRelationships) +- [Relationship Events](/Help/Article/characters.relationshipEvents) +- [Relationship Map](/Help/Article/relationshipMap.overview) diff --git a/PlotLine/Help/Articles/Characters/Knowledge.md b/PlotLine/Help/Articles/Characters/Knowledge.md new file mode 100644 index 0000000..3076710 --- /dev/null +++ b/PlotLine/Help/Articles/Characters/Knowledge.md @@ -0,0 +1,43 @@ +--- +title: Character Knowledge +category: Characters +tags: characters, knowledge, secrets, continuity +contextKey: characters.knowledge +micro: Track what this character learns, knows, suspects or misunderstands. +quickTitle: What is Character Knowledge? +quickSummary: Character Knowledge helps you separate what the writer knows from what a character knows at each point in the story. +screenshot: +--- + +# Overview + +Knowledge entries record what a character knows or believes as the story unfolds. This is vital for mysteries, secrets, betrayals, investigations and any plot where information arrives unevenly. + +# When Should I Use This? + +Use it when a character learns something important, misunderstands something, gains evidence, recognises an asset, or becomes aware of a plot thread. + +# How To Use It + +Review knowledge in story order and open linked scenes when you need to check how information was gained. Use it before writing decisions, confrontations or reveals to confirm what the character can reasonably do. + +# Example + +Maggie may know that a letter exists before she knows who wrote it. Those are different knowledge states and can drive different choices. + +# Writer Tip + +Readers forgive mystery. They notice impossible knowledge. Track the difference carefully. + +# Common Mistakes + +- Letting a character act on information they have not learned. +- Recording author-only secrets as character knowledge. +- Forgetting suspicion or partial knowledge. +- Treating all characters as if they know the same reveal at the same time. + +# Related Guides + +- [Character Details](/Help/Article/characters.details) +- [Story Assets](/Help/Article/storyAssets.overview) +- [Plot Threads](/Help/Article/plotThreads.overview) diff --git a/PlotLine/Help/Articles/Characters/RelationshipEvents.md b/PlotLine/Help/Articles/Characters/RelationshipEvents.md new file mode 100644 index 0000000..304ecbc --- /dev/null +++ b/PlotLine/Help/Articles/Characters/RelationshipEvents.md @@ -0,0 +1,43 @@ +--- +title: Relationship Events +category: Characters +tags: characters, relationships, events, evolution +contextKey: characters.relationshipEvents +micro: Track scene-by-scene changes in how characters relate to each other. +quickTitle: What are Relationship Events? +quickSummary: Relationship Events record moments in scenes where a relationship changes, becomes known, intensifies or shifts direction. +screenshot: +--- + +# Overview + +Relationship Events are the story moments that move a relationship forward or sideways. They preserve the path from initial relationship to current relationship without erasing earlier states. + +# When Should I Use This? + +Use a relationship event when a scene changes trust, hostility, attraction, loyalty, awareness or emotional intensity between characters. + +# How To Use It + +Create events from scene relationship editing, then review them here in story order. Check the scene, relationship type, awareness, intensity and notes to make sure the change is clear and placed correctly. + +# Example + +If Beth protects Maggie in Chapter 17, that scene may create a relationship event from suspicion to trust. A later betrayal can add another event without deleting the earlier trust. + +# Writer Tip + +Not every interaction needs an event. Use them for changes the reader, plot or character arc will need to remember. + +# Common Mistakes + +- Recording ordinary conversation as a relationship change. +- Forgetting to link the change to the scene where it happens. +- Using notes without setting the relationship state. +- Losing reciprocal meaning when both characters are affected differently. + +# Related Guides + +- [Current Relationships](/Help/Article/characters.currentRelationships) +- [Scene Appearances](/Help/Article/characters.sceneAppearances) +- [Relationship Map](/Help/Article/relationshipMap.overview) diff --git a/PlotLine/Help/Articles/Characters/SceneAppearances.md b/PlotLine/Help/Articles/Characters/SceneAppearances.md new file mode 100644 index 0000000..15889f7 --- /dev/null +++ b/PlotLine/Help/Articles/Characters/SceneAppearances.md @@ -0,0 +1,43 @@ +--- +title: Scene Appearances +category: Characters +tags: characters, scenes, appearances, continuity +contextKey: characters.sceneAppearances +micro: See where a character appears and what role they play in each scene. +quickTitle: What are Scene Appearances? +quickSummary: Scene Appearances show every scene linked to this character, including role, presence and useful continuity notes. +screenshot: +--- + +# Overview + +Scene Appearances connect a character to the actual story structure. They help answer when a character appears, how long they have been absent and what physical or emotional state they carried into a scene. + +# When Should I Use This? + +Use this section during revision, pacing checks, continuity reviews and character arc work. It is also useful when planning whether a supporting character has enough presence to earn a later payoff. + +# How To Use It + +Scan the scenes in order. Open a scene from the list when you need to adjust role, presence, location, outfit, condition, emotional state or knowledge notes. + +# Example + +A detective may appear in five early scenes, disappear for eight chapters, then return with crucial knowledge. Scene appearances make that absence visible before it becomes confusing. + +# Writer Tip + +Use appearance notes for scene-specific truth. General personality belongs in the profile; what changed in this moment belongs in the scene appearance. + +# Common Mistakes + +- Mentioning a character in a summary but not linking them to the scene. +- Forgetting current location when validation warns about placement. +- Using appearance notes for permanent biography details. +- Ignoring long absences that weaken reader memory. + +# Related Guides + +- [Character Details](/Help/Article/characters.details) +- [Scenes](/Help/Article/scenes.overview) +- [Locations](/Help/Article/locations.overview) diff --git a/PlotLine/Help/Articles/Locations/ChildLocations.md b/PlotLine/Help/Articles/Locations/ChildLocations.md new file mode 100644 index 0000000..74d4d20 --- /dev/null +++ b/PlotLine/Help/Articles/Locations/ChildLocations.md @@ -0,0 +1,43 @@ +--- +title: Child Locations +category: Locations +tags: locations, hierarchy, rooms, setting +contextKey: locations.childLocations +micro: Organise places inside larger places, such as rooms inside a house. +quickTitle: What are Child Locations? +quickSummary: Child Locations let you build a clear setting hierarchy so broad places and specific rooms stay connected. +screenshot: +--- + +# Overview + +Child Locations are places contained within another place. They help model story spaces such as a house with rooms, a school with corridors, or a town with important streets. + +# When Should I Use This? + +Use child locations when a specific sub-place matters enough to track separately. A whole mansion may be one location, but the attic, kitchen and locked nursery may each need their own record. + +# How To Use It + +Create the larger location first, then add child locations beneath it. Use clear names and descriptions so the hierarchy supports planning rather than becoming a maze. + +# Example + +Harrow House can contain the Blue Bedroom, Landing, Kitchen and Cellar. Each can appear in scenes while still belonging to the same larger setting. + +# Writer Tip + +Only split a location when the distinction affects story logic, mood or continuity. + +# Common Mistakes + +- Creating too many tiny spaces before the story needs them. +- Forgetting that child locations still belong to a larger place. +- Using child locations for unrelated places. +- Renaming a parent without checking child paths. + +# Related Guides + +- [Location Details](/Help/Article/locations.details) +- [Location Relationships](/Help/Article/locations.relationships) +- [Scenes](/Help/Article/scenes.overview) diff --git a/PlotLine/Help/Articles/Locations/Details.md b/PlotLine/Help/Articles/Locations/Details.md new file mode 100644 index 0000000..a158d48 --- /dev/null +++ b/PlotLine/Help/Articles/Locations/Details.md @@ -0,0 +1,43 @@ +--- +title: Location Details +category: Locations +tags: locations, setting, continuity, scenes +contextKey: locations.details +micro: Review one location's description, child places, relationships and story usage. +quickTitle: What is Location Details? +quickSummary: Location Details gathers the continuity record for a single place so you can track layout, relationships and where it appears in the story. +screenshot: +--- + +# Overview + +Location Details is the working page for one story place. It shows the location's description, parent or child locations, relationships to other places, and where it is used by scenes, characters and assets. + +# When Should I Use This? + +Use it when spatial continuity matters, when revising scenes set in the same place, or when checking whether a setting is carrying the right story pressure. + +# How To Use It + +Start with the description and location path, then inspect child locations and relationships. Use the Used here section to open scenes that take place in or refer to the location. + +# Example + +The Blue Bedroom may have a child location such as a wardrobe and a relationship to the landing. Its detail page helps you see which scenes happen there and whether character movement still makes sense. + +# Writer Tip + +A location page is most valuable when it records what affects story action: access, sightlines, sound, mood, secrets and changes over time. + +# Common Mistakes + +- Treating locations as decorative labels only. +- Forgetting to update child spaces after changing a layout. +- Losing track of which scenes use an important setting. +- Keeping movement logic in private notes instead of visible location relationships. + +# Related Guides + +- [Locations](/Help/Article/locations.overview) +- [Child Locations](/Help/Article/locations.childLocations) +- [Used Here](/Help/Article/locations.usedHere) diff --git a/PlotLine/Help/Articles/Locations/Relationships.md b/PlotLine/Help/Articles/Locations/Relationships.md new file mode 100644 index 0000000..f7464d5 --- /dev/null +++ b/PlotLine/Help/Articles/Locations/Relationships.md @@ -0,0 +1,43 @@ +--- +title: Location Relationships +category: Locations +tags: locations, relationships, movement, sightlines +contextKey: locations.relationships +micro: Describe how places connect, whether characters can move, see or hear between them. +quickTitle: What are Location Relationships? +quickSummary: Location Relationships capture useful spatial connections such as nearby rooms, routes, sightlines and sound paths. +screenshot: +--- + +# Overview + +Location Relationships describe how places connect to each other. They can represent direct travel, visibility, sound, adjacency or other spatial logic that affects what can happen in a scene. + +# When Should I Use This? + +Use them when the physical relationship between places affects plot or continuity. They are especially helpful for overheard conversations, locked rooms, chase sequences and hidden movement. + +# How To Use It + +Choose the related location, relationship type and any relevant flags such as bidirectional travel, hearing or visibility. Add notes for exceptions, barriers or story-specific constraints. + +# Example + +The Landing may connect to the Blue Bedroom and allow loud noise to be heard through the door, but not normal speech. That detail can matter during a suspense scene. + +# Writer Tip + +Think like a reader reconstructing the space. If a later twist depends on where someone could go or what they could hear, record it. + +# Common Mistakes + +- Assuming every relationship works both ways. +- Forgetting sound and sightline differences. +- Recording atmosphere when the relationship should describe physical logic. +- Leaving notes vague when a clue depends on the layout. + +# Related Guides + +- [Location Details](/Help/Article/locations.details) +- [Child Locations](/Help/Article/locations.childLocations) +- [Warnings](/Help/Article/warnings.overview) diff --git a/PlotLine/Help/Articles/Locations/UsedHere.md b/PlotLine/Help/Articles/Locations/UsedHere.md new file mode 100644 index 0000000..a35e6b8 --- /dev/null +++ b/PlotLine/Help/Articles/Locations/UsedHere.md @@ -0,0 +1,43 @@ +--- +title: Used Here +category: Locations +tags: locations, scenes, characters, assets +contextKey: locations.usedHere +micro: See which scenes, characters and assets are connected to this location. +quickTitle: What is Used Here? +quickSummary: Used Here shows where a location appears across the story, including linked scenes, character placements and story assets. +screenshot: +--- + +# Overview + +Used Here shows the story material connected to a location. It helps you understand how often the place appears, who is associated with it, and which assets are present there. + +# When Should I Use This? + +Use it while revising setting continuity, checking repeated locations, preparing a scene return, or finding all moments tied to a place before changing it. + +# How To Use It + +Scan the scene list first, then check characters and assets. Open linked scenes when you need to adjust placement, timing, props or continuity notes. + +# Example + +Before changing the cellar layout, use Used Here to find every scene set there and every asset stored there. That prevents a later clue from becoming impossible. + +# Writer Tip + +Repeated locations build memory in the reader. Use this section to see whether a place has become important enough to carry emotional or plot meaning. + +# Common Mistakes + +- Changing a location description without checking scenes that already use it. +- Forgetting assets that are stored or discovered there. +- Missing character placement issues when a scene has several rooms. +- Treating one important location as several unrelated names. + +# Related Guides + +- [Location Details](/Help/Article/locations.details) +- [Scenes](/Help/Article/scenes.overview) +- [Story Assets](/Help/Article/storyAssets.overview) diff --git a/PlotLine/Views/Characters/Details.cshtml b/PlotLine/Views/Characters/Details.cshtml index 8eee6ae..cc41e28 100644 --- a/PlotLine/Views/Characters/Details.cshtml +++ b/PlotLine/Views/Characters/Details.cshtml @@ -35,7 +35,7 @@

Character

-

@Model.Character.CharacterName

+

@Model.Character.CharacterName

@Model.Character.DefaultDescription

@@ -71,7 +71,7 @@

Story importance: @storyImportance

-

Initial Relationships

+

Initial Relationships

@if (!Model.InitialRelationships.Any()) {

No initial relationships yet.

@@ -175,10 +175,10 @@
-
+ - +
} @@ -246,7 +246,7 @@
-

Current Relationships

+

Current Relationships

@if (!Model.CurrentRelationships.Any()) {

No current relationship state yet.

@@ -310,7 +310,7 @@ }
-

Relationship Events

+

Relationship Events

@if (!Model.RelationshipEvents.Any()) {

No relationship events yet.

@@ -338,7 +338,7 @@
-

Scene appearances

+

Scene appearances

@if (!Model.Appearances.Any()) {

No scene appearances yet.

@@ -360,7 +360,7 @@
-

Attribute history

+

Attribute history

@if (!Model.AttributeEvents.Any()) {

No attribute events yet.

@@ -382,7 +382,7 @@
-

Knowledge

+

Knowledge

@if (!Model.KnowledgeItems.Any()) {

No knowledge entries yet.

diff --git a/PlotLine/Views/Locations/Details.cshtml b/PlotLine/Views/Locations/Details.cshtml index 398ad6b..3c165ea 100644 --- a/PlotLine/Views/Locations/Details.cshtml +++ b/PlotLine/Views/Locations/Details.cshtml @@ -24,25 +24,26 @@
-
-
-

Location detail

-

@Model.Location.LocationName

-

@Model.Location.LocationPath

+
+
+
+

Location detail

+

@Model.Location.LocationName

+

@Model.Location.LocationPath

+
+
+ Edit + Back to timeline + All locations +
+ + + +
+
-
- Edit - Back to timeline - All locations -
- - - -
-
-
-
+

Type

@@ -57,10 +58,10 @@

@(Model.Location.Description ?? "No description yet.")

-
+
-
-

Child locations

+
+

Child locations

@if (!Model.ChildLocations.Any()) {

No child locations yet.

@@ -74,10 +75,10 @@ }
} - + -
-

Relationships

+
+

Relationships

@if (!Model.Relationships.Any()) {

No relationships defined yet.

@@ -138,10 +139,10 @@
- + -
-

Used here

+
+

Used here

Scenes

@@ -168,4 +169,5 @@ @if (!Model.Assets.Any()) {

No asset placements yet.

}
-
+
+ diff --git a/PlotLine/Views/Locations/Index.cshtml b/PlotLine/Views/Locations/Index.cshtml index c43c289..8cee5b1 100644 --- a/PlotLine/Views/Locations/Index.cshtml +++ b/PlotLine/Views/Locations/Index.cshtml @@ -16,15 +16,16 @@ -
-
-

Locations

-

@Model.Project.ProjectName

+
+
+
+

Locations

+

@Model.Project.ProjectName

+
+ New location
- New location -
-
+

Location relationship

@@ -54,38 +55,39 @@
-
+
-@if (!Model.Locations.Any()) -{ -
-

No locations yet

-

Add buildings, floors, rooms, streets, and other places that matter to the story.

-
-} -else -{ -
- @foreach (var location in Model.Locations) - { -
-
- @location.LocationName - @if (!string.IsNullOrWhiteSpace(location.LocationTypeName)) - { - @location.LocationTypeName - } - @location.LocationPath + @if (!Model.Locations.Any()) + { +
+

No locations yet

+

Add buildings, floors, rooms, streets, and other places that matter to the story.

+
+ } + else + { +
+ @foreach (var location in Model.Locations) + { +
+
+ @location.LocationName + @if (!string.IsNullOrWhiteSpace(location.LocationTypeName)) + { + @location.LocationTypeName + } + @location.LocationPath +
+
+ Edit +
+ + + +
+
-
- Edit -
- - - -
-
-
- } -
-} + } + + } +
diff --git a/PlotLine/wwwroot/css/site.css b/PlotLine/wwwroot/css/site.css index 95fcda3..35df4a0 100644 --- a/PlotLine/wwwroot/css/site.css +++ b/PlotLine/wwwroot/css/site.css @@ -169,6 +169,13 @@ td.text-end { max-width: 980px; } +.location-page .page-heading.compact, +.location-page .edit-panel, +.location-page .empty-panel, +.location-page .drag-drop-panel { + max-width: none; +} + .import-panel, .import-preview-section { max-width: none;