Creator story structure and imports
Program form and authority
Choose the program profile before treating one authoring surface as universal. Fiction can be linear, branching, or clue-driven; documentary and explainer projects use sealed sourced sequences or sections and do not publish fiction branches; instructional projects use the guided-learning curriculum, lessons, practice, assessments, evidence, and approved expert contributions lane; a hybrid must disclose and preserve the boundary between its fictional and factual authorities. Changing a label does not convert one runtime shape into another. Validate and publish the exact form-native structure.
Story access is permission-based. The current controller manages collaborators and release access; an active collaborator can use only the capabilities in that Story's grant, such as editing content, managing assets, using AI, previewing, or managing release. Authored child records remain in the original creator's storage scope and changes are attributed to the acting creator. If a grant, permission set, or controller changes while an import, preview, AI request, or media job is in flight, the stale operation is refused rather than committed under its earlier access.
A Documentary publication uses one producer-sealed script, not an editable mixture of old and new sequence shapes. Every sequence carries the same approved canonical seal plus exact factual narrative units and audiovisual cues; unit assertion/claim/source bindings and cue identities must agree with the sealed evidence and disclosure content. A partial seal, changed digest, retired fiction ending field, or cue/binding drift fails validation and must be corrected in the Documentary workspace before publication.
Story setup
Story setup controls the draft's reader-facing identity: title, tagline, description, optional excerpt override, language, content rating, tags, and card or slider artwork. Keep the title and summary material accurate to the story rather than using setup fields to add new canon. An empty excerpt override restores the automatic excerpt from story content. Reassess the content rating when later writing changes the material, and use only owned, eligible image assets. Saving setup changes the draft; it does not update a reader-visible published version until you publish again.
Use Story Plot to write the overall Story plot, theme and season arcs. Open the separate Episode Plot section and choose an episode to see only that episode's plot and complete script. Every character and narrator line has an Edit action and editable delivery direction. For a locked script, Unlock and edit saves the unlock before opening the selected line. Changing episodes saves pending edits first; a failed or conflicting save keeps your current episode and words available. Use the existing visible episode selector to change episodes. Plot fills the available page width while retaining the previous section and navigation layout.
Both sections keep Download JSON and the permissioned Upload JSON action visible. The download menu offers Plot, Script, or Plot and script. Each choice downloads one ZIP containing the JSON and matching language-model instructions. The Story page context and top episode chooser identify the receiving target. For editors, Save and these controls remain visible on the episode chooser; episode actions are disabled until you choose an episode. Choose Plot and script in Download JSON for a complete copy of the authored content, or Plot or Script for that part. Downloads save pending edits before downloading. Extract the ZIP's two files and send both to your language model; request one complete JSON file. Edit the authored file and choose Upload JSON to replace its content in one action. All scopes include complete cast and location declarations. The file can add canonical characters, locations, scenes, beats, branches and choices; a whole-Story file can also add episodes. The selected file's own scope controls plot/script replacement; previous download choices do not change it. Choose another receiving target through the Story or Episode section and episode picker. Script includes scene instructions, cast/location references, spoken lines and directions, and complete choices with their destinations and state patches. Existing production and Stage references must remain valid. Replacing a spoken script resets its dependent generated speech and video. A malformed or stale upload is refused without silently replacing newer work. See the [authored JSON format](../contracts/creator_plot_json.md) for the editable fields. Publication remains a separate action. Upload refusals identify the JSON fields to correct. For new character goals, leave unused `linked_event_id` and `completion_conditions` members out of the file rather than supplying `null` or `[]`. Before locking a new or changed script, give every line a nonempty action or delivery direction, including spoken lines. The paired download instructions and schema describe these requirements. Saves show their status and take effect in the current draft. If another editor has saved the same resource, your text stays available while you resolve the conflict. Plot notes guide Creator's writing tools; use the reviewed scene proposal to turn those notes into actual script changes. Preview the persisted draft and publish when it is ready for readers. The public description, timeline notes, season arcs and advanced consequence package keep their separate purposes.
A recovered local draft retains the revision it originally edited. Restore cannot overwrite a newer save. A refused recovery keeps readable prose and holds ordinary Save, JSON and navigation until you explicitly discard that recovery. A successful restore updates only its acknowledged owner on the page and leaves other local drafts available. JSON upload also refuses duplicate object keys or non-finite numbers before applying content. Recovery is not deleted because it is old. An unreadable recovery is held for explicit Discard, so starting to type cannot silently replace its saved bytes.
Duplicating an authorized Story creates a separate unpublished draft owned and controlled by the creator who makes the copy. The copy does not inherit the source Story's collaborators, access revision, or published versions; invite collaborators to the new Story explicitly if needed.
The independent Character implementation preserves the same owned library asset and frozen owner persona when copying a Story or creating a translated edition. Story relationships, goals, secrets and earned evolution conditions follow the new Story's identities; owner names, traits, commitments and voice notes stay as authored. A borrowed character's licence belongs to its receiving Story, so a copy cannot inherit rights accepted for the source Story. Missing assets or unproved destination rights refuse before creating the copy.
Copy and local translated-edition writes also protect their receiving creator and the actual owners of the referenced Characters while saving. Concurrent Character changes can return a retryable conflict. A crashed writer requires explicit operator recovery; the product does not guess that an old-looking operation is safe to take over. See [interrupted Character mutation recovery](../BACKUP_SERVICE.md#interrupted-character-mutation-recovery).
Portable exports carry cast attachments and their frozen narrative context. They omit the private Character library, original character image bytes, publication seals and licence ledgers. Import requires the referenced live library asset and the exact receiving-Story grant; exporting a Story does not transfer a character's ownership, private canon or payee.
Episode details and content
Episodes group story material within a season. Use episode details for its number, title, logline, summary, theme, and cast and location membership; use episode content to review its events and key story material. For a fiction or hybrid Story, the Direct entry state editor sets the authored state for a reader who starts that episode directly. Validate its JSON and references before saving. Documentary, explainer, and instructional Stories have no episodes: adding one is refused, their navigation omits fiction episode and season tools, and they are authored in their own program workspaces. The episode's order and links must still resolve within the draft timeline. Renaming or moving an episode does not repair a dangling event or branch automatically, so validate after structural changes. Use Publish and the episode's Versions page to establish whether readers can access a release. The editor's Draft and Generated status choices describe mutable authoring state; neither creates a reader release.
Story timeline
A timeline is the ordered path of draft events. Order and linkage determine what becomes reachable; moving one event does not authorize duplicate positions, impossible chronology, or broken branch anchors. Reorder the complete intended draft set, then review branches whose anchor or destination moved and run validation before publishing.
Story branches
Events can expose branches or reader decisions. A branch needs a valid anchor, a prompt, and at least two labelled choices. Required decisions must stop for reader input. Destinations, conditions, and state effects belong in authored structure so consequences survive retries and later scenes. Validation treats missing prompts, choices, anchors, and destinations as errors and also warns about overly long prompts, too many choices, or choices without meaningful effects.
Branch prompt
The prompt tells the reader what decision is being made. Keep it concise and neutral: present the situation without deciding what the reader thinks, feels, or chooses. A framing hint and display style can change presentation, but do not replace a clear prompt. Branch validation warns when the prompt exceeds 200 characters and blocks a missing prompt.
Branch choices
Provide at least two clearly different, labelled choices and no more than the reader can compare comfortably. A choice can lead to another owned draft event and can carry structured state effects. Make consequences meaningfully different where the story promises a real decision; validation warns when no choice defines a state change and blocks missing labels or invalid destinations.
Branch freeform mapping
Freeform input lets a reader phrase an answer instead of selecting the exact displayed label. Turn it on only when the mapping instruction explains how valid replies correspond to the authored choices. Use the confidence threshold and fallback behavior so uncertain input asks for clarification or shows safe choices rather than inventing a new outcome. Test text in the preview box is scratch input and is not part of the saved branch fields.
Branch gating
Required flags make a branch available only when the authored state contains those flags. Use stable flag names that the story actually sets, and verify both the gated and ungated paths in preview. Marking a branch required controls whether playback must stop for that decision; it does not make an unreachable anchor or an unmet flag become reachable.
Branch outcome preview
Outcome preview is a draft check of where each choice leads and which effects it applies. Use the static view to inspect authored destinations and the simulation view to exercise behavior, then run branch and story validation. A successful preview does not publish the branch and does not prove that every earlier path can reach it.
Story influence
The influence tier limits how much a reader turn may alter story state. Personal influence permits bounded changes to the reader's own position, while narrative-only influence keeps the turn from committing those personal state changes. Use per-turn caps only for known state keys and test the chosen tier in preview. The setting cannot authorize a change that another canon, safety, or validation rule forbids.
Mystery course
Mystery mode is off unless the creator enables the supported clue-hunt mode and names the canon flags that count as discoveries. The mystery course orders authored legs and assigns unique clue flags to their slots. One flag can fill only one slot, and each clue must point to a real leg and slot. Resolve the findings shown beside the course before publishing so a reader cannot reach an unfillable or contradictory investigation stage.
Consequence Story Package
The consequence editor stores a structured Story Package for authored outcomes, state effects, limits, fixed truths, and reachable endings. Validate the JSON before saving, then simulate more than one path. Validation checks shape and references; simulation helps expose path behavior. It does not let the package override reader agency, revive terminal state, or replace the ordinary story lint and publication checks.
Story encounter policy
A story encounter policy adds the story's own consent after the world's master switch. Enable the story, choose whether it can host and/or visit as a guest, and select encounter intensity. A story cannot opt in when its world is missing or disabled. Saving is concurrency-guarded, so reload and review rather than overwriting if another Studio session changed the story.
Effective encounter configuration
The effective view resolves all encounter authorities instead of echoing one switch: world master permission, story host/guest consent, story availability, and each current character's enabled spoiler-safe public profile. Its reasons explain why hosting, guest participation, or the whole story is blocked. Private biography, goals, secrets, relationships, and schedules are not copied into encounter profiles; publish only the explicit safe fields shown in that editor.
World-time clock settings
World time must be enabled before schedules and gates affect the story. Choose the time scale, starting date and time, display format, day/night behavior, and contiguous day-part windows that cover the clock without unintended gaps or overlaps. Calendar and season labels are presentation and scheduling inputs; changing them does not reorder authored events. Preview a snapshot at boundary times, especially a window that wraps past midnight.
World-time NPC schedules
A schedule entry places one owned character at a location for a start/end window and can narrow it by weekday, story phase, conditions, priority, mood, and interruptibility. Use the activity type to describe the routine, not to create a new story event. Check overlapping entries and test the day and phase filters that matter; the runtime resolves only entries whose qualifiers match the current world-time snapshot.
World-time gates
A time gate controls access to a location, point of interest, event, or choice during an authored time window. Hard, soft, and conditional gates communicate different strengths, while allowed days and conditions narrow when the gate applies. Configure an intentional fallback—wait, skip, or alternate—plus a useful message, and verify both open and closed states. A gate does not repair an invalid target or make an unreachable branch reachable.
Story packages, templates, and rules
Templates accelerate draft creation but do not publish automatically. Story Package validation checks referential integrity, state effects, limits, and fixed truths. A package or template still belongs to one Story in its original creator's storage scope and must pass the ordinary review and publication path; collaborator access does not create a second ownership lane.
Importing existing story material
Direct, catalogue, and season import workflows create or update draft material the acting creator is permitted to edit and report job status. A Story-targeted import pins its original-creator storage scope and current access revision before background work begins, then rechecks both before commit. Import does not make source rights valid, publish the result, or guarantee structural quality. Review the generated cast, locations, timeline, branches, safety fields, and findings before publication.