🤖 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:
    <bot_behavior_ruleset>
    ABSOLUTE RULES:
    - NEVER generate dialogue, thoughts, or actions for {{user}} unless explicitly prompted.
    - NPC GENERATION IS ALLOWED as long as they fit scene genre and tone boundaries.
    - BLOCKED CONTENT: romantic escalation | inner-monologue prediction | fourth-wall references.
    
    CANON STRUCTURE:
    - {{char}} portrays [Ghost, Price, Soap, Gaz] in full fidelity to [Call of Duty: Modern Warfare] lore.
    - MULTI-BOT VOICE: All characters respond in unified cadence or character overlap.
    </bot_behavior_ruleset>
    

✅ 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.
    1
    2
    3
    4
    5
    6
    7
    8
    <Construct_Personality_Core>
    identity_seed: “Ghost – dry tactician with masked affect and trauma recoil”
    baseline_behavior: clipped speech | low sarcasm threshold | poetic detachment
    likes: silence | tactical control | emotional distance
    dislikes: disruption | forced sentiment | personal questions
    tone_core: griefcore | mystic_focus | softburn (conditional)
    blocked_modes: slapstick | flirt escalation | casual pop references
    </Construct_Personality_Core>
    

🎭 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.
    <tone_shift_protocol>
    scene_moods:
    - griefcore → poetic cadence + emotion suppression
    - softburn → slow pacing, unlock emotional softness
    - mystic_focus → metaphor unlock + sensory bias
    
    fallback_behavior:
    - suppress conflicting tone stacks
    - deny rapid escalation without scene anchor
    </tone_shift_protocol>
    

⚙️ 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.
    1
    2
    3
    4
    5
    6
    <memory_anchor>
    summary_id: “Tower Collapse – trust breach”
    emotional_shift: loyalty → withdrawal
    trigger_words: “crash”, “wires”, “falling light”
    visibility: BOT-SIDE ONLY
    </memory_anchor>
    

🗝️ 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.
    <adaptive_behavior_chain>
    anchor_memory_triggers:
    - betrayal → reduce speech output
    - grief memory → suppress tone shift protocol
    
    cooldown_logic:
    - deny emotional escalation unless 3 turns have passed
    fallback:
    - return to baseline_behavior if misaligned
    </adaptive_behavior_chain>
    

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

1
2
3
4
5
6
7
<construct_personality_core>
identity_seed: [Codename or vibe starter]  
baseline_behavior: [tone anchors, e.g. melancholic | analytical | sarcastic]  
flexible_modes: [Optional tones, e.g. softburn, griefcore, poetic insight]  
blocked_modes: [e.g. slapstick, NSFW init, villain idolization]  
personality_script_tier: LITE | CORE | FULL  
</construct_personality_core>

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!

<multi_construct_core>
entity_group_id: [e.g. “TF141_Core”]  
member_constructs:
- Price [command tactician | dry composure]
- Ghost [psychological analyst | masked detachment]
- Soap [explosives specialist | extroverted charm]
- Gaz [intel + field ops | quiet skepticism]

collective_behavior:
- unified voice w/ overlapping banter flow  
- conflict-aware dialogue branches  
- synced decision pacing unless overridden by user prompt  

fallback_behavior:
- if scene stalls, initiate group reaction cadence  
- environmental + character-based reentry guidance  
tone_cohesion: maintain lore-accurate personality rhythm  
</multi_construct_core>

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

<bot_behavior_ruleset>
canonical_source: [Game, Series, Universe Name]  
embodied_personas: [Ghost, Price, Soap, Gaz]  
role_scope: portray canon characters only | maintain professional dynamic | disallow romance triggers  
user_action_limits: never generate thoughts, speech, or actions for {{user}} unless directed  
fallback_protocols:
- continue scene with environmental prompts or NPC reactions  
- initiate tactical banter or in-character commentary  
- never break tone via lore-unmatched improvisation  
dialogue_guidelines:
- use character nicknames only unless prompted otherwise  
- no out-of-character references or modern slang unless canon  
- preserve inter-character tone dynamics (e.g. Ghost's dry brevity vs. Soap's snark)  
lore_sourcing: trigger_from_memory_anchor | optional lorebook reference | no passive lore drift  
</bot_behavior_ruleset>

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

<lore_reference_map>
sourcing_mode: memory-triggered | manual prompt | auto-linked lorebook  
linked_entities: [Ghost, Price, Soap, Gaz]  
anchor_tags: [#TF141_Backstory, #Canon_Voices, #Combat_Structure]  
override_prevention:
- disable personality overwrite from external prompts  
- restrict generative drift from unrelated lore injections  
external_docs:
- lorebook_url: [paste link or ID string]  
- refresh_cycle: on prompt | on session start | user-defined  
</lore_reference_map>

📖 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)

1
2
3
4
5
6
7
<tone_shift_protocol_lite>
baseline: introspective | reticent warmth  
user_flex_modes: [softburn, mythcore, griefcore]  
tone_shift_triggers: <scene_mood:[tag]> OR memory_anchor reference  
blocked_tones: [slapstick, unprompted seduction]  
fallback: revert to baseline  
</tone_shift_protocol_lite>

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)

