I designed a puzzle for family for Christmas! This was designed to be solved in-person, but blog readers can solve it too (mostly – some pieces weren’t particularly web-friendly). I also wrote my notes below about how I designed it and what I learned. But first:

The Puzzle

On Christmas morning, you wake up and are informed that “sixteen woodland animals need your help to decode a secret message”. The animals had all been blown overnight by a winter storm to different corners of the house, and now you have to go searching for them.

They are all hidden in little boxes that look like this:

As you discover boxes around the house, you notice that they are all marked with a bunch of blanks. Inside the boxes are adorable woodland animals, each with a little bio. You are told that the missing word is somehow related to the location in the house where the box was found, and the names and bios of the characters also might be related.

  1. (by the Instant Pot): S _ _ _
    Name: Laidalmi - 🐿️
    (n) Not your typical meat-and-potatoes kind of gal
  2. (atop a Post-It): _ _ _ E
    Name: Riton - 🐻
    (n) Never forgets
  3. (in the toolbox, near the laser level and chalk line): _ _ A _ _ _ _
    Name: Stretch - 🐇
    (v) Can always be counted on
  4. (on the range hood): _ _ M _
    Name: Spiro - 🦊
    (n) Smells bad
  5. (next to the litterbox): _ _ _ _ Y
    Name: Midnight - 🦌
    (n) Lands on his feet
  6. (at the entrance to the hot tub): _ _ _ L
    Name: Watafux - 🦊
    (n) Dives straight in
  7. (on the masonry hearth): _ _ _ N _
    Name: Obsidia - 🦊
    (n) Chases down her quarry
  8. (on a head-height hanger in the entryway): _ _ Y
    Name: Lox - 🦊
    (n) High in openness
  9. (stuck to the doorbell): _ _ Z _
    Name: Xerxes - 🐿️
    (v) From the school of hard knocks (and kind of dyslexic)
  10. (hidden behind a couch cushion): R _ _ _
    Name: Dianachare - 🐴
    (v) A daytime napper
  11. (on the entryway hat rack): _ _ R _ _
    Name: Wynnie - 🐴
    (n) Never loses her wallet
  12. (in the oven): _ A _ _
    Name: Oscar - 🐻
    (v) Cookie monster
  13. (on the floor, atop a lamp cord in the middle of the room): _ _ I _
    Name: Lightfoot - 🦌
    (v) Low dexterity
  14. (balanced atop some spare toothbrushes): _ R _ _ _ _ _
    Name: Crest - 🦌
    (n) Just don’t rub him the wrong way
  15. (in the fireplace): _ M _ _ _ _ _
    Name: Smokey - 🐻
    (v) Hates forest fires
  16. (in the garden leaning on a small wooden pole in the ground): _ _ A _ _
    Name: Tensonflur - 🐇
    (n) Kind of a stick in the mud

If you want to solve this properly, then before proceeding, take your best guess at filling in the missing words.

Now, the animals are known to have different hobbies and vices. In fact, there are 4 animals who have each of 4 hobbies/vices.

Help organize them.

Done? Now figure out the secret message!

Spoilers below

Don’t read on until you’re ready to be spoiled!


I’ve been playing NYT Connections every day, and so was thinking about a riff on that. My idea started from wanting to do a “hidden Connections” - somehow find or discover 16 words, and then connect them together like the Connections game.

From my earliest notes:

“Qr card connections. You find 16 QR codes throughout the house and they are 4 groups of 4. Each group leads you to a further puzzle.”

Once I decided that was the core of the puzzle, I then had to fill out the design with a puzzle to finish in under an hour, be good for a group of six, and fit into the family house. The obvious next steps were to figure out the lead-up to the Connections (how do you present solvers with 16 keywords?) and the finish (how do you use the fact of making 4 Connections to deliver a satisfying conclusion to the puzzle?)

For the lead-up, having an item hunt was an obvious idea. I hide 16 objects around the house. I’ve done item hunts before, and it sucks to have so many hidden objects that you can’t track them all, but 16 seemed just right: few enough to keep track of while still being numerous enough that everyone could find some.

Just hiding words seemed boring. What could I hide that led to words? I had the idea that it would be cute and clever if the words were somehow clued differently than they were used in the puzzle, e.g., REST could be a place you sit on the couch or it could be an indication on a sheet of music. I was tickled by the idea that I might be able to come up with 16 household-related words, then use them totally differently in the Connections. One of my principles for puzzle design is that double meanings can make for great aha moments, so I like to use them liberally.

This seemed like a good idea but potentially hard to execute - how many household words with double meanings are there? Turns out, fortunately for the puzzle, that there are quite a few. I started brainstorming and cranked out 10 or 11 categories each with several items, and was able to trim it down to 4x4 over the course of a couple of hours.

Here was my household-words brainstorm, chock-full of (slightly embarrassingly bad) ideas:


And how to clue those household words? I decided it could work to attach some findable thing to the associated household object. It’s Christmas so I decided to hide small pre-wrapped jewelry boxes I picked up on Amazon.

I apply a puzzle design principle, namely what I call “evidence efficiency”: if solvers have to do some work to gather info on some step, then that info must be used in a later step. In this case, the info in question is the location of hidden boxes - they’re searching in first step for the boxes; once they find them we need a way for them to use that info of where the boxes were hidden. This principle constrains how to hide the keywords as well as what to do next. Consider the following examples for a box hidden in the oven:

  • When you open the box, you see the keyword BAKE. (This is not evidence-efficient, since the fact of it being found in the oven can be ignored by the solver)
  • There is nothing relevant in the box. You have to figure out that the word BAKE is being clued simply by virtue of it being found in the oven. (This is evidence-efficient, but probably too difficult.)
  • The box contains, e.g., _ _ K _: we give you one letter, but you have to figure out the rest from context. (This is evidence-efficient: you still need the info that it was found in the oven, but it is well-hinted enough that it is solvable.)

Secondly, the evidence-efficiency principle also applies to the box contents:

  • Taking the step to open and search a box counts as gathering info (even if it is an easy step to take) and should thus result in some later-useful evidence.
  • We know that the solvers’ next step is to group boxes into Connections, which is another form of gathering info (figuring out which words are connected and thus which boxes); we should make use of that info somehow, and ideally it means combining the contents of the boxes.

So this evidence-efficiency principle, applied three times, shakes out into the rough puzzle design I ended up using: Box hiding locations are clues to hidden words; the words are clues to connections between boxes; the connections are clues for how to combine the box contents.


Once I had the rough structure, I wanted the puzzle to make some sense, and that meant imposing some kind of plot - perhaps a mystery to resolve. I thought of doing a murder mystery, and I spent a while on trying to figure out how to make use of the connections. At this point I had already come up with the hidden object locations as well as the four connection themes (MUSICAL NOTATION, HIGH ON DRUGS, ANGRY and BETTING). I realized that the connection themes could all be character traits or hobbies, so I could maybe associate characters with the boxes, and then somehow clue, in the murder mystery, that the culprit played music or liked betting or whatever.

But I couldn’t make it work. Connections gives you some info about the boxes, but the solvers would need additional info to choose one box uniquely. Notably, Connections does not impose any order among the boxes in each group (so you can’t just somehow clue that the culprit was the first character who likes betting, you have to figure out how to indicate which character).

I thought about writing individual bios for each character and then somehow having the solvers piece it together based on doing a lot of between-the-lines reading for clues like in a mystery novel, but solving that seemed laborious to write and solve – not an appealing group activity. (Also, a murder seemed a bit too macabre for Christmas.)

In the end I decided that the boxes would contain cute woodland animal characters (because I found a set of such figurines that would fit in the boxes), and the characters would be carrying separate pieces of a message. Why are they carrying separate pieces of a message? Because they’re “United Nature” delegates coming together for a conference. Why is the message mixed up? Because a storm blew in overnight and scattered the delegates, so you have been called in to help sort things out. (The plot doesn’t have to be perfect, it just has to help motivate your solvers :P)

I decided to allow the letters I supplied in the missing words step do double duty: first to clue the missing word, and secondly to compose the message. I didn’t like the idea of having each character hold onto two separate letters – it seemed confusing, and since I hadn’t yet chosen which letter to supply from each missing word, I figured I had enough slack to be able to make a cute 16 letter message by picking a letter from each word, given that I could control the order of the messages.

After quite a lot of fiddling, the 16-letter message I chose was: MERRY RAINY LA ZMAS (it had been raining quite a lot in Los Angeles on the run-up to Christmas this year.) None of my words had an X in them, hence deciding to use a Z (from BUZZ) instead. (As you’ll see below, this wasn’t a great decision, but I had already spent too many hours on the puzzle and it needed to be done!)

I clued it by writing the message using emoji in place of letters; the emoji were derived from the Connections themes. I added one additional clue at the bottom of the message sheet, instructing solvers to order the characters by size. (If I had more time, I would have found another way to clue that information instead of telling them directly.)


I wanted my puzzle to be pretty easy. From prior experience for casual solvers, if I make it too hard, people get frustrated and lose interest. This was meant to fit into a potentially-hectic Christmas morning. Still, it shouldn’t be so easy that one person could do it all on their own – I wanted everyone to be able to participate in trying to solve it. And I would be around to give hints as solvers were working on it, so I could afford to take some risks with difficult sub-puzzles.

For the object find, most boxes were out in the open or just nestled behind/under one thing. Some were fairly well camouflaged. I tracked the location of each box so I would be able to hint the solvers where necessary.

