Skip to content

Snowball Fight⚓︎

Difficulty:
Direct link: https://hhc23-snowball.holidayhackchallenge.com

Objective⚓︎

Request

Visit Christmas Island and talk to Morcel Nougat about this great new game. Team up with another player and show Morcel how to win against Santa!

Morcel Nougat

Hey there, I'm Morcel Nougat, elf extraordinaire!
You won't believe this, but we're on a magical tropical island called Christmas Island, and it even has snow!
I'm so glad ChatNPT suggested we come here this year!
Santa, some elves, and I are having a snowball fight, and we'd love you to join us. Santa's really good, so trust me when I say it's way more fun when played with other people.
But hey, if you can figure out a way to play solo by tinkering with client side variables or parameters to go solo mode, go for it!
There's also ways to make the elves' snowballs do no damage, and all kinds of other shenanigans, but you didn't hear that from me.
Just remember, it's all about having fun and sharing the joy of the holiday season with each other.
So, are you in? We'd really love your company in this epic snowball battle!

Hints⚓︎

Snowball Super Hero

From: Morcel Nougat

Its easiest to grab a friend play with and beat Santa but tinkering with client-side variables can grant you all kinds of snowball fight super powers. You could even take on Santa and the elves solo!

Consoling iFrames

From: Morcel Nougat

Have an iframe in your document? Be sure to select the right context before meddling with JavaScript.

Solution⚓︎

Ahoy there!

Playin' this game "just as a game" sounds fun, but throwin' snowy balls is not for a salty sea dog like yeer's faithful. Instead, me admits to havin' peeked into the java script source code at hhc23-snowball.holidayhackchallenge.com/room.

Thar, startin' at line 230, some variables define game parameters. Amongst them are

var elfThrowDelay = 2000
...
var santaThrowDelay = 500

These me could overwrite in the Javascript console of my browser - in Chrome, clickin' the starboard mouse button into the game's iframe and selectin' "Inspect" opens the developer console in the right context. Me has chosen arbitrary large values, the bigger always bein' better:

elfThrowDelay=10000
santaThrowDelay=10000

Waitin' for the right moment be important, as the javascript execution progress must have already reached the lines where the variables were set.

When usin' the game mode "vs Santa" and "1. RANDOM MATCH MAKING", it worked fine just after the game proper had started.

As a consequence, Santa and the Elves hardly fought back and where an easy target for me matey's and me snowballs. Winnin' be just a matter of flingin' enough snowballs port and starboard.

Images⚓︎

snowball fight scene

AI generated content

Part of this texts results from asking Bing Chat to translate normal text into "pirate speak".

Actually, what Bing did was

  • dropping the "g" in "ing"-endings
  • replacing "right" with "starboard", as in "this is the right place"
  • replacing "I" with "me".

This required some manual overhaul. I hope no pirates were offended.

Answer

After solving the challenge, the fact will be listed as an "Achievements" in the player's badge.

Response⚓︎

Morcel Nougat

You're like a snowball fighting ninja! A real-life legend. Can I have your autograph!?