:: StoryInit [StoryInit]
/* ===== IDENTITY ===== */
<<set $name to "">>
<<set $music to "">>
/* ===== APPEARANCE (NEW - for customization) ===== */
<<set $hairColor to "">>
<<set $hairStyle to "">>
<<set $eyeColor to "">>
/* ===== PERSONALITY STATS (0-10 scale) ===== */
<<set $confidence to 5>>
<<set $happiness to 5>>
<<set $cool to 5>>
<<set $empathy to 5>>
<<set $rebellion to 5>>
<<set $curiosity to 5>>
<<set $focus to 5>>
/* ===== LIFE RESOURCES (0-10 scale) - REBALANCED ===== */
<<set $hunger to 8>>
<<set $energy to 9>>
<<set $social to 6>>
<<set $mental to 7>>
/* ===== INVENTORY & ECONOMY - ENHANCED ===== */
<<set $coins to 1200>>
<<set $stickers to 0>>
/* CONSUMABLE INVENTORY SYSTEM (NEW) - INITIALIZE PROPERLY */
<<if !$consumables or typeof $consumables !== "object">>
<<set $consumables to {
chocolate: 0,
gum: 0,
jellybeans: 0,
biscuits: 0,
hummus: 0,
cheese: 0,
juice: 0
}>>
<</if>>
/* ===== TIME TRACKING ===== */
<<set $time to 7.0>>
<<set $day to 1>>
<<set $turn to 0>>
/* ===== TEMPORARY EFFECTS ===== */
<<set $effectCoolTurns to 0>>
<<set $sugarRush to 0>>
<<set $caffeinated to 0>>
/* ===== NPC SYSTEM ===== */
<<set $students to {}>>
<<set $currentNPC to {}>>
/* ===== RELATIONSHIP TRACKING ===== */
<<set $friendships to {}>>
<<set $reputation to 5>>
/* ===== ACHIEVEMENT TRACKING (NEW) ===== */
<<if !$achievements or typeof $achievements !== "object">>
<<set $achievements to {
straightA: false,
mentalMaster: false,
studyBuddy: false,
socialButterfly: false,
loyalFriend: false,
classHero: false,
stickerMogul: false,
balanced: false,
runningOnEmpty: false,
healthyChoices: false,
rebelSpirit: false,
doGooder: false,
soloStar: false,
Skulls: false,
}>>
<</if>>
/* ACHIEVEMENT COUNTERS */
<<set $helpedCount to 0>>
<<set $healthyFoodCount to 0>>
/* ===== FLAGS ===== */
<<set $helpedHomework to false>>
<<set $didntHelpHomework to false>>
<<set $ruinedProperty to false>>
<<set $comicStarted to 0>>
<<set $sharedHomework to false>>
:: First [intro]
<<silently>>
<<set $currentNPC to {}>>
<</silently>>
<img src="images/autumn-street.jpg" alt="Golden autumn leaves cascade along a city street bathed in morning light" />
The avenue carves through hillsides thick with trees—oaks and maples towering overhead, their branches forming a canopy alive with autumn fire. Crimson and amber leaves spiral down through slanted morning light, catching gold as they fall. The air smells of damp earth and turning seasons.
Below the wooded slopes, the street thrums with morning rhythm. Commuters flow downward toward the city's heart—bicycles weaving between cars, footsteps quick on rain-dampened pavement, breath visible in the October chill.
A café glows warm on the corner, its windows fogged with steam. Inside, the espresso machine hisses and sighs, chrome catching light. The barista—dark hair pulled back, apron dusted with coffee grounds—works with practiced grace, her smile ready for anyone seeking warmth on this brisk morning.
The faithful yellow tram glides to a stop, bell chiming softly. Brakes exhale. Doors fold open with a pneumatic hiss.
You step down onto cobblestones worn smooth by decades of feet. The air hits your lungs—crisp, clean, laced with coffee and woodsmoke and the green smell of leaves still clinging to branches.
//Who am I today?//
Your name: <<textbox "$name" "Alex">>
[[Next|CharacterCustomization]]
:: MusicChoice
<img src="images/music.jpg" alt="Morning music player on phone" />
Your $hairColor $hairStyle hair catches the morning light as you scroll through your playlist.
What soundtrack are you walking to this morning?
[[Punk rock|Punk]]
[[Pop|Pop]]
[[Techno|Techno]]
<<statusbar>>
:: Punk
<<silently>>
<<set $music to "punk rock">>
<<set $confidence += 1>>
<<set $rebellion += 1>>
<<passtime 5 "light" "none" "none">>
<</silently>>
<img src="images/punk-vibe.jpg" alt="Punk energy headphones" />
Bass riffs tear through your skull. Defiant vocals sharpen your stride. The world bends to your rhythm now.
<span class="cost-positive">+1 Confidence, +1 Rebellion</span>
[[Continue|StreetScene]]
:: Pop
<<silently>>
<<set $music to "pop">>
<<set $happiness += 1>>
<<set $social += 1>>
<<passtime 5 "light" "none" "none">>
<</silently>>
<img src="images/pop-vibe.jpg" alt="Colorful pop music vibes" />
The melody lifts you—bright, infectious, irresistible. Beneath the gloss lies complexity, but this morning belongs to joy.
<span class="cost-positive">+1 Happiness, +1 Social</span>
[[Continue|StreetScene]]
:: Techno
<<silently>>
<<set $music to "techno">>
<<set $cool += 1>>
<<set $focus += 1>>
<<passtime 5 "light" "none" "none">>
<</silently>>
<img src="images/techno-vibe.jpg" alt="Minimalist techno aesthetic" />
Deep bass syncs with your pulse. Synthetic waves ripple through concrete and bone, hinting at hidden frequencies connecting everything.
<span class="cost-positive">+1 Cool, +1 Focus</span>
[[Continue|StreetScene]]
:: StreetScene
<<statusbar>>
<img src="images/student-crowd-2.jpg" alt="Students along sidewalks near shops" />
Students flood the street. Some march toward school, firing off last texts. Others drift shopward, drawn by sugar and distraction.
<<if $hunger lte 5>>
Your stomach murmurs quietly. Maybe grab something?
<</if>>
[[Enter the shop|Shop]]
[[Head straight to school|SchoolArrival]]
:: Shop
<<statusbar>>
<<silently>>
<<passtime 5 "rest" "none" "none">>
<</silently>>
<img src="images/shop-interior.jpg" alt="Brightly lit corner shop" />
The shop glows under fluorescent warmth. What catches your eye?
**Buy to eat NOW:**
<<if $coins gte 500>>
[[Chocolate|BuyChocoNow]] <span class="cost-display">(-500💰, +1🍽️, +1😊, +1⚡)</span>
<<else>>
@@.grayed-out;Chocolate (-500💰, +1🍽️, +1😊, +1⚡) [Insufficient Coins]@@
<</if>>
<<if $coins gte 300>>
[[Jelly beans|BuyJellyNow]] <span class="cost-display">(-300💰, +1🍽️, Sugar Rush)</span>
<<else>>
@@.grayed-out;Jelly beans (-300💰) [Insufficient Coins]@@
<</if>>
<<if $coins gte 500>>
[[Biscuits|BuyBiscuitsNow]] <span class="cost-display">(-500💰, +3🍽️, +1⚡)</span>
<<else>>
@@.grayed-out;Biscuits (-500💰) [Insufficient Coins]@@
<</if>>
<<if $coins gte 600>>
[[Hummus & veggies|BuyHummusNow]] <span class="cost-display">(-600💰, +7🍽️, +2⚡)</span>
<<else>>
@@.grayed-out;Hummus & veggies (-600💰) [Insufficient Coins]@@
<</if>>
<<if $coins gte 600>>
[[Cheese, nuts & bread|BuyCheeseNow]] <span class="cost-display">(-600💰, +7🍽️, +2⚡, +1🧠)</span>
<<else>>
@@.grayed-out;Cheese platter (-600💰) [Insufficient Coins]@@
<</if>>
<<if $coins gte 400>>
[[Vitamin juice|BuyJuiceNow]] <span class="cost-display">(-400💰, +2🍽️, +1⚡, +1🧠)</span>
<<else>>
@@.grayed-out;Vitamin juice (-400💰) [Insufficient Coins]@@
<</if>>
---
**Buy for LATER (add to inventory):**
<<if $coins gte 500>>
[[Chocolate (for later)|BuyChocoLater]] <span class="cost-display">(-500💰)</span>
<<else>>
@@.grayed-out;Chocolate for later (-500💰) [Insufficient Coins]@@
<</if>>
<<if $coins gte 200>>
[[Chewing gum (for later)|BuyGumLater]] <span class="cost-display">(-200💰)</span>
<<else>>
@@.grayed-out;Gum for later (-200💰) [Insufficient Coins]@@
<</if>>
---
**Other items:**
<<if $coins gte 600>>
[[Stickers|BuyStickers]] <span class="cost-display">(-600💰, +5 Stickers, +1😊)</span>
<<else>>
@@.grayed-out;Stickers (-600💰) [Insufficient Coins]@@
<</if>>
---
[[Never mind, leave|SchoolArrival]]
<<if $coins lt 200>>
*Your pockets are nearly empty.*
<</if>>
:: SchoolArrival
<<statusbar>>
<<silently>>
<<passtime 15 "light" "none" "none">>
<</silently>>
<img src="images/classroom-empty.jpg" alt="Quiet classroom bathed in golden morning light, desks waiting, chalkboard pristine." />
You arrive at 7:30. The classroom breathes silence—only a handful of early arrivals scattered among the desks. Your music still pulses faintly in your ears.
<<if $energy lte 3>>
Exhaustion clings to you. Staying awake might be a challenge today.
<</if>>
<<if $hunger lte 3>>
Your stomach growls audibly. Concentrating will be difficult.
<</if>>
<<if $consumables.chocolate gt 0 or $consumables.gum gt 0 or $consumables.juice gt 0>>
**Check your inventory:**
<<if $consumables.chocolate gt 0>>
[[Eat chocolate from bag|UseChocolate]] <span class="cost-display">(+1🍽️, +1😊, +1⚡)</span>
<</if>>
<<if $consumables.gum gt 0>>
[[Chew gum|UseGum]] <span class="cost-display">(+1😎, Cool effect 2 turns)</span>
<</if>>
<<if $consumables.juice gt 0>>
[[Drink juice|UseJuice]] <span class="cost-display">(+2🍽️, +1⚡, +1🧠)</span>
<</if>>
<</if>>
---
[[Wait for class to start|WaitingMorning]]
<<silently>>
<<set $coins -= 500>>
<<set $hunger += 1>>
<<set $sugarRush to 3>>
<<set $happiness += 1>>
<<set $energy += 1>>
<<passtime 5 "rest" "none" "none">>
<</silently>>
<img src="images/chocolate.jpg" alt="Dark chocolate bar unwrapped, gleaming under shop lights." width="500" />
Chocolate melts across your tongue—pure sweetness, instant gratification. Your mood lifts, but you know this won't last.
*+1 Hunger, +1 Happiness, +1 Energy*
<<if $sugarRush gt 0>>*Sugar rush active for <<print $sugarRush>> turns*<</if>>
[[Continue|SchoolArrival]]
<<silently>>
<<set $coins -= 200>>
<<set $cool += 1>>
<<set $effectCoolTurns to 2>>
<<passtime 3 "rest" "none" "none">>
<</silently>>
Mint snaps between your teeth. You feel sharper, untouchable.
*+1 Cool (effect lasts 2 turns)*
[[Continue|SchoolArrival]]
<<silently>><<set $coins -= 300>>
<<set $hunger += 1>>
<<set $sugarRush to 2>>
<<passtime 5 "rest" "none" "none">>
<</silently>>
<img src="images/jellybeans.jpg" alt="Colorful jelly beans scattered across a paper bag.." width="500" />
Jelly beans burst with artificial fruit flavor. Sweet energy, fleeting satisfaction.
*+1 Hunger*
<<if $sugarRush gt 0>>*Sugar rush active for <<print $sugarRush>> turns*<</if>>
[[Continue|SchoolArrival]]
<<silently>><<set $coins -= 500>>
<<set $hunger += 3>>
<<set $energy += 1>>
<<passtime 8 "rest" "none" "none">>
<</silently>>
<img src="images/biscuits.jpg" alt="Buttery biscuits in a paper wrapper, crumbs visible." width="500" />
Buttery biscuits crumble pleasantly. Simple, satisfying, grounding.
*+3 Hunger, +1 Energy*
[[Continue|SchoolArrival]]
<<silently>><<set $coins -= 600>>
<<set $hunger += 7>>
<<set $energy += 2>>
<<passtime 12 "rest" "none" "none">>
<</silently>>
<img src="images/hummus-veggie.jpg" alt="Container of creamy hummus surrounded by crisp vegetables and warm pita." width="500" />
You savor the earthy hummus, crunching through fresh carrots and peppers. Real food grounds you—hunger fades, vitality returns.
*+7 Hunger, +2 Energy*
[[Continue|SchoolArrival]]
<<silently>><<set $coins -= 600>>
<<set $hunger += 7>>
<<set $energy += 2>>
<<set $focus += 1>>
<<passtime 12 "rest" "none" "none">>
<</silently>>
<img src="images/cheese-nuts.jpg" alt="Cheese wedge, mixed nuts, crisp apple slices, and artisan bread arranged together." width="500" />
Protein and healthy fats fuel your body properly. Mind sharpens as hunger dissolves.
*+7 Hunger, +2 Energy, +1 Focus*
[[Continue|SchoolArrival]]
<<silently>><<set $coins -= 400>>
<<set $hunger += 2>>
<<set $energy += 1>>
<<set $mental += 1>>
<<passtime 5 "rest" "none" "none">>
<</silently>>
<img src="images/vitamin-juice.jpg" alt="Bottle of orange-colored vitamin juice, condensation on the glass." width="500" />
Cold vitamins slide down your throat. Your mind clears slightly.
*+2 Hunger, +1 Energy, +1 Mental*
[[Continue|SchoolArrival]]
:: BuyStickers
<<silently>>
<<set $coins -= 600>>
<<set $stickers += 5>>
<<set $happiness += 1>>
<<passtime 5 "rest" "none" "none">>
<</silently>>
<img src="images/stickers.jpg" alt="Holographic stickers" />
Holographic stickers catch the light. Collectible currency among your peers.
<span class="cost-positive">+5 Stickers, +1 Happiness</span>
[[Continue shopping|Shop]]
[[Leave shop|SchoolArrival]]
:: Widgets [widget]
/* ===== ENHANCED STATUS BAR WITH VISUAL BARS ===== */
<<widget "statusbar">>
<div class="status-container">
<strong>$name</strong>
<div style="text-align: center; margin: 8px 0; padding: 6px 0; border-top: 1px solid #8b6f47; border-bottom: 1px solid #8b6f47; font-size: 1em; color: #f9d67a;">
<<print Math.floor($time)>>:<<if ($time % 1) * 60 < 10>>0<</if>><<print Math.floor(($time % 1) * 60)>>
</div>
<div style="text-align: center; margin: 6px 0; font-size: 1.05em;">
💰 <<print $coins>>
</div>
<div class="resources">
<div>🍽️ <<print Math.round($hunger * 10) / 10>>/10</div>
<div>⚡ <<print Math.round($energy * 10) / 10>>/10</div>
<div>👥 <<print Math.round($social * 10) / 10>>/10</div>
<div>🧠 <<print Math.round($mental * 10) / 10>>/10</div>
</div>
<<if $hunger lte 3 or $energy lte 2 or $social lte 2 or $mental lte 2>>
<span class="warning">⚠️ CRITICAL</span>
<</if>>
<<if $stickers gt 0>>
<div style="margin-top: 8px; text-align: center; font-size: 0.9em;">
✨ Stickers: <<print $stickers>>
</div>
<</if>>
</div>
<</widget>>
/* ===== ENHANCED PASSTIME WIDGET - ADJUSTED HUNGER DEPLETION ===== */
<<widget "passtime">>
<<set _minutes to $args[0]>>
<<set $time += (_minutes / 60)>>
<<set $turn += 1>>
/* HUNGER depletes 0.5 per hour (was 1 per hour) */
<<set $hunger -= Math.floor(_minutes / 60) * 0.5>>
/* ENERGY depletes based on activity */
<<if $args[1] is "intense">>
<<set $energy -= 2>>
<<elseif $args[1] is "moderate">>
<<set $energy -= 1>>
<<elseif $args[1] is "rest">>
<<set $energy += 1>>
<<else>>
<<set $energy -= 0.5>>
<</if>>
/* SOCIAL changes */
<<if $args[2] is "social">>
<<set $social += 1>>
<<else>>
<<set $social -= 0.5>>
<</if>>
/* MENTAL changes */
<<if $args[3] is "learning">>
<<set $mental += 1>>
<<elseif $args[3] is "creative">>
<<set $mental += 1>>
<<elseif $args[3] is "boring">>
<<set $mental -= 1>>
<</if>>
/* Keep values between 0-10 */
<<set $hunger to Math.clamp($hunger, 0, 10)>>
<<set $energy to Math.clamp($energy, 0, 10)>>
<<set $social to Math.clamp($social, 0, 10)>>
<<set $mental to Math.clamp($mental, 0, 10)>>
/* Reduce temporary effects */
<<if $effectCoolTurns gt 0>><<set $effectCoolTurns -= 1>><</if>>
<<if $sugarRush gt 0>><<set $sugarRush -= 1>><</if>>
<<if $caffeinated gt 0>><<set $caffeinated -= 1>><</if>>
<</widget>>
/* ===== NPC GENERATION WIDGET (unchanged) ===== */
<<widget "generatestudent">>
<<set _namePool to ["Alex", "Jordan", "Sam", "Riley", "Casey", "Morgan", "Taylor", "Avery", "Dakota", "Skyler", "Quinn", "Rowan", "Jamie", "Kai", "River", "Blake", "Finley", "Sage", "Elliot", "Harper"]>>
<<set _studentName to _namePool.random()>>
<<if $students.hasOwnProperty(_studentName)>>
<<set $currentNPC to $students[_studentName]>>
<<else>>
<<set _genderRoll to random(1, 100)>>
<<if _genderRoll lte 45>>
<<set _pronoun to "he">>
<<set _pronounObj to "him">>
<<set _possessive to "his">>
<<set _studentClass to "student-boy">>
<<elseif _genderRoll lte 90>>
<<set _pronoun to "she">>
<<set _pronounObj to "her">>
<<set _possessive to "her">>
<<set _studentClass to "student-girl">>
<<else>>
<<set _pronoun to "they">>
<<set _pronounObj to "them">>
<<set _possessive to "their">>
<<set _studentClass to "student-nb">>
<</if>>
<<set $students[_studentName] to {
name: _studentName,
pronoun: _pronoun,
pronounObj: _pronounObj,
possessive: _possessive,
studentClass: _studentClass,
kindness: (random(-3, 6) / 10),
friendship: 0,
metBefore: false
}>>
<<set $currentNPC to $students[_studentName]>>
<</if>>
<<set $currentNPC.metBefore to true>>
<</widget>>
/* ===== NPC REFERENCE WIDGETS (unchanged) ===== */
<<widget "npcname">>
<<if $currentNPC and $currentNPC.name>>
<span class="<<print $currentNPC.studentClass>>"><<print $currentNPC.name>></span>
<<else>>
a classmate
<</if>>
<</widget>>
<<widget "npcpronoun">>
<<if $currentNPC and $currentNPC.pronoun>><<print $currentNPC.pronoun>><<else>>they<</if>>
<</widget>>
<<widget "npcpronounobj">>
<<if $currentNPC and $currentNPC.pronounObj>><<print $currentNPC.pronounObj>><<else>>them<</if>>
<</widget>>
<<widget "npcpossessive">>
<<if $currentNPC and $currentNPC.possessive>><<print $currentNPC.possessive>><<else>>their<</if>>
<</widget>>
/* ===== NEW: CONSUMABLE USE WIDGET ===== */
<<widget "useconsumable">>
<<set _item to $args[0]>>
<<if _item is "chocolate">>
<<set $consumables.chocolate -= 1>>
<<set $hunger += 1>>
<<set $happiness += 1>>
<<set $energy += 1>>
<<elseif _item is "gum">>
<<set $consumables.gum -= 1>>
<<set $cool += 1>>
<<set $effectCoolTurns to 2>>
<<elseif _item is "jellybeans">>
<<set $consumables.jellybeans -= 1>>
<<set $hunger += 1>>
<<set $sugarRush to 2>>
<<elseif _item is "biscuits">>
<<set $consumables.biscuits -= 1>>
<<set $hunger += 3>>
<<set $energy += 1>>
<<elseif _item is "hummus">>
<<set $consumables.hummus -= 1>>
<<set $hunger += 7>>
<<set $energy += 2>>
<<elseif _item is "cheese">>
<<set $consumables.cheese -= 1>>
<<set $hunger += 7>>
<<set $energy += 2>>
<<set $focus += 1>>
<<elseif _item is "juice">>
<<set $consumables.juice -= 1>>
<<set $hunger += 2>>
<<set $energy += 1>>
<<set $mental += 1>>
<</if>>
<</widget>>
:: LessonHistory
<<statusbar>>
<<silently>>
<<passtime 45 "moderate" "social" "learning">>
<</silently>>
<img src="images/history-class.jpg" alt="Classroom with maps on walls, teacher gesturing toward timeline on chalkboard" />
History class begins. The teacher launches into a lecture on medieval trade routes—the Silk Road, Hanseatic League, spice merchants who risked everything for profit.
<<if $energy lte 3>>
**Your exhaustion is overwhelming. Your eyelids grow heavy.**
<<if $energy gte 2>>
[[Try to stay awake|FightSleep]] <span class="cost-display">(-1⚡, requires roll)</span>
<<else>>
@@.grayed-out;Try to stay awake (Need 2⚡) [Too Exhausted]@@
<</if>>
[[Rest your head briefly|NapInClass]] <span class="cost-display">(+2⚡, -2🧠, -2👤)</span>
<<elseif $hunger lte 2>>
**Your stomach growls audibly. Concentration fractures.**
<<set $mental -= 1>>
<<set $focus -= 1>>
<span class="cost-negative">-1 Mental, -1 Focus (automatic from hunger)</span>
[[Endure it and focus on the lesson|EndureHunger]] <span class="cost-display">(-1⚡)</span>
<<else>>
**The lesson on medieval trade routes sparks something. Your mind engages with the material.**
<<set $mental += 2>>
<<set $curiosity += 1>>
<span class="cost-positive">+2 Mental, +1 Curiosity (automatic)</span>
<<if $energy gte 2>>
[[Take detailed notes|NotesHistory]] <span class="cost-display">(-1⚡, +2🧠, +2🎯, +1😊)</span>
<<else>>
@@.grayed-out;Take detailed notes (Need 2⚡) [Too Tired]@@
<</if>>
<<if $mental gte 5>>
[[Ask a probing question|QuestionHistory]] <span class="cost-display">(-1⚡, +2🔍, +2👤, +1💪)</span>
<<else>>
@@.grayed-out;Ask a probing question (Need 5🧠) [Not Sharp Enough]@@
<</if>>
</span>
<</if>>
:: FightSleep
<<statusbar>>
<<silently>>
<<set _sleepRoll to random(1, 20)>>
<<set _mentalBonus to Math.floor($mental / 10)>>
<<set _totalRoll to _sleepRoll + _mentalBonus>>
<<set $energy -= 1>>
<</silently>>
<img src="images/struggling-awake.jpg" alt="Student pinching themselves, eyes half-closed, fighting exhaustion" />
Exhaustion pulls at you like gravity. Your eyelids weigh a thousand pounds.
You employ every trick you know—sitting straighter, taking deep breaths, pinching your arm, trying to focus on individual words the teacher speaks.
**Willpower Check:**
- Dice Roll: <<print _sleepRoll>>
- Mental Bonus: +<<print _mentalBonus>> (Mental stat: $mental)
- **Total: <<print _totalRoll>>** (Need 13+)
<span class="cost-negative">-1 Energy</span>
<<if _totalRoll gte 13>>
[[Result: You stay awake!|StayedAwake]]
<<else>>
[[Result: You drift off...|DriftedOff]]
<</if>>
:: NapInClass
<<statusbar>>
<<silently>>
<<passtime 15 "rest" "none" "none">>
<<set $energy += 2>>
<<set $mental -= 2>>
<<set $reputation -= 2>>
<</silently>>
<img src="images/sleeping-desk.jpg" alt="Student head down on desk, completely asleep, teacher approaching" />
You surrender to exhaustion. Your $hairColor $hairStyle hair falls forward as your head drops onto folded arms.
Sleep claims you immediately—deep, dreamless, necessary. Somewhere distant, the teacher's voice continues explaining medieval trade routes, but it's meaningless sound now.
A hand shakes your shoulder firmly.
You jolt awake to find half the class staring at you. The teacher stands beside your desk, expression more concerned than angry.
"Rough night? Please try to get proper rest. Can't learn if you're unconscious."
The embarrassment stings worse than any punishment.
<span class="cost-positive">+2 Energy</span>
<span class="cost-negative">-2 Mental, -2 Reputation</span>
[[Continue to break|FirstBreak]]
:: NotesHistory
<<statusbar>>
<<silently>>
<<passtime 10 "moderate" "none" "learning">>
<<set $mental += 2>>
<<set $curiosity += 1>>
<<set $happiness += 1>>
<<set $focus += 2>>
<<set $energy -= 1>>
<</silently>>
<img src="images/detailed-notes.jpg" alt="Notebook with beautifully organized Cornell-method notes, diagrams, highlights" />
A lightbulb flickers on in your mind—the Cornell method. You've heard about it in some study skills video, and suddenly it clicks.
You quickly set up your page: a vertical line about one-third from the left edge, a horizontal line two inches from the bottom. Three distinct zones emerge.
''During the lecture'', you fill the main right section with keywords, key points, abbreviations—capturing the essence without drowning in verbatim transcription.
''After key concepts'', you pause to fill the left cue column with questions and keywords that connect to your main notes. The summary section at the bottom distills everything into your own words.
The teacher discusses medieval trade routes—the Silk Road, Hanseatic League, spice trade economics. Your notes flow efficiently, creating a web of understanding rather than scattered facts.
You learn that comprehensive history resources with online quizzes and knowledge banks are available in Hungarian at nkp.hu. You can also always use Google Translate. The teacher also mentions ZanzaTV has excellent supplementary videos.
Your notes gleam on the page—organized, comprehensive, genuinely useful. Pride swells in your chest.
*+2 Mental, +1 Curiosity, +1 Happiness, +2 Focus, -1 Energy*
[[Share your notes in the class chat|ShareNotes]]
[[Keep them to yourself|KeepNotes]]
<span class="cost-positive">+2 Mental, +1 Curiosity, +1 Happiness, +2 Focus</span>
<span class="cost-negative">-1 Energy</span>
:: QuestionHistory
<<statusbar>>
<<silently>>
<<passtime 10 "moderate" "none" "learning">>
<<set $curiosity += 2>>
<<set $reputation += 2>>
<<set $confidence += 1>>
<<set $mental += 1>>
<<set $energy -= 1>>
<</silently>>
<img src="images/student-question.jpg" alt="Student with hand raised, engaged expression, teacher listening" />
You raise your hand. "If trade routes connected all these civilizations, how did they deal with language barriers and cultural differences?"
The teacher's face lights up. "Excellent question! That's exactly the kind of critical thinking I want to see."
They launch into a fascinating explanation—lingua francas, trade pidgins, the role of translators, how merchant communities developed their own hybrid cultures.
Other students start asking follow-up questions. You've sparked genuine intellectual engagement.
<span class="cost-positive">+2 Curiosity, +2 Reputation, +1 Confidence, +1 Mental</span>
<span class="cost-negative">-1 Energy</span>
[[Break ends|FirstBreak]]
<<statusbar>>
<<silently>>
<<statusbar>>
<<passtime 5 "light" "none" "none">>
<</silently>>
<img src="images/after-lunch.jpg" alt="Students filing back to classrooms, afternoon sunlight through windows." />
Lunch concludes. You have some free time before the next class. What do you want to do?
[[Check your homeroom|CheckHomeroom]]
[[Head to the sports field|CheckSportsField]]
[[Go to the playground|GoToPlayground]]
[[Go straight to PE class early|GoToPE]]
:: WaitingMorning
<<statusbar>>
<<silently>>
<<passtime 20 "rest" "social" "none">>
<<set $social += 1>>
<</silently>>
<img src="images/students-arriving.jpg" alt="Students filtering into classroom, chatting, settling at desks" />
More students trickle in. The classroom fills with morning energy—backpacks thudding onto desks, conversations overlapping, the rustle of notebooks and phones.
The clock ticks slowly toward homeroom. What do you do while waiting?
**Check your inventory:**
<<if $consumables.chocolate gt 0>>
[[Eat chocolate from bag|UseChocolateWaiting]] <span class="cost-display">(+1🍽️, +1😊, +1⚡)</span>
<<else>>
*No chocolate in inventory*
<</if>>
<<if $consumables.gum gt 0>>
[[Chew gum|UseGumWaiting]] <span class="cost-display">(+1😎, Cool effect)</span>
<<else>>
*No gum in inventory*
<</if>>
---
**Morning activities:**
[[Chat with classmates|ChatMorning]] <span class="cost-display">(+2👥, +1😊)</span>
[[Review homework quietly|StudyMorning]] <span class="cost-display">(+2🧠, +1🎯, May trigger help request)</span>
[[Doodle in your notebook|DoodleMorning]] <span class="cost-display">(+Creativity, Various outcomes)</span>
<<if $stickers gte 3>>
[[Trade stickers with someone|TradeStickers]] <span class="cost-display">(-2 Stickers, +2👥, +1😎)</span>
<<else>>
@@.grayed-out;Trade stickers (Need 3 stickers) [Not Enough]@@
<</if>>
<<if $rebellion gte 6>>
[[Sneak out to explore|RebelliousChoice]] <span class="cost-display">(+2🔥, Risky!)</span>
<<else>>
@@.grayed-out;Sneak out (Need 6🔥) [Not Rebellious Enough]@@
<</if>>
[[Just wait silently|HomeRoom]] <span class="cost-display">(+1⚡)</span>
:: ChatMorning
<<statusbar>>
<<silently>>
<<passtime 15 "light" "social" "none">>
<<set $social += 2>>
<<set $happiness += 1>>
<</silently>>
<img src="images/morning-chat.jpg" alt="Students gathered in animated conversation, laughter, gestures" />
You join a cluster of friends swapping stories about their mornings. Laughter comes easy. Connection warms you.
Someone shares a meme from last night. Someone else complains about waking up early. The conversation flows naturally—nothing profound, just the comfortable rhythm of belonging.
<span class="cost-positive">+2 Social, +1 Happiness</span>
[[Continue to homeroom|HomeRoom]]
:: StudyMorning
<<statusbar>>
<<silently>>
<<generatestudent>>
<<passtime 15 "light" "none" "learning">>
<<set $mental += 2>>
<<set $focus += 1>>
<</silently>>
<img src="images/studying-desk.jpg" alt="Textbooks arranged neatly, student reviewing notes carefully" />
You arrange your notes and workbooks in careful rows, checking whether yesterday's lesson truly penetrated your brain. Formulas, dates, concepts—you trace the logic again, hunting for gaps.
Preparation steadies your mind.
<span class="cost-positive">+2 Mental, +1 Focus</span>
A shadow falls across your desk.
<<npcname>> stands there, textbook clutched awkwardly, expression somewhere between hopeful and desperate.
"Hey... um, could you help me with the homework? I'm completely drowning here."
<<if $energy gte 2 and $mental gte 4>>
[[Help them work through it|HelpHomework]] <span class="cost-display">(-2⚡, -10min, +3👥, +2👤, +1💪, Help Count)</span>
<<else>>
@@.grayed-out;Help them (Need 2⚡ and 4🧠) [Too Drained]@@
<</if>>
[[Politely protect your time|DeclineHomework]] <span class="cost-display">(-1👥)</span>
:: DoodleMorning
<<statusbar>>
<<silently>>
<<passtime 15 "rest" "none" "creative">>
<</silently>>
<img src="images/drawing-notebook.jpg" alt="Open sketchbook on desk, pencils scattered, morning light illuminating blank pages" />
You arrange your textbooks and notes into a neat fortress, then reach for your thick drawing notebook—its pages worn soft from use, edges decorated with ink stains and half-finished concepts.
Pencil in hand, the blank page hums with possibility.
What would you like to draw?
<<if $energy gte 2>>
[[Draw a character from a show|DrawCharacter]] <span class="cost-display">(-1⚡, +2🎨, Might impress someone)</span>
<<else>>
@@.grayed-out;Draw character (Need 2⚡) [Too Tired]@@
<</if>>
<<if $energy gte 3 and $curiosity gte 5>>
[[Make a comic strip|DrawComic]] <span class="cost-display">(-2⚡, +3🎨, +1🔍, Special project)</span>
<<else>>
@@.grayed-out;Make comic (Need 3⚡ and 5🔍) [Insufficient Resources]@@
<</if>>
<<if $rebellion gte 5>>
[[Draw on the table itself|DrawTable]] <span class="cost-display">(-1🧠, -1👥, +1🔥, Vandalism!)</span>
<<else>>
@@.grayed-out;Vandalize desk (Need 5🔥) [Not Rebellious Enough]@@
<</if>>
[[Never mind, do something else|WaitingMorning]]
:: TradeStickers
<<statusbar>>
<<silently>>
<<generatestudent>>
<<passtime 15 "light" "social" "none">>
<<set $social += 2>>
<<set $cool += 1>>
<<set $stickers -= 2>>
<<set $currentNPC.friendship += 1>>
<</silently>>
<img src="images/sticker-trading.jpg" alt="Two students huddled over desk, holographic stickers spread between them" />
You catch <span class="<<print $currentNPC.studentClass>>"><<print $currentNPC.name>></span>'s eye across the room—<<print $currentNPC.pronoun>>'s that kid with the legendary sticker collection.
<<print $currentNPC.pronoun>> grins and slides over, fishing out a crumpled envelope thick with rare holographics.
"Got anything good?"
You spread your collection on the desk. Negotiation begins—playful haggling over chase variants, commentary on artwork quality, the unspoken social currency of the schoolyard in full display.
After some back-and-forth, you shake on a trade that leaves both of you grinning.
<span class="<<print $currentNPC.studentClass>>"><<print $currentNPC.name>></span> pockets <<print $currentNPC.possessive>>new acquisitions with obvious satisfaction.
"Solid trade. You've got taste. Catch you later?"
Connection made. Respect earned through shared passion.
<span class="cost-positive">+2 Social, +1 Cool</span>
<span class="cost-negative">-2 Stickers</span>
[[Continue to homeroom|HomeRoom]]
<<print $currentNPC.pronounObj>>
<<print $currentNPC.pronounObj>>:: HomeRoom
<<statusbar>>
<<silently>>
<<passtime 10 "light" "social" "boring">>
<</silently>>
<img src="images/homeroom-3.jpg" alt="Teacher taking attendance, students settling into seats, morning announcements" />
Homeroom proceeds with predictable rhythm. Attendance. Announcements. Reminders about upcoming events. The administrative machinery of school grinding through its morning checklist.
The teacher's voice becomes pleasant background noise as you mentally prepare for the day ahead.
The day officially begins.
[[First period: History|LessonHistory]]
:: FirstBreak
<<statusbar>>
<<silently>>
/* Backwards compatibility check */
<<if !$consumables or typeof $consumables !== "object">>
<<set $consumables to {
chocolate: 0,
gum: 0,
jellybeans: 0,
biscuits: 0,
hummus: 0,
cheese: 0,
juice: 0
}>>
<</if>>
<</silently>>
<img src="images/hallway-break.jpg" alt="School hallway bustling with students during break time, lockers open, conversations overlapping" />
The bell rings—liberation. Thirty minutes of freedom stretch ahead. You brush your $hairColor $hairStyle hair from your $eyeColor eyes and survey your options.
Students pour into the hallway like water released from a dam. The canteen's aroma wafts upward—fresh pastries, brewing coffee, the peculiar smell of institutional breakfast.
<<if $consumables.chocolate gt 0 or $consumables.gum gt 0 or $consumables.biscuits gt 0 or $consumables.hummus gt 0 or $consumables.cheese gt 0 or $consumables.juice gt 0>>
**Your inventory:**
<<if $consumables.chocolate gt 0>>
[[Eat chocolate (x<<print $consumables.chocolate>>)|EatChocoBreak]] <span class="cost-display">(+1🍽️, +1😊, +1⚡)</span>
<</if>>
<<if $consumables.gum gt 0>>
[[Chew gum (x<<print $consumables.gum>>)|EatGumBreak]] <span class="cost-display">(+1😎, 2 turns)</span>
<</if>>
<<if $consumables.biscuits gt 0>>
[[Eat biscuits (x<<print $consumables.biscuits>>)|EatBiscuitsBreak]] <span class="cost-display">(+3🍽️, +1⚡)</span>
<</if>>
<<if $consumables.hummus gt 0>>
[[Eat hummus (x<<print $consumables.hummus>>)|EatHummusBreak]] <span class="cost-display">(+7🍽️, +2⚡)</span>
<</if>>
<<if $consumables.cheese gt 0>>
[[Eat cheese platter (x<<print $consumables.cheese>>)|EatCheeseBreak]] <span class="cost-display">(+7🍽️, +2⚡, +1🎯)</span>
<</if>>
<<if $consumables.juice gt 0>>
[[Drink juice (x<<print $consumables.juice>>)|DrinkJuiceBreak]] <span class="cost-display">(+2🍽️, +1⚡, +1🧠)</span>
<</if>>
---
<</if>>
**Break activities:**
<<if $coins gte 400>>
[[Go to the canteen for breakfast|CanteenBreak]] <span class="cost-display">(-400💰, +5🍽️, +2⚡, +1👥)</span>
<<else>>
@@.grayed-out;Go to canteen (Need 400💰) [Insufficient Coins]@@
<</if>>
[[Chat with classmates in the hallway|ChatBreak]] <span class="cost-display">(+2👥, +1😊)</span>
<<if $energy gte 2>>
[[Study for the next lesson|StudyBreak]] <span class="cost-display">(-1⚡, +2🧠, +1🎯)</span>
<<else>>
@@.grayed-out;Study for next lesson (Need 2⚡) [Too Tired]@@
<</if>>
<<if $coins gte 300>>
[[Hit the vending machine|VendingBreak]] <span class="cost-display">(-300💰, +2🍽️, +2⚡, +1😊)</span>
<<else>>
@@.grayed-out;Vending machine (Need 300💰) [Insufficient Coins]@@
<</if>>
[[Take a stroll around campus|StrollBreak]] <span class="cost-display">(+1⚡, +1🧠, +1😊)</span>
[[Just rest quietly somewhere|RestBreak]] <span class="cost-display">(+2⚡, +1🧠)</span>
:: EndureHunger {"position":"1625,2325","size":"100,100"}
<<statusbar>>
<<silently>>
<<set _hungerRoll to random(1, 20)>>
<<set _mentalBonus to Math.floor($mental / 10)>>
<<set _totalRoll to _hungerRoll + _mentalBonus>>
<</silently>>
<img src="images/searching-bag.jpg" alt="Hands rummaging desperately through a backpack's pockets." />
Hunger gnaws at your insides like a persistent animal. You desperately rummage through your backpack's depths, fingers searching every pocket and crevice for forgotten snacks.
<<if _totalRoll gte 12>>
[[Success! Found candy|FoundCandy]]
<<else>>
[[Nothing there|NoCandy]]
<</if>>
:: ShareNotes
<<statusbar>>
<<silently>>
<<set $social += 2>>
<<set $reputation += 2>>
<<set $confidence += 1>>
<<set $sharedHomework to true>>
<<set $helpedCount += 1>>
<</silently>>
<img src="images/class-chat.jpg" alt="Phone screen showing group chat flooding with thumbs up emojis and thank you messages" />
You snap a photo of your notes and drop it in the class chat with a simple caption: "Cornell method notes from today—hope they help!"
The response is immediate. Thumbs up reactions flood in. Messages pile up:
"omg these are so organized thank"
"lifesaver!!"
"why are ur notes so aesthetic tho"
Your classmates appreciate the contribution—not just the content, but the generosity of sharing quality work. Word spreads that you're someone who helps the community succeed.
<span class="cost-positive">+2 Social, +2 Reputation, +1 Confidence</span>
*Achievement progress: Helped classmate (<<print $helpedCount>>/3 for "Study Buddy")*
[[Continue to break|FirstBreak]]
:: KeepNotes
<<statusbar>>
<<silently>>
<<set $focus += 1>>
<</silently>>
You close your notebook thoughtfully, fingers brushing over the organized pages. The classroom dynamics feel... uncertain. You can't shake the worry that sharing might invite mockery or weird competitive energy.
Some classmates have made snarky comments about "try-hards" before. The toxic undertone of the class culture gnaws at you.
For now, your excellent notes remain yours alone. Maybe you'll share them individually with friends who ask.
<span class="cost-positive">+1 Focus</span>
[[Continue to break|FirstBreak]]
:: StayedAwake
<<statusbar>>
<<silently>>
<<set $confidence += 2>>
<<set $focus += 2>>
<<set $mental += 1>>
<</silently>>
<img src="images/focused-student.jpg" alt="Student sitting upright, taking notes, eyes alert" />
You fight through the fog. Deep breaths. Shifting position. Focusing on one sentence at a time.
Slowly, miraculously, your mind clears. You catch the thread of the lecture and follow it through to the end. The teacher discusses how trade routes shaped cultural exchange, spread of ideas, the birth of cosmopolitan cities.
You made it. Victory over your own biology.
<span class="cost-positive">+2 Confidence, +2 Focus, +1 Mental</span>
[[Continue to break|FirstBreak]]
:: DriftedOff
<<statusbar>>
<<silently>>
<<passtime 15 "rest" "none" "none">>
<<set $energy += 1>>
<<set $mental -= 2>>
<<set $reputation -= 1>>
<</silently>>
<img src="images/sleeping-desk.jpg" alt="Student head down on desk, completely asleep, teacher approaching" />
You lose the battle. Your head drops forward onto your folded arms.
Sleep claims you instantly—deep, dreamless, necessary. Somewhere distant, the teacher's voice continues explaining trade routes, but it's meaningless sound now.
A hand shakes your shoulder firmly.
You jolt awake to find half the class staring at you. The teacher stands beside your desk, expression more concerned than angry.
"Rough night? Please try to get proper rest. Can't learn if you're unconscious."
The embarrassment stings worse than any punishment.
<span class="cost-positive">+1 Energy</span>
<span class="cost-negative">-2 Mental, -1 Reputation</span>
[[Continue to break|FirstBreak]]
:: CanteenBreak
<<statusbar>>
<<silently>>
<<passtime 15 "light" "social" "none">>
<<set $hunger += 5>>
<<set $energy += 2>>
<<set $social += 1>>
<<set $coins -= 400>>
<<set $healthyFoodCount += 1>>
<</silently>>
<img src="images/school-canteen.jpg" alt="Busy school cafeteria with students in line, steam rising from food warmers, morning breakfast spread" />
You join the canteen queue, stomach practically leading the way. The breakfast spread looks surprisingly decent today—fresh pastries, scrambled eggs, fruit, yogurt, coffee that actually smells like coffee.
You grab a tray and load it with a warm croissant, some scrambled eggs, and orange juice. The cashier barely glances up as you pay.
Finding a spot at a half-empty table, you devour your breakfast while watching the social dynamics play out around you. Your $eyeColor eyes take in the comfortable chaos of teenagers refueling.
<span class="cost-positive">+5 Hunger, +2 Energy, +1 Social</span>
<span class="cost-negative">-400 Coins</span>
You still have 15 minutes left of break. What next?
[[Chat with nearby classmates|ChatBreak2]]
[[Study for next lesson|StudyBreak2]]
[[Stroll around campus to digest|StrollBreak2]]
[[Rest and people-watch|RestBreak2]]
:: ChatBreak
<<statusbar>>
<<silently>>
<<generatestudent>>
<<passtime 15 "light" "social" "none">>
<<set $social += 2>>
<<set $happiness += 1>>
<</silently>>
<img src="images/hallway-chat.jpg" alt="Students gathered in animated conversation by lockers, gesturing and laughing" />
You drift toward a cluster of classmates gathered near the lockers. <span class="<<print $currentNPC.studentClass>>"><<print $currentNPC.name>></span> waves you over to their animated discussion.
"Did you see what happened in the group chat last night? Drama with the math assignment?"
The conversation flows from school gossip to weekend movie plans to complaints about upcoming tests. Nothing earth-shattering, but the social connection feels good—being part of the web that makes school bearable.
<span class="cost-positive">+2 Social, +1 Happiness</span>
You still have 15 minutes left. What now?
[[Hit the vending machine for snacks|VendingBreak2]]
[[Study for the next lesson|StudyBreak2]]
[[Take a campus stroll|StrollBreak2]]
[[Find somewhere quiet to rest|RestBreak2]]
:: StudyBreak
<<statusbar>>
<<silently>>
<<passtime 15 "light" "none" "learning">>
<<set $mental += 2>>
<<set $focus += 1>>
<<set $energy -= 1>>
<</silently>>
<img src="images/study-hallway.jpg" alt="Student hunched over textbook against lockers, other students bustling past" />
You find a quiet corner near the library and pull out your materials for the next class—English literature. The upcoming lesson covers symbolism in poetry, something you've been struggling with.
Flipping through your textbook, you review key concepts: metaphor versus symbol, how imagery creates meaning, the difference between surface-level and deeper interpretation.
The notes start clicking into place. Fifteen minutes of focused review does wonders for your confidence.
<span class="cost-positive">+2 Mental, +1 Focus</span>
<span class="cost-negative">-1 Energy</span>
Fifteen minutes remain in break. What's your second move?
<<if $hunger lte 6 and $coins gte 300>>
[[Quick vending machine run|VendingBreak2]]
<</if>>
[[Chat with classmates|ChatBreak2]]
<<if $energy gte 2>>
[[Continue studying|StudyMore]] <span class="cost-display">(-1⚡, +2🧠, +2🎯, +1🔍)</span>
<<else>>
@@.grayed-out;Continue studying (Need 2⚡) [Too Tired]@@
<</if>>
[[Take a refreshing stroll|StrollBreak2]]
[[Rest your mind|RestBreak2]]
:: VendingBreak
<<statusbar>>
<<silently>>
<<passtime 15 "light" "none" "none">>
<<set $coins -= 300>>
<<set $hunger += 2>>
<<set $happiness += 1>>
<<set $energy += 2>>
<</silently>>
<img src="images/vending-machine.jpg" alt="Student feeding coins into a brightly lit vending machine, snacks visible through glass" />
The vending machine hums invitingly. You feed it coins and deliberate over the selection—chips, chocolate bars, energy drinks, healthier options like nuts and granola bars.
You settle on a granola bar and a bottle of water. Not the most exciting choice, but it'll keep your energy steady without the sugar crash.
The granola bar tastes better than expected—honey and oats, with actual fruit pieces.
<span class="cost-positive">+2 Hunger, +1 Happiness, +2 Energy</span>
<span class="cost-negative">-300 Coins</span>
Still have 15 minutes left. What's next?
[[Find classmates to chat with|ChatBreak2]]
[[Study for upcoming lesson|StudyBreak2]]
[[Walk around campus|StrollBreak2]]
[[Find a quiet spot to chill|RestBreak2]]
:: StrollBreak
<<statusbar>>
<<silently>>
<<passtime 15 "rest" "none" "none">>
<<set $energy += 1>>
<<set $mental += 1>>
<<set $happiness += 1>>
<</silently>>
<img src="images/campus-walk.jpg" alt="Student walking along tree-lined campus path, autumn leaves scattered" />
You step outside into the crisp autumn air. The campus spreads before you—tree-lined paths, students scattered on benches, the distant hum of city traffic.
A gentle walk clears your head. The morning sun catches your $hairColor hair as you pass the art building where someone's pottery class is visible through windows.
Movement and fresh air restore something essential. Your mind feels clearer, your mood lighter.
<span class="cost-positive">+1 Energy, +1 Mental, +1 Happiness</span>
You have 15 minutes left of break. Final choice:
[[Chat with someone before class|ChatBreak2]]
<<if $energy gte 2>>
[[Last-minute study session|StudyBreak2]]
<<else>>
@@.grayed-out;Study session (Need 2⚡) [Too Tired]@@
<</if>>
[[Continue walking and reflecting|ContinueWalk]]
[[Rest peacefully somewhere|RestBreak2]]
:: StudyMore
<<statusbar>>
<<silently>>
<<passtime 15 "moderate" "none" "learning">>
<<set $mental += 2>>
<<set $focus += 2>>
<<set $curiosity += 1>>
<<set $energy -= 1>>
<</silently>>
<img src="images/quiet-corner.jpg" alt="Student deeply focused on textbooks and notes, highlighter in hand" />
You find a quiet corner in the library's entrance area—comfortable chairs, soft lighting, the gentle murmur of distant conversations.
Settling into a chair, you close your eyes and just... exist. No pressure to be social, no information to absorb, no decisions to make. Your breathing slows. Tension you didn't realize you were carrying starts to release.
Sometimes the most productive thing you can do is nothing at all. Your mind processes the morning's lessons in the background while your body recharges.
<span class="cost-positive">+2 Mental, +2 Focus, +1 Curiosity</span>
<span class="cost-negative">-1 Energy</span>
[[Final study push|StudyBreak2]]
[[Continue resting|RestMore]]
<<statusbar>><<silently>>
<<generatestudent>>
<<passtime 15 "light" "social" "none">>
<<set $social += 1>>
<<set $currentNPC.friendship += 1>>
<</silently>>
You join <span class="<<print $currentNPC.studentClass>>"><<print $currentNPC.name>></span> and a few others for the final stretch of break. The conversation is lighter now—everyone starting to mentally prepare for the next class.
"Ready for English?" <span class="<<print $currentNPC.studentClass>>"><<print $currentNPC.name>></span> asks. "I still don't get the symbolism stuff."
A few minutes of casual connection before diving back into academics.
<span class="cost-positive">+1 Social</span>
*+1 Social*
[[Head to next class|EnglishClass]]
<<statusbar>><<silently>>
<<passtime 15 "light" "none" "learning">>
<<set $mental += 1>>
<<set $focus += 1>>
<</silently>>
Final review session. You double-check your notes, quiz yourself on key concepts, and mentally rehearse potential questions.
<span class="cost-positive">+1 Mental, +1 Focus</span>
*+1 Mental, +1 Focus*
[[Head to next class|EnglishClass]]
<<statusbar>><<silently>>
<<passtime 15 "rest" "none" "none">>
<<set $energy += 1>>
<<set $happiness += 1>>
<</silently>>
One more loop around campus. Fresh air and movement before sitting in class again.
<span class="cost-positive">+1 Energy, +1 Happiness</span>
*+1 Energy, +1 Happiness*
[[Head to next class|EnglishClass]]
<<statusbar>><<silently>>
<<passtime 15 "rest" "none" "none">>
<<set $energy += 2>>
<</silently>>
You continue your peaceful rest, fully recharging for the next academic challenge.
*+2 Energy*
[[Head to next class|EnglishClass]]
<<statusbar>><<silently>>
<<passtime 15 "light" "none" "none">>
<<set $coins -= 200>>
<<set $hunger += 1>>
<<set $energy += 1>>
<</silently>>
Quick snack run. You grab something small to keep your energy steady.
*+1 Hunger, +1 Energy -200 Coins*
[[Head to next class|EnglishClass]]
:: StudyMore
<<statusbar>>
<<silently>>
<<passtime 15 "moderate" "none" "learning">>
<<set $mental += 2>>
<<set $focus += 2>>
<<set $curiosity += 1>>
<<set $energy -= 1>>
<</silently>>
<img src="images/intense-study.jpg" alt="Student deeply focused on textbooks and notes, highlighter in hand" />
You commit to a full half-hour of focused study. No distractions, no half-measures—just you and the material.
The symbolism concepts that seemed murky before start crystallizing. Your $hairColor $hairStyle hair falls forward as you lean over your textbooks, your $eyeColor eyes scanning methodically. You draw connections between poems, trace recurring motifs, understand how imagery operates on multiple levels simultaneously.
The act of sustained concentration itself feels rewarding.
By the time break ends, you've transformed confusion into comprehension. You're genuinely ready for English class now.
<span class="cost-positive">+2 Mental, +2 Focus, +1 Curiosity</span>
<span class="cost-negative">-1 Energy</span>
[[Head to next class|EnglishClass]]
<<statusbar>><<silently>>
<<passtime 15 "rest" "none" "none">>
<</silently>>
<img src="images/garden-pavilion.jpg" alt="Wooden garden pavilion under tall trees, dappled sunlight, students scattered on benches with phones." />
You wander toward the back of campus where tall trees cast dappled shadows over wooden pavilions—cozy outdoor seating areas where students cluster during breaks.
A group sits hunched over their phones, thumbs scrolling mechanically through infinite feeds. The familiar glow of social media reflects on their faces—TikTok, Instagram, YouTube Shorts, the endless carousel of content.
Their posture speaks volumes: zoned out, disconnected from the beautiful autumn morning around them, from each other.
What's your approach?
[[Warn them gently about phone use|WarnStudents]]
[[Call out the brainrot directly|TellStudents]]
[[Ignore and keep walking|IgnoreStudents]]
:: RestMore
<<statusbar>>
<<silently>>
<<passtime 15 "rest" "none" "none">>
<<set $energy += 3>>
<<set $mental += 1>>
<</silently>>
You commit to a full half-hour of deep rest. Eyes closed, breathing steady, your $eyeColor eyes hidden behind peaceful lids.
The library's quiet cocoons you. Your $hairColor $hairStyle hair settles naturally against the chair. Your mind drifts pleasantly—not quite sleep, but profound relaxation. Your body recharges completely.
When you finally open your eyes, you feel genuinely restored.
<span class="cost-positive">+3 Energy, +1 Mental</span>
[[Head to next class|EnglishClass]]
:: EnglishClass
<<statusbar>>
<<silently>>
<<passtime 50 "moderate" "social" "learning">>
<</silently>>
<img src="images/english-classroom.jpg" alt="Literature classroom with poetry posters on walls, students settling into desks, teacher preparing materials" />
English class begins. The teacher—a passionate literature enthusiast who often gets lost in tangents about symbolism and metaphor—distributes handouts on poetic imagery.
You settle into your seat, your $eyeColor eyes scanning the handout.
"Today we're diving deep into how poets use symbols to convey complex emotions and ideas beyond literal meaning..."
The lesson structure becomes clear: lecture, discussion, individual task analyzing a poem.
How do you approach this class?
<<if $social gte 6>>
[[Socialize with nearby classmates|SocializeEnglish]] <span class="cost-display">(-1⚡, +2👥, +1😊, Risk!)</span>
<<else>>
@@.grayed-out;Socialize (Need 6👥) [Not Social Enough]@@
<</if>>
<<if $energy gte 3>>
[[Pay full attention and engage|PayAttentionEnglish]] <span class="cost-display">(-2⚡, +3🧠, +2🎯, +1🔍)</span>
<<else>>
@@.grayed-out;Full attention (Need 3⚡) [Too Tired]@@
<</if>>
[[Let your mind drift and daydream|DaydreamEnglish]] <span class="cost-display">(+1⚡, +2🎨, +1😊, -2🧠)</span>
:: WarnStudents
<<statusbar>>
<<silently>>
<<generatestudent>>
<<passtime 5 "light" "social" "none">>
<</silently>>
<img src="images/students-phones.jpg" alt="Students hunched over phones in hallway" />
You slow your approach, making your presence known without startling them. Glancing at their screens as you pass, you recognize the same algorithm-fed content that clutters your own feed—ads disguised as posts, random influencers performing for cameras, engagement bait.
"Hey," you say casually, your $eyeColor eyes meeting theirs. "Just so you know, teachers cut through here pretty regularly. Phones out in the open is kind of asking for trouble."
They look up, slightly defensive.
You continue thoughtfully. "Also... it's kind of messed up, right? We're here at school—surrounded by actual people, our actual classmates—and we're staring at strangers on screens instead of being social in actual reality."
<span class="<<print $currentNPC.studentClass>>"><<print $currentNPC.name>></span> frowns. "What do you mean?"
"Like, last week that girl got caught in someone's livestream background coming out of the bathroom. Super not okay. There shouldn't be cameras recording in school spaces, especially bathrooms. It's invasive."
<<if $cool gte 7 or $confidence gte 7>>
[[Conversation deepens|WarnSuccess]]
<<else>>
[[They shrug it off|WarnFailure]]
<</if>>
:: TellStudents
<<statusbar>>
<<silently>>
<<generatestudent>>
<<passtime 5 "light" "social" "none">>
<</silently>>
<img src="images/direct-conversation.jpg" alt="Student making strong eye contact, gesturing while talking" />
You approach more directly, brushing your $hairColor $hairStyle hair from your face with determined confidence.
"You know half that content is meaningless, right? And the other half is either ads or AI slop?"
They look up, somewhere between curious and defensive. Your $eyeColor eyes are serious, challenging.
"AI slop?" one asks.
"Yeah—artificially generated content flooding platforms. Low-effort AI images, text, videos designed purely for engagement farming. And the ads? They use psychological tricks to manipulate you. Every click, every scroll, every pause—companies are harvesting data about your behavior to target you with increasingly personalized advertising."
You're on a roll now. "Your attention is a finite, valuable resource. They're exploiting it for profit. Research shows social media literally rewires developing brains to constantly seek immediate gratification—it's designed to be addictive. The dopamine hits from likes work exactly like slot machines."
<<if $cool gte 7 or $confidence gte 7>>
[[They're genuinely interested|TellSuccess]]
<<else>>
[[They tune you out|TellFailure]]
<</if>>
<<statusbar>><<silently>>
<<passtime 5 "rest" "none" "none">>
<<set $energy += 1>><</silently>>
Not your circus, not your monkeys. You walk past without comment, enjoying the autumn scenery and your own thoughts.
Moments later, a teacher appears and handles the phone situation. You made the neutral choice—no risk, no reward.
*+1 Energy*
[[Head to next class|EnglishClass]]
:: WarnSuccess
<<statusbar>>
<<silently>>
<<set $social += 2>>
<<set $reputation += 2>>
<<set $empathy += 1>>
<<set $confidence += 1>>
<</silently>>
<span class="<<print $currentNPC.studentClass>>"><<print $currentNPC.name>></span>'s expression shifts from defensive to thoughtful. <<npcpronoun>> locks <<npcpossessive>> phone screen.
"Honestly... yeah. You're right. I didn't even realize how much time I've been spending on this stuff." <span class="<<print $currentNPC.studentClass>>"><<print $currentNPC.pronoun>></span> glances at <span class="<<print $currentNPC.studentClass>>"><<print $currentNPC.possessive>></span> friends. "We're literally sitting together but not actually talking to each other."
Another student nods slowly. "My sister said something similar—about feeling watched all the time because of livestreams and stories. It's creepy."
"Exactly," you say. "We should be able to exist in school spaces without worrying about being recorded without consent. And we should be able to just... be present with the people actually around us."
They pocket their phones. One of them says, "Want to grab something from the vending machine together? Actually hang out?"
Your $eyeColor eyes brighten. Real connection—face to face—still wins.
<span class="cost-positive">+2 Social, +2 Reputation, +1 Empathy, +1 Confidence</span>
[[Head to next class feeling good|EnglishClass]]
:: WarnFailure
<<statusbar>>
<<silently>>
<<set $social -= 1>>
<<set $confidence -= 1>>
<</silently>>
<span class="<<print $currentNPC.studentClass>>"><<print $currentNPC.name>></span> shrugs dismissively. "Okay, boomer energy. Everyone's on their phones—it's not that deep."
Another student smirks. "Yeah, kinda preachy. We're just vibing."
They turn back to their screens, conversation over. Your $hairColor $hairStyle hair falls forward as you look down, slightly deflated.
You tried to share something meaningful, but the message didn't land. Sometimes people aren't ready to hear uncomfortable truths about their habits.
<span class="cost-negative">-1 Social, -1 Confidence</span>
[[Continue|FirstBreak]]
[[Head to next class|EnglishClass]]
:: TellSuccess
<<statusbar>>
<<silently>>
<<set $social += 3>>
<<set $reputation += 2>>
<<set $curiosity += 1>>
<<set $confidence += 2>>
<</silently>>
<img src="images/engaged-discussion.jpg" alt="Group of students in animated, interested conversation" />
<span class="<<print $currentNPC.studentClass>>"><<print $currentNPC.name>></span>'s eyes widen with genuine interest. "Wait, seriously? Like, the platforms are actually designed to be addictive?"
"Yeah. They hire psychologists and neuroscientists to maximize engagement. Infinite scroll, variable rewards, FOMO-inducing notifications—all calculated to keep you hooked. There are lawsuits about it."
Another student chimes in: "I've noticed I feel worse after scrolling for a while. Like... anxious and inadequate. Comparing myself to everyone's highlight reels."
"Exactly!" You lean in, energized. "And the comparison trap is intentional. Research shows teens who use social media heavily have higher rates of depression and anxiety. The constant performance, the need for validation through likes, the edited reality—it messes with your sense of self."
They're genuinely listening now, phones forgotten.
"So what do we do?" <span class="<<print $currentNPC.studentClass>>"><<print $currentNPC.name>></span> asks.
"Be intentional. Use it purposefully instead of mindlessly scrolling. Turn off notifications. Spend time with actual people doing actual things." You gesture around the hallway. "Like this conversation—real connection, not through a screen."
<span class="<<print $currentNPC.studentClass>>"><<print $currentNPC.name>></span> nods slowly. "I'm gonna try that. Thanks for the reality check."
<span class="cost-positive">+3 Social, +2 Reputation, +1 Curiosity, +2 Confidence</span>
[[Head to next class|EnglishClass]]
:: TellFailure
<<statusbar>>
<<silently>>
<<set $social -= 2>>
<<set $confidence -= 1>>
<<set $reputation -= 1>>
<</silently>>
<span class="<<print $currentNPC.studentClass>>"><<print $currentNPC.name>></span> rolls <span class="<<print $currentNPC.studentClass>>"><<print $currentNPC.possessive>></span> eyes. "Wow, lecture much? I'm just trying to relax, not listen to a TED talk."
"Whatever, dude. Let people enjoy things," another adds dismissively.
They deliberately turn away, shutting you out. One of them mutters something you don't quite catch, but the mocking tone is clear.
Your $eyeColor eyes drop to the floor. You brush your $hairColor $hairStyle hair back nervously. The rejection stings—you were trying to share something important, something researched and real, but it came across as preachy instead of helpful.
Sometimes the message matters less than the delivery. Or sometimes people just aren't ready to question their habits.
<span class="cost-negative">-2 Social, -1 Confidence, -1 Reputation</span>
[[Continue|EnglishClass]]
:: SocializeEnglish
<<statusbar>>
<<silently>>
<<generatestudent>>
<<passtime 20 "light" "social" "boring">>
<<set _teacherNotice to random(1, 20)>>
<<set _socialBonus to Math.floor($social / 5)>>
<<set _totalRoll to _teacherNotice + _socialBonus>>
<<set $energy -= 1>>
<</silently>>
<img src="images/whispering-students.jpg" alt="Two students leaning together, whispering during class" />
You lean over toward <span class="<<print $currentNPC.studentClass>>"><<print $currentNPC.name>></span> and whisper a comment about the assignment. <span class="<<print $currentNPC.studentClass>>"><<print $currentNPC.pronoun>></span> smiles and whispers back.
The conversation continues in hushed tones—weekend plans, complaints about homework, observations about other classmates. Your $hairColor $hairStyle hair falls forward as you lean in closer. <span class="<<print $currentNPC.studentClass>>"><<print $currentNPC.name>></span> is entertaining company.
''Stealth Check:''
- Roll: <<print _teacherNotice>>
- Social Bonus: +<<print _socialBonus>> (Social: $social)
- ''Total: <<print _totalRoll>>'' (Need 13+ to avoid detection)
<<if _totalRoll gte 13>>
[[You get away with it|NotCaughtTalking]]
<<else>>
[[Teacher catches you|CaughtTalking]]
<</if>>
:: PayAttentionEnglish
<<statusbar>>
<<silently>>
<<passtime 20 "moderate" "none" "learning">>
<<set $mental += 3>>
<<set $focus += 2>>
<<set $curiosity += 1>>
<<set $energy -= 2>>
<</silently>>
<img src="images/attentive-student.jpg" alt="Student taking detailed notes, eyes moving between teacher and notebook, fully engaged" />
You commit to full engagement. Pen poised, mind open, you absorb the lesson like a sponge.
The teacher discusses how Sylvia Plath uses mirror imagery, how Pablo Neruda transforms everyday objects into symbols of longing, how Hungarian poet Endre Ady layers meaning through repetition and metaphor.
Language comes naturally to you—the patterns, the rhythm, the way meaning shifts across translations. Your $eyeColor eyes track between the handout and your notebook as you take comprehensive notes, cross-reference examples, ask clarifying questions when concepts seem ambiguous.
The teacher notices your engagement and directs several explanations toward you, building on your obvious comprehension.
<span class="cost-positive">+3 Mental, +2 Focus, +1 Curiosity</span>
<span class="cost-negative">-2 Energy</span>
[[Work on the assigned task|EnglishTask]]
:: DaydreamEnglish
<<statusbar>>
<<silently>>
<<passtime 20 "rest" "none" "creative">>
<<set $mental -= 2>>
<<set $creativity += 2>>
<<set $happiness += 1>>
<<set $energy += 1>>
<</silently>>
<img src="images/daydreaming.jpg" alt="Soft focus classroom scene, sunlight streaming through leaves casting shadows on desk" />
The teacher's voice fades into ambient sound—pleasant, distant, meaningless. Your attention drifts toward the window.
Autumn sunlight filters through golden leaves, casting dancing shadows across your desk. The patterns mesmerize you. You trace one shadow's edge with your finger, watching it shift as branches sway in the breeze.
In your mind, stories unfold. Characters, scenarios, imaginary conversations far more interesting than poetry analysis. Your creativity flourishes in this unfocused state.
"Can you answer the question?"
The teacher's voice pulls you back. You have no idea what was asked.
"Sorry, could you repeat that?"
A few classmates smirk. The teacher sighs and moves on to someone else.
<span class="cost-positive">+1 Energy, +2 Creativity, +1 Happiness</span>
<span class="cost-negative">-2 Mental</span>
[[Zone back in for the task|EnglishTask]]
:: CaughtTalking
<<statusbar>>
<<silently>>
<<set $reputation -= 2>>
<<set $social -= 1>>
<<set $mental -= 2>>
<</silently>>
"Excuse me." The teacher's voice cuts through your whispered conversation. "Since you two seem so engaged in discussion, perhaps you'd like to share with the class what you've been talking about?"
Your stomach drops. Every eye in the classroom turns toward you. Your $eyeColor eyes widen in mortification.
You stand awkwardly, mind suddenly blank. "Um... we were just..."
From the back corner, boys snicker and whisper among themselves. You've completely lost track of where the lesson was.
You fumble through some vague response about the assignment. The teacher's disappointed headshake speaks volumes.
"Please pay attention."
You sink back into your seat, face burning, your $hairColor $hairStyle hair falling forward to hide your embarrassment.
<span class="cost-negative">-2 Reputation, -1 Social, -2 Mental</span>
[[Continue with lesson|EnglishTask]]
:: NotCaughtTalking
<<statusbar>>
<<silently>>
<<set $social += 2>>
<<set $happiness += 1>>
<<set $mental -= 1>>
<<set $currentNPC.friendship += 1>>
<</silently>>
You manage to keep the conversation quiet enough. <<npcname>> shares a particularly funny story about their weekend, and you have to bite your lip to avoid laughing out loud.
The teacher remains focused on the lesson, oblivious to your social maneuvering.
<span class="cost-positive">+2 Social, +1 Happiness</span>
<span class="cost-negative">-1 Mental (missed content)</span>
[[Continue with lesson|EnglishTask]]
:: EnglishTask
<<statusbar>>
<<silently>>
<<passtime 25 "moderate" "none" "learning">>
<<set _taskDifficulty to 7>>
<<set _intelligenceBonus to Math.floor($mental / 3)>>
<<set _taskRoll to random(1, 20) + _intelligenceBonus>>
<</silently>>
<img src="images/poetry-analysis.jpg" alt="Handout with poem, student's analytical notes in margins, highlighter marks on key phrases" />
The teacher distributes a poem and instructs everyone to analyze its symbolic elements independently.
You read through the poem carefully, your $eyeColor eyes scanning each line. Pen in hand, your $hairColor $hairStyle hair falls forward as you lean over the page, attempting to identify symbols, themes, and deeper meanings.
''Poetry Analysis Check:''
- Dice Roll: <<print _taskRoll - _intelligenceBonus>>
- Mental Bonus: +<<print _intelligenceBonus>> (Mental: $mental)
- ''Total: <<print _taskRoll>>'' (Need 7+ to succeed)
<<if _taskRoll gte _taskDifficulty>>
[[Successfully complete analysis|TaskSuccess]]
<<else>>
[[Struggle with the assignment|TaskStruggle]]
<</if>>
:: TaskSuccess
<<statusbar>>
<<silently>>
<<set $mental += 2>>
<<set $confidence += 1>>
<<set $reputation += 1>>
<<set $energy -= 1>>
<</silently>>
<img src="images/successful-analysis.jpg" alt="Completed analysis with detailed annotations, connections drawn between stanzas" />
The analysis flows naturally. Your $eyeColor eyes brighten with understanding as patterns emerge from the text.
You identify the central symbol—water representing both cleansing and destruction, much like how Emily Dickinson used carriages to symbolize death's inevitability. You trace how the poet builds tension through imagery, note the shift in tone at the volta, and connect the seasonal references to the cycle of life and rebirth.
Your written response demonstrates genuine comprehension. Like William Wordsworth's daffodils symbolizing joy and freedom, or Robert Frost's diverging roads representing life's pivotal choices, this poem uses concrete imagery to explore abstract human experiences.
The teacher circulates, glances at your work, and nods approvingly.
"Excellent analysis. You've grasped the layered meanings—you're identifying how symbols work beyond their literal interpretation."
Satisfaction settles warm in your chest. You've not just read the poem; you've truly understood it.
<span class="cost-positive">+2 Mental, +1 Confidence, +1 Reputation</span>
<span class="cost-negative">-1 Energy</span>
[[Class ends|AfterEnglish]]
:: TaskStruggle
<<statusbar>>
<<silently>>
<<set $mental -= 1>>
<<set $confidence -= 1>>
<<set $energy -= 2>>
<</silently>>
<img src="images/struggling-student.jpg" alt="Frustrated student staring at poem, crumpled paper nearby, confused expression" />
The poem might as well be written in code. Your $eyeColor eyes scan the same lines repeatedly, but meaning stays frustratingly elusive.
You identify some obvious images—a bird, a window, references to seasons—but can't quite grasp what they symbolize or how they connect to broader themes. Is the bird freedom like Keats' nightingale? Or death like Poe's raven? Are seasons meant to represent life stages like in Dickinson's work, or something else entirely?
Your $hairColor $hairStyle hair falls in your face as you slump forward, frustrated. The context clues aren't clicking. You can't tell if repetition indicates a motif or just the poet's stylistic choice.
Your analysis feels surface-level, inadequate. You write something just to have words on paper—"The bird represents nature and the window represents boundaries"—but know it's not your best work. It lacks the depth of interpretation that shows real understanding.
The teacher glances at your paper and offers a neutral "Keep working on connecting symbols to themes. Ask yourself: why did the poet choose this specific image? What deeper human experience might it represent?"
Frustration lingers. You needed more time to think, or maybe better preparation before class.
<span class="cost-negative">-1 Mental, -1 Confidence, -2 Energy</span>
[[Class ends|AfterEnglish]]
:: AfterEnglish
<<statusbar>>
<img src="images/class-ending.jpg" alt="Students packing up materials, stretching, checking phones as bell rings" />
The bell rings. English class concludes. Students pack up materials, stretch, check the time. Your $hairColor $hairStyle hair needs adjusting after leaning over your work for so long.
Another lesson complete. The day continues its rhythm—classes, breaks, social dynamics, the endless cycle of high school existence.
<<if $hunger lte 4>>
Your stomach reminds you it's been a while since you ate. Break time might be good for grabbing food.
<</if>>
<<if $energy lte 3>>
Exhaustion settles into your bones. You need rest before the next class.
<</if>>
*Time: <<print Math.floor($time)>>:<<if ($time % 1) * 60 < 10>>0<</if>><<print Math.floor(($time % 1) * 60)>>*
[[Continue to next break|SecondBreak]]
:: HelpHomework
<<statusbar>>
<<silently>>
<<passtime 10 "moderate" "social" "learning">>
<<set $social += 3>>
<<set $reputation += 2>>
<<set $confidence += 1>>
<<set $empathy += 1>>
<<set $energy -= 2>>
<<set $currentNPC.friendship += 2>>
<<set $helpedHomework to true>>
<<set $helpedCount += 1>>
<</silently>>
<img src="images/helping-classmate.jpg" alt="Two students working together over homework, collaborative atmosphere" />
You shift your materials to make room. "Yeah, no problem. What are you stuck on?"
Relief washes over <<npcpossessive>> face. Together, you work through the problems—not just giving answers, but explaining the underlying logic, showing <<npcpronounobj>> how to approach similar questions in the future.
<<npcname>> takes notes on your explanations, nodding as understanding dawns.
"Oh! That actually makes sense now. Thank you so much—seriously, you saved me."
The gratitude is genuine. You've made a real difference in someone's morning.
<span class="cost-positive">+3 Social, +2 Reputation, +1 Confidence, +1 Empathy</span>
<span class="cost-negative">-2 Energy, -10 minutes</span>
*Achievement progress: Helped classmate (<<print $helpedCount>>/3 for "Study Buddy")*
[[Continue to homeroom|HomeRoom]]
:: DeclineHomework
<<statusbar>>
<<silently>>
<<set $social -= 1>>
<<set $didntHelpHomework to true>>
<</silently>>
You hesitate, glancing at the clock. These precious free minutes are rare currency—you'd rather spend them reinforcing your own understanding.
<<npcname>> reads your hesitation immediately.
"No worries," <<npcpronoun>> says quickly, backing away with a strained smile that doesn't reach <<npcpossessive>> eyes. "I'll figure it out."
The moment passes, but leaves a faint awkwardness hanging in the air like chalk dust.
<span class="cost-negative">-1 Social</span>
[[Continue to homeroom|HomeRoom]]
:: DrawCharacter
<<statusbar>>
<<silently>>
<<generatestudent>>
<<passtime 15 "light" "none" "creative">>
<<set $creativity += 2>>
<<set $happiness += 1>>
<<set $energy -= 1>>
<</silently>>
<img src="images/character-sketch.jpg" alt="Detailed character drawing in notebook, shading and expression work" />
You lose yourself in the act of creation. Lines flow from your pencil—capturing expression, gesture, the subtle details that bring a character to life.
Your hand moves with practiced confidence. Shading, proportion, the tilt of a head that suggests personality.
When you finally sit back, you've created something genuinely good.
<<npcname>> leans over from a nearby desk. "Whoa, did you draw that? That's incredible!"
<span class="cost-positive">+2 Creativity, +1 Happiness</span>
<span class="cost-negative">-1 Energy</span>
<<if $currentNPC.friendship gte 3>>
[[Give them the drawing|GiveDrawing]] <span class="cost-display">(+2👥, +1👤, +1😊)</span>
<<else>>
*<<npcname>> doesn't know you well enough to ask for it*
<</if>>
[[Keep it for your portfolio|KeepDrawing]] <span class="cost-display">(+1💪)</span>
:: DrawComic
<<statusbar>>
<<silently>>
<<passtime 15 "moderate" "none" "creative">>
<<set $creativity += 3>>
<<set $curiosity += 1>>
<<set $energy -= 2>>
<<set $comicStarted to 1>>
<</silently>>
<img src="images/comic-panels.jpg" alt="Multi-panel comic strip layout with rough sketches" />
Ambition strikes. You start laying out panels for a comic strip—character designs, dialogue bubbles, the flow of visual narrative.
This is more complex than a single drawing. You're thinking in sequences, pacing, visual storytelling.
The bell rings before you finish, but you've got a solid foundation. Maybe you'll continue this later...
<span class="cost-positive">+3 Creativity, +1 Curiosity</span>
<span class="cost-negative">-2 Energy</span>
*Comic project started—may be able to continue later*
[[Continue to homeroom|HomeRoom]]
:: DrawTable
<<statusbar>>
<<silently>>
<<passtime 10 "light" "none" "none">>
<<set $social -= 1>>
<<set $mental -= 1>>
<<set $rebellion += 1>>
<<set $ruinedProperty to true>>
<</silently>>
<img src="images/desk-graffiti.jpg" alt="School desk covered in layers of ink doodles, names, and random scribbles" />
You grab a pen and start drawing directly on the desk surface.
It seems like a good idea—impulsive, rebellious, leaving your mark on the institution.
But halfway through your doodle, you realize the ink has permanently marked this table. You glance around at the other graffiti left by students before you—crude drawings, meaningless initials, outdated memes.
None of it looks cool or profound—just... vandalism.
Your contribution doesn't look any different. A moment of regret settles in.
You just hope no teacher notices and traces it back to you.
<span class="cost-negative">-1 Social, -1 Mental</span>
<span class="cost-positive">+1 Rebellion</span>
[[Continue to homeroom|HomeRoom]]
:: GiveDrawing
<<statusbar>>
<<silently>>
<<set $social += 2>>
<<set $reputation += 1>>
<<set $happiness += 1>>
<<set $currentNPC.friendship += 2>>
<</silently>>
You carefully tear the page free along the perforations and hand it over.
<<npcname>>'s face lights up like you've given <<npcpronounobj>> actual treasure.
"Thank you! This is going right up—center of my locker door."
<<npcpronoun>> clutches it carefully, already imagining the placement.
Generosity earns respect. Your art will live on someone else's locker door—a small mark left on the world, but a meaningful one.
<span class="cost-positive">+2 Social, +1 Reputation, +1 Happiness</span>
[[Continue to homeroom|HomeRoom]]
:: KeepDrawing
<<statusbar>>
<<silently>>
<<set $confidence += 1>>
<</silently>>
You shake your head with a smile, protective of your work.
"This one's mine. Maybe I'll draw you something else sometime."
<<npcname>> nods, understanding. "Fair enough. Still amazing work—seriously talented."
Your portfolio grows. Some things you create for yourself, and that's okay.
<span class="cost-positive">+1 Confidence</span>
[[Continue to homeroom|HomeRoom]]
:: SecondBreak
<<statusbar>>
<<silently>>
/* Backwards compatibility check */
<<if !$consumables or typeof $consumables !== "object">>
<<set $consumables to {
chocolate: 0,
gum: 0,
jellybeans: 0,
biscuits: 0,
hummus: 0,
cheese: 0,
juice: 0
}>>
<</if>>
<</silently>>
<img src="images/hallway-break.jpg" alt="School hallway bustling with students during break time, lockers open, conversations overlapping" />
The bell rings again—another thirty-minute break. Time to recharge before diving back into lessons.
Students scatter in all directions, seeking food, friends, or solitude. Your eyes scan the hallway options.
<<if $consumables.chocolate gt 0 or $consumables.gum gt 0 or $consumables.biscuits gt 0 or $consumables.hummus gt 0 or $consumables.cheese gt 0 or $consumables.juice gt 0>>
**Your inventory:**
<<if $consumables.chocolate gt 0>>
[[Eat chocolate (x<<print $consumables.chocolate>>)|EatChocoBreak]] <span class="cost-display">(+1🍽️, +1😊, +1⚡)</span>
<</if>>
<<if $consumables.gum gt 0>>
[[Chew gum (x<<print $consumables.gum>>)|EatGumBreak]] <span class="cost-display">(+1😎, 2 turns)</span>
<</if>>
<<if $consumables.biscuits gt 0>>
[[Eat biscuits (x<<print $consumables.biscuits>>)|EatBiscuitsBreak]] <span class="cost-display">(+3🍽️, +1⚡)</span>
<</if>>
<<if $consumables.hummus gt 0>>
[[Eat hummus (x<<print $consumables.hummus>>)|EatHummusBreak]] <span class="cost-display">(+7🍽️, +2⚡)</span>
<</if>>
<<if $consumables.cheese gt 0>>
[[Eat cheese platter (x<<print $consumables.cheese>>)|EatCheeseBreak]] <span class="cost-display">(+7🍽️, +2⚡, +1🎯)</span>
<</if>>
<<if $consumables.juice gt 0>>
[[Drink juice (x<<print $consumables.juice>>)|DrinkJuiceBreak]] <span class="cost-display">(+2🍽️, +1⚡, +1🧠)</span>
<</if>>
---
<</if>>
**Break activities:**
<<if $hunger lte 5 and $coins gte 400>>
[[Sneak to the canteen for lunch|CanteenBreak2]] <span class="cost-display">(-400💰, +5🍽️, +2⚡, +1👥)</span>
<<elseif $hunger lte 5 and $coins lt 400>>
@@.grayed-out;Canteen (Need 400💰) [Insufficient Coins]@@
<</if>>
[[Find classmates to chat with|ChatBreak3]] <span class="cost-display">(+2👥, +1😊)</span>
<<if $energy gte 2>>
[[Study for the next lesson|StudyBreak3]] <span class="cost-display">(-1⚡, +2🧠, +1🎯)</span>
<<else>>
@@.grayed-out;Study (Need 2⚡) [Too Tired]@@
<</if>>
<<if $coins gte 300>>
[[Hit the vending machine|VendingBreak3]] <span class="cost-display">(-300💰, +2🍽️, +2⚡, +1😊)</span>
<<else>>
@@.grayed-out;Vending machine (Need 300💰) [Insufficient Coins]@@
<</if>>
[[Take a stroll around campus|StrollBreak3]] <span class="cost-display">(+1⚡, +1🧠, +1😊)</span>
[[Just rest quietly somewhere|RestBreak3]] <span class="cost-display">(+2⚡, +1🧠)</span>
<<statusbar>>
<<silently>>
<<passtime 15 "light" "none" "none">>
<<set _luckRoll to random(1, 20)>>
<</silently>>
<img src="images/canteen-sneaking.jpg" alt="Crowded cafeteria with younger students getting lunch, high schooler trying to blend in." />
The canteen is already filling with younger kids gathering for their lunch period. Technically, high school students aren't supposed to be here right now, but hunger drives you forward.
You try to stay inconspicuous, scanning for teachers while navigating toward the food stations.
<<if _luckRoll gte 11>>
[[Success! Found food|CanteenSuccess]]
<<else>>
[[Spotted by a teacher|CanteenCaught]]
<</if>>
<<statusbar>>
<<silently>>
<<set $coins -= 300>>
<</silently>>
You manage to grab a wrapped sandwich from the counter without attracting attention—success!
Do you want to eat it now or save it for later?
[[Eat it now|EatSandwich]]
[[Save it in your bag|SaveSandwich]]
<<statusbar>>
<<silently>>
<<set $reputation -= 1>>
<</silently>>
"Hey! High school students aren't supposed to be here right now!"
A teacher spots you and waves you away firmly. You retreat empty-handed, stomach still growling.
*-1 Reputation*
Still 15 minutes left. What now?
[[Find classmates|ChatBreak3]]
[[Hit vending machine instead|VendingBreak3]]
[[Study|StudyBreak2]]
[[Rest|RestBreak2]]
<<statusbar>>
<<silently>>
<<set $hunger += 4>>
<<set $energy += 1>>
<</silently>>
You devour the sandwich quickly—ham, cheese, surprisingly fresh lettuce. Hunger retreats considerably.
*+4 Hunger, +1 Energy, -300 Coins*
You still have 15 minutes. What next?
[[Chat with classmates|ChatBreak3]]
[[Quick study session|StudyBreak2]]
[[Stroll around|StrollBreak2]]
[[Rest|RestBreak2]]
<<statusbar>>
<<silently>>
<<set $inventory.push("sandwich")>>
<</silently>>
Smart thinking—you tuck the sandwich into your bag for later. Emergency rations secured.
*Sandwich added to inventory, -300 Coins*
You still have 15 minutes. What next?
[[Chat with classmates|ChatBreak3]]
[[Study session|StudyBreak2]]
[[Take a walk|StrollBreak2]]
[[Rest|RestBreak2]]
<<statusbar>>
<<silently>>
<<set _chatScenario to random(1, 3)>>
<</silently>>
Finding a good conversation spot around the high school isn't always easy during peak break times.
<<if _chatScenario is 1>>
[[You spot something odd near the bathroom|BathroomTikTok]]
<<elseif _chatScenario is 2>>
[[A friend approaches with a serious concern|FriendProblem]]
<<else>>
[[You find friends playing a tabletop game|TabletopGame]]
<</if>>
<<statusbar>>
<<silently>>
<<generatestudent>>
<<passtime 15 "light" "social" "none">>
<</silently>>
<img src="images/bathroom-filming.jpg" alt="Bathroom door with sounds of music and laughter coming from inside." />
You find a group gathered around the bathroom entrance. Peeking inside, you see <span class="<<print $currentNPC.studentClass>>"><<print $currentNPC.name>></span> and friends filming TikTok dances in front of the mirrors—phones propped up, ring lights out, completely blocking access to the actual facilities.
A line is forming outside.
What do you do?
[[Confront them about filming in bathrooms|ConfrontFilmers]]
[[Wait patiently in line|WaitInLine]]
[[Get a teacher|GetTeacherBathroom]]
[[Ignore and leave|IgnoreBathroom]]
<<statusbar>>
<<silently>>
<<generatestudent>>
<<passtime 15 "light" "social" "none">>
<</silently>>
<img src="images/concerned-friend.jpg" alt="Student looking worried, pulling friend aside for a private conversation." />
<<print $currentNPC.name>> pulls you aside, expression troubled. "Hey, can I talk to you about something serious?"<<print $currentNPC.pronoun>> explains that <<print $currentNPC.pronoun>> started receiving weird messages from an older boy online. The messages make <<print $currentNPC.pronounObj>> uncomfortable—overly personal questions, requests for photos, increasingly pushy.
"I don't know what to do," <<print $currentNPC.pronoun>> admits quietly.
This is important. What's your advice?
[[Help them find an adult to talk to|TellAdultOnline]]
[[Help them block and secure accounts immediately|ActImmediately]]
[[Downplay the situation|DontActOnline]]
<<statusbar>>
<<silently>>
<<generatestudent>>
<<passtime 15 "rest" "social" "creative">>
<</silently>>
<img src="images/tabletop-rpg.jpg" alt="Students gathered around table with dice, character sheets, 3D-printed miniatures, mid-game." />
You discover <<print $currentNPC.name>> and friends hunched over a table playing some sort of tabletop RPG—dice rolling, 3D-printed miniature characters positioned on a hand-drawn map, intense strategic discussion.
It looks genuinely fun. You linger, watching the drama unfold—a dungeon crawl, clever problem-solving, dramatic dice rolls determining fate.
<<print $currentNPC.name>> notices you watching. "Want to join? We could use another player."
[[Accept the invitation|JoinRPG]]<span class="cost-display">(+2👤, +1 🎨, +2😊, Adventure Time!)</span>
[[Politely decline and keep watching|WatchRPG]]<span class="cost-display">(+1👤, +1 Curiousity )</span>
<<statusbar>>
<<silently>>
<<set _confrontRoll to random(1, 20)>>
<<set _coolBonus to Math.floor($cool / 3)>>
<<set _confBonus to Math.floor($confidence / 3)>>
<<set _totalRoll to _confrontRoll + _coolBonus + _confBonus>>
<<set _taskDifficulty to 10>>
<</silently>>
You push the door open. "Guys, it's super creepy to film videos in a bathroom. Seriously, stop it."
''Confrontation Check:''
- Dice Roll: <<print _confrontRoll >>
- Mental Bonus: +<<print _coolBonus>> +<<print _confBonus>> (Cool: $cool, Confidence: $confidence)
- ''Total: <<print _totalRoll>>'' (Need 10+ to succeed)
<<if _totalRoll gte _taskDifficulty>>
[[They actually listen|ConfrontSuccess]]
<<elseif _totalRoll gte 8>>
[[They ignore you|ConfrontIgnored]]
<<else>>
[[They turn the camera on you|BeingRecorded]]
<</if>>
<<statusbar>>
<<silently>>
<<passtime 15 "light" "none" "none">>
<<set $energy -= 1>>
<</silently>>
You wait. And wait. The filming continues endlessly—multiple takes, giggling, adjustments.
Finally, you get to use the facilities. The break is now over. Fabulous time management.
*-1 Energy*
[[Head to next class|NextLesson]]
<<statusbar>>
<<silently>>
<<passtime 5 "light" "none" "none">>
<<set $reputation += 1>>
<<set $currentNPC.friendship -= 2>>
<</silently>>
You find a teacher patrolling nearby and explain the situation—students filming in the bathroom, making it impossible for others to use the facilities.
The teacher's expression hardens. They march over and confiscate the phones on the spot.
"This is completely inappropriate. Phones will be returned at the end of the day. Reprimands going in the gradebook."
Other students look relieved the bathroom is finally accessible, though <<print $currentNPC.name>> shoots you an angry glare.
*+1 Reputation*
[[Continue|SecondBreakEnd]]
<<statusbar>>
<<silently>>
<<set $social -= 1>>
<</silently>>
Not worth the drama. You walk away.
*-1 Social*
[[Find something else to do|SecondBreakEnd]]
<<statusbar>>
<<silently>>
<<set $social += 2>>
<<set $confidence += 1>>
<<set $reputation += 1>>
<</silently>>
<span class="<<print $currentNPC.studentClass>>"><<print $currentNPC.name>></span> looks momentarily embarrassed. "Oh... yeah, you're right. That is kind of invasive."
They pack up their equipment and leave, freeing the bathroom. Other students in line thank you quietly.
<span class="cost-positive">+2 Social, +1 Confidence, +1 Reputation</span>
[[Continue|SecondBreakEnd]]
<<statusbar>>
<<silently>>
<<set $social -= 1>>
<</silently>>
They barely glance at you and continue filming. Your words fall on deaf ears.
<span class="cost-negative">- 1 Social</span>
[[Get a teacher instead|GetTeacherBathroom]]
[[Just leave|IgnoreBathroom]]
<<statusbar>>
<<silently>>
<<set $social -= 2>>
<<set $anxiety to true>>
<</silently>>
<img src="images/phone-recording.jpg" alt="Phone screen showing live recording, your face visible in the frame, comment notifications scrolling." />
<span class="<<print $currentNPC.studentClass>>"><<print $currentNPC.name>></span> swings the phone toward you. Your face appears on their screen—live. You can barely make out the view count climbing, comments scrolling past.
It feels deeply invasive.
[[Get a teacher immediately|GetTeacherBathroom]]
[[Leave quickly|LeaveBathroom]]
<<statusbar>>
<<silently>>
<<statusbar>>
<</silently>>
Break time winds down. Students begin drifting back toward classrooms, conversations trailing off.
[[Head to next class|NextLesson]]
<<statusbar>>
<<silently>>
<<set $social -= 1>>
<<set $confidence -= 1>>
<</silently>>
You leave quickly, face burning with embarrassment and anger. Not the confrontation you wanted.
*-1 Social, -1 Confidence*
<span class="cost-negative">- 1 Social, -1 Confidence</span>
[[Continue|SecondBreakEnd]]
:: Ethics
<<statusbar>>
<<set $energy +=4 >>
<<silently>>
<<statusbar>>
<<generatestudent>>
<<generatestudent>>
<<set $teammate1 to $currentNPC>>
<<generatestudent>>
<<set $teammate2 to $currentNPC>>
<</silently>>
The ethics lesson begins with a pleasant opening conversation before the teacher sets up a thought-provoking presentation: today’s dilemma is the ethics of using AI.
What do you do while you wait?
[[Wait patiently for the teacher|WaitForIt]] <span class="cost-display">(+1⚡, +1🎯)</span>
<<if $social gte 5>>
[[Start talking to your deskmate|TalkMate]] <span class="cost-display">(+1👥, +1😊)</span>
<<else>>
@@.grayed-out;Talk to deskmate (Need 5👥) [Not Social Enough]@@
<</if>>
<<if $creativity gte 6>>
[[Doodle your RPG character|DoodleRPGChar]] <span class="cost-display">(+2🎨, +1😊)</span>
<<else>>
@@.grayed-out;Doodle RPG character (Need 6🎨) [Not Creative Enough]@@
<</if>>
<<statusbar>>
<<silently>>
<<passtime 10 "moderate" "social" "none">>
<<set $empathy += 2>>
<<set $reputation += 2>>
<<set $goodSport to true>>
<<set $currentNPC.friendship += 3>>
<</silently>>
"We should talk to a teacher about this. This is serious," you say firmly.
Together, you find a trusted teacher who listens carefully without judgment. They sit you both down.
"You did the right thing bringing this to an adult. This shows real responsibility and maturity."
The teacher walks through important steps:
- Block the sender immediately
- Review what information was shared—any sensitive data?
- What do you know about the sender? What do they know about your friend?
- Set all social media profiles to private
- Screenshot everything before blocking (for evidence if needed)
<<print $currentNPC.name>> promises to keep you updated if anything else happens. The teacher assures <<print $currentNPC.pronounObj>> that help is always available.
You both leave feeling safer, more informed.
<span class="cost-positive">+2 Empathy, +2 Reputation </span>
[[Continue|SecondBreakEnd]]
<<statusbar>>
<<silently>>
<<passtime 10 "moderate" "social" "none">>
<<set $empathy += 1>>
<<set $focus += 1>>
<<set $currentNPC.friendship += 2>>
<</silently>>
"Block them right now," you say. "And let's check your privacy settings."
You help <<print $currentNPC.name>> immediately block the sender and go through all social media accounts, setting everything to private. You make sure <<print $currentNPC.pronoun>> understands that asking for help—from you, parents, teachers—is always okay and always smart.
"If anything else happens, tell someone immediately," you emphasize.
<<print $currentNPC.name>> looks relieved. "Thank you. I feel better knowing what to do."
<span class="cost-positive">+1 Empathy, +1 Focus</span>
[[Continue|SecondBreakEnd]]
<<statusbar>>
<<silently>>
<<passtime 5 "light" "social" "none">>
<<set $empathy -= 2>>
<<set $currentNPC.friendship -= 1>>
<</silently>>
"They're probably just joking around," you say uncertainly. "I wouldn't worry too much about it."
<<print $currentNPC.name>>'s expression falls. "Oh... okay."
But you can see the worry hasn't left <<print $currentNPC.possessive>> eyes. You didn't help at all—in fact, you might have made things worse by minimizing a legitimate concern.
This was not the right response. Online harassment is serious.
<span class="cost-negative">- 2 Empathy</span>
[[Continue|SecondBreakEnd]]
<<statusbar>>
<<silently>>
<<set $social += 2>>
<<set $creativity += 1>>
<<set $happiness += 2>>
<<set $currentNPC.friendship += 2>>
<<set $Skulls to true>>
<</silently>>
"Yes! Absolutely."
They hand you a character sheet and help you create a character quickly.
Choose your character:
[[Elf wizard with high intelligence and a staff|ElfWizard]]
[[Gnome rogue with high charisma and daggers|GnomeRogue]]
[[Human warrior with high strength and a huge sword|HumanWarrior]]
<<statusbar>>
<<silently>>
<<set $social += 1>>
<<set $curiosity += 1>>
<</silently>>
You watch the rest of the session, enjoying the creative storytelling and strategic problem-solving. Maybe you'll join next time.
<span class="cost-positive">(+1 Social, +1 Curiousity)</span>
[[Break ends|NextLesson]]
<<statusbar>>
<<silently>>
<<set $character to "Elf Wizard">>
<<set $weapon to "arcane staff">>
<</silently>>
You create an elegant elf wizard—high intelligence, wielding an arcane staff crackling with potential energy.
[[Begin the adventure|RPGAdventure]]
<<statusbar>>
<<silently>>
<<set $character to "Gnome Rogue">>
<<set $weapon to "twin daggers">>
<</silently>>
You create a charming gnome rogue—high charisma, quick wit, armed with twin daggers perfect for stealth attacks.
[[Begin the adventure|RPGAdventure]]
<<statusbar>>
<<silently>>
<<set $character to "Human Warrior">>
<<set $weapon to "massive greatsword">>
<</silently>>
You create a powerful human warrior—high strength, wielding a massive greatsword that can cleave through enemies.
[[Begin the adventure|RPGAdventure]]
<<statusbar>>
<<silently>>
<<set _rpgRoll to random(1, 20)>>
<</silently>>
The game master describes your scenario:
"Your party travels through misty highlands, navigating muddy swamps thick with fog. The air feels eerie, heavy with ancient magic. Ahead, you discover an abandoned hunting camp—tents torn, supplies scattered, signs of struggle."
You roll to investigate...
<<if _rpgRoll gte 11>>
[[Victory!|RPGWin]]
<<else>>
[[Disaster strikes|RPGLose]]
<</if>>
<<statusbar>>
<<silently>>
<<set $social += 2>>
<<set $happiness += 2>>
<<set $confidence += 1>>
<</silently>>
Your $character investigates carefully, and your roll is excellent!
"You discover a hidden cache—healing potions, enchanted arrows, a map to a legendary treasure. The team salvages everything, gaining valuable resources. Your character levels up!"
The table erupts in celebration. High-fives all around. The game master grins.
"Excellent strategy. You're all now significantly more powerful for the next session."
What a rush! You understand why people love these games.
*+2 Social, +2 Happiness, +1 Confidence*
[[Break ends|NextLesson]]
<<statusbar>>
<<silently>>
<<set $social += 1>>
<<set $happiness += 1>>
<</silently>>
Your $character searches the camp, but your roll is terrible.
"A trap springs—poisoned darts fly from concealed mechanisms! The entire party takes massive damage. Almost everyone ends up unconscious, requiring rescue."
The game master shrugs sympathetically. "Better luck next time. You'll recover, but you lost valuable equipment and time."
Everyone groans good-naturedly. Even failure is fun when shared with friends.
"Same time next week?" <<npcname>> asks.
You nod. Definitely.
*+1 Social, +1 Happiness*
[[Break ends|NextLesson]]
<<statusbar>>
<<silently>>
<<passtime 5 "rest" "none" "none">>
<</silently>>
The teacher sets up slides and distributes readings about ethical dilemmas. The focus is on technology—especially artificial intelligence. “A dilemma,” the teacher explains, “is a situation with no clear answer, where every option has drawbacks and benefits requiring careful judgment.” The class laughs at a funny comment, but the teacher guides everyone back to the task at hand.
What first dilemma do you want to explore?
<span class="cost-positive">+1 Energy, +1 Focus</span>
What first dilemma do you want to explore?
<<if $rebellion gte 5>>
[[Pull out your phone and google AI ethics|PullPhone]] <span class="cost-display">(Risk: Phone confiscation!)</span>
<<else>>
@@.grayed-out;Use phone (Need 5🔥) [Not Rebellious Enough]@@
<</if>>
[[Pay full attention to the lesson|PayAttentionEthics]] <span class="cost-display">(+3🧠, +2🎯, +2🔍)</span>
[[Look around for other drama|LookAround]] <span class="cost-display">(+1👥, -1🧠)</span>
<<statusbar>>
<<silently>>
<<statusbar>>
<<generatestudent>>
<<passtime 10 "light" "social" "none">>
<<set _luckRoll to random(1, 20)>>
<<set $social += 1>>
<<set $currentNPC.friendship += 1>>
<</silently>>
<img src="images/whispering-class.jpg" alt="Two students leaning together, whispering while teacher sets up presentation." />
You lean over to <<print $currentNPC.name>> and start chatting quietly while the teacher fidgets with the projector. The conversation flows—weekend plans, complaints about homework, observations about other classes.
''Luck Check:''
- Dice Roll:''<<print _luckRoll>>''
<<if _luckRoll gte 13>>
[[You don't get caught|TalkMateSuccess]]
<<else>>
[[Teacher notices|TalkMateCaught]]
<</if>>
<<statusbar>>
<<silently>>
<<statusbar>>
<<passtime 15 "rest" "none" "creative">>
<<set $creativity += 2>>
<<set $happiness += 1>>
<<set $mental -= 2>>
<<set $posterProgress to -2>>
<</silently>>
<img src="images/doodle-character.jpg" alt="Notebook filled with detailed RPG character sketch, weapons, armor details, completely unrelated to lesson." />
Instead of paying attention, you get completely absorbed in sketching your RPG character from break—detailed armor designs, weapon specifications, backstory notes in the margins.
The drawing turns out really well! Your character looks epic.
Unfortunately, you've completely missed the critical discussion about ethical AI use—energy demands, stolen training data, deepfakes, social biases, responsible disclosure. The teacher covered fundamental concepts you'll need for the poster project.
By the time you look up, the lesson is transitioning to group work. You have no idea what just happened.
Well, better luck next time.
*+2 Creativity, +1 Happiness, -2 Mental*
*Starting poster project at -2 progress (penalty for not paying attention)*
[[Awkwardly join poster project|PosterProjectPenalty]]
:: PullPhone
<<statusbar>>
<<silently>>
<<set _luckRoll to random(1, 20)>>
<<set _dexBonus to Math.floor($cool / 4)>>
<<set _totalRoll to _luckRoll + _dexBonus>>
<</silently>>
You discreetly search for "AI ethics" on your phone under your desk, your $hairColor $hairStyle hair falling forward to partially shield your screen.
The summary is full of complex language—"algorithmic accountability," "data governance frameworks," "normative ethical considerations," "consequentialist versus deontological approaches to AI regulation."
You try to sound smart by raising your hand and reading bits aloud: "According to recent scholarship, the ethical implications of machine learning systems require robust governance frameworks that address both transparency and..."
Suddenly—your phone slips from your lap.
**Dexterity Check:**
- Dice Roll: <<print _luckRoll>>
- Cool Bonus: +<<print _dexBonus>> (Cool: $cool)
- **Total: <<print _totalRoll>>** (Need 11+)
<<if _totalRoll gte 11>>
[[You catch it mid-air (close call!)|CatchPhone]]
<<else>>
[[It lands loudly and gets confiscated|DropPhone]]
<</if>>:: PayAttentionEthics
<<statusbar>>
<<silently>>
<<passtime 20 "moderate" "none" "learning">>
<<set $mental += 3>>
<<set $focus += 2>>
<<set $curiosity += 2>>
<</silently>>
You commit to genuine engagement. Your $eyeColor eyes focus on the teacher as they present real-world AI ethical dilemmas:
''Dilemma 1: Algorithmic Bias in Hiring''
"An AI system screens job applications, but analysis reveals it discriminates against qualified candidates from certain backgrounds because it was trained on biased historical data. For example Amazon used an AI for hiring new workers, and it turned out after years that the algorithm was biased against women and gave them a lower score. Do you fix the algorithm, abandon it entirely, or keep using it with human oversight?"
**Dilemma 2: Privacy vs. Safety**
"AI-powered surveillance could predict and prevent crimes before they happen, but requires constant monitoring of public spaces and private data. How much privacy should citizens sacrifice for safety? Just look up Palantír US cybersecurity company. "
**Dilemma 3: Creative Ownership**
"AI generates art by learning from millions of copyrighted works without compensating original artists. Who owns AI-created content? The AI company? The artists whose work trained it? No one?
Actually artists like Benn Jordan use algorithms to fight back. They encore their music so the AI classifies it as a given genre, but what it actually hears is nonsense, so when used in training AI models, the trained models will be worse. <a href="https://www.youtube.com/watch?v=xMYm2d9bmEA"> Check it out </a>
**Dilemma 4: Automation and Employment**
"AI can perform jobs more efficiently than humans, but widespread automation could displace millions of workers. Should we limit AI to protect jobs, or embrace efficiency and redesign our economy?"
The discussions are fascinating. Your $hairColor $hairStyle hair falls forward as you lean over your notebook, capturing key arguments from different perspectives.
There are no easy answers—only careful consideration of competing values like fairness, efficiency, privacy, safety, creativity, and human dignity.
<span class="cost-positive">+3 Mental, +2 Focus, +2 Curiosity</span>
[[Class continues with group work|PosterProject]]
<<statusbar>>
<<silently>>
<<set _skillRoll to random(1, 20)>>
<<set_curiousityBonus to Math.floor($curiosity/3) >>
<<set_focusBonus to Math.floor($focus/3) >
<<set _skillCheck to _skillRoll + Math.floor($curiosity/3) + Math.floor($focus/3)>>
<</silently>>
You scan the classroom. Success means noticing a classmate making an AI image using a selfie; a fail means you miss any drama.
''Perception Check:''
- Dice Roll: <<print _skillRoll >>
- Total: ''<<print _skillRoll>>'' (Need 10+ to succeed)
<<if _skillRoll gte 10>>
[[Spot image creation—discuss deep fakes|DeepFakeDiscussion]]
<<else>>
[[Nothing unusual observed|NoDiscussion]]
<</if>>
:: CatchPhone
<<statusbar>>
<<silently>>
<<set $confidence -= 1>>
<<set $cool += 1>>
<</silently>>
Your reflexes save you—your $eyeColor eyes widen as your hand snatches the device mid-fall. The phone doesn't hit the ground. A few classmates notice and exchange impressed glances at your quick recovery.
But the teacher still expects an answer. You stammer through the jargon you were reading, feeling much less clever without tech support readily available.
"That's... interesting vocabulary, but can you explain what it actually means in plain language?" the teacher asks pointedly.
You can't. The words were just words on a screen—you didn't actually understand them.
<span class="cost-positive">+1 Cool (nice catch!)</span>
<span class="cost-negative">-1 Confidence (exposed as unprepared)</span>
[[Continue with lesson|PayAttentionEthics]]
:: DropPhone
<<statusbar>>
<<silently>>
<<set $confidence -= 2>>
<<set $reputation -= 1>>
<<set $rebellion += 1>>
<<set $phone_confiscated to true>>
<</silently>>
The phone hits the floor with an unmistakable *CRACK*. The entire class turns to look. Your $hairColor $hairStyle hair can't hide your face burning with embarrassment.
The teacher walks over calmly and picks up your phone.
"You know the policy. I'll return this at the end of the day." The teacher's voice isn't angry—just disappointed. "And perhaps next time, instead of trying to shortcut understanding by reading summaries you don't comprehend, you could actually engage with the material we're discussing together."
The ethical irony isn't lost on you: you tried to use technology to appear knowledgeable about AI ethics, and instead demonstrated exactly the kind of shallow engagement that ethical AI education is meant to address.
<span class="cost-negative">-2 Confidence, -1 Reputation, +1 Rebellion</span>
''Phone confiscated - will be returned at end of day''
[[Continue with lesson (embarrassed)|PayAttentionEthics]]
<<statusbar>>
<<silently>>
<<set $empathy += 2>>
<<set $curiosity += 2>>
<<set $reputation += 2>>
<</silently>>
You ask the teacher about deepfakes—digitally manipulated images and fake voices. The class turns serious. The teacher describes how politicians may be targets, but normal people need privacy too—and that making fake content is deeply wrong, robbing victims of their dignity.
The teacher also explains social biases, shaping everything from AI output to grading algorithms. You must always disclose when work used AI, and learn to use it responsibly—jobs and reputations depend on this.
<span class="cost-display">(+2 Empathy, +1 Curiosity, +2 Reputation)</span>
[[Get ready for the poster project|PosterProject]]
<<statusbar>>
<<silently>>
<<set $focus += 1>>
<</silently>>
Nothing odd catches your eye. You continue focusing on the lesson as the teacher moves to the next task.
*+1 Focus*
[[Poster project begins|PosterProject]]
:: PosterProject
<<statusbar>>
<<silently>>
<<generatestudent>>
<<set $teammate1 to clone($currentNPC)>>
<<generatestudent>>
<<set $teammate2 to clone($currentNPC)>>
<<passtime 5 "light" "social" "creative">>
<<set $posterProgress to 0>>
<<set $posterRound to 1>>
<</silently>>
<img src="images/poster-project.jpg" alt="Students gathered around table with poster materials, markers, research papers spread out" />
The teacher assigns a poster project on AI ethics. You'll work in teams of three—your teammates are <span class="<<print $teammate1.studentClass>>"><<print $teammate1.name>></span> and <span class="<<print $teammate2.studentClass>>"><<print $teammate2.name>></span>.
Your $hairColor $hairStyle hair falls forward as you lean over the table strewn with markers, poster board, and research materials. Your $eyeColor eyes scan the assignment requirements.
Roles are delegated: researcher, writer, designer, and timekeeper/presenter. You have three 15-minute work sessions to complete this—45 minutes total to create something compelling.
The topic: "Creating an Ethical AI Code of Conduct for Schools"
''Round 1 of 3'' - How will you approach this first session?
[[Work hard and apply yourself|WorkHard1]] <span class="cost-display">(-2⚡, +2🎯, +3 Progress, +Friendship)</span>
[[Take part normally|WorkNormal1]] <span class="cost-display">(-1⚡, +1🎯, +2 Progress)</span>
[[Be lazy and coast|WorkLazy1]] <span class="cost-display">(+1⚡, +1 Progress, -Friendship)</span>
:: WorkHard1
<<statusbar>>
<<silently>>
<<passtime 15 "moderate" "social" "learning">>
<<set $focus += 2>>
<<set $mental += 1>>
<<set $energy -= 2>>
<<set $posterProgress += 3>>
<<set $posterRound to 2>>
<<set $teammate1.friendship += 1>>
<<set $teammate2.friendship += 1>>
<</silently>>
<img src="images/hard-work.jpg" alt="Student intensely researching, taking notes, contributing ideas to team" />
You dive deep into research, fact-checking sources about algorithmic bias, data privacy, and automation ethics. Your eyes scan multiple articles, you lean in closer to read fine print.
"This source says AI transparency should be mandatory," you note, highlighting key passages. "But this one argues it could expose proprietary technology. We need to address both sides."
<<print $teammate1.name>> nods appreciatively. "Good catch. Let's structure our arguments to show we considered multiple perspectives. But also, it should really not be a black box."
<<print $teammate2.name>> scratches <<print $teammate2.possessive>> head "AI transparency is basically when you can look under the hood and see how the AI works. You know what data it learned from and can follow its logic. That way, you can understand why it gives a certain answer and see where its weak spots are. A "black box" is the complete opposite. You can put a question in and get an answer out, but how it got there is a total mystery. You can't see the process inside—it's just a sealed box. That's a problem because if it starts giving weird or biased answers, nobody can really figure out how to fix it or even prove why it's wrong."
"It's a lot."
<<print $teammate1.name>> starts sketching layout ideas while you organize research into categories. The foundation is solid—clear thesis, supporting evidence, ethical frameworks properly cited.
''Good progress!'' Your team is ahead of schedule.
<span class="cost-positive">+2 Focus, +1 Mental</span>
<span class="cost-negative">-2 Energy</span>
''Poster Progress: <<print $posterProgress>>/9''
''Round 2 of 3'' - Keep pushing or ease up?
[[Continue working hard|WorkHard2]] <span class="cost-display">(-2⚡, +2🎯, +3 Progress)</span>
[[Take it easier this round|WorkNormal2]] <span class="cost-display">(-1⚡, +1🎯, +2 Progress)</span>
[[Coast on what you've done|WorkLazy2]] <span class="cost-display">(+1⚡, +1 Progress, Risk!)</span>
:: WorkNormal1
<<statusbar>>
<<silently>>
<<passtime 15 "moderate" "social" "learning">>
<<set $focus += 1>>
<<set $energy -= 1>>
<<set $posterProgress += 2>>
<<set $posterRound to 2>>
<</silently>>
<img src="images/normal-work.jpg" alt="Students working at steady pace, collaborating casually" />
You contribute at a reasonable pace—researching, taking notes, participating in discussions without overextending yourself. Your $hairColor $hairStyle hair gets tucked behind your ear as you write steadily.
"I found three good sources on facial recognition ethics," you report. "Should be enough for our privacy section."
<<print $teammate1.name>> adds their research, <<print $teammate2.name>> works on design. The team makes steady progress without burning out.
Nothing exceptional, but you're pulling your weight. The energy is collaborative and sustainable.
''Normal progress.'' You're on track but not ahead.
<span class="cost-positive">+1 Focus</span>
<span class="cost-negative">-1 Energy</span>
''Poster Progress: <<print $posterProgress>>/9''
''Round 2 of 3'' - How do you want to proceed?
[[Push harder this round|WorkHard2]] <span class="cost-display">(-2⚡, +2🎯, +3 Progress)</span>
[[Maintain this pace|WorkNormal2]] <span class="cost-display">(-1⚡, +1🎯, +2 Progress)</span>
[[Slack off a bit|WorkLazy2]] <span class="cost-display">(+1⚡, +1 Progress, -Friendship)</span>
:: WorkLazy1
<<statusbar>>
<<silently>>
<<passtime 15 "rest" "social" "none">>
<<set $energy += 1>>
<<set $posterProgress += 1>>
<<set $posterRound to 2>>
<<set $teammate1.friendship -= 1>>
<<set $teammate2.friendship -= 1>>
<</silently>>
<img src="images/lazy-work.jpg" alt="Student distracted, doodling, barely contributing while teammates work" />
You mostly goof off—doodling random designs in the margins, chatting about unrelated topics, checking your phone. Your $hairColor $hairStyle hair falls in your $eyeColor eyes as you slouch back in your chair.
"Can you look up sources on algorithmic accountability?" <<print $teammate1.name>> asks.
"Yeah, in a sec..." you say, but don't actually do it. You're too busy scrolling through social media.
<<print $teammate2.name>> exchanges a frustrated glance with <<print $teammate1.name>>. They pick up the slack, doing the work you should be contributing.
''Slow progress'' You're falling behind schedule, and your teammates are noticing.
<span class="cost-positive">+1 Energy (you rested)</span>
<span class="cost-negative">Teammate relationships deteriorating</span>
''Poster Progress: <<print $posterProgress>>/9''
''Round 2 of 3'' - Should you step up?
[[Actually try this time|WorkHard2]] <span class="cost-display">(-2⚡, +2🎯, +3 Progress, Redemption!)</span>
[[Do the bare minimum|WorkNormal2]] <span class="cost-display">(-1⚡, +1🎯, +2 Progress)</span>
[[Keep slacking|WorkLazy2]] <span class="cost-display">(+1⚡, +1 Progress, Major Consequences!)</span>
:: WorkHard2
<<statusbar>>
<<silently>>
<<passtime 15 "moderate" "social" "learning">>
<<set $focus += 2>>
<<set $mental += 1>>
<<set $energy -= 2>>
<<set $posterProgress += 3>>
<<set $posterRound to 3>>
<<set $teammate1.friendship += 1>>
<<set $teammate2.friendship += 1>>
<</silently>>
<img src="images/hard-work-2.jpg" alt="Team working intensely, poster taking shape with clear organization" />
You commit fully to the work—organizing information into clear sections, designing an eye-catching layout that balances text and visuals, polishing arguments for maximum clarity.
Your $eyeColor eyes dart between research papers and the poster as you synthesize complex ideas into accessible language. Your $hairColor $hairStyle hair is slightly messy from running your hands through it while thinking.
"What if we structure it as a decision tree?" you suggest. "Show the ethical questions administrators should ask before implementing AI surveillance or automated grading systems."
"That's brilliant!" <<print $teammate2.name>> exclaims, immediately sketching the framework.
Your contribution elevates the entire project. The poster is genuinely impressive—well-researched, thoughtfully designed, ethically nuanced.
''Excellent progress!''
<span class="cost-positive">+2 Focus, +1 Mental</span>
<span class="cost-negative">-2 Energy</span>
''Poster Progress: <<print $posterProgress>>/9''
''Round 3 of 3 - Final push!''
[[Finish strong|WorkHard3]] <span class="cost-display">(-2⚡, +2🎯, +3 Progress, A+ project!)</span>
[[Cruise to the finish|WorkNormal3]] <span class="cost-display">(-1⚡, +1🎯, +2 Progress, Solid B)</span>
[[Let the others finish|WorkLazy3]] <span class="cost-display">(+1⚡, +1 Progress, Resentment)</span>
:: WorkNormal2
<<statusbar>>
<<silently>>
<<passtime 15 "moderate" "social" "learning">>
<<set $focus += 1>>
<<set $energy -= 1>>
<<set $posterProgress += 2>>
<<set $posterRound to 3>>
<</silently>>
<img src="images/normal-work-2.jpg" alt="Students maintaining steady workflow, poster progressing adequately" />
You maintain your steady contribution—writing clear explanations of ethical principles, adding relevant examples, helping refine the visual design. Your $hairColor $hairStyle hair catches the classroom light as you work.
The poster is coming together nicely. Not outstanding, but solid and competent. All the required elements are present and properly explained.
<<print $teammate1.name>> handles the bibliography while <<print $teammate2.name>> adds finishing touches to illustrations. You fill in the gaps, making sure everything flows logically.
''Steady progress'' The project is functional and will meet requirements.
<span class="cost-positive">+1 Focus</span>
<span class="cost-negative">-1 Energy</span>
''Poster Progress: <<print $posterProgress>>/9''
''Round 3 of 3 - Final session!''
[[Push hard at the end|WorkHard3]] <span class="cost-display">(-2⚡, +2🎯, +3 Progress)</span>
[[Maintain the pace|WorkNormal3]] <span class="cost-display">(-1⚡, +1🎯, +2 Progress)</span>
[[Check out early|WorkLazy3]] <span class="cost-display">(+1⚡, +1 Progress, Disappointing end)</span>
:: WorkLazy2
<<statusbar>>
<<silently>>
<<passtime 15 "rest" "social" "none">>
<<set $energy += 1>>
<<set $posterProgress += 1>>
<<set $posterRound to 3>>
<<set $teammate1.friendship -= 1>>
<<set $teammate2.friendship -= 1>>
<</silently>>
<img src="images/lazy-work-2.jpg" alt="Student completely disengaged, teammates visibly frustrated, working without them" />
You continue to contribute almost nothing. Your $eyeColor eyes glaze over as you pretend to be busy while actually just spacing out.
<<print $teammate1.name>> finally snaps: "Can you at least hold the poster straight while we glue things down?"
You do the absolute bare minimum. <<print $teammate2.name>> stops even trying to involve you in decisions.
The tension is palpable. Your teammates are doing all the work while you coast on their effort.
''Minimal progress.'' The project is behind schedule and your teammates resent you.
<span class="cost-positive">+1 Energy</span>
<span class="cost-negative">Significant relationship damage</span>
''Poster Progress: <<print $posterProgress>>/9''
''Round 3 of 3 - Last chance to redeem yourself!''
[[Finally step up|WorkHard3]] <span class="cost-display">(-2⚡, Partial redemption)</span>
[[Do something at least|WorkNormal3]] <span class="cost-display">(-1⚡, Minimal effort)</span>
[[Coast to the end|WorkLazy3]] <span class="cost-display">(Major consequences, Grade penalty!)</span>
:: WorkHard3
<<statusbar>>
<<silently>>
<<passtime 15 "moderate" "social" "learning">>
<<set $focus += 2>>
<<set $energy -= 2>>
<<set $posterProgress += 3>>
<<set $teammate1.friendship += 1>>
<<set $teammate2.friendship += 1>>
<</silently>>
<img src="images/hard-work-final.jpg" alt="Team putting finishing touches on impressive poster, checking details carefully" />
Final sprint—you give it everything. Your $eyeColor eyes scan every detail meticulously, your $hairColor $hairStyle hair slightly disheveled from intense concentration.
Details are perfected, presentation is rehearsed, the poster looks professional. You add a compelling visual hierarchy, ensure all citations are properly formatted, and create a QR code linking to additional resources.
<<print $teammate1.name>> grins. "This is actually really impressive!"
''Excellent progress!''
<span class="cost-positive">+2 Focus</span>
<span class="cost-negative">-2 Energy</span>
''Final Poster Progress: <<print $posterProgress>>/9''
[[Present to teacher|PosterGrading]]
:: WorkNormal3
<<statusbar>>
<<silently>>
<<passtime 15 "moderate" "social" "learning">>
<<set $focus += 1>>
<<set $energy -= 1>>
<<set $posterProgress += 2>>
<</silently>>
<img src="images/normal-work-final.jpg" alt="Students finishing poster at steady pace, completing requirements adequately" />
You finish at a steady pace, completing what needs to be done without flourish. Your $hairColor $hairStyle hair gets tucked behind your ear as you add final details methodically.
All required elements are present, information is organized logically, and the presentation is clean if not spectacular.
''Normal progress.''
<span class="cost-positive">+1 Focus</span>
<span class="cost-negative">-1 Energy</span>
''Final Poster Progress: <<print $posterProgress>>/9''
[[Present to teacher|PosterGrading]]
:: WorkLazy3
<<statusbar>>
<<silently>>
<<passtime 15 "rest" "social" "none">>
<<set $energy += 1>>
<<set $posterProgress += 1>>
<<set $teammate1.friendship -= 1>>
<<set $teammate2.friendship -= 1>>
<</silently>>
<img src="images/lazy-work-final.jpg" alt="Student completely disengaged while teammates scramble to finish rushed poster" />
You barely contribute to the final push. Your $eyeColor eyes wander around the classroom instead of focusing on the work. Your teammates finish without you, visibly annoyed.
<<print $teammate1.name>> mutters under their breath. <<print $teammate2.name>> won't even look at you.
''Minimal progress.'' The poster is incomplete and rushed.
<span class="cost-positive">+1 Energy</span>
<span class="cost-negative">Damaged Relationships</span>
''Final Poster Progress: <<print $posterProgress>>/9''
[[Present to teacher|PosterGrading]]
:: PosterGrading
<<statusbar>>
<<silently>>
<<passtime 5 "light" "none" "none">>
/* Grading based on total progress (out of 9 possible) */
<<if $posterProgress gte 9>>
<<set $grade to "A+">>
<<set $reputation += 3>>
<<set $confidence += 2>>
<<set $mental += 1>>
<<elseif $posterProgress gte 7>>
<<set $grade to "A">>
<<set $reputation += 2>>
<<set $confidence += 1>>
<<elseif $posterProgress gte 5>>
<<set $grade to "B">>
<<set $reputation += 1>>
<<elseif $posterProgress gte 4>>
<<set $grade to "C+">>
<<elseif $posterProgress gte 3>>
<<set $grade to "C">>
<<set $reputation -= 1>>
<<elseif $posterProgress gte 2>>
<<set $grade to "D">>
<<set $reputation -= 1>>
<<set $confidence -= 1>>
<<else>>
<<set $grade to "F">>
<<set $reputation -= 2>>
<<set $confidence -= 2>>
<</if>>
<</silently>>
<img src="images/poster-presentation.jpg" alt="Students presenting poster to teacher, other teams watching" />
Time to present. The teacher examines your poster carefully—checking content accuracy, visual clarity, organization, and effort. Your $hairColor $hairStyle hair falls in your $eyeColor eyes as you nervously await the verdict.
''Final Grade: <<print $grade>>''
<<if $grade is "A+">>
"Exceptional work!" The teacher beams, genuinely impressed. "Your research demonstrates real depth, the poster is visually compelling with excellent use of graphics and color, the information is organized logically, and it's crystal clear everyone participated fully. This is going on the classroom wall as an example for future classes."
<span class="<<print $teammate1.studentClass>>"><<print $teammate1.name>></span> and <span class="<<print $teammate2.studentClass>>"><<print $teammate2.name>></span> high-five you enthusiastically. The team succeeded brilliantly.
<span class="cost-positive">+3 Reputation, +2 Confidence, +1 Mental</span>
<<elseif $grade is "A">>
"Excellent work," the teacher nods approvingly. "Solid research, professional presentation, good visual elements. A bit more creative polish would have made this truly exceptional, but this is definitely quality work that exceeds expectations."
Your teammates seem satisfied and proud. You did well together.
<span class="cost-positive">+2 Reputation, +1 Confidence</span>
<<elseif $grade is "B">>
"Good work," the teacher says with mild approval. "You met the basic requirements—all elements are present, content is accurate, presentation is acceptable. However, I expected more depth in your analysis and creativity in your visual design from this team. This meets expectations but doesn't exceed them."
Your teammates look somewhat disappointed but accepting. It's a passing grade, just not remarkable.
<span class="cost-positive">+1 Reputation</span>
<<elseif $grade is "C+">>
"This is adequate, barely," the teacher frowns slightly. "You've included most required elements, but the content is superficial, the execution is rushed with some spelling errors, and the visual design lacks thought. This needs improvement."
Awkward silence among your team members. <<print $teammate1.name>> shifts uncomfortably.
''No stat changes''
<<elseif $grade is "C">>
"This is disappointing," the teacher says with visible concern. "The content is incomplete and poorly organized, visual elements are minimal or irrelevant, and there are multiple grammar and spelling errors. Minimal effort is evident. You can do much better than this."
<span class="<<print $teammate2.studentClass>>"><<print $teammate2.name>></span> won't make eye contact with you. The atmosphere is tense.
<span class="cost-negative">-1 Reputation</span>
<<elseif $grade is "D">>
"This is unacceptable work," the teacher says sternly. "Major required elements are missing, information is inaccurate or irrelevant, the presentation is sloppy and disorganized, and it's obvious the team didn't use their time productively. This barely qualifies as completed."
<span class="<<print $teammate1.studentClass>>"><<print $teammate1.name>></span> looks genuinely upset. They did try, but your lack of contribution dragged the whole project down.
<span class="cost-negative">-1 Reputation, -1 Confidence</span>
<<else>>
"This is a failing grade." The teacher holds up the poster—barely filled, illegible scribbles, no coherent argument, missing most required elements. "You've essentially handed in incomplete work that shows no understanding of the assignment. This demonstrates a lack of effort that is completely unacceptable."
Your teammates look crushed. <span class="<<print $teammate2.studentClass>>"><<print $teammate2.name>></span> whispers bitterly, "We really needed to actually try."
You feel terrible. You let your team down completely. This failure will affect your overall class grade.
<span class="cost-negative">-2 Reputation, -2 Confidence</span>
<</if>>
[[Class ends|AfterEthics]]
<<statusbar>>
<<silently>>
<<statusbar>>
<<passtime 5 "light" "none" "none">>
<</silently>>
<img src="images/lunch-rush.jpg" alt="Crowded stairwell filled with students rushing toward cafeteria, voices echoing." />
The bell rings for lunch. The entire school erupts into motion—students streaming toward the cafeteria in a fast-moving river of hungry teenagers.
The stairs are packed. Do you push ahead or take it easy?
[[Run and push through the crowd|RunLunch]]
[[Walk normally with the flow|NotRunLunch]]
<<statusbar>>
<<silently>>
<<set $happiness += 1>>
<</silently>>
You successfully navigate the covert conversation without drawing attention. <<print $currentNPC.name>> grins at a joke you made.
Eventually the teacher begins the lesson properly, and you both tune back in—mostly.
<span class="cost-positive">(+1😊, )</span>
[[Pay attention now|PayAttentionEthics]]
[[Keep observing the class|LookAround]]
<<statusbar>>
<<silently>>
<<set $reputation -= 1>>
<<set $focus -= 1>>
<</silently>>
"Excuse me." The teacher's voice cuts through your whispered conversation. "Since you two seem so engaged, perhaps you'd like to share what's so interesting?"
Your face flushes. <<print $currentNPC.name>> stares at the desk.
"Please pay attention. This is important material."
The moment passes awkwardly. You've missed the introduction to the AI ethics discussion.
<span class="cost-negative">(-1 Focus, -1 Reputation, )</span>
[[Try to catch up|PayAttentionEthics]]
<<statusbar>>
<<silently>>
<<set $teammate1 to clone($currentNPC)>>
<<generatestudent>>
<<set $teammate2 to clone($currentNPC)>>
<<passtime 5 "light" "social" "creative">>
<<set $posterRound to 1>>
<</silently>>
<img src="images/poster-project-confused.jpg" alt="Students gathered around table, one looking confused about assignment." />
The teacher assigns the AI ethics poster project. Your teammates are <span class="<<print $teammate1.studentClass>>"><<print $teammate1.name>></span> and <span class="<<print $teammate2.studentClass>>"><<print $teammate2.name>></span>.
"So... what are we supposed to do exactly?" you ask.
<span class="<<print $teammate1.studentClass>>"><<print $teammate1.name>></span> sighs. "Weren't you listening? We need to analyze ethical dilemmas in AI usage—energy costs, copyright issues, bias, disclosure requirements..."
You're starting at a disadvantage because you missed the entire lesson content.
*Poster Progress: <<print $posterProgress>>/9 (started at -2 due to inattention)*
**Round 1 of 3** - Time to catch up!
[[Work extra hard to compensate|WorkHard1]]
[[Do your best|WorkNormal1]]
[[Hope they carry you|WorkLazy1]]
<<statusbar>>
<<silently>>
<<set _luckRoll to random(1, 10)>>
<<passtime 5 "intense" "none" "none">>
<<set $energy -= 1>>
<</silently>>
<img src="images/rushing-stairs.jpg" alt="Blurred motion of students racing down stairs, jostling for position." />
You decide to skip ahead, weaving between students, pushing your way through. Elbows out, eyes forward, determined to be first.
<<if _luckRoll gte 8>>
[[Success! You're first|LunchSuccess]]
<<elseif _luckRoll gte 3>>
[[You trip and fall|LunchTrip]]
<<else>>
[[Disaster - you knock someone over|LunchDisaster]]
<</if>>
<<statusbar>>
<<silently>>
<<passtime 10 "light" "social" "none">>
<<set $energy -= 0.5>>
<</silently>>
<img src="images/walking-stairs.jpg" alt="Students descending stairs at normal pace, chatting casually." />
You descend at a normal pace with the flow of students. It takes longer, but it's safer and less stressful. Eventually, you reach the cafeteria entrance.
*-0.5 Energy*
[[Wash your hands first|WashHands]]
[[Just get in line for food|StandInLine]]
<<statusbar>>
<<silently>>
<<set $confidence += 1>>
<<set $social -= 2>>
<<set $empathy -= 1>>
<</silently>>
<img src="images/first-in-line.jpg" alt="Empty cafeteria line, student standing victorious at front." />
You burst through the cafeteria doors among the very first students. Victory! The serving line is practically empty—no wait, maximum food selection.
Of course, you left a trail of annoyed classmates in your wake—people you shoved, whose toes you stepped on, who now remember you as "that pushy person." But hey, you got here first.
*+1 Confidence, -2 Social, -1 Empathy, -1 Energy*
[[Wash your hands first|WashHands]]
[[Just get in line|StandInLine]]
<<statusbar>>
<<silently>>
<<set $energy -= 2>>
<<set $confidence -= 2>>
<<set $social -= 1>>
<</silently>>
<img src="images/fall-stairs.jpg" alt="Student sprawled on stairs, books scattered, other students stepping around." />
Your foot catches on someone's backpack strap. Time slows as you pitch forward—arms flailing, unable to catch yourself.
THUD.
You land face-down on the stairs. Pain radiates through your knees and palms. Students flow around you like water around a rock, a few offering half-hearted "you okay?" questions before moving on.
You pick yourself up, bruised and embarrassed. Wasn't worth it at all.
*-2 Energy, -2 Confidence, -1 Social*
[[Limp to the bathroom to assess damage|WashHands]]
[[Just get in line, pretend it didn't happen|StandInLine]]
<<statusbar>>
<<silently>>
<<set $reputation -= 5>>
<</silently>>
<img src="images/collision.jpg" alt="Cleaning staff member falling into decorative plant display, water and soil spilling." />
You barrel down the stairs at full speed—and collide directly with a cleaning staff member carrying supplies.
They lose their balance completely, stumbling backward into a large decorative planter. Soil explodes. Water splashes. The ceramic pot cracks. They land hard among the flowers, completely drenched and covered in dirt.
For a moment, silence. Then their face transforms with fury.
"THAT'S IT! I've had ENOUGH of you students!" They grab you firmly by your collar. "You're coming with me to the principal. NOW."
Your protests and apologies fall on deaf ears. They march you directly to the principal's office, leaving muddy footprints the whole way.
---
**Principal's Office**
The principal listens to the staff member's account, then turns to you with profound disappointment.
"This kind of reckless behavior is unacceptable. You could have seriously injured someone. Due to the severity of this incident, I'm issuing a three-day suspension effective immediately."
Your parents are called. The day ends in disgrace.
[[GAME OVER - Suspension|GameOver]]
<<statusbar>>
<<silently>>
<<passtime 5 "rest" "none" "none">>
<<set $focus += 1>>
<</silently>>
<img src="images/washing-hands.jpg" alt="Hands under running water, soap bubbles, proper handwashing technique." />
You're not disgusting—of course you wash your hands. You know proper technique: at least 20 seconds, covering all surfaces—palms, backs, between fingers, under nails. Soap, rinse, dry.
Basic hygiene. Responsible behavior.
*+1 Focus*
[[Get in the lunch line|LunchLine]]
<<statusbar>>
<<silently>>
<<passtime 2 "light" "none" "none">>
<<set $reputation -= 1>>
<<set $confidence -= 1>>
<</silently>>
<img src="images/lunch-line-rejection.jpg" alt="Teacher pointing back toward bathrooms, student looking embarrassed." />
A teacher monitoring the cafeteria spots you entering without washing your hands.
"Back to the bathroom. Wash your hands first. That's disgusting."
Students around you snicker. Your face burns with embarrassment as you're sent back like a little kid.
*-1 Reputation, -1 Confidence*
[[Go wash hands properly|WashHands]]
<<statusbar>>
<<silently>>
<<statusbar>>
<</silently>>
<img src="images/game-over.jpg" alt="Empty school hallway, sunset through windows, contemplative mood." />
''GAME OVER''
Your actions had serious consequences. Sometimes rushing ahead without consideration for others leads to disaster.
---
''Final Stats:''
''Personality:''
- Confidence: <<print $confidence>>
- Happiness: <<print $happiness>>
- Cool: <<print $cool>>
- Empathy: <<print $empathy>>
- Rebellion: <<print $rebellion>>
- Curiosity: <<print $curiosity>>
- Focus: <<print $focus>>
''Resources''
- Hunger: <<print $hunger>>/10
- Energy: <<print $energy>>/10
- Social: <<print $social>>/10
- Mental: <<print $mental>>/10
''Relationships''
- Reputation: <<print $reputation>>
''Achievements''
<<if $goodSport>>✓ Good Sport - Helped friend with online safety<</if>>
<<if $sharedHomework>>✓ Community Helper - Shared quality notes<</if>>
<<if $helpedHomework>>✓ Tutor - Helped classmate with homework<</if>>
---
Thank you for playing "Do Gooder"!
[[Start Again|First]]
<<statusbar>>
<<silently>>
<<passtime 5 "light" "none" "none">>
<</silently>>
<img src="images/cafeteria-menu.jpg" alt="Cafeteria serving counter with multiple meal options displayed." />
You reach the serving counter. Today's options are displayed on the board:
**Menu A:** Chicken schnitzel with mashed potatoes and gravy
**Menu B:** Vegetarian pasta primavera with tomato sauce
**Salad Bar:** Build your own salad
What sounds good?
[[Choose Menu A|EatMenuA]]
[[Choose Menu B|EatMenuB]]
[[Hit the salad bar|EatSalad]]
<<statusbar>>
<<silently>>
<<passtime 5 "rest" "none" "none">>
<<set $hunger += 6>>
<<set $energy += 2>>
<<set $coins -= 500>>
<</silently>>
<img src="images/school-lunch-a.jpg" alt="Tray with breaded chicken, mashed potatoes, gravy, side of vegetables." />
Classic school cafeteria food—nothing fancy, but filling and warm. The schnitzel is adequately crispy, the mashed potatoes are properly seasoned. It does the job.
*+6 Hunger, +2 Energy, -500 Coins*
[[Sit alone and eat in peace|SitAlone]]
[[Find friends to sit with|SitWithFriends]]
<<statusbar>>
<<silently>>
<<passtime 5 "rest" "none" "none">>
<<set $hunger += 5>>
<<set $energy += 2>>
<<set $coins -= 450>>
<</silently>>
<img src="images/school-lunch-b.jpg" alt="Tray with pasta, tomato sauce, vegetables, garlic bread." />
The vegetarian option—pasta with fresh vegetables in tomato sauce. Lighter than Menu A but still satisfying. The garlic bread on the side is actually pretty good.
*+5 Hunger, +2 Energy, -450 Coins*
[[Sit alone and reflect|SitAlone]]
[[Join friends at a table|SitWithFriends]]
<<statusbar>>
<<silently>>
<<set _creativityCheck to random(1, 20) + Math.floor($creativity / 3)>>
<<passtime 10 "rest" "none" "creative">>
<<set $coins -= 400>>
<</silently>>
<img src="images/salad-bar.jpg" alt="Colorful salad bar with various vegetables, toppings, and dressing options." />
You approach the salad bar with its array of fresh vegetables, proteins, and dressing options.
<<if _creativityCheck gte 12>>
[[Create an amazing salad|SaladSuccess]]
<<else>>
[[Make a basic salad|SaladBasic]]
<</if>>
<<statusbar>>
<<silently>>
<<passtime 20 "rest" "none" "none">>
<<set $energy += 2>>
<<set $mental += 2>>
<<set $focus += 1>>
<</silently>>
<img src="images/sitting-alone.jpg" alt="Student at cafeteria table alone, peacefully eating, observing the social dynamics around them." />
You find a table by yourself and settle in. The cafeteria swirls with activity around you—waves of students eating and leaving, conversations rising and falling, the space constantly evolving.
You're conscious of being alone, but you wouldn't have it any other way right now. This is peaceful. Composed. Meditative, even. You enjoy the simple act of refueling your body while your mind processes the morning's experiences.
Sometimes solitude is exactly what you need.
*+2 Energy, +2 Mental, +1 Focus*
[[Lunch ends - head to next class|AfterLunch]]
<<statusbar>>
<<silently>>
<<generatestudent>>
<<passtime 20 "rest" "social" "none">>
<<set $social += 2>>
<<set $happiness += 2>>
<<set $energy += 1>>
<</silently>>
<img src="images/lunch-friends.jpg" alt="Group of friends laughing around cafeteria table, sharing food and stories." />
You spot <<npcname>> and others at a table and join them. The conversation flows easily—complaints about lessons, gossip about classmates, plans for after school, shared jokes that have everyone laughing.
This is good. Connection, community, the social fuel that makes school bearable.
Suddenly, a group of loud students at the next table erupts in chaos—shouting, laughing obnoxiously, drawing annoyed glares from everyone nearby. Your group decides to leave before getting associated with that mess.
As you all stand to go, you notice the ketchup bottle and salt shaker left abandoned on your table.
*+2 Social, +2 Happiness, +1 Energy*
[[Pick them up and return them|GoodSport]]
[[Leave them there|LeaveItems]]
<<statusbar>>
<<silently>>
<<set $hunger += 5>>
<<set $energy += 2>>
<<set $creativity += 1>>
<<set $happiness += 1>>
<</silently>>
<img src="images/amazing-salad.jpg" alt="Beautifully composed salad with perfectly balanced ingredients and homemade vinaigrette." />
You channel your inner chef—selecting complementary vegetables, balancing textures and colors. Using available spices and oils, you whip up a homemade vinaigrette that ties everything together perfectly.
The result is genuinely delicious. Other students glance at your creation with envy.
*+5 Hunger, +2 Energy, +1 Creativity, +1 Happiness, -400 Coins*
[[Sit alone and savor it|SitAlone]]
[[Share your creation with friends|SitWithFriends]]
<<statusbar>>
<<silently>>
<<set $hunger += 3>>
<<set $energy += 1>>
<</silently>>
<img src="images/basic-salad.jpg" alt="Plain salad with lettuce, tomatoes, simple dressing." />
You assemble a functional salad—lettuce, tomatoes, cucumbers, basic dressing. It's healthy. It's... leaves. You're very conscious of eating leaves.
It'll keep you going, but it's not exciting.
*+3 Hunger, +1 Energy, -400 Coins*
[[Sit alone|SitAlone]]
[[Find friends|SitWithFriends]]
<<statusbar>>
<<silently>>
<<passtime 2 "light" "none" "none">>
<<set $empathy += 1>>
<<set $reputation += 1>>
<<set $goodSport to true>>
<</silently>>
You grab the ketchup and salt and return them to the condiment station. Small gesture, but it's the right thing to do. The cafeteria staff member notices and nods appreciation.
Community spaces work better when everyone contributes to keeping them functional.
*+1 Empathy, +1 Reputation*
[[Head to next class|AfterLunch]]
<<statusbar>>
<<silently>>
<<set $empathy -= 1>>
<</silently>>
You leave the items on the table. Someone else will deal with it—that's what the staff is paid for, right?
A small failure of community responsibility.
*-1 Empathy*
[[Head to next class|AfterLunch]]
<<statusbar>>
<<silently>>
<<passtime 10 "rest" "none" "none">>
<<set $focus += 1>>
<</silently>>
<img src="images/empty-homeroom.jpg" alt="Empty classroom, desks neat, sunlight streaming through windows, peaceful silence." />
You climb the stairs to your homeroom. It's empty—unusual, since students typically cluster here scrolling their phones during free periods.
You take advantage of the solitude to organize your stuff, straighten your desk area, clean up some scattered papers. Through the window, you spot your classmates outside on the sports field, playing and enjoying the sunshine.
*+1 Focus*
[[Head down to join them at the sports field|CheckSportsField]]
[[Go to the playground instead|GoToPlayground]]
[[Head to PE class early|GoToPE]]
<<statusbar>>
<<silently>>
<<passtime 5 "light" "none" "none">>
<</silently>>
<img src="images/sports-field.jpg" alt="School sports field with students playing football, others watching from sidelines." />
The sports field buzzes with activity. A group of classmates plays football—shirts vs. skins, makeshift goals marked by backpacks. Others watch from the sidelines, chatting and cheering.
What catches your interest?
[[Join the football game|JoinFootball]]
[[Join the watchers and chat|JoinWatchers]]
[[Head to the playground instead|GoToPlayground]]
[[Go to PE class early|GoToPE]]
<<statusbar>>
<<silently>>
<<passtime 15 "intense" "social" "none">>
<<set $happiness += 2>>
<<set $energy -= 2>>
<<set $empathy += 1>>
<</silently>>
<img src="images/playground.jpg" alt="Elementary playground with younger kids running, playing tag, laughing." />
You wander to the elementary playground where younger students are playing tag. They spot you and immediately recruit you into their game.
"You're it! You're it!"
You play along, chasing giggling kids around the playground equipment. They're having an absolute blast, and honestly? So are you. Pure, uncomplicated joy.
*+2 Happiness, +1 Empathy, -2 Energy*
[[Head to PE class|GoToPE]]
<<statusbar>>
<<silently>>
<<passtime 5 "light" "none" "none">>
<</silently>>
<img src="images/locker-room.jpg" alt="PE locker room with benches, lockers, students changing into gym clothes." />
You head to the locker room to change for PE class. Students filter in, swapping school clothes for gym uniforms.
As you change, you notice something troubling across the room...
[[Observe what's happening|WitnessBullying]]
<<statusbar>>
<<silently>>
<<generatestudent>>
<<set _athleticsCheck to random(1, 20) + Math.floor($energy / 3)>>
<<passtime 15 "intense" "social" "none">>
<<set $energy -= 2>>
<<set $social += 1>>
<</silently>>
<img src="images/playing-football.jpg" alt="Students playing casual football game, running, passing, laughing." />
"Can I join?" you call out. <<npcname>> waves you onto their team.
The ball comes your way. You position yourself to receive the pass...
<<if _athleticsCheck gte 10>>
[[Control the ball successfully|FootballSuccess]]
<<else>>
[[The ball slips through your legs|FootballFail]]
<</if>>
<<statusbar>>
<<silently>>
<<generatestudent>>
<<set $watcher1 to clone($currentNPC)>>
<<generatestudent>>
<<set $watcher2 to clone($currentNPC)>>
<<passtime 15 "rest" "social" "none">>
<</silently>>
<img src="images/watching-game.jpg" alt="Students sitting on grass, watching football game, chatting casually." />
You join <span class="<<print $watcher1.studentClass>>"><<print $watcher1.name>></span> and <span class="<<print $watcher2.studentClass>>"><<print $watcher2.name>></span> on the sidelines.
What do you do?
[[Join their conversation|JoinConversation]]
[[Just linger quietly|LingerAround]]
<<statusbar>>
<<silently>>
<<set _scoreCheck to random(1, 20) + Math.floor($cool / 3) + Math.floor($reputation / 3)>>
<<set $confidence += 1>>
<</silently>>
You receive the pass gracefully, controlling the ball smoothly. The field opens up before you.
<<if _scoreCheck gte 12>>
[[Dribble forward and score|FootballGoal]]
<<else>>
[[Trip and lose possession|FootballTrip]]
<</if>>
<<statusbar>>
<<silently>>
<<set $confidence -= 2>>
<</silently>>
The pass comes in cleanly, but somehow it slips right between your legs without you touching it. The classic blunder.
You freeze, hoping maybe nobody noticed. Judging by the suppressed laughter, everyone noticed.
*+1 Social, -2 Confidence, -2 Energy*
[[Leave awkwardly|CheckSportsField]]
[[Keep playing anyway|FootballSuccess]]
<<statusbar>>
<<silently>>
<<set $social += 2>>
<<set $confidence += 2>>
<<set $happiness += 2>>
<<set $reputation += 1>>
<</silently>>
<img src="images/football-goal.jpg" alt="Ball sailing into makeshift goal, players celebrating, arms raised." />
You dribble forward with confidence, weaving past defenders. Time seems to slow. You see the opening and strike—the ball sails past the goalkeeper into the goal!
Your teammates erupt in celebration, high-fiving and cheering your name. Even the opposing team acknowledges the good play.
*+2 Social, +2 Confidence, +2 Happiness, +1 Reputation, -2 Energy*
[[Finish the game and head to PE|GoToPE]]
<<statusbar>>
<<silently>>
<<set $confidence -= 1>>
<<set $social -= 1>>
<</silently>>
You start your run, but your foot catches awkwardly on the ball. You stumble and fall, the ball rolling away to the opposing team.
Chuckles ripple through both teams. Your face burns.
"Happens to everyone!" <<npcname>> calls supportively, but the embarrassment stings.
*+1 Social, -1 Confidence, -2 Energy*
[[Finish the game and head to PE|GoToPE]]
<<statusbar>>
<<silently>>
<<set $social += 2>>
<<set $empathy += 1>>
<<set $watcher1.friendship += 1>>
<<set $watcher2.friendship += 1>>
<</silently>>
<span class="<<print $watcher1.studentClass>>"><<print $watcher1.name>></span> is mid-complaint: "Some of the boys can be so mean sometimes, making life hard for everyone."
<span class="<<print $watcher2.studentClass>>"><<print $watcher2.name>></span> sighs. "Yeah. But honestly? We can be mean too sometimes. It's not just them."
The conversation deepens—discussing social dynamics, how cruelty spreads, the pressure to fit in, the exhausting performance of teenage social life.
It feels good to connect on something real.
*+2 Social, +1 Empathy*
[[Head to PE class|GoToPE]]
<<statusbar>>
<<silently>>
<<set $social -= 1>>
<</silently>>
You hover near the conversation without really joining. It's awkward—clearly you're listening, but not contributing. They exchange glances and continue talking while subtly excluding you.
Not quite in, not quite out. Uncomfortable.
*-1 Social*
[[Give up and head to PE|GoToPE]]
<<statusbar>>
<<silently>>
<<generatestudent>>
<<set $bully to clone($currentNPC)>>
<<generatestudent>>
<<set $victim to clone($currentNPC)>>
<</silently>>
<img src="images/bullying-locker.jpg" alt="Student being cornered near lockers, another student aggressively invading their space." />
<span class="<<print $bully.studentClass>>"><<print $bully.name>></span> has cornered <span class="<<print $victim.studentClass>>"><<print $victim.name>></span> by the lockers, saying something harsh and threatening. <span class="<<print $victim.studentClass>>"><<print $victim.name>></span> looks frightened and small.
This is really not okay.
[[Intervene immediately|InterveneImmediately]]
[[Don't do anything|DontIntervene]]
<<statusbar>>
<<silently>>
<<set $empathy += 2>>
<<set $confidence += 2>>
<<set $reputation += 2>>
<<set $victim.friendship += 3>>
<<set $bully.friendship -= 3>>
<<set $bullyAngry to true>>
<</silently>>
"Hey, leave <<print $victim.pronoun>> alone," you say firmly, stepping between them.
<span class="<<print $victim.studentClass>>"><<print $victim.name>></span> looks at you with profound gratitude.
<span class="<<print $bully.studentClass>>"><<print $bully.name>></span>'s face twists with anger. "Mind your own business." <<print $bully.pronoun>> backs off, but you can see <<print $bully.pronoun>> is planning something.
*+2 Empathy, +2 Confidence, +2 Reputation*
[[Tell a teacher about this|TellTeacher]]
[[Don't involve adults|DontTellTeacher]]
<<statusbar>>
<<silently>>
<<passtime 5 "light" "none" "none">>
<</silently>>
You look away, pretending not to notice. The harassment continues.
Moments later, you hear <span class="<<print $victim.studentClass>>"><<print $victim.name>></span> sobbing quietly. Your own eyes fill with tears. No one should have to endure harassment at school.
You feel terrible. You still have a chance to do the right thing.
[[Go back and intervene now|InterveneImmediately]]
[[Tell a teacher|TellTeacherLate]]
[[Leave and do nothing|LeaveDoNothing]]
<<statusbar>>
<<silently>>
<<set $reputation += 2>>
<<set $toldTeacher to true>>
<<set $bullyAngry to true>>
<<set $bully.friendship -= 5>>
<</silently>>
You find the PE teacher and quietly explain what you witnessed. The teacher's expression hardens.
"Thank you for telling me. I'll handle this."
<span class="<<print $bully.studentClass>>"><<print $bully.name>></span> is pulled aside for a serious conversation and receives a formal reprimand. <<print $bully.pronoun>> glares at you with pure fury, but the teacher's intervention changes the power dynamic.
*+2 Reputation*
[[Head to PE class|PEClass]]
<<statusbar>>
<<silently>>
<<set $toldTeacher to false>>
<<set $bullyPlanning to true>>
<</silently>>
You decide not to involve adults. Maybe it'll blow over.
<span class="<<print $bully.studentClass>>"><<print $bully.name>></span> watches you throughout class, eyes calculating, planning something.
[[Head to PE class|PEClass]]
<<statusbar>>
<<silently>>
<<set $reputation += 1>>
<<set $toldTeacher to true>>
<<set $empathy += 1>>
<</silently>>
Better late than never. You find a teacher and report what you witnessed.
The teacher takes it seriously and intervenes, though you wish you'd acted sooner.
*+1 Reputation, +1 Empathy*
[[Head to PE class|PEClass]]
<<statusbar>>
<<silently>>
<<set $empathy -= 3>>
<<set $confidence -= 2>>
<<set $reputation -= 2>>
<</silently>>
You walk away, doing nothing.
**This is the bad choice. This is what you shouldn't have chosen.**
Harassment can only happen if we let it. Don't turn a blind eye—stay vigilant. You should immediately let a teacher know when you witness bullying.
Guilt settles heavy in your chest.
*-3 Empathy, -2 Confidence, -2 Reputation*
[[Head to PE class|PEClass]]
<<statusbar>>
<<silently>>
<<statusbar>>
<<passtime 5 "light" "social" "none">>
<<set $dodgeballRound to 1>>
<<set $yourHits to 0>>
<<set $bullyHits to 0>>
<</silently>>
<img src="images/pe-class.jpg" alt="Gymnasium with students in PE uniforms, teacher explaining dodgeball rules." />
PE class begins. The teacher announces today's activity: dodgeball.
<<if $bullyAngry>>
You're acutely aware of <span class="<<print $bully.studentClass>>"><<print $bully.name>></span>'s watchful attention. <span class="<<print $victim.studentClass>>"><<print $victim.name>></span> keeps <<print $victim.possessive>> distance. The teacher doesn't suspect anything is wrong.
<<else>>
Standard dodgeball game. Should be fine.
<</if>>
Teams are divided. The game begins.
[[Start playing|DodgeballRound1]]
<<statusbar>>
<<silently>>
<<set _athleticsRoll to random(1, 20) + Math.floor($energy / 3)>>
<<set _bullyRoll to random(1, 20) + 3>>
<</silently>>
**Round 1 of 3**
Balls fly across the gym. <span class="<<print $bully.studentClass>>"><<print $bully.name>></span> has eyes locked on you.
<<if _athleticsRoll gte _bullyRoll>>
[[You dodge successfully|DodgeSuccess1]]
<<else>>
[[You get hit|GetHit1]]
<</if>>
<<statusbar>>
<<silently>>
<<set _counterRoll to random(1, 20) + Math.floor($energy / 3)>>
<</silently>>
You dodge <<print $bully.possessive>> throw! Quick reflexes save you.
Can you hit <<print $bully.pronounObj>> back?
<<if _counterRoll gte 14>>
[[Direct hit!|HitBully1]]
<<else>>
[[Your throw misses|MissThrow1]]
<</if>>
<<statusbar>>
<<silently>>
<<set $bullyHits += 1>>
<<set $confidence -= 1>>
<</silently>>
The ball slams into you. <span class="<<print $bully.studentClass>>"><<print $bully.name>></span> threw it with unnecessary force.
*Bully's hits on you: <<print $bullyHits>>/2*
[[Continue to Round 2|DodgeballRound2]]
<<statusbar>>
<<silently>>
<<set $yourHits += 1>>
<<set $confidence += 1>>
<</silently>>
Your throw connects! <span class="<<print $bully.studentClass>>"><<print $bully.name>></span> takes the hit, expression darkening.
*Your hits: <<print $yourHits>>/3*
[[Continue to Round 2|DodgeballRound2]]
<<statusbar>>
Your throw sails wide. <<print $bully.pronoun>> smirks.
[[Continue to Round 2|DodgeballRound2]]
<<statusbar>>
<<silently>>
<<set _athleticsRoll to random(1, 20) + Math.floor($energy / 3)>>
<<set _bullyRoll to random(1, 20) + 3>>
<</silently>>
**Round 2 of 3**
The game intensifies. <span class="<<print $bully.studentClass>>"><<print $bully.name>></span> winds up for another throw...
<<if _athleticsRoll gte _bullyRoll>>
[[Dodge again|DodgeSuccess2]]
<<else>>
[[Take another hit|GetHit2]]
<</if>>
<<statusbar>>
<<silently>>
<<set _counterRoll to random(1, 20) + Math.floor($energy / 3)>>
<</silently>>
Another successful dodge!
<<if _counterRoll gte 14>>
[[Hit them back|HitBully2]]
<<else>>
[[Miss|MissThrow2]]
<</if>>
<<statusbar>>
<<silently>>
<<set $bullyHits += 1>>
<<set $confidence -= 1>>
<</silently>>
Another painful hit. <<print $bully.pronoun>>'s targeting you specifically.
*Bully's hits on you: <<print $bullyHits>>/2*
<<if $bullyHits gte 2>>
[[You've been hit too many times|BullyWins]]
<<else>>
[[Continue to Round 3|DodgeballRound3]]
<</if>>
<<statusbar>>
<<silently>>
<<set $yourHits += 1>>
<<set $confidence += 1>>
<</silently>>
Another solid hit! You're dominating this matchup.
*Your hits: <<print $yourHits>>/3*
[[Continue to Round 3|DodgeballRound3]]
<<statusbar>>
Another miss. Frustrating.
[[Continue to Round 3|DodgeballRound3]]
<<statusbar>>
<<silently>>
<<set _athleticsRoll to random(1, 20) + Math.floor($energy / 3)>>
<<set _bullyRoll to random(1, 20) + 3>>
<</silently>>
**Round 3 of 3 - Final round!**
<<if _athleticsRoll gte _bullyRoll>>
[[Final dodge|DodgeSuccess3]]
<<else>>
[[Final confrontation|GetHit3]]
<</if>>
<<statusbar>>
<<silently>>
<<set $confidence -= 2>>
<<set $reputation -= 1>>
<</silently>>
<img src="images/headlock.jpg" alt="Aggressive student grabbing another in headlock, other students watching uncomfortably." />
As the game ends, <span class="<<print $bully.studentClass>>"><<print $bully.name>></span> suddenly grabs you, locking your neck in <<print $bully.possessive>> arms—a "playful" headlock that's anything but.
It's painful, humiliating, messed up.
<<if $toldTeacher>>
The PE teacher immediately intervenes. "STOP! That's completely inappropriate!"
<span class="<<print $bully.studentClass>>"><<print $bully.name>></span> is pulled away and receives another serious reprimand. The teacher's vigilance protected you.
*-2 Confidence, -1 Reputation (but teacher intervention prevented worse)*
<<else>>
The teacher doesn't notice—or doesn't care. <span class="<<print $bully.studentClass>>"><<print $bully.name>></span> releases you with a threatening whisper: "Stay out of my way."
No one helped. You should have told a teacher.
*-2 Confidence, -1 Reputation*
<</if>>
[[Class ends|AfterPE]]
<<statusbar>>
<<silently>>
<<set _counterRoll to random(1, 20) + Math.floor($energy / 3)>>
<</silently>>
One more dodge!
<<if _counterRoll gte 14>>
[[Final hit attempt|HitBully3]]
<<else>>
[[Game ends|GameEnds]]
<</if>>
<<statusbar>>
<<silently>>
<<set $bullyHits += 1>>
<</silently>>
One more hit from the bully.
*Bully's hits on you: <<print $bullyHits>>/2*
<<if $bullyHits gte 2>>
[[Bully wins|BullyWins]]
<<else>>
[[Game ends|GameEnds]]
<</if>>
<<statusbar>>
<<silently>>
<<set $yourHits += 1>>
<<set $confidence += 2>>
<</silently>>
Your final throw connects perfectly!
*Your hits: <<print $yourHits>>/3*
<<if $yourHits gte 3>>
[[You win the matchup!|YouWin]]
<<else>>
[[Game ends|GameEnds]]
<</if>>
<<statusbar>>
<<silently>>
<<set $confidence += 1>>
<</silently>>
The game ends without a clear victor in your personal matchup. You held your own.
*+1 Confidence*
[[Class ends|AfterPE]]
<<silently>>
<<set $confidence += 3>>
<<set $reputation += 2>>
<<set $happiness += 2>>
<</silently>>
<img src="images/dodgeball-victory.jpg" alt="Student victorious in dodgeball, teammates celebrating, good sportsmanship." />
Three solid hits! You dominated the matchup completely!
After the game ends, you approach <span class="<<print $bully.studentClass>>"><<print $bully.name>></span> and offer a handshake. "Good game."
<<print $bully.pronoun>> looks surprised, then grudgingly shakes your hand.
You pull the PE teacher aside and quietly mention the earlier locker room incident. The teacher thanks you seriously and says they'll keep an eye on the situation.
*+3 Confidence, +2 Reputation, +2 Happiness*
[[Class ends|AfterPE]]
<<statusbar>>
<<silently>>
<<passtime 10 "light" "none" "none">>
<</silently>>
<img src="images/walking-to-class.jpg" alt="Students walking down hallway toward final class of the day, afternoon light golden through windows." />
The school day is almost over. One final class remains: Digital Culture.
You're exhausted—it's been a long day. But you make it to the spacious computer lab on time.
[[Enter Digital Culture class|DigitalCultureClass]]
<<statusbar>>
<<silently>>
<<passtime 5 "rest" "none" "none">>
<</silently>>
<img src="images/computer-lab-2.jpg" alt="Modern computer lab with students at workstations, screens glowing, posters on walls." />
You sit down at your workstation and plug in. A retro screensaver plays on the large TV at the front—pixelated graphics from the 1980s bouncing across the screen.
On the right wall hangs Kate Crawford's and Vladan Joler's research visualization: "Anatomy of an AI System." You've always meant to study it closely, to trace the connections between labor, data, and power. Maybe someday you'll ask the teacher about it.
You sign into the classroom system and scroll to today's assignment: **Create a game in Twine.**
The teacher's voice drifts across the room: "Remember, you can use AI to help format passages—just show it the template and specify whether you're using SugarCube or Harlowe."
Two main resources are linked: Anna Anthropy's guide and Adam Hammond's tutorial.
What's your approach?
[[Take time to read the assigned material carefully|ReadMaterial]]
[[Just get started making the game|GetToItEarly]]
<<statusbar>>
<<silently>>
<<passtime 15 "moderate" "none" "learning">>
<<set $mental += 2>>
<<set $focus += 2>>
<</silently>>
<img src="images/reading-tutorial.jpg" alt="Student focused on screen reading Twine tutorial, taking notes." />
You choose between the resources:
''Anna Anthropy's book'' is warm, conversational, full of examples—easier to digest but longer.
''Adam Hammond's guide'' is technical, compact, efficient—harder at first but faster to get through.
Think of it as choosing your difficulty level.
You work through the material methodically. Links are created with double brackets `[[ ]]` (option+8 & option+9). Passages connect to create branching narratives. Variables track player choices. The example stories demonstrate possibilities.
You also browse games on itch.io—seeing what others have created, understanding the medium's potential.
*+2 Mental, +2 Focus*
[[Now get to work|GetToIt]]
<<statusbar>>
<<silently>>
<<passtime 5 "light" "none" "none">>
<<set $confidence -= 1>>
<</silently>>
You open the Twine interface. Passages, links, nodes—it's all somewhat overwhelming. You don't really know where to start.
Maybe you should read the instructions first?
*-1 Confidence*
[[Go back and read the material|ReadMaterial]]
<<statusbar>>
<<silently>>
<<passtime 5 "rest" "none" "creative">>
<<set _intelligenceCheck to random(1, 20) + Math.floor($mental / 3)>>
<</silently>>
Now you understand. The interface makes sense—passages connected by links, variables tracking state, conditional text creating dynamic narratives.
<<if _intelligenceCheck gte 13>>
A thought strikes you suddenly, almost making you laugh: **You're playing a game where you're making a game that you'll be making soon.**
The fourth wall shatters. Meta-layers stack on meta-layers. You're simultaneously player, creator, and character.
*+2 Curiosity, +1 Creativity*
<<set $curiosity += 2>>
<<set $creativity += 1>>
<<else>>
You start thinking about story possibilities—characters, conflicts, narrative arcs. Ideas flow.
*+1 Creativity*
<<set $creativity += 1>>
<</if>>
How hard will you work on this project?
[[Push yourself to create something great|PushYourself]]
[[Chill and do the minimum|ChillWork]]
<<statusbar>>
<<silently>>
<<passtime 30 "moderate" "none" "creative">>
<<set $creativity += 3>>
<<set $focus += 3>>
<<set $mental += 2>>
<<set $energy -= 3>>
<<set $gameQuality to "excellent">>
<</silently>>
<img src="images/creative-work.jpg" alt="Student deeply engaged, notebook with story concepts, Canva open with character designs, Twine story growing." />
You commit fully. First, you write diary-style notes developing your protagonist—backstory, motivation, voice. You sketch concept images for key scenes. You map conflicts and narrative branches.
Opening ChatGPT, you carefully set it up to help format your Twine passages, explaining your structure and asking it to add proper passage links. It's a useful assistant, not a replacement for your creativity.
You create visuals with Canva AI—atmospheric backgrounds, character portraits, mood-setting images. Each asset is saved with clear filenames.
You work methodically through three major sections:
**Round 1:** Story structure and character development
**Round 2:** Passage creation and variable implementation
**Round 3:** Polish, testing, and cloud backup
You remember to save constantly and upload your files to Google Drive—you've lost work to crashes before.
By the end, you have something you're genuinely proud of.
*+3 Creativity, +3 Focus, +2 Mental, -3 Energy*
[[Present to teacher|PresentGame]]
<<statusbar>>
<<silently>>
<<passtime 20 "light" "none" "none">>
<<set $energy += 1>>
<<set $gameQuality to "basic">>
<</silently>>
<img src="images/distracted-work.jpg" alt="Student switching between tabs, somewhat distracted, minimal progress visible." />
You switch between the tutorial materials, not really reading deeply. It's overwhelming—so much information, so many possibilities. You're not sure where to start.
You create a few basic passages but nothing sophisticated.
[[Push yourself through it anyway|PushThroughIt]]
[[Just submit what you have|PresentGame]]
<<statusbar>>
<<silently>>
<<passtime 10 "light" "social" "creative">>
<</silently>>
<img src="images/presenting-game.jpg" alt="Student showing Twine game to teacher on screen, explaining creative choices." />
The teacher approaches your workstation. "Let's see what you've created."
**What's your game's title?**
<<textbox "$gameTitle" "Enter your game title">>
**What genre is it?**
[[Adventure|GenreAdventure]]
[[Romance|GenreRomance]]
[[Action|GenreAction]]
[[Walking Simulator|GenreWalking]]
[[Experimental|GenreExperimental]]
<<statusbar>>
<<silently>>
<<passtime 15 "moderate" "none" "learning">>
<<set $mental += 1>>
<<set $focus += 2>>
<<set $creativity += 1>>
<<set $energy -= 2>>
<<set $gameQuality to "decent">>
<</silently>>
You brace yourself and read the instructions again, more carefully this time. Actually, you kind of get it now! The concepts click into place.
You keep a tab open with the tutorial for reference and work through creating a functional game—nothing fancy, but competent.
*+1 Mental, +2 Focus, +1 Creativity, -2 Energy*
[[Present to teacher|PresentGame]]
<<statusbar>>
<<silently>>
<<set $gameGenre to "adventure">>
<</silently>>
You explain: "It's an adventure game—the player makes choices that affect the story outcome. There are different paths and endings based on decisions."
[[Explain the mechanics|ExplainMechanics]]
<<statusbar>>
<<silently>>
<<set $gameGenre to "romance">>
<</silently>>
You explain: "It's a relationship-focused story where players navigate social dynamics and emotional connections. Choices affect character relationships."
[[Explain the mechanics|ExplainMechanics]]
<<statusbar>>
<<silently>>
<<set $gameGenre to "action">>
<</silently>>
You explain: "It's action-oriented—players face challenges, make quick decisions, deal with consequences in a fast-paced narrative."
[[Explain the mechanics|ExplainMechanics]]
<<statusbar>>
<<silently>>
<<set $gameGenre to "walking simulator">>
<</silently>>
You explain: "It's more contemplative—a walking simulator where the focus is on atmosphere, exploration, and experiencing the narrative environment."
[[Explain the mechanics|ExplainMechanics]]
<<statusbar>>
<<silently>>
<<set $gameGenre to "experimental">>
<</silently>>
You explain: "It's experimental—playing with narrative form, breaking conventions, exploring what interactive fiction can be."
[[Explain the mechanics|ExplainMechanics]]
<<statusbar>>
<<silently>>
<<if $gameQuality is "excellent">>
<<set $reputation += 3>>
<<set $confidence += 3>>
<<elseif $gameQuality is "decent">>
<<set $reputation += 2>>
<<set $confidence += 1>>
<<else>>
<<set $reputation += 1>>
<</if>>
<</silently>>
You walk the teacher through your game:
<<if $gameQuality is "excellent">>
"I used variables to track player choices and stats. There are conditional passages that change based on previous decisions. I faced challenges with nested conditionals but solved them by restructuring my passage flow. I also created custom CSS for styling and generated atmospheric images with AI tools."
The teacher's face lights up. "This is exceptional work. You've really grasped both the technical and creative aspects. I'm proud of you. You're going home with something you should feel genuinely good about."
*+3 Reputation, +3 Confidence*
<<elseif $gameQuality is "decent">>
"I have basic variables and a few branching paths. I struggled with some of the more complex features but got the fundamentals working. It's functional."
The teacher nods approvingly. "Good solid work. You understand the core concepts. Keep building on this foundation."
*+2 Reputation, +1 Confidence*
<<else>>
"I created some basic passages with links. It's pretty simple—just a few choices and outcomes."
The teacher smiles supportively. "It's a start. Interactive narrative takes practice. Keep experimenting."
*+1 Reputation*
<</if>>
[[Class ends - time to go home|CalculateFinalScore]]
<<statusbar>>
<<silently>>
<<statusbar>>
/* Calculate moral alignment based on choices throughout the day */
<<set $goodActions to 0>>
<<set $badActions to 0>>
<<set $neutralActions to 0>>
/* Good actions */
<<if $helpedHomework>><<set $goodActions += 1>><</if>>
<<if $sharedHomework>><<set $goodActions += 1>><</if>>
<<if $goodSport>><<set $goodActions += 1>><</if>>
<<if $toldTeacher>><<set $goodActions += 1>><</if>>
<<if $empathy gte 6>><<set $goodActions += 1>><</if>>
<<if $reputation gte 7>><<set $goodActions += 1>><</if>>
/* Bad actions */
<<if $didntHelpHomework>><<set $badActions += 1>><</if>>
<<if $ruinedProperty>><<set $badActions += 1>><</if>>
<<if $empathy lte 3>><<set $badActions += 1>><</if>>
<<if $reputation lte 3>><<set $badActions += 1>><</if>>
<<if $social lte 3>><<set $badActions += 1>><</if>>
/* Determine alignment */
<<if $goodActions gt $badActions + 2>>
<<set $alignment to "good">>
<<elseif $badActions gt $goodActions + 2>>
<<set $alignment to "bad">>
<<else>>
<<set $alignment to "neutral">>
<</if>>
<<set $time to 15.5>>
<</silently>>
[[Head home|EndingSequence]]
<<statusbar>>
<<silently>>
<<statusbar>>
<</silently>>
<img src="images/leaving-school.jpg" alt="Student walking out of school building, afternoon turning to evening." />
The final bell rings. The school day is over. You pack up your belongings and head out into the late afternoon.
<<if $alignment is "good">>
[[Walk home satisfied|GoodEnding]]
<<elseif $alignment is "bad">>
[[Walk home in the rain|BadEnding]]
<<else>>
[[Walk home thoughtfully|NeutralEnding]]
<</if>>
<<statusbar>>
<<silently>>
<<passtime 30 "rest" "none" "none">>
<</silently>>
<img src="images/sunset-walk.jpg" alt="Student walking home at sunset, golden light washing over the scene, peaceful expression." />
You walk home as the sun sets, painting the sky in warm gold and amber. The day replays in your mind—all the small choices, the moments you chose to help, to speak up, to contribute.
You helped a classmate with homework. You shared your notes. You stood up to bullying. You cleaned up after yourself. You created something you're proud of.
The world feels a little lighter. You made a good impression on people. More importantly, you helped those who needed it.
Not every day can be perfect, but today? Today you did enough. Today you were good.
Satisfaction settles warm in your chest as you walk into the sunset.
**THE END**
*"Sometimes doing good is as simple as showing up, paying attention, and caring about the people around you."*
[[View final statistics|FinalStats]]
<<statusbar>>
<<silently>>
<<passtime 30 "rest" "none" "none">>
<</silently>>
<img src="images/rain-walk.jpg" alt="Student walking alone in rain, grey skies, hunched shoulders, isolated." />
Rain begins to fall as you walk home. Cold drops soak into your clothes, matching your mood.
The day replays in your mind—all the moments you looked away, stayed silent, took the easy path that hurt others.
You left people who needed help. You ignored harassment. You made the world a little harder for others to exist in.
The streets feel emptier. You left no positive impression—only absence, only the sting of opportunities missed to be better.
That's just... unfortunate.
Tomorrow could be different. Tomorrow you could choose differently.
But today weighs heavy.
**THE END**
*"The world becomes what we allow it to become. Silence and inaction shape it as much as cruelty does."*
[[View final statistics|FinalStats]]
<<statusbar>>
<<silently>>
<<passtime 30 "rest" "none" "none">>
<</silently>>
<img src="images/neutral-walk.jpg" alt="Student walking home under cloudy sky, neither sunny nor rainy, contemplative expression." />
You walk home under a cloudy but dry sky. Neither sunshine nor rain—just the in-between space of an ordinary day.
You did some good things. You made some questionable choices. You helped sometimes, looked away other times. You were human—flawed, inconsistent, trying.
The world doesn't feel dramatically different because of your actions today. You existed, you navigated, you survived another school day.
Some days are like this—neither triumphs nor failures, just the ongoing effort of being a person in a complicated world.
Tomorrow is another chance. Another day of choices, small and large.
**THE END**
*"Most days are ordinary. That's okay. What matters is showing up and trying."*
[[View final statistics|FinalStats]]
## GAME COMPLETE: "Do Gooder"
''Your Journey: $name''
---
### Final Statistics
''Personality Traits:''
- Confidence: <<print $confidence>>/10
- Happiness: <<print $happiness>>/10
- Cool: <<print $cool>>/10
- Empathy: <<print $empathy>>/10
- Rebellion: <<print $rebellion>>/10
- Curiosity: <<print $curiosity>>/10
- Focus: <<print $focus>>/10
''Life Resources:''
- Hunger: <<print $hunger>>/10
- Energy: <<print $energy>>/10
- Social: <<print $social>>/10
- Mental: <<print $mental>>/10
''Social Standing:''
- Reputation: <<print $reputation>>/10
''Inventory:''
- Coins remaining: <<print $coins>>
- Stickers: <<print $stickers>>
<<if $inventory.length gt 0>>- Items: <<print $inventory.join(", ")>><</if>>
---
### Achievements Unlocked
<<if $goodSport>>✓ **Good Sport** - Helped maintain community spaces<</if>>
<<if $sharedHomework>>✓ **Community Helper** - Shared quality notes with classmates<</if>>
<<if $helpedHomework>>✓ **Tutor** - Helped a struggling classmate<</if>>
<<if $toldTeacher>>✓ **Upstander** - Reported bullying to authority<</if>>
<<if $confidence gte 8>>✓ **Self-Assured** - Maintained high confidence<</if>>
<<if $empathy gte 8>>✓ **Compassionate** - Showed consistent empathy<</if>>
<<if $curiosity gte 8>>✓ **Curious Mind** - Engaged deeply with learning<</if>>
<<if $social gte 8>>✓ **Social Butterfly** - Built strong connections<</if>>
<<if $reputation gte 8>>✓ **Well-Regarded** - Earned respect from peers<</if>>
<<if $ruinedProperty>>✗ **Vandal** - Damaged school property<</if>>
<<if $didntHelpHomework>>✗ **Selfish** - Refused to help when asked<</if>>
---
### Your Twine Game
''Title:'' $gameTitle
''Genre:'' $gameGenre
''Quality:'' <<print $gameQuality>>
---
### Moral Alignment: <<print $alignment.toUpperCase()>>
Good actions: <<print $goodActions>>
Bad actions: <<print $badActions>>
Neutral actions: <<print $neutralActions>>
---
''Thank you for playing "Do Gooder"!''
A game about navigating high school, making ethical choices, and understanding that small actions shape who we become.
[[Continue|EndOfDay]]
[[Play Again|First]]
[[Credits|Credits]]
Created by Mark Tremmel with help from Perplexity AI for SEK Budapest students to showcase what they can accomplish with Twine. I hope it brings inspiration. My goal was to showcase that it's always better to do the right thing, while also teaching some digital literacy.
Thank you for playing
2025, Budapest, Hungary
[[Continue|EndOfDay]]
[[Play Again|First]]:: EndOfDay
<<silently>>
<<statusbar>>
<</silently>>
<img src="images/walking-home-evening.jpg" alt="Student walking home as sun sets, day complete, shadows lengthening." />
The school day ends. You gather your things and head home, mind replaying the day's choices and encounters.
Time to rest and prepare for tomorrow.
[[Go home and sleep|NextDayTransition]]
:: NextDayTransition
<<silently>>
<<statusbar>>
/* Increment day counter */
<<set $day += 1>>
<<set $time to 7.0>>
/* RESTORE NEEDS (with some variance) */
<<set $hunger to random(6, 8)>>
<<set $energy to random(7, 9)>>
<<set $social to Math.clamp($social + random(-1, 1), 3, 10)>>
<<set $mental to Math.clamp($mental + random(-1, 1), 4, 10)>>
/* SKILL CHANGES based on yesterday's actions */
/* Confidence */
<<if $confidence gte 7>>
<<set $confidence += random(0, 1)>>
<<elseif $confidence lte 3>>
<<set $confidence += random(-1, 0)>>
<<else>>
<<set $confidence += random(-1, 1)>>
<</if>>
/* Happiness */
<<if $happiness gte 7>>
<<set $happiness += random(0, 1)>>
<<elseif $happiness lte 3>>
<<set $happiness += random(-1, 0)>>
<<else>>
<<set $happiness += random(-1, 1)>>
<</if>>
/* Cool */
<<if $cool gte 7>>
<<set $cool += random(0, 1)>>
<<elseif $cool lte 3>>
<<set $cool += random(-1, 0)>>
<<else>>
<<set $cool += random(-1, 1)>>
<</if>>
/* Empathy */
<<if $empathy gte 7>>
<<set $empathy += random(0, 1)>>
<<elseif $empathy lte 3>>
<<set $empathy += random(-1, 0)>>
<<else>>
<<set $empathy += random(-1, 1)>>
<</if>>
/* Rebellion */
<<if $rebellion gte 7>>
<<set $rebellion += random(0, 1)>>
<<elseif $rebellion lte 3>>
<<set $rebellion += random(-1, 0)>>
<<else>>
<<set $rebellion += random(-1, 1)>>
<</if>>
/* Curiosity */
<<if $curiosity gte 7>>
<<set $curiosity += random(0, 1)>>
<<elseif $curiosity lte 3>>
<<set $curiosity += random(-1, 0)>>
<<else>>
<<set $curiosity += random(-1, 1)>>
<</if>>
/* Focus */
<<if $focus gte 7>>
<<set $focus += random(0, 1)>>
<<elseif $focus lte 3>>
<<set $focus += random(-1, 0)>>
<<else>>
<<set $focus += random(-1, 1)>>
<</if>>
/* Creativity (if you have it) */
<<if $creativity != undefined>>
<<if $creativity gte 7>>
<<set $creativity += random(0, 1)>>
<<elseif $creativity lte 3>>
<<set $creativity += random(-1, 0)>>
<<else>>
<<set $creativity += random(-1, 1)>>
<</if>>
<</if>>
/* Clamp all personality stats between 0-10 */
<<set $confidence to Math.clamp($confidence, 0, 10)>>
<<set $happiness to Math.clamp($happiness, 0, 10)>>
<<set $cool to Math.clamp($cool, 0, 10)>>
<<set $empathy to Math.clamp($empathy, 0, 10)>>
<<set $rebellion to Math.clamp($rebellion, 0, 10)>>
<<set $curiosity to Math.clamp($curiosity, 0, 10)>>
<<set $focus to Math.clamp($focus, 0, 10)>>
<<if $creativity != undefined>>
<<set $creativity to Math.clamp($creativity, 0, 10)>>
<</if>>
/* Reset daily flags */
<<set $helpedHomework to false>>
<<set $didntHelpHomework to false>>
<<set $sharedHomework to false>>
<<set $ruinedProperty to false>>
<<set $toldTeacher to false>>
<<set $comicStarted to 0>>
<<set $posterProgress to 0>>
/* Track skill changes for display */
<<set _confChange to $confidence - _oldConf>>
<<set _happChange to $happiness - _oldHapp>>
<<set _coolChange to $cool - _oldCool>>
<<set _empChange to $empathy - _oldEmp>>
<<set _rebChange to $rebellion - _oldReb>>
<<set _curChange to $curiosity - _oldCur>>
<<set _focChange to $focus - _oldFoc>>
<</silently>>
<img src="images/morning-bedroom.jpg" alt="Sunrise through bedroom window, new day beginning, fresh start." />
**Day <<print $day>>**
You wake refreshed. Sunlight streams through your window. A new school day awaits.
As you lie in bed for a moment, you feel... different. Yesterday's experiences shaped you in subtle ways.
**Overnight Changes:**
<<if _confChange gt 0>>Confidence ↑ +<<print _confChange>><</if>><<if _confChange lt 0>>Confidence ↓ <<print _confChange>><</if>>
<<if _happChange gt 0>>Happiness ↑ +<<print _happChange>><</if>><<if _happChange lt 0>>Happiness ↓ <<print _happChange>><</if>>
<<if _coolChange gt 0>>Cool ↑ +<<print _coolChange>><</if>><<if _coolChange lt 0>>Cool ↓ <<print _coolChange>><</if>>
<<if _empChange gt 0>>Empathy ↑ +<<print _empChange>><</if>><<if _empChange lt 0>>Empathy ↓ <<print _empChange>><</if>>
<<if _rebChange gt 0>>Rebellion ↑ +<<print _rebChange>><</if>><<if _rebChange lt 0>>Rebellion ↓ <<print _rebChange>><</if>>
<<if _curChange gt 0>>Curiosity ↑ +<<print _curChange>><</if>><<if _curChange lt 0>>Curiosity ↓ <<print _curChange>><</if>>
<<if _focChange gt 0>>Focus ↑ +<<print _focChange>><</if>><<if _focChange lt 0>>Focus ↓ <<print _focChange>><</if>>
**Needs Restored:**
- Hunger: <<print $hunger>>/10 (Breakfast awaits)
- Energy: <<print $energy>>/10 (Well-rested)
- Social: <<print $social>>/10 (Ready to connect)
- Mental: <<print $mental>>/10 (Mind refreshed)
Time to start another day.
[[Get ready for school|MorningRoutine]]
:: MorningRoutine
<<silently>>
<<statusbar>>
<<passtime 30 "light" "none" "none">>
<</silently>>
<img src="images/morning-routine.jpg" alt="Student getting ready, brushing teeth, choosing clothes, preparing for day." />
You go through your morning routine—shower, breakfast, getting dressed. The familiar rhythm prepares you for whatever today brings.
[[Head to the tram stop|First]]
<<statusbar>><<silently>>
<<passtime 15 "light" "none" "none">>
<<set $coins -= 300>>
<<set $hunger += 2>>
<<set $happiness += 1>>
<</silently>>
<img src="images/vending-machine.jpg" alt="Student feeding coins into a brightly lit vending machine, snacks visible through glass." />
The vending machine hums invitingly in the corner of the hallway. You feed it coins and deliberate over the selection—chips, chocolate bars, energy drinks, healthier options like nuts and granola bars.
You settle on a granola bar and a bottle of water. Not the most exciting choice, but it'll keep your energy steady without the sugar crash.
The granola bar tastes better than expected—honey and oats, with actual fruit pieces. You lean against the wall, people-watching while you eat.
<span class="cost-positive">+2 Hunger, +1 Happiness</span>
<span class="cost-negative">- 300 Coins</span>
Still have 15 minutes left. What's next?
[[Find classmates to chat with|ChatBreak3]]
[[Study for upcoming lesson|StudyBreak3]]
[[Walk around campus|StrollBreak3]]
[[Find a quiet spot to chill|RestBreak3]]
[Head back|SecondBreak]]
[[Head to next class|NextLesson]]<<statusbar>><<silently>>
<<passtime 15 "light" "none" "learning">>
<<set $mental += 2>>
<<set $focus += 1>>
<</silently>>
<img src="images/study-hallway.jpg" alt="Student hunched over textbook against lockers, other students bustling past." />
You find a quiet corner near the library and pull out your materials for the next class—English literature. The upcoming lesson covers symbolism in poetry, something you've been struggling with.
Flipping through your textbook, you review key concepts: metaphor versus symbol, how imagery creates meaning, the difference between surface-level and deeper interpretation.
The notes start clicking into place. Fifteen minutes of focused review does wonders for your confidence about the upcoming lesson.
<span class="cost-positive">+2 Mental, +1 Focus</span>
Fifteen minutes remain in break. What's your second move?
<<if $hunger lte 6>>[[Quick vending machine run|VendingBreak3]]<</if>>
[[Chat with classmates|ChatBreak3]]
[[Take a refreshing stroll|StrollBreak3]]
[[Rest your mind|RestBreak3]]
[Head back|SecondBreak]]
[[Head to next class|NextLesson]]
<<statusbar>><<silently>>
<<passtime 15 "rest" "none" "none">>
<<set $energy += 1>>
<<set $mental += 1>>
<<set $happiness += 1>>
<</silently>>
<img src="images/campus-walk.jpg" alt="Student walking along tree-lined campus path, autumn leaves scattered, other students visible in distance." />
You step outside into the crisp autumn air. The campus spreads before you—tree-lined paths, students scattered on benches, the distant hum of city traffic beyond the school grounds.
A gentle walk clears your head. The morning sun filters through golden leaves, and for a moment, the academic pressure lifts. You pass the art building where someone's pottery class is visible through windows, the sports courts where early athletes are practicing.
Movement and fresh air restore something essential. Your mind feels clearer, your mood lighter.
<span class="cost-positive">+1 Energy, +1 Mental, +1 Happiness</span>
You have 15 minutes left of break. Final choice:
[[Chat with someone before class|ChatBreak3]]
[[Last-minute study session|StudyBreak3]]
[[Rest peacefully somewhere|RestBreak3]]
[Head back|SecondBreak]]
[[Head to next class|NextLesson]]<<statusbar>><<silently>>
<<passtime 15 "rest" "none" "none">>
<<set $energy += 2>>
<</silently>>
You continue your peaceful rest, fully recharging for the next academic challenge.
<span class="cost-positive">+2 Energy</span>
[[Head back|SecondBreak]]
[[Head to next class|NextLesson]]
:: CharacterCustomization
<img src="images/mirror-morning.jpg" alt="Morning reflection in bedroom mirror" />
You catch your reflection in the hallway mirror before heading out.
**Hair Color:**
[[Black|SetHairColor][$hairColor to "black"]]
[[Brown|SetHairColor][$hairColor to "brown"]]
[[Blonde|SetHairColor][$hairColor to "blonde"]]
[[Red|SetHairColor][$hairColor to "red"]]
[[Dyed (unusual color)|SetHairColor][$hairColor to "dyed"]]
**Hair Style:**
[[Short|SetHairStyle][$hairStyle to "short"]]
[[Long|SetHairStyle][$hairStyle to "long"]]
[[Curly|SetHairStyle][$hairStyle to "curly"]]
[[Braided|SetHairStyle][$hairStyle to "braided"]]
[[Shaved/Buzzed|SetHairStyle][$hairStyle to "shaved"]]
**Eye Color:**
[[Brown|SetEyes][$eyeColor to "brown"]]
[[Blue|SetEyes][$eyeColor to "blue"]]
[[Green|SetEyes][$eyeColor to "green"]]
[[Hazel|SetEyes][$eyeColor to "hazel"]]
<<if $hairColor neq "" and $hairStyle neq "" and $eyeColor neq "">>
[[Confirm appearance|MusicChoice]]
<</if>>
:: SetHairColor
<<goto "CharacterCustomization">>
:: SetHairStyle
<<goto "CharacterCustomization">>
:: SetEyes
<<goto "CharacterCustomization">>
:: BuyChocoNow
<<silently>>
<<set $coins -= 500>>
<<set $hunger += 1>>
<<set $sugarRush to 3>>
<<set $happiness += 1>>
<<set $energy += 1>>
<<passtime 5 "rest" "none" "none">>
<</silently>>
<img src="images/chocolate.jpg" alt="Dark chocolate bar" />
Chocolate melts across your tongue—pure sweetness, instant gratification. Your mood lifts, but you know this won't last.
<span class="cost-positive">+1 Hunger, +1 Happiness, +1 Energy</span>
<<if $sugarRush gt 0>>*Sugar rush active for <<print $sugarRush>> turns*<</if>>
[[Continue shopping|Shop]]
[[Leave shop|SchoolArrival]]
:: BuyJellyNow
<<silently>>
<<set $coins -= 300>>
<<set $hunger += 1>>
<<set $sugarRush to 2>>
<<passtime 5 "rest" "none" "none">>
<</silently>>
<img src="images/jellybeans.jpg" alt="Colorful jelly beans" />
Jelly beans burst with artificial fruit flavor. Sweet energy, fleeting satisfaction.
<span class="cost-positive">+1 Hunger</span>
<<if $sugarRush gt 0>>*Sugar rush active for <<print $sugarRush>> turns*<</if>>
[[Continue shopping|Shop]]
[[Leave shop|SchoolArrival]]
:: BuyBiscuitsNow
<<silently>>
<<set $coins -= 500>>
<<set $hunger += 3>>
<<set $energy += 1>>
<<passtime 8 "rest" "none" "none">>
<</silently>>
<img src="images/biscuits.jpg" alt="Buttery biscuits" />
Buttery biscuits crumble pleasantly. Simple, satisfying, grounding.
<span class="cost-positive">+3 Hunger, +1 Energy</span>
[[Continue shopping|Shop]]
[[Leave shop|SchoolArrival]]
:: BuyHummusNow
<<silently>>
<<set $coins -= 600>>
<<set $hunger += 7>>
<<set $energy += 2>>
<<set $healthyFoodCount += 1>>
<<passtime 12 "rest" "none" "none">>
<</silently>>
<img src="images/hummus-veggie.jpg" alt="Hummus and vegetables" />
You savor the earthy hummus, crunching through fresh carrots and peppers. Real food grounds you—hunger fades, vitality returns.
<span class="cost-positive">+7 Hunger, +2 Energy</span>
[[Continue shopping|Shop]]
[[Leave shop|SchoolArrival]]
:: BuyCheeseNow
<<silently>>
<<set $coins -= 600>>
<<set $hunger += 7>>
<<set $energy += 2>>
<<set $focus += 1>>
<<set $healthyFoodCount += 1>>
<<passtime 12 "rest" "none" "none">>
<</silently>>
<img src="images/cheese-nuts.jpg" alt="Cheese, nuts and bread" />
Protein and healthy fats fuel your body properly. Mind sharpens as hunger dissolves.
<span class="cost-positive">+7 Hunger, +2 Energy, +1 Focus</span>
[[Continue shopping|Shop]]
[[Leave shop|SchoolArrival]]
:: BuyJuiceNow
<<silently>>
<<set $coins -= 400>>
<<set $hunger += 2>>
<<set $energy += 1>>
<<set $mental += 1>>
<<set $healthyFoodCount += 1>>
<<passtime 5 "rest" "none" "none">>
<</silently>>
<img src="images/vitamin-juice.jpg" alt="Vitamin juice bottle" />
Cold vitamins slide down your throat. Your mind clears slightly.
<span class="cost-positive">+2 Hunger, +1 Energy, +1 Mental</span>
[[Continue shopping|Shop]]
[[Leave shop|SchoolArrival]]
:: BuyChocoLater
<<silently>>
<<set $coins -= 500>>
<<set $consumables.chocolate += 1>>
<</silently>>
You purchase a chocolate bar and tuck it into your bag for later.
*Chocolate added to inventory*
[[Continue shopping|Shop]]
[[Leave shop|SchoolArrival]]
:: BuyGumLater
<<silently>>
<<set $coins -= 200>>
<<set $consumables.gum += 1>>
<</silently>>
You grab a pack of gum and slip it into your pocket.
*Gum added to inventory*
[[Continue shopping|Shop]]
[[Leave shop|SchoolArrival]]
:: UseChocolate
<<silently>>
<<useconsumable "chocolate">>
<<passtime 3 "rest" "none" "none">>
<</silently>>
You unwrap the chocolate bar from your bag. Sweet relief melts across your tongue.
<span class="cost-positive">+1 Hunger, +1 Happiness, +1 Energy</span>
[[Continue|SchoolArrival]]
:: UseGum
<<silently>>
<<useconsumable "gum">>
<<passtime 2 "rest" "none" "none">>
<</silently>>
You pop a piece of gum into your mouth. Mint sharpens your focus, makes you feel cooler.
<span class="cost-positive">+1 Cool (effect lasts 2 turns)</span>
[[Continue|SchoolArrival]]
:: UseJuice
<<silently>>
<<useconsumable "juice">>
<<passtime 5 "rest" "none" "none">>
<</silently>>
You sip the vitamin juice from your bag. Cold clarity washes through you.
<span class="cost-positive">+2 Hunger, +1 Energy, +1 Mental</span>
[[Continue|SchoolArrival]]
:: UseChocolateWaiting
<<silently>>
<<useconsumable "chocolate">>
<<passtime 3 "rest" "none" "none">>
<</silently>>
You discreetly unwrap chocolate from your bag and savor it. Sweet energy floods your system.
<span class="cost-positive">+1 Hunger, +1 Happiness, +1 Energy</span>
[[Continue|WaitingMorning]]
:: UseGumWaiting
<<silently>>
<<useconsumable "gum">>
<<passtime 2 "rest" "none" "none">>
<</silently>>
You pop a piece of gum. Mint sharpens your presence—you feel a bit cooler.
<span class="cost-positive">+1 Cool (effect lasts 2 turns)</span>
[[Continue|WaitingMorning]]
:: EatChocoBreak
<<silently>>
<<useconsumable "chocolate">>
<<passtime 3 "rest" "none" "none">>
<</silently>>
You unwrap the chocolate bar from your bag. Sweet relief melts across your tongue.
<span class="cost-positive">+1 Hunger, +1 Happiness, +1 Energy</span>
<<back>>:: EatGumBreak
<<silently>>
<<useconsumable "gum">>
<<passtime 2 "rest" "none" "none">>
<</silently>>
Mint sharpens your presence. You feel cooler already.
<span class="cost-positive">+1 Cool (2 turns)</span>
<<back>>
<<return>>:: EatBiscuitsBreak
<<silently>>
<<useconsumable "biscuits">>
<<passtime 5 "rest" "none" "none">>
<</silently>>
Buttery biscuits crumble pleasantly. Simple, satisfying.
<span class="cost-positive">+3 Hunger, +1 Energy</span>
<<back>>
<<return>>
<<back>>
<<return>>
<<back>>
<<return>>:: DrinkJuiceBreak
<<silently>>
<<useconsumable "juice">>
<<passtime 5 "rest" "none" "none">>
<</silently>>
Cold vitamins clear your mind.
<span class="cost-positive">+2 Hunger, +1 Energy, +1 Mental</span>
<<back>>
<<return>>:: FoundCandy
<<statusbar>>
<<silently>>
<<set $hunger += 2>>
<<set $energy += 1>>
<<set $happiness += 1>>
<</silently>>
<img src="images/candy-bar.jpg" alt="Slightly crushed candy bar discovered at the bottom of a bag" />
Your $eyeColor eyes light up as your fingers close around something papery—a slightly crushed candy bar, forgotten from last week!
You unwrap it as discreetly as possible and devour it in three bites. The sugar hits your bloodstream. Hunger retreats to manageable levels.
Crisis averted.
<span class="cost-positive">+2 Hunger, +1 Energy, +1 Happiness</span>
[[Continue to break|FirstBreak]]
:: NoCandy
<<statusbar>>
<<silently>>
<<generatestudent>>
<<set $social -= 1>>
<<set $mental -= 1>>
<</silently>>
Your search comes up empty. Every pocket mocks you with its emptiness.
You try to focus on the lecture, but your stomach stages a rebellion—a prolonged, mortifyingly loud growl that cuts through a quiet moment in the teacher's explanation.
<<npcname>> glances over and smirks slightly before looking away.
You sink lower in your seat, face burning, your $hairColor $hairStyle hair falling forward to hide your embarrassment. The lesson drags on interminably.
<span class="cost-negative">-1 Social, -1 Mental</span>
[[Continue to break|FirstBreak]]