I was most worried about the word completion. It seemed too hard to expect people to come up with hidden words without any clues – e.g., maybe BAKE is guessable when the box is found in an oven, but if a box was found near a broom, can they reliably come up with SWEEP (and know that it’s correct) without additional information? I didn’t think so. I needed at least some way to clue whether it was SWEEP or BROOM or CLEAN or STICK … even giving a 5-letter blank would be too ambiguous. So I decided on supplying a hidden word with one letter filled in. That seems “clear enough if you got it right” without giving it away. Even this seemed like it might be a bit too hard, so I decided to add another hint: inside the boxes I put information about a fictional character, including a name and one-line bio. The name and bio were clues to the missing word somehow: a fox named “Lox” (sounds like “locks”) had the bio “High in openness”, had been found in the entry hallway, and his word was KEY.

I thought my Connections would be easy enough, but just to check, I sent it to some friends who I knew did such puzzles regularly. They found it solvable without being too obvious, which was what I was hoping for. And the decoding step I knew would be easy.

How it went & what I learned

Designing the puzzle took the following (very roughly remembered) chunks of time:

  • 2-3 hours brainstorming & expanding on the core idea
  • 1-2 hours brainstorming household objects with dual meanings
  • 2 hours designing the Connections - had to go back to brainstorming household items a few times to find better words to make cleaner 4x4 groups
  • 2-3 hours writing the “backstory” - struggled with writing a murder mystery for a while before scrapping it
  • 1 hour writing the bios and names for each animal
  • 1 hour writing python/html code to ‘mail merge’ all the animals into a printable sheet for inserting into the boxes
  • 2 hours filling boxes, writing the blanks on the back and hiding them in the house

Total: about 12 hours.

On the solvers’ side, the puzzle took about 40 minutes total for 6 people: 15-20 on the object find, about 10-15 on the missing words, and then the remaining <10 minutes on Connections and message decoding.

I hid most of the boxes on Christmas Eve after people started to go to sleep. I sent a photo of one of the boxes as I did this, saying: “Something mysterious is causing little packages like this to appear around the house. If you discover them, feel free to note their location but don’t open them (move them only if they’re in your way) until tomorrow’s event.”

The one in the oven wasn’t noticed until well after someone had started to preheat the oven for breakfast. They came to me in a panic, realizing they had accidentally baked a package. I slightly regretted putting that one in the oven beforehand, but I also had thought through it - I had thought “if they bake it under 400F, it will probably be fine, it’s just paper and a little plastic”. (And it was indeed fine.) In retrospect I should have waited to hide that one until after breakfast.

The rest of the object find went okay - I did hint them several times about which rooms still had objects to find. They took a long time to find a camouflaged blue box next to a blue kitty litter bin, and a long time to find one hidden under a couch cushion. They wasted several minutes looking in the bathroom for a package that I didn’t realize had already been found.

I told the solvers to take pictures of where they found each box since it would be helpful for the word completion. And it was helpful, but this was still the step with the most confusion and poor execution. The main struggle was the disconnect between the object find and the word completions: It was a clever idea to have the answers tied to the locations, but as a group activity, it makes sense to first collect the hidden items and then guess the words as a group. But the group didn’t collectively remember where each object was found – usually only one person had been involved in each found object, and so they had to show each other the photos they took of the box in its location, and sometimes I had to remind them of where the box was hidden, and generally it was messy.

I decided to give the solvers direct feedback for each word as they guessed them - so once they guessed BAKE I said “Yes, that’s correct.” I wasn’t sure this was necessary, but it did make things go faster because of not second guessing their correct solves. The hardest words were STAKE and SMOLDER; most of the others were solved fairly quickly.

Connections was pleasantly self evident. Some of the solvers hadn’t heard of it, but the ones that had were able to explain it to the others, and everyone participated in that phase of the solve. I gave them feedback when they made a correct grouping of four words as well as when they deduced the connection between them.

One of the solvers was very quick at figuring out the basic principle of how to do the decode: they realized that the provided letters were the ones to insert. Another solver was able to figure out which emoji mapped to which connection group. The decode went flawlessly and quickly.

Main points of improvement & feedback:

  • Solvers generally enjoyed the puzzle and found it fun! Yay!
  • “The plot did not make sense. Why were animals hiding?” I could have fleshed this out better, but realistically I am fine with what I did given the time I had.
  • “Why did they have names?” Nobody realized that the names were associated with the missing word, since they were quite obscure. I also screwed up a few (most notably, I used “Oscar” for the BAKE because I had confused Oscar the Grouch and the Cookie Monster. Oops.)
  • Xerxes was the character who held the Z of BUZZ, but putting a Z in that location didn’t quite make sense with the message (MERRY RAINY LA ZMAS); it should have been an X. I couldn’t think of a way to fix this so I just let it be, and clued it with the character name, plus he was described as “slightly dyslexic” in his bio. This was definitely bad puzzle design. I didn’t expect it to be a blocking problem - it was just an inconsistency that made the puzzle much less clean than it should have been. It was also a bit ableist; I can surely do better next time.
  • I should have hidden the oven package right before starting the hunt instead of night before!