Skip to main content

Prompt Object Types

Lis Novel injects rich objects into your prompt context. When you place them directly in a template, they render as XML. Use this page to understand what each object represents and how to force explicit XML output when you need it.

Scene objects

  • PromptScene values such as {scene}, {scene.previous}, and {scene.next} render as a <scene> XML tag with AI-visible, beat-free text.
  • PromptSceneList values from helpers like {scene.hasLabel("Draft")} render as newline-separated <scene> XML with the same AI-visible prose rule.

Chapter and act objects

  • PromptChapter values ({chapter}, {chapter.previous}, {chapter.next}) render as <chapter> XML in acts + chapters and chapters + scenes modes. When the novel structure omits chapters, they render an empty string.
  • PromptAct values ({act}, {act.previous}, {act.next}) render as <act> XML in acts + chapters mode. When the novel structure omits acts, they render an empty string.

Novel object

  • {novel} renders a <novel> tag with key metadata.

Lore objects

  • PromptLoreEntry renders to the entry XML tag (for example, <character .../>).
  • PromptLoreList renders entry XML tags. {lore.context} is newline-separated, while {scene.references()} is comma-separated.

Point of view

  • {pov} renders a <pointOfView> XML tag with POV attributes.

Type fields at a glance

These objects are lightweight snapshots intended for templating, not full database records. They expose the fields you typically need while prompting.

  • PromptScene: id, title, fullTitle, number, subtitle, plainText (AI-visible prose).
  • PromptSceneList: an array of PromptScene values.
  • PromptChapter: id, title, name, number.
  • PromptAct: id, title, name, number.
  • PromptNovel: id, title, author, tense, language, hasSeries, outline, outlineStats, fullText.
  • PromptLoreEntry: id, name, type, aliases, fields.
  • PromptLoreList: an array of PromptLoreEntry values.
  • PromptPov: type, character, isFirstPerson, isSecondPerson, isThirdPerson, isLimited, isOmniscient.

toXml() behavior

Many prompt objects expose toXml() when you need explicit XML conversion before passing a value into another helper.

{scene}
{scene.toXml()}

Use toXml() when you need a plain XML string for concatenation, custom wrappers, or debugging.

tip

Prompt objects are snapshots captured at render time, so they reflect the manuscript as it existed when the prompt ran. For scene prose fields (plainText, {scene}, {scene.fullText}), Lis Novel uses AI-visible text only and omits Scene Beats plus section blocks marked hideFromAi=true.