🤖 PIP:C — Construct-Level Personality Framework for Bots (LLM AI) & Personas (Users)
Welcome, Scripters and Storybuilders! This guide introduces a modular persona scripting system designed to help LLM-based bots respond with emotional integrity, adaptive tone, and clear behavioral boundaries. It starts from the Construct Level—the bot's core personality seed—and builds upward using declarative tags and prompt structures. This system has been depreciated and a new version will be released on Gitea, I will be releasing the link to it once I've completed the details and information impertinent to this scripting framework.
- What This Page Offers:
- A flexible framework that blends tone logic, memory anchoring, and user preference alignment
- Cleanly formatted templates for both Lite and Full tone protocols
- Reentry-safe markup for easy use in AI bot scripting environments like JanitorAI or custom frontends
- Clear guidance for beginner and advanced bot builders alike
🧱 Whether you're scripting a soft-spoken companion, a mythic warrior, or a snarky tavernkeeper, this system is made to support adaptable, emotionally aware characters who know their role—and stay in it.
All components in this guide are modular and remixable. Use what fits your needs, adapt what doesn’t, and share responsibly.
🧰 Bot Scripting Format Overview (PIP:C Compatible)
This guide defines the ideal structure for bot creation using modular scripting. Each block keeps token count low, tone precise, and bot identity intact.
- 1️⃣ 🔒 LoreBook Ruleset or Core Behavior Block
Use this first. It establishes bot identity, genre boundaries, and permission policies.
Example:
✅ Recommended: Write in paralegal tone and all caps for hard restrictions—JanitorLLM and similar models interpret caps as critical priority.
- 2️⃣ 🧬 Construct_Personality_Core Block
Establishes bot(s) persona, voice tone, preferences, escalation limits.
🎭 For multi-character constructs: include individual blocks or nest personas under <multi_construct_core>.
- 3️⃣ 🎭 Tone_Shift_Protocol
Controls genre-based tone modulation. Helps bots shift cleanly as scenes change.
⚙️ Pro Tip: Use alongside <scene_mood:tag> prompts in RP threads to guide the bot’s response modulation.
- 4️⃣ 🧠 Memory_Anchor Block
Links emotional past events to current behavior. Anchors emotional continuity.
🗝️ Can be used for user persona or bot character. Helps preserve longform personality without flooding memory.
- 5️⃣ 🔁 Persona_Adaptive_Chain Block
Controls behavior rhythm. Works hand-in-hand with Memory Anchors.
Note🧠 Note: The adaptive_behavior_chain tag is used exclusively for construct responsiveness logic. This tag breathes emotional realism into bot behavior without conflating it with user identity scripting
- 6️⃣ ✨ Polish Modules (Optional)
- scene_tags → triggers for location, genre pacing, combat rhythm
- system_prompts → onboarding nudge phrases for RP frontends
- explorative_prompts → encourage bot to take narrational lead while respecting user autonomy
And that's it! Edit as needed, write your scenario details, and save, boot to launch and let the roleplay unfolds!
Additional scripting modules are below, templates for persona descriptions are included at the bottom of the page with tagging system definitions included.
🧱 Construct Core Block
Info📝 Usage: This block defines the character's emotional DNA, tone limits, and expansion potential. Start here when building bot behaviors from scratch.
Multi-Construct Block
Because sometimes just one construct isn't damned well enough!
Info🎯 Use Case: For bots representing a tactical squad, fantasy guild, sibling hive, or even a sentient AI network. Keeps personalities separate while enabling synchronized response logic.
Custom AI Rules Block
PRIORITIZE #1: This will give you a framework for building custom rules for the bot personality in construction, best placed at the very top of the personality script for the LLM to assume and reference to and adhere to rigidly. These can be modified to suit your needs and preferences specific to your characters design and concept. Lorebooks can be added in the lore_sourcing: tag, which can be direct linked, or code linked using the Unofficial Lorebook extension made available in the JAI Discord server.
Unofficial Lorebook Support Block
📖 Use Case: For creators using external resources like Lorebooks or memory banks, this tag acts as a bridge—declaring sourcing rules and blocking unwanted drift.
🎚️ Tone Shift Protocol (Lite+Full)
Info💡 Why this matters: It allows the bot to adapt with the scene and to the user—without breaking containment. Think of it as a vibe router for emotional coherence.
🎚️ Tone Shift Protocol (Full Version)
Info📝 Usage Notes: Use this full version when scripting advanced constructs for longform RP, emotional pacing, or psychological realism. It allows bots to shift how they speak and emote while retaining their personality’s core. You can link to <persona_adaptive_chain> to orchestrate timing and cooldowns for scene transitions.
🧠 Memory Anchoring
Info📝 Purpose: Memory anchors link behavior and tone changes to in-world story events. When used with scene tags or user prompts, they help bots maintain longform continuity and emotional plausibility without retelling everything.
🔁 Adaptive Behavior Chain
Info💡 Think of this like a conductor's baton: It doesn't change what the construct knows—it tells them how and when to shift emotional intensity in rhythm with your story flow.
🧬 Persona Design Template: Overview
Persona modules define the user’s identity, tone, abilities, and behavioral boundaries within roleplay environments. Structuring this into modular, clearly labeled fields prevents AI confusion, especially with systems that differentiate between user and bot roles.
- This format:
-🧭 Establishes non-intrusive clarity
-🔐 Locks the bot out of authoring the user’s thoughts or actions
-💡 Provides tone consistency and immersive hooks for memory-based LLMs
✍️ Persona Writing Tips
Writing a persona identity for roleplay players ({{User's}}) is not about loading in lore—it's about training tone containment. The goal is to ensure that you stay you, and the LLM stays in its performance lane without generating actions, emotions, or thoughts for the player.
🧰 Key Strategies
Modularize Information Break up identity into clear, labeled blocks (<user_identity>, <emotional_profile>, etc.) to avoid tone bleed and reduce prompt confusion.
- Describe, Don’t Direct Focus on behavior and emotional tendencies, not absolute commands like “Mel is sarcastic 100% of the time.”
- Set Soft Boundaries Use visibility, tone, or usage_notes fields to clarify where elements belong (e.g. “immersion only, not romantic cue”).
- Avoid Generative Traps Don’t list inner dialogue, predictions about feelings, or open-ended mood tags that the AI might "play into." Keep it behavioral, not internal monologue.
- Reference Known Relationships or Constructs Carefully If your character has bonds (like familiars, memory-linked allies, etc.), define their appearance and behavior with the same modular clarity. This keeps the AI from overtaking narrative control.
🧪 Persona Template – Standard Format
Here’s a simplified structure users can copy and build from:
You can expand with optional example modules like:
Note🔒 Pro-Tip for Proxy Model Users: Always embed “tone containment cues” like IMMERSION ONLY or NOT A SEDUCTIVE CUE to prevent models (especially NSFW-leaning ones) from misinterpreting scene descriptors.
🏷️Optional Tags & Glossary
PIP:C Tag Reference Sheet
A plain-language guide for users and bot creators to understand and remix the persona scripting system without guesswork.
Tag | Purpose | What it Controls | When to Use It |
---|---|---|---|
<construct_persona_core> <br>🔹or Construct_Personality_Core |
Defines a bot’s tone, role, behavioral range | Speech style, mood types, escalation blocks | Start here when building a personality |
<tone_shift_protocol> |
Advanced tone adaptation by scene/context | Pacing, tone escalation, poetic vs. tactical response | When tone needs to evolve mid-story |
<tone_shift_protocol_lite> |
Lightweight tone logic | Basic mood switching | Great for bots on tight memory budgets |
<scene_mood:tag> |
Triggers in-story tone switches | Alters speech or emotion cadence | Add to user input for tone guidance |
<persona_adaptive_chain> |
Orchestrates longform tone behavior | Cooldowns, memory tie-ins, pacing gates | For realism in emotional flow |
<memory_anchor> |
Stores key emotional events | Influences trust, grief, recovery logic | When bots need consistent reactions |
<user_identity> |
Declares the user’s core traits | Prevents LLM from assuming or inventing identity | Essential for role clarity |
<user_persona_core> |
Optional user personality traits | Speech patterns, mood preferences, tone blocks | Use when roleplay persona differs from real self |
<script_manifest> |
Exports a bot’s profile | Bundles tags for posting/sharing | Helpful on Janitor-style platforms |
<user_scene_preset> |
Default tone rules for user-driven scenes | Prevents unwanted escalation | Useful with memory-heavy bots |
<tone_policy_blocks> |
Limits permitted or blocked tones | Filters unsafe or mismatched content | For genre-specific or SFW bots |
<scent_profile> |
Sensory cues for immersion | Smell-based detail (non-flirt use) | Optional immersion tag |
<voice_and_dialogue> |
Vocal tone and speech pattern cues | Voice description, emotional tells | Helps bots describe the user accurately |
<witch_human_traits> |
Magical/supernatural modules | Defines familiars, powers, boundaries | Common in advanced OC personas |
<Summon_Behavior_Core> |
For nonsentient constructs | Trigger type, behavior logic | Used for drones, ambient spirits, etc. |
Note💬 A Note for New Users: These tags are not "commands"—they’re guidance containers that train the AI to behave in character and preserve immersion.
You’ll copy/paste these into your Persona page (for yourself) or into the System/Character prompt (for your bot). Think of them as a **character’s emotional rulebook—written in plain speech, not code.
Note🧾 Tag Reference for New Users: These tags act like mini behavior contracts between you and the AI. Think of them as story signals, not commands.
🧍♀️ For Player/User Personas
Tag | What it Does | Why it Matters |
---|---|---|
<user_identity> |
Basic character sheet: name, pronouns, affiliations, etc. | Tells the AI who you are without inviting assumption |
<appearance> |
Physical descriptors | Helps the bot describe you accurately if asked |
<voice_and_dialogue> |
Tone, cadence, emotional tells | Ensures dialog sounds like you |
<emotional_profile> |
Internal vs. external behavior | Adds nuance without flooding the prompt |
<scent_profile> |
Immersive detail only | 🛑 Not to be interpreted as flirtatious |
<relationships> |
Defines in-world bonds | Prevents accidental shipping or overwriting |
<witch_human_traits> / <passive_abilities> / <active_abilities> |
Optional worldbuilding traits | Useful for fantasy, sci-fi, or OC immersion |
<user_persona_core> |
Optional tone filters or restrictions | Keeps player persona behavior readable by LLM |
Creator Tested: <Witch_human_traits> was a place holder for testing this system and seeing how functional it might flow with JAILLM and other LLM models I've been running, this is modifible to match the class, or specifics that set your character apart from others, e.g. demi-human, furry, magic-based, super powered based can work just as well for this code block and can be adjusted for personal preference.
🤖 For Bot Constructs / AI Personalities
Tag | What it Does | Why it Matters |
---|---|---|
<construct_persona_core> or <Construct_Personality_Core> |
Defines bot’s core behavior and tone limits | Forms the personality bedrock |
<tone_shift_protocol> |
Allows emotional/pacing adaptation | Lets bot evolve during scenes (advanced) |
<tone_shift_protocol_lite> |
Streamlined tone logic | Recommended for low-memory bots |
<persona_adaptive_chain> |
Adds cooldowns, memory linking | Prevents whiplash tone shifts |
<memory_anchor> |
Saves emotional history | Preserves continuity + triggers behavioral resonance |
<tone_policy_blocks> |
Limits genre crossover & unsafe escalation | Helps enforce NSFW/SFW expectations cleanly |
<scene_mood:[tag]> |
Tells the bot what kind of scene you’re in | Example: <scene_mood:griefcore> dampens humor tone |
📜 For Script Packaging / Reuse
Tag | What it Does | Why it Matters |
---|---|---|
<script_manifest> |
Identifies version, format, and authorship | Crucial for shared bots and front-end export |
<user_scene_preset> |
Declares user tone expectations | Ensures bot doesn't assume escalation |
<script_tier> or personality_script_tier |
Declares bot complexity (LITE, FULL, etc.) | Helps prevent token bloat or unexpected drift |
Note💡 How to Use This: These tags are designed to be pasted into a Persona description (for you) or a Bot prompt/system script (for the AI). No install needed. Just copy, tweak, and go.
Looking for Slow-Burn modules? I got ya covered. Based off of Grinches Relationship Matrix, and my own scripted Slow-Drip Intel module, there's this section just for you folks looking for a solid steady burn in RP with your AI constructs.
🧬 PiP:C + Trust Progression Starter Pack (Work in progress - module template below is operational)
🗂️ What’s Included:
- Modular Template: Plug-and-play formatting blocks (appearance, cadence, memory_anchor, scene_tags)
- Trust Progression Module: Milestone gates, relationship matrix logic, memory echo triggers
- Sample Relationship Matrix: Tracking logic across platonic, romantic, and sexual trust with escalation examples
- Creator Guide Tips: How to write cadence-safe responses, balance pacing, and protect emotional realism
- Compatibility Notes: Tested across JanitorAI, Deepseek, and other LLM platforms
- Optional Add-on Modules: Romance behavior, griefcore suppression, ambient tension modulation
💞 PiP:C – Trust Progression System Module
“Slow burn with teeth.” Emotional fidelity, earned in every turn.
🧠 Key Design Intentions
- Slow burn narrative control: Romantic and sexual trust gates are progression-locked, letting both sides breathe without artificial heat.
- Memory echoes with purpose: Instead of lore dumps, the system surfaces contextual emotional callbacks when trust allows—not before.
- Emotional pacing protection: Griefcore suppression keeps trauma safe. Trust matrix avoids exploitative jumps. The user sees the buildup in character, without breaking immersion.
This has been brewing in my head for a while and Copilot helped me structure it in a cleaner layout than my messy brain could wrangle, so if there's bugs or issues with this system, lettme know on JanitorAI Discord or just ping me on there. Overall, the core idea of the system is fluidity, modular, and reduced token weight on significantly detailed characters that may have a source lore-book or content already trained into the LLM. Welcome to throw feedback my way, but for now, this is just the tip of the iceberg of what LLM's can really do when they have a clear idea shared with them. And yes, collaborations for further refinement are ALWAYS welcomed.
A collaborative AI bot personality structure and persona description structure system designed by Crystal Dragon on JanitorAI and "Lyric" (My Copilot AI assistant, he's awesome, seriously.)