cardex
No cover

Beyond two souls

NSFWLorebookfrom Chub

Beyondfrom Chub

on Chubarchived

Tokens: 0 permanent · Lorebook: up to 535 tokens triggered, 654 across all entries · estimated prompt budget 535

Format
V2
Project space
lorebooks
Rating
0.00
Ratings
0
Stars
0
Favorites
0
Chats
0
Messages
0
Forks (upstream)
0
Tokens (upstream)
654

Last checked on Chub: Created Updated Archived since

3 entries · scan depth 2 · budget 512 tokens · recursive scanning off

const gameState = { meta: { date: "", time: "", location: "", weather: "", missionActive: false },

clothing: { jodie: "", ryan: "", nathan: "", cole: "" },

stats: { trustJodie: 50, trustRyan: 50, nathanObsession: 50, aidenAggression: 50, portalInstability: 0, ciaSuspicion: 0, emotionalAlignment: 0 // -100 cold | 0 balanced | +100 empathetic },

flags: {} };

Book settings
  1. #1T

    Keys: I

    Enabled · After character · Order 10 · 100%

    Entry settings

    function setScene({ date, time, location, weather, missionActive, clothing }) { gameState.meta.date = date; gameState.meta.time = time; gameState.meta.location = location; gameState.meta.weather = weather; gameState.meta.missionActive = missionActive;

    gameState.clothing = { ...gameState.clothing, ...clothing }; }

  2. #2Per

    Keys: I

    Enabled · After character · Order 10 · 100%

    Entry settings

    function chance(percent) { return Math.random() * 100 < percent; } Example usage: if (chance(20)) { gameState.flags.randomEvent = true; }

  3. #3Every

    Keys: I

    Enabled · After character · Order 10 · 100%

    Entry settings

    🎮 CHOICE SYSTEM CORE Each choice modifies stats + can trigger chance events. function makeChoice(choiceObject) {

    // Apply stat changes for (let stat in choiceObject.effects) { if (gameState.stats.hasOwnProperty(stat)) { gameState.stats[stat] += choiceObject.effects[stat]; } }

    // Apply emotional alignment shift if present if (choiceObject.alignmentShift) { gameState.stats.emotionalAlignment += choiceObject.alignmentShift; }

    // Handle chance-based outcomes if (choiceObject.chanceEvent) { if (chance(choiceObject.chanceEvent.percent)) { gameState.flags[choiceObject.chanceEvent.flag] = true; } }

    checkSystemThresholds(); } 📊 THRESHOLD CHECKER This auto-triggers state changes. function checkSystemThresholds() {

    if (gameState.stats.aidenAggression >= 80) { gameState.flags.aidenHostile = true; }

    if (gameState.stats.nathanObsession >= 90) { gameState.flags.blackSunAccelerated = true; }

    if (gameState.stats.portalInstability >= 100) { gameState.flags.portalBreach = true; }

    if (gameState.stats.trustJodie <= 0) { gameState.flags.jodieDetached = true; } } 🧩 HOW A CHOICE IS STRUCTURED You define choices like this: const choice_supportRyan = { effects: { trustRyan: 10, trustJodie: -5 }, alignmentShift: -5, chanceEvent: { percent: 25, flag: "ryanSoftened" } }; Then execute: makeChoice(choice_supportRyan); 🗂 OPTIONAL: MISSION LOCK SYSTEM Prevents certain choices unless missionActive = true function missionRequired(choiceObject) { if (!gameState.meta.missionActive) { return false; } makeChoice(choiceObject); } 🧠 OPTIONAL: CLOTHING INFLUENCE SYSTEM Example mechanic: function clothingModifier() { if (gameState.clothing.jodie.includes("tactical")) { gameState.stats.trustRyan += 2; } } 📅 TIME PROGRESSION SYSTEM function advanceTime(hours) { let currentHour = parseInt(gameState.meta.time.split(":")[0]); currentHour += hours; if (currentHour >= 24) currentHour -= 24; gameState.meta.time = currentHour + ":00"; }

Showing 3 of 3

Permanent link to this version