- 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
- #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 }; }
- #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; }
- #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
2 files
- .jsonjson_lorebookoriginal
5.2 KBfirst seen 6d171a11ab2a659c
- .jsonjson_lorebook
5.2 KBfirst seen 7ea4577440b21122
Opens with the tab.