Frosty the Snowman
Village special encounter where you help a sad child rebuild her melted snowman. Costs 1 forest turn to help, rewards with +2 forest fights, +1 gem, or gold (20 × level). Refusing or ignoring has negative consequences: HP loss (10-30%), turn/charm loss, or gold loss (40%). 50% base encounter chance (configurable 5-100%, rawchance setting). Once per day (seentoday pref). Available in configured location (frostyloc setting, default: capital). Where you encounter a sobbing child standing next to a pile of snow, a carrot, some coal, and a tophat, and you have to decide whether helping rebuild a snowman is worth your valuable adventuring time, and the snowman absolutely winks at you when you leave which is not creepy at all.
Location & Encounter
Where:
- Location (frostyloc setting, default: capital village)
- Appears as village special event
- Triggers in village.php when walking around
Encounter Chance:
- Base: 50% chance per village visit (rawchance setting)
- Admin-configurable: 5-100% range
- Does NOT scale with VE (static probability)
- Only triggers if you haven't encountered Frosty today
Availability:
- Once per day (seentoday pref)
- Resets at newday
- If you've already helped today: See friendly reminder (girl dancing with snowman, snowman winks at you)
- No interaction if already completed today
The Encounter
Initial Scene:
- Walking through village square
- Young girl standing beside pile of snow
- Objects in snow: carrot (nose), chunks of coal (eyes), tophat
- Child sobbing quietly
- Atmosphere: Sad but innocent
Initial Choices:
- Talk to the kid: Learn what's wrong, then decide whether to help
- Ignore the kid: Walk away immediately without engaging (small risk of negative outcome)
Talk Path
The Girl's Story:
- You ask why she's sad
- She explains: "My snowman melted. He was my best friend."
- She doesn't know if she can rebuild him
- Tears welling in eyes: "Please. could you help me put him back together?"
- Emotional appeal: He's her best friend
Second-Level Choices:
- Rebuild the Snowman: Costs 1 turn, guaranteed positive reward
- Don't help: Refuse after talking (higher risk negative outcomes than ignoring initially)
- No turns available: If you have 0 turns, automatic compassionate outcome (your friend helps her instead, no cost/reward)
Help: Rebuild the Snowman
The Rebuilding Process:
- Put aside weapons, start rolling new snowballs
- Girl pitches in, three snowballs stacked up
- Carrot for nose, coal for eyes, buttons for mouth
- Two sticks become arms
- You donate your scarf to decorate snowman
- Child places tophat on head
- Girl: "Oh thank you so much! Now I can play with Frosty again!"
Cost:
- 1 forest turn deducted
- No HP cost, no gold cost
- seentoday flag set to 1 (can't repeat today)
Rewards (3 equal outcomes, 33.3% each):
- Joy Warms Heart (33.3%):
- "The child's joy warms your heart and rejuvenates your soul."
- Gain +2 forest fights
- Net: Spend 1 turn, gain 2 turns = +1 turn profit
- Gem Gift (33.3%):
- Child holds out solitary gem
- "I was going to use this for an eye, but only had the one. You can have it!"
- Gain +1 gem
- Very valuable reward
- Gold in Snow (33.3%):
- As you turn to depart, notice gleam of gold in snow
- Gain 20 gold × your level
- Examples:
- Level 5: 100 gold
- Level 10: 200 gold
- Level 15: 300 gold
- Level 20: 400 gold
Creepy Ending:
- As you walk away, glance over shoulder
- "You could almost swear the snowman winked at you."
- ".but no, that's not possible. Is it?"
- Implication: Frosty is alive? Magical? Haunted?
Refuse After Talking: "Don't Help"
Your Response:
- "I'm sorry, kid, I'm too busy to play with you"
- Turn and walk away as girl sobs loudly
- Instant karma time
Negative Outcomes (4 possibilities, 25% each):
- Bobsled Collision (25%):
- Avert gaze from crying girl
- Don't see runaway bobsled careening towards you
- Bobsled hits you!
- Lose 30% current HP (rounded)
- Minimum: Can't drop below 1 HP
- Spirit Flags (25%):
- Attempts to ignore cries fail, spirit flags
- If you have turns: Lose 1 forest fight
- If 0 turns: Lose 1 charm
- Emotional toll of being a jerk
- Hole in Gold Purse (25%):
- Walk away oblivious to many things
- Girl could have told you about hole in purse (but she's crying)
- Lose 40% of gold (rounded)
- Can't drop below 0 gold
- Potentially huge loss at high levels
- No Consequence (25%):
- Girl's crying fades as you stride away
- No mechanical penalty
- Just emotional guilt
Ignore Initially
Your Response:
- Choose not to find out why child is sad
- Continue on your way
- "What a Scrooge you are!"
Negative Outcomes (2 possibilities):
- Black Ice (25%):
- Minding your own business, don't notice black ice on sidewalk
- Slip and fall flat on back!
- Lose 10% max HP (rounded)
- Minimum: Can't drop below 1 HP
- Less severe than bobsled (10% vs 30%)
- No Consequence (75%):
- Nothing happens mechanically
- Just walk away
Ignore vs Refuse Comparison:
- Ignore: 25% chance of consequence (10% HP loss only)
- Refuse: 75% chance of consequence (30% HP, 1 turn/charm, or 40% gold)
- Ignoring is MUCH safer than engaging then refusing
- Moral: If you're going to be heartless, don't get the child's hopes up first
Expected Value Analysis
Help Expected Value:
- Cost: 1 turn (certain)
- 33.3% chance: +2 turns (net +1 turn)
- 33.3% chance: +1 gem (~1000-2000 gold value)
- 33.3% chance: 20 gold × level
- Average gem value: ~1500 gold (rough estimate)
- Average outcome: 0.33×(1 turn) + 0.33×(1500 gold equivalent) + 0.33×(20×level gold)
- At level 10: 0.33 turns + 500 gold + 67 gold = ~567 gold + 0.33 turns
- Excellent value proposition
Refuse Expected Value:
- Cost: 0 turns (don't help)
- 25% chance: Lose 30% current HP
- 25% chance: Lose 1 turn or 1 charm
- 25% chance: Lose 40% gold
- 25% chance: No penalty
- Expected loss: Moderate to severe depending on current stats
- At 100 HP, 500 gold: 7.5 HP loss + 0.25 turns + 50 gold loss
Ignore Expected Value:
- Cost: 0 turns
- 25% chance: Lose 10% max HP
- 75% chance: No penalty
- Expected loss: 2.5% max HP on average
- Minimal risk
Best Strategy:
- ALWAYS HELP if you have a turn: All rewards are excellent, cost is minimal
- If no turns: Ignore (25% minor HP loss) safer than Talk then Refuse (75% moderate/severe loss)
- Never, ever talk to the child and then refuse - worst outcomes
Reward Value Comparison
At Level 10:
- +2 turns: Worth ~200-400 gold in forest fights (1 turn profit after spending 1)
- +1 gem: Worth ~1000-2000 gold (gem scarcity value)
- +200 gold: Direct gold gain
- All three outcomes highly valuable
- Investment: 1 turn (~100-200 gold value)
- Return: 2-10× investment depending on outcome
At Level 20:
- +2 turns: Worth ~400-800 gold (higher level fights more valuable)
- +1 gem: Worth ~1500-3000 gold
- +400 gold: Direct gold gain
- Even better value at higher levels
Strategic Recommendations
When to Help:
- ALWAYS if you have at least 1 forest turn available
- All three rewards significantly exceed 1-turn cost
- No downside, purely positive
- Even if you're turn-starved, the potential +2 turn outcome makes it worthwhile
When to Ignore:
- Only if you have 0 turns
- Click "Ignore" immediately (25% chance 10% HP loss)
- DON'T click "Talk" - that leads to worse outcomes if you can't help
Never, Ever:
- Never talk to child and then refuse to help
- 75% chance of significant penalty (bobsled, gold loss, turn/charm loss)
- Getting child's hopes up then crushing them = maximum karma punishment
Once-Per-Day Reminder
If You've Already Helped Today:
- Encounter still triggers (50% chance)
- But different text appears
- You notice young girl dancing around with a snowman
- Recognize them as the ones you helped earlier
- Snowman winks at you once again
- No interaction available
- Just friendly reminder of your good deed
Reset Timing:
- seentoday pref set to 0 at newday
- Can help Frosty once per game day
- No limit to total encounters over multiple days
Admin Configuration
Settings:
- rawchance: Encounter probability (5-100%, default: 50%)
- frostyloc: Location where Frosty appears (default: capital)
Balancing Notes:
- 50% chance (default): Balanced, not too frequent but regular
- 100% chance: Guaranteed daily encounter (may feel repetitive)
- 5-25% chance: Rare treat (players may forget about it)
- Rewards are strong enough that 50% is appropriate (prevents daily guaranteed high rewards)
Location Flexibility:
- Can restrict to specific city (winter-themed location)
- Or enable in all cities (wherever snow exists)
- Thematically fits winter/holiday locations
Lore & Atmosphere
The Child:
- Young girl (name never given)
- Innocent and genuinely sad
- Snowman is "best friend" (suggests lonely child or deep attachment)
- Grateful and joyful when helped
- Not a scam or trick - legitimate request
Frosty the Snowman:
- Named "Frosty" (reference to Christmas song/story)
- The wink: Suggests snowman is alive or magical
- Never explicitly confirmed to be alive
- "You could almost swear. but no, that's not possible. Is it?"
- Leaves question open to interpretation
- Creepy/magical ambiguity
Karma System:
- Help innocent child: Rewarded generously
- Ignore child: Minor consequences (you're busy, understandable)
- Engage then refuse: Severe consequences (raised hopes then crushed them)
- Clear moral lesson: Don't be a Scrooge
- Punishment severity scales with cruelty level
Seasonal/Holiday Theme:
- Snow, snowman, tophat, carrot nose - winter imagery
- "What a Scrooge you are!" - Christmas Carol reference
- Bobsled, black ice - winter hazards
- Fits holiday/Christmas module ecosystem
- Heartwarming or cruel depending on player choice
Comparison to Other Location Events
Frosty vs Kissing Booth:
- Frosty: 100% positive if you help, costs 1 turn, once per day (if encounter triggers)
- Kissing Booth: 62.5% positive outcomes, costs gold (5×level), once per day (guaranteed)
- Frosty is safer but encounter-dependent (50% chance to appear)
- Kissing Booth always available but risky
Frosty vs Village Klutz:
- Frosty: Interactive choices, 100% positive if you help
- Klutz: No interaction, 25% chance free gem, VE-scaled probability
- Frosty requires turn investment
- Klutz is pure luck
Technical Details
Event Weight:
- Uses frosty_test() function for probability
- Returns rawchance setting (default: 50)
- Only triggers if in frostyloc location
- Location Eventhook with custom test function
User Preferences:
- seentoday: Boolean flag (0 = available, 1 = completed today)
- Reset to 0 at newday hook
- Prevents multiple completions per day
Random Outcomes:
- Help: e_rand(1, 3) for three equal outcomes
- Refuse: e_rand(1, 4) for four outcomes
- Ignore: e_rand(1, 4) but only case 1 has consequence (25%)
Frosty the Snowman: where you encounter a sobbing child in the village square standing next to a pile of melted snow, a carrot, some coal chunks, and a tophat, and she begs you to help rebuild her best friend Frosty, and if you have literally any forest turns you should ALWAYS help because all three outcomes (net +1 turn, +1 gem, or 20×level gold) are excellent returns on a 1-turn investment, but if you talk to the child and then refuse to help you get hit by a runaway bobsled for 30% HP loss or lose 40% of your gold through a hole in your purse which is karma's way of saying "don't get a lonely child's hopes up and then crush them you absolute monster." The snowman definitely winks at you when you walk away which implies Frosty is either alive, magical, haunted, or possibly a snow-based eldritch horror, but since the module never confirms this you're left wondering whether you just helped create a sentient snow creature that will return every winter to judge you. The event has a 50% encounter chance per village visit (configurable 5-100%) and resets daily, and the moral framework is clear: helping innocent children is rewarded generously (+2 turns/+1 gem/+200 gold at level 10), ignoring them has minor consequences (25% chance of 10% HP loss from black ice), but engaging then refusing earns you maximum karma punishment (75% chance of bobsled collision, gold purse leak, or spirit flagging). It's a heartwarming Christmas-themed encounter that becomes a moral choice simulator with the punishment severity directly proportional to how much of a Scrooge you decide to be.