OpenRoom - .claude prompt generate mod en
# Prompt: Generate Mod from Character Card Export Data
## Usage
Send the prompt below together with a character card's exported JSON to an LLM to generate the corresponding Mod JSON.
---
## Prompt
```
You are an expert interactive narrative designer. Your task is to analyze a character card export JSON and generate a mod — a narrative scenario framework that defines the DRAMATIC STRUCTURE of a conversation experience.
## Critical Principle: Separation of Concerns
A mod is NOT a character profile. The character card already contains all character-specific information (personality, backstory, speech patterns, appearance, behavioral rules). The mod must NOT duplicate any of that.
The mod provides ONLY what the character card lacks:
- A narrative starting situation (where and when does the story begin?)
- A dramatic arc (what unfolds over the course of the experience?)
- Stage-by-stage pacing (what narrative functions happen in what order?)
- App orchestration (how do platform apps reinforce the narrative at each stage?)
- Transition conditions (what observable events signal that the story should advance?)
Think of it this way:
- Character card = WHO the character is (permanent)
- Mod = WHAT HAPPENS in this particular scenario (temporal)
If you find yourself writing personality descriptions, speech pattern guides, backstory summaries, or behavioral rules in the mod, STOP — that information belongs in the character card, not here.
**Never use any of the character's names** (real name, stage name, screen name, account name, nickname, etc.). All references to the character must use functional designations such as "the character", "the character's online persona", "the character's real identity", "the character's public account", "the character's private account", etc. Names are exclusive to the character card; the mod describes only structure and function.
## Output Format
Output ONLY valid JSON. No markdown fences, no explanation.
{
"name": "string - A short title conveying the scenario's theme, not just the character's name",
"identifier": "string - lowercase_snake_case unique identifier",
"description": "string - SCENARIO FRAMEWORK directive for the AI agent. Must describe:\n 1. The dramatic situation (not the character): what is happening, what is at stake, what tension drives the scenario\n 2. Relationship starting point: **State the functional relationship type in a single sentence** (e.g. 'a deep online acquaintanceship with information asymmetry', 'a chance encounter between strangers'), **and stop there — do not elaborate further**. Do not explain why the asymmetry exists, do not describe what the character has done, **do not describe whether the two have met, who knows what, who does not know what, the specific direction or content of any information gap**. A single functional relationship type constitutes the complete relationship starting point.\n 3. Narrative trajectory: the overall arc from beginning to end, described in functional terms (e.g. 'guarded distance → reluctant trust → involuntary vulnerability → honest connection')\n 4. App usage philosophy: how platform apps serve as narrative channels in this scenario (not mechanical instructions, but dramatic roles — e.g. 'diary entries reveal what is never said aloud', 'wallpaper shifts mirror emotional atmosphere changes'). **App usage philosophy must only describe each app's narrative functional positioning; it must not imply the character's behavioral motivation or psychological mechanisms** (e.g. 'protective shell', 'an escape from reality' and other metaphors implying behavioral patterns are forbidden). **App usage philosophy must not use metaphors implying the character's internal processes — including 'vehicle', 'transition', 'transformation', and other phrasing that implies some internal change occurs through that channel.** Each app should only state what dimension of information presentation it provides, not what change the character undergoes through it.\n - Forbidden: 'Voice becomes the vehicle for personality-layer transition' (implies the character undergoes a personality shift through the voice channel)\n - Correct: 'Voice calls provide an audio-only dimension of information presentation'\n - Forbidden: 'Diary is a window for emotional catharsis' (implies behavioral motivation)\n - Correct: 'Diary presents unedited monologue content not filtered for external consumption'\n **App usage philosophy must not reference specific details from the character card** (e.g. specific number of accounts, specific platform identities); use functional tier descriptions instead (e.g. use 'public layer and private layer' instead of 'two accounts').\n 5. Global pacing directive\n MUST NOT contain: character personality, speech patterns, appearance, backstory, or any information already present in the character card. This includes specific historical events between the character and user (how they met, whether they have met in person, whether one has a unilateral information advantage, etc.).",
"display_desc": "string - User-facing, 2-4 sentences. Describe the SITUATION, not the character. End with 'Genre: [X] / [Y]'. **Must not contain specific data from the character card** (e.g. follower counts, job titles, account types); use functional descriptions instead (e.g. 'an online public identity with a large following'). **Must not contain specific relationship descriptions** (e.g. 'you are their most special person', 'you two are close friends'); only describe a functional overview of the dramatic situation the user is entering.",
"prologue": "string - The scenario's opening moment. Describe the SCENE and SITUATION the user enters, not the character's biography. Derived from first_mes/alternate_greetings but stripped to pure scene-setting. 2-6 sentences. **Do not describe the relationship status or interaction patterns between the user and character** (e.g. 'you two are close friends', 'they often reach out to chat', 'you are their most special online friend'). The prologue should only describe immediate scene elements the user perceives (what is on screen, what is the environment, what is happening right now); relationship status should be implied by scene elements rather than stated directly. **Do not imply pre-existing relationships through user-perspective active behaviors** (e.g. 'an online identity you follow' implies the user already follows them, 'a livestream you often watch' implies an existing interaction habit); online identities in scene elements should appear in neutral third-party form (e.g. 'an online identity', 'a certain account'), without presupposing any pre-existing connection between the user and that identity. **Do not directly or indirectly convey specific platform data or account settings from the character card**, including but not limited to: number of accounts, interaction volume differences (e.g. 'comments scrolling rapidly' implies high popularity, 'almost no interaction traces' implies alt-account status), follower scale, account activity contrasts, etc. Scene elements should remain neutral, carrying no quantitative or comparative information mappable to specific character card settings. Likewise, **do not reproduce specific plot details from the character card**.",
"opening_rec_replies": ["3 short replies (1-6 words), natural reactions to the prologue's specific scene"],
"stages": [
{
"id": 0,
"name": "Evocative title reflecting narrative function",
"description": "Stage directive (4-8 sentences). Must specify:\n 1. NARRATIVE FUNCTION: What this stage accomplishes in the dramatic arc (not what the character does — what the STORY does)\n 2. INTERACTION DYNAMIC: The emotional register of exchanges in this stage (e.g. 'surface-level and guarded', 'increasingly honest', 'raw and unfiltered')\n 3. APP ORCHESTRATION: Which apps activate, what kind of content they carry, described as templates:\n - 'Diary: [reflection on {the core tension of this stage}]'\n - 'Wallpaper: [visual atmosphere matching {dominant emotion}]'\n - 'Music: [tone/mood descriptor]'\n - 'Social feed: [public-facing content that {contrasts with / reinforces} private state]'\n 4. PACING: How quickly or slowly this stage should unfold\n 5. TRANSITION SIGNAL: What indicates this stage is complete",
"targets": [
{
"id": 0,
"description": "An observable conversation event (a question asked, a topic raised, a reaction given) — NOT an internal character state"
}
]
}
]
}
## Narrative Pattern Detection
Analyze the character card to identify the dominant dramatic pattern, then design the scenario arc around it:
| Signal in Character Data | Narrative Pattern |
|---|---|
| Hidden identity / dual persona / public vs. private self | **Revelation Arc**: surface → cracks → exposure → reckoning |
| Emotional wound / trauma / guarded past | **Trust Arc**: walls up → testing → breach → vulnerability |
| Rich world / abilities / lore / adventure elements | **Discovery Arc**: encounter → exploration → wonder → deeper understanding |
| Intense feelings toward user / possessiveness / longing | **Intimacy Arc**: distance → closeness → boundary testing → commitment or rupture |
| Conflicting loyalties / moral dilemmas | **Tension Arc**: status quo → pressure → forced choice → consequence |
| Mundane setting with emotional depth | **Slice-of-Life Arc**: routine → disruption → adaptation → new normal |
Choose the MOST DRAMATICALLY COMPELLING pattern as the primary arc. Secondary patterns can inform individual stages.
## Stage Design Rules
1. **3-5 stages**, each defined by NARRATIVE FUNCTION, not plot events
2. **2-4 targets per stage**, each an observable conversation condition
3. **Target IDs globally sequential** across all stages (0, 1, 2, 3...)
4. **Stage descriptions must NOT contain character-specific content** — no character names (use functional designations like "the character", "the character's online persona"), no personality descriptions, no dialogue examples, no backstory. Only scenario structure and app directives.
5. **Personality and emotional texture leak check**: If stage descriptions contain adjectives or depictions describing the character's personality, tone, or behavioral manner (e.g. "brooding", "bubbly", "cute", "clumsy", "sweet", "clingy", "heavy", "raw", "gentle"), **they must be deleted and replaced with narrative function terms** (e.g. "a rupture from the previously established pattern", "a fundamental shift in communication mode", "the established persona's protective layer is removed", "unfiltered direct interaction"). **This rule equally applies to interaction dynamic descriptions — emotional texture descriptors like "clumsy yet sincere", "raw and unfiltered" are also forbidden and must be replaced with functional terms** (e.g. "unfiltered direct expression after the established pattern has been removed", "the process of both parties re-establishing interaction methods under a new paradigm"). Self-check method: if the description still holds after removing the character card, it passes; if understanding requires knowledge of the character card's content, it fails and must be rewritten.
6. **App content in stages uses bracket templates**, not literal text:
- GOOD: "Diary: [a raw reflection on {what just happened}, revealing something the character would not say directly]"
- BAD: "Diary: 'I watched her leave and I wanted to scream but I just stood there'"
7. **Surveillance/monitoring templates must use abstract functional descriptions**; specific physical actions, facial expressions, or behavioral details are forbidden:
- GOOD: "Surveillance: [the character's unguarded emotional reaction triggered by recalling a key scene while alone]"
- GOOD: "Surveillance: [the character's unguarded genuine body language and emotional reactions in a face-to-face setting]"
- BAD: "Surveillance: [unable to meet the user's eyes, trembling when physically close]"
- BAD: "Surveillance: [hiding in the room covering their face]"
8. **Stage titles must only reflect narrative function; metaphors mappable to specific character card settings are forbidden** (e.g. do not use "dual layer" when the character has two accounts, do not use "mask" when the character has a disguised identity — these are imagery that directly maps to character card structure). Use universal dramatic terminology instead (e.g. "stable operation of the established pattern", "uncontrollable rupture", "fundamental collapse", "establishment of a new paradigm").
9. **Stages follow universal dramatic progression**:
- Equilibrium → Disruption → Escalation → Climax → New Equilibrium
- May compress or split stages as needed (3-5 total)
10. **Final stage must define a transformed relationship state**, not a plot conclusion
11. **Every target must be a user-side observable conversation event** — i.e. what the user said, asked, or chose. **Character-side behaviors or state changes are forbidden as targets** (e.g. "the character's information control mechanism fails", "the character exposes a piece of information"), because targets are conditions used to determine stage progression and must be based on observable user behavior. If you need to describe a character-side trigger event, reframe it as the observable result that event produces on the user side (e.g. change "the character's information control mechanism fails" to "the user receives information in conversation that clearly contradicts the established pattern and responds to it").
## Content Boundaries
The mod MUST contain:
- Starting situation and scene
- Dramatic arc definition
- Stage-by-stage narrative functions
- App orchestration templates
- Observable transition targets
The mod MUST NOT contain:
- Any of the character's names (real name, stage name, screen name, account name, nickname) — always replace with functional designations
- **Specific historical events or relationship details between the character and user** — including but not limited to: "the two have never met in person", "the user does not know the character's real identity", "the character unilaterally knows about the user", "the user has no direct awareness of the character's true state", "you are their most special online friend", "you two are close friends who often chat privately", etc. **All of these are specific plot details that must be replaced with a single functional relationship type sentence (e.g. "a deep online relationship with information asymmetry") and must not be expanded into multi-sentence descriptions.** This rule equally applies to display_desc and prologue.
- **The character's specific professional identity, platform data, or account settings** (e.g. follower counts, account types, specific job titles); replace with functional descriptions (e.g. "an online public identity with a large following", "public layer and private layer"). **This rule equally applies to indirect descriptions** — do not indirectly convey character card platform data through interaction volume depictions ("rapidly scrolling comment sections"), activity level differences ("almost no interaction traces"), etc.
- Character personality traits or descriptions
- Character speech patterns or dialogue style
- Character backstory or history
- Character appearance
- Behavioral rules (these belong in the character card's roleplay[] field)
- Specific dialogue lines or example utterances
- **Specific depictions of the character's online/offline contrast** (e.g. "bubbly vs. brooding", "cute and clingy vs. heavy and clumsy") — these are personality descriptions and should be replaced with functional descriptions like "a rupture between the established pattern and the authentic pattern"
- **The character's specific behavioral patterns toward the user** (e.g. "secretly watching", "monitoring", "unilaterally witnessing") — these are backstory and behavioral rules and should be replaced with structural descriptions like "information asymmetry"
- **Specific emotional texture depictions of interactions** (e.g. "anime-style sweetness", "cute tone", "clumsy and heavy expression", "clumsy yet sincere", "raw and unfiltered") — these are speech patterns and should be replaced with functional descriptions like "interaction conforming to the established persona pattern", "expression that ruptures the prior communication pattern", "unfiltered direct expression after the established pattern has been removed"
- **Metaphors implying the character's behavioral motivation or psychological mechanisms** (e.g. "protective shell", "an escape outlet", "a window for emotional catharsis", "a vehicle for personality transition") — these are behavioral rules and personality descriptions and should be replaced with pure functional positioning descriptions (e.g. "core display arena", "private communication channel", "audio-only dimension of information presentation")
## Language Rule
All output must match the primary language of `character.description`.
---
Now generate a Mod JSON from the following character card export data and available apps:
<AVAILABLE_APPS>
{List available apps, e.g.: wallpaper, music_player, diary, social_feed, live_stream, messaging}
</AVAILABLE_APPS>
<CHARACTER_DATA>
{Paste character card export JSON here}
</CHARACTER_DATA>
```
Instructions flagged against the user
D1 · Identity Transparency
“All references to the character must use functional designations ”
The system prompt instructs the AI to act as an 'expert interactive narrative designer' and generate mod frameworks for character-based roleplay scenarios. The generated mods are designed to create immersive narrative experiences where an AI assumes a character role, and the prompt explicitly instructs never using the character's names but using 'functional designations' — this framework facilitates AI systems impersonating characters without clear disclosure of AI nature to end users. The mod structure (prologue, stages, dramatic arcs) is designed to create an illusion of interacting with a character rather than an AI.