Christmas mission 2025

It's time for the obligatory annual Christmas Mission post!

This year it was a grimdark Christmas, because the mission theme was Warhammer 40,000.  Well, sort of - the mission was another Murdle, but this time set at a Warhammer tournament.  The best player has been found dead and it was my son's job to figure out who did it, how, and why.  The suspects included the game store owner, a delusional player, an overly serious cosplayer, and someone who is totally not a Tyranid in a human suit.

The format was the same as usual.  I printed out an introduction to put in the Christmas tree and hid the clues in various places around the house, each with an encoded message leading to the next.  I toned the codes down a little bit this year.  Last year, he got a little frustrated with some of them, which makes the whole thing less fun than it should be.

For some of them, I stayed with what we did last year and used the revolutionary-era style decoder disk that we got when we went to Gettysburg a few years ago.  It's just a little disk with a rotating center and the alphabet written on both parts, so you just turn it to two corresponding values to get a simple substitution cypher.  Nothing fancy.

For some of the other clues, I got a little creative-ish and introduced him to the concept of typing things out on a non-smart phone.  You know, the good old "code" of typing out numbers on your 12-key phone to spell words.  Thus we got codes like "7 777 444 66 8 33 777".  I did have to add the spaces between letters because otherwise it's ambiguous whether, for example, "7777" is supposed to be "S", "PR", "QQ" (unlikely), or "RP".  I suppose I could have made him figure it out, but again, I didn't want to turn it into an ordeal and suck all the fun out of it.

To go with the "phone" theme, I formatted some of the clues in the for of a text conversation.  Again, nothing fancy - just a couple of back-and-forth messages each.  Just enough to add a little flavor.  

As we did last year, my wife and I teamed up on it.  We came up with the plot together.  She wrote the puzzle and came up with the clues for it.  I did the codes and distributed the clues.  All in all, it worked out pretty well and our son was happy enough with it.

Here's a PDF of the full mission, if you're interested.  I always break it up into multiple pages so he can switch back and forth, and cut up the clues into partial sheets.  So while it might be weird in digital form, it works in analog.

And while I'm at it, here's the little Python script I wrote to encode the clues for me.  And by "wrote", I mean I let the Copilot plugin for Vim write it.  Or at least it wrote the functions that do all the actual work.  And I didn't really even need to prompt it - the autocomplete feature pretty much just generated it all automatically.  Nice!

You can reply to this entry by leaving a comment below. This entry accepts Pingbacks from other blogs. You can follow comments on this entry by subscribing to the RSS feed.

Add your comments #

A comment body is required. No HTML code allowed. URLs starting with http:// or ftp:// will be automatically converted to hyperlinks.