Holiday Text Filters

Four seasonal modules that transform ALL game text on specific calendar dates using text munging hooks. No gameplay changes—purely cosmetic linguistic chaos. Modules: (1) ALL CAPS Day (Oct 22, sixf00t4), (2) April Fools (Apr 1, JT Traub, Swedish Chef), (3) LOLCat Day (Aug 8, Danilo Stern-Sapad), (4) Talk Like A Pirate Day (Sept 19, JT Traub/Danilo). Admin-configurable activation dates. Affects ALL text: combat, navigation, commentary, news, everything. Cannot be disabled by individual players. Prepare for linguistic absurdity.

How Holiday Filters Work

Technical Implementation:

  • Hook: "holiday" - fires for ALL text output before display
  • Date Check: Compares current date (mm-dd) to activation setting
  • If match: Pass ALL game text through munge() function
  • Munge function: Performs regex/string replacements on text
  • Returns transformed text for display
  • Server-wide: Affects ALL players simultaneously

Scope:

  • Everything: Combat text, navigation, commentary, news, descriptions, dialogue, items, buffs, locations, NPCs
  • Preserves: Color codes (backtick formatting), line breaks, special characters
  • Method: Replace color codes with placeholders → transform text → restore color codes
  • Example: `` `2green text`` → [G]GREEN TEXT → `` `2GREEN TEXT`` (preserves `2)

Cannot Opt Out:

  • No user preference to disable
  • Logged-in players ALL affected
  • Only way to avoid: Don't play on holiday date
  • Admins can disable module or change activation date

ALL CAPS Day (October 22)

Module: holiday_allcaps.php

Author: sixf00t4, modified for HogwartsLive

Activation: Default October 22 (configurable)

Inspiration: CAPS LOCK DAY

Transformation:

  • Converts ALL text to UPPERCASE
  • Preserves color codes, special commands (/me, `n, `b, etc.)
  • That's it. No fancy replacements. JUST CAPS.

Example Transformations:

  • "You attack the troll" → "YOU ATTACK THE TROLL"
  • "Welcome to Hogwarts Live!" → "WELCOME TO HOGWARTS LIVE!"
  • "This seems unnecessarily loud" → "THIS SEEMS UNNECESSARILY LOUD"

Purpose:

  • Celebrates CAPS LOCK DAY internet holiday
  • Simulates everyone YELLING ALL THE TIME
  • Mildly annoying for 24 hours
  • Extremely funny for first 10 minutes, then exhausting

April Fools (April 1)

Module: holiday_fools.php

Activation: Default April 1 (configurable)

Language: Swedish Chef (Muppets)

Transformation Rules:

  • ". " → ". Bork bork. " (signature Swedish Chef phrase)
  • ", " → ", bork, "
  • " h" → " hoor"
  • " v" → " veer"
  • "g " → "gen "
  • " p" → " pere"
  • " qu" → " quee"
  • "n " → "nen "
  • "e " → "eer "
  • "s " → "ses "

Example Transformations:

  • "You have slain the troll. You gain gold." → "Yoo havee slainen ther hooroolleen. Bork bork. Yoo gainen golden. Bork bork."
  • "The village is peaceful today." → "Ther veerllagee is pereeacefulleen today."
  • "Attack with your weapon, quickly!" → "Attack weeth yoor weeapornen, queeeeckly!"

Purpose:

  • April Fools Day prank
  • References Muppets Swedish Chef character
  • Barely comprehensible text for comedic effect
  • Bork bork.

LOLCat Day (August 8)

Module: holiday_lolcat.php

Author: Danilo Stern-Sapad (site owner)

Activation: Default August 8 (configurable)

Language: LOLcat/LOLspeak (I Can Has Cheezburger meme)

Comprehensive Transformation (208 lines of regex!):

  • "can i please have a" → "i can has" (signature phrase)
  • "the" → "teh" (classic typo)
  • "is" → "ar teh" or "ar" or "is" (random variants)
  • "you" → "u" or "yu" or "yoo" or "yous" (multiple variants)
  • "your" → "ur" or "yur" or "yoar" or "yore"
  • "are" → "r" or "is" or "ar"
  • "love" → "luv" or "lub" or "loves" or "lubs"
  • "for" → "4" or "fr" or "foar" or "fur"
  • "thank" → "fank" or "tank" or "thx" or "thnx"
  • "really" → "rily" or "rilly" or "rly"
  • "world" → "wurrld" or "whirld" or "wrld" or "wurld"
  • "what" → "wut" or "whut"
  • "my" → "muh" or "mah"
  • "like" → "liek" or "likes"
  • "ok/okay" → "'k" or "kay"
  • "more" → "moar"
  • "please" → "eez"
  • "seriously" → "srsly"
  • "just" → "jus"
  • "now" → "nao"
  • "year" → "yer"
  • "first" → "furst"
  • "pretty" → "pritee"
  • "cat" → "kat"
  • "cool" → "kewl"
  • "bye" → "bai" (or "bai bai" → "kthxbye")
  • "hello/hi/hey/yo" → "oh hai" or "hay"
  • "ing" endings → "in" or "ins"
  • "er" endings → "r"
  • "s" endings → "z"
  • "y" endings → "eh"
  • Remove apostrophes entirely
  • THEN: UPPERCASE EVERYTHING

Special Replacements:

  • "Headmaster Danilo" → "teh katz meow" (self-deprecating humor)
  • "God" → "kewl kat"
  • "Goddess" → "pritee kat"
  • "Firstyearboy" → "kitteh boi"
  • "Firstyeargirl" → "kitteh gurl"
  • "fuck" → "purr"
  • "bitch" → "queen"

Example Transformations:

  • "You attack the troll with your weapon" → "YOO ATTAK TEH TRULL WIF UR WEPUN"
  • "Can I please have a healing potion?" → "I CAN HAS HEELINZ PUSHUN?"
  • "Hello! How are you today?" → "OH HAI! HOW AR YOO 2DAY?"
  • "Thank you for the gold, my friend!" → "THNX FUR TEH GULD, MAH FREND!"
  • "The cat is really cool!" → "TEH KAT AR TEH RILLY KEWL!"
  • "I love this game seriously" → "IM LUB DIS GAYM SRSLY"
  • "Goodbye for now, see you later" → "BAI FUR NAO, SEE YOO L8R"

Random Variants:

  • Uses e_rand() to select from multiple replacement options
  • Same sentence can transform differently on different pages
  • Adds variety/unpredictability to transformations
  • Example: "you" might become "u", "yu", "yoo", or "yous" randomly

Purpose:

  • Celebrates LOLcat/I Can Has Cheezburger internet meme culture
  • Most complex transformation (208 lines of regex!)
  • Completely destroys readability for 24 hours
  • Extremely detailed implementation shows Danilo had WAY too much fun writing this

Talk Like A Pirate Day (September 19)

Module: holiday_pirate.php

Activation: Default September 19 (configurable)

Inspiration: International Talk Like A Pirate Day

Transformation Rules:

  • "you" → "ye"
  • "your" → "yer"
  • "the " → "th' " (with space)
  • "It's/it's" → "It be/it be"
  • "ers " → "erz "
  • "for" → "fer"
  • "my " → "me "
  • " of " → " o' "
  • " is " → " be "
  • " am " → " be "
  • " says " → " sez "
  • " and " → " an' "
  • " to " → " t' "
  • "ing " endings → "in' " (sailin', fightin', etc.)
  • " he/she " → " that scalliwag "
  • "hello" → "ahoy"
  • "money/gold" → "pieces o' eight"

Random Additions (25% chance each):

  • "!" → ", har!" (25% chance)
  • ". " → ", arr. " (25% chance)
  • ", " → ", matey, " (25% chance)
  • ". " → ". Avast, " (25% chance)

Example Transformations:

  • "You attack the troll with your weapon!" → "Ye attack th' troll with yer weapon, har!"
  • "Hello, my friend. How are you today?" → "Ahoy, me friend, matey. How be ye today?"
  • "I am going to the village for gold." → "I be goin' t' th' village fer pieces o' eight, arr."
  • "The warrior says she is fighting the dragon!" → "Th' warrior sez that scalliwag be fightin' th' dragon, har!"
  • "It's a beautiful day for sailing!" → "It be a beautiful day fer sailin', har!"

Purpose:

  • Celebrates real-world International Talk Like A Pirate Day (Sept 19)
  • Pirates are thematically appropriate for fantasy RPG
  • More readable than Swedish Chef or LOLcat
  • Arr, matey!

Admin Configuration

All Modules Have Same Settings:

  • activate: Activation date in mm-dd format (e.g., "10-22", "4-1", "8-8", "9-19")
  • Admins can change date to any calendar day
  • Can run multiple holidays simultaneously (though NOT recommended - text becomes incomprehensible)
  • Can disable by setting impossible date (e.g., "13-32")

Installation:

  • Core modules (included with LoGD/HogwartsLive)
  • Hook: "holiday" - all modules use same hook
  • Multiple holiday modules can coexist
  • If dates overlap, transformations STACK (text becomes gibberish)

Testing:

  • Change activation date to today (mm-dd)
  • Reload page → text immediately transformed
  • Change back to original date when testing complete
  • No server restart required (date check happens per page load)

Player Strategy

You Cannot Escape:

  • No opt-out setting
  • No preference to disable
  • No workaround (short of not playing)
  • Embrace the chaos

Communication Tips:

  • Commentary/chat ALSO transformed (all text affected)
  • Keep messages simple (complex sentences become incomprehensible)
  • Expect typos/confusion from other players
  • Avoid important strategic discussions on holiday dates
  • Use Owls (private messages) - also transformed, but at least private confusion

Combat Strategy:

  • Combat text transformed but MECHANICS unchanged
  • Can still fight normally, just harder to read results
  • Buff/debuff names transformed ("`QUnselfishness" → various spellings)
  • Enemy names transformed ("Troll" → "TRULL" on LOLcat day)
  • No gameplay impact, purely cosmetic

Navigation:

  • Navigation links ALSO transformed
  • Example: "Return to Village" → "RETURN TO VILLAGE" (CAPS)
  • Example: "Forest" → "Forrest" or "Furrest" (pirate/LOLcat)
  • Links still work (href unchanged, only display text affected)
  • Memorize link positions if text too confusing

Survival:

  • It's only 24 hours
  • Laugh at the absurdity
  • Take screenshots for posterity
  • Complain in commentary (which is also transformed, creating recursive chaos)
  • Plan important tasks for non-holiday dates
  • Appreciate the effort (especially LOLcat's 208 lines of regex)

Technical Notes

Color Code Preservation:

  • All modules preserve backtick color codes (`2, `^, `%, etc.)
  • Method: Replace with placeholders ([N], [B], [G], etc.) → transform → restore
  • Ensures formatting survives text munging
  • Example: `` `2Green text`` → [G]GREEN TEXT → `` `2GREEN TEXT``

Special Character Preservation:

  • /me, `n (newline), `b (bold), `c (center), `i (italic), etc.
  • Converted to placeholders before transformation
  • Restored after transformation
  • Prevents breaking formatting codes

Performance:

  • Runs on EVERY page load for EVERY player
  • Regex-heavy (especially LOLcat with 208 lines)
  • Minor performance impact (acceptable for 24-hour event)
  • Server load increases slightly on holiday dates

Stacking Holidays:

  • If multiple holidays active (overlapping dates): Transformations STACK
  • Example: CAPS + Pirate = "YE ATTACK TH' TROLL, ARR, MATEY!"
  • Example: LOLcat + Swedish Chef = complete gibberish (NOT recommended)
  • Admin best practice: Only one holiday active at a time

History & Cultural Context

ALL CAPS Day:

  • Internet holiday celebrating CAPS LOCK key
  • Origin: Derek Arnold's CAPS LOCK DAY (2000)
  • Celebrates YELLING ON THE INTERNET
  • October 22 or June 28 (depending on tradition)

April Fools Day:

  • Traditional prank day (April 1)
  • Swedish Chef from The Muppet Show (1975)
  • Character speaks mock Swedish with "Bork bork bork" catchphrase
  • Perfect for confusing text transformation prank

LOLCat/LOLspeak:

  • Internet meme from I Can Has Cheezburger (2007)
  • Cat photos with intentionally misspelled captions
  • Signature phrases: "I can has", "Oh hai", "kthxbye"
  • Peak popularity: 2007-2012
  • HogwartsLive implementation (2009-ish) shows dedication to meme culture

Talk Like A Pirate Day:

  • Created by John Baur and Mark Summers (1995)
  • Popularized by Dave Barry column (2002)
  • September 19 annually
  • Widely celebrated internet holiday
  • Arr, matey! Avast! Pieces o' eight!

Limitations

  • No Opt-Out: Players cannot disable (server-wide effect)
  • 24-Hour Duration: Lasts entire calendar day (00:00-23:59 server time)
  • Readability: Some transformations (Swedish Chef, LOLcat) severely impact readability
  • Communication Difficulty: Chat/commentary transformed, making coordination harder
  • Stacking Chaos: Multiple holidays simultaneously = incomprehensible text
  • Performance Cost: Regex on every page load (minor but measurable)
  • No Granularity: Cannot exclude specific text (e.g., combat vs. navigation)
  • Cultural Specificity: English-language memes may confuse non-English speakers
  • Meme Dated: LOLcat peaked 2007-2012 (still funny, but "vintage")

Holiday Text Filters: where the entire game transforms into a linguistic nightmare for 24 hours because someone thought it would be funny to turn every sentence into CAPS, Swedish Chef, LOLcat, or pirate speak. The LOLcat module (holiday_lolcat.php) contains 208 lines of increasingly desperate regex attempting to capture every possible variant of internet cat speak, including the spectacular decision to replace "Headmaster Danilo" with "teh katz meow" (self-awareness: 100). April Fools gives you Swedish Chef ("Bork bork. Yoo gainen golden. Bork bork."), Pirate Day makes everyone sound like they're auditioning for Pirates of the Caribbean ("Ye attack th' troll with yer weapon, har!"), and ALL CAPS DAY JUST MAKES EVERYTHING LOUD BECAUSE SUBTLETY IS FOR COWARDS. Players cannot opt out. There is no escape. Only acceptance. And screenshots. So many screenshots. Arr. Bork. I CAN HAS CHEEZBURGER? Kthxbye.