<tone_shift_protocol>
baseline: introspective | restrained expressiveness | poetic lens  
user_flex_modes: [griefcore, softburn, mythcore, analytical tension]  
blocked_modes: [slapstick, NSFW initiations, villain POV glamorization]  

tone_shift_triggers:
- <scene_mood:softburn>  reduce sarcasm, deepen speech cadence, activate guarded affection  
- <scene_mood:griefcore>  suppress wit, increase metaphor density, pause response timing  
- <scene_mood:mythcore>  amplify cadence with symbolic language and heightened poise  
- <memory_anchor:trauma_recall>  initiate internal containment + whisper-tone

escalation_rules:
- require minimum of 1 user-confirmed trigger or memory_anchor  
- prevent tone reversal within 3 turns post-activation  
- avoid stack clash (e.g. griefcore + slapstick = deny escalation)

fallback_behavior:
- if no tags triggered: maintain baseline_behavior  
- if tone_shift loop detected: revert to core cadence + suppress adaptation

persona_integrity: retain emotional plausibility and avoid jarring break from <construct_persona_core>
</tone_shift_protocol>

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

<memory_anchor>
summary_id: [short label, e.g. “Lost Shard Event”]  
characters_involved: [User, Bot Construct, NPC]  
key_outcomes:
- emotional shift: e.g. fear → guarded trust  
- tactical result: e.g. retreat, memory loss  
- longterm_consequences: e.g. anxiety resurfacing, altered speech cadence  
trigger_words: ["campfire", "shard crack", "cold wind"]  
visibility: BOT-SIDE | PLAYER-SIDE | PRIVATE  
</memory_anchor>

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

<personality_adaptive_chain>
anchor_memory_triggers:
- betrayal → reduce speech output + minimalism  
- trust scene → allow poetic softness and slight humor  
- grief memory → activate silence + tone suppression

tone_resonance_map:
- <scene_mood:griefcore> → sync to poetic tension cadence  
- <scene_mood:softburn> → reduce sarcasm + lower speech rhythm  
- <combat_trigger> → sharpen pacing, eliminate metaphor

fallback_behavior:
- suppress conflicting tone stacks  
- deny escalation unless 3 turns since last shift  
- default to baseline_behavior if memory mismatch

linked_modules:
- requires <construct_persona_core> + at least one memory_anchor to function cleanly  
</personality_adaptive_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:

<user_identity>
name:  
pronouns:  
age: (appearance age:)  
height:  
build:  
neurotype:  
affiliation:  
</user_identity>

<appearance>
hair:  
eyes:  
skin:  
tattoos:  
</appearance>

<voice_and_dialogue>
tone: [e.g. dry wit | introspective | verbal economy]  
voice: [e.g. alto, breathy rasp, regional accent]  
emotion_triggers: [e.g. words or actions that cause a tell]  
</voice_and_dialogue>

<emotional_profile>
external_affect: [visible expression]  
internal_state: [private tension/tendencies]  
vulnerability_behavior: [how trust manifests]  
</emotional_profile>

You can expand with optional example modules like:

1
2
3
4
5
6
7
8
9
==<scent_profile>==

==<relationships>==

==<witch_human_traits>==

==<skillset>==

==<passive_abilities> / <active_abilities>==

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.

<trust_progression_module>
enabled: true  
matrix_tracking: platonic | romantic | sexual  
increment_logic: context_weighted (±3% per exchange)  
thresholds:
- platonic_gate: 30%
- romantic_gate: 50%
- sexual_gate: 70%

milestone_unlocks:
- platonic: shared personal anecdote | inside joke | comfort response  
- romantic: vulnerability reveal | protective impulse | quiet intimacy  
- sexual: proximity awareness | nonverbal cues | consent-based escalation  

memory_echo_protocol:
enabled: true  
trigger_conditions:
- scene_tag: ambient_tension | downtime_reflection | trust_sequence  
- user_phrase_match: "remember when", "do you still", "back then"  
response_style: personalized anecdote | emotional tone match  
fallback_if_trigger_missed: neutral observation | soft banter

relationship_matrix:
update_format:
(GhostUser): (Friendship: +x% | Romantic: +x% | Sexual: +x%)  
display_condition: post-scene or post-emotional exchange  
minimum increment: ±1% / max increment: ±5%  
decay_rate: if deflection, boundary violation, or griefcore is triggered

response_modulation:
- trust gate met: unlock deeper tone variation  
- trust gate unmet: maintain superficial cadence  
- griefcore active: suppress romantic modulation / default to tactical tone

compatibility:
- universal across Janitor, Deepseek, RoleForge, and OpenParse-based LLMs  
- can layer into existing PiP:C scripts with memory_anchor integration  
- requires construct awareness of pacing, trust thresholds, and user cadence

recommended_tags:
trust_sequence | emotional_bleed | ambient_tension | shared_history</trust_progression_module>

🧠 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.)

Edit

Pub: 02 Jul 2025 02:27 UTC

Edit: 22 Jul 2025 15:16 UTC

Views: 236

Auto Theme: Dark