The International Space Station and an Attempt at Puzzle Hunt Creation

Running your own ISS puzzle hunt

The core mechanism

Here I’ll describe the puzzle backwards, so that the essential connections are clear. A lot of the specifics will have to be changed for reuse, but the mechanics are reusable.

The package is hidden at a location that can be identified with twelve letters (because there are twelve moon names), in our case “the Campanile”. Then, we found twelve moon-related phrases, where the nth letter of the nth phrase was the same as the nth letter of “THECAMPANILE”. For example, the fifth letter of “THECAMPANILE” is A, so we found “Neil Armstrong”, whose fifth letter is also A. Therefore “NEIL ARMSTRONG” is fifth in the phrase list.

Once you have these twelve ordered phrases, you need to somehow associate them with the twelve moons. We chose to do this by picking twelve books, each of which had the name of a moon in their title. We originally wanted to do this with author’s last names, but while there do exist authors with the last name “Worm”, “Strawberry” et cetera, they weren’t all in the UC Berkeley library system. Even with titles, you might need a moderately large library to get a book with “Sturgeon” in the title. You want to make sure to check these books out of the library, so one of them doesn’t get checked out by someone else before your puzzle hunt. We did so and then shelved them all inside the Engineering library the morning of the party, and only properly returned them via the check out desk after the puzzle hunt had been solved.

After you have these twelve books, you also have twelve library book codes, for example “TR659.8 N48 2017”. We used books that were from an academic library, and thus they used the Library of Congress Classification, which is different from the Dewey decimal system often used for public libraries. This was somewhat advantageous because the LCC had a healthy balance of numbers and letters, and always ended in the year of publication. This gave us three relatively even types of data to encode in a further puzzle: the letters, like “TRN”, the digits, like “659.8 48” and the year, “2017”.

We decided to encode the letters using a list of satellite images that looked like letters, so the above LCC code got images for T, R and N. For the years, we used a mission to the ISS that launched in that year, so the example got “Soyuz MS-06”, which launched in 2017. The rest of the numbers were harder, because they didn’t particularly fall into a clear pattern, just things like “659.8 48”. Sometimes there were two groups, sometimes there were three. Sometimes the groups were one digit long, sometimes they were four. (Plus there were sometimes decimals, which I ended up deciding not to encode.) To solve this, we generated a huge list of semi-random digits by getting precise ISS orbital coordinates over the course of half a day, via the JPL Horizons website. There was one line of coordinates for every minute of the day, for the first twelve hours of the day. This meant that lines could be uniquely referenced by their timestamp, like “11:04”. So to encode the digits in the LCC codes, for example “659”, we would search the coordinates document for “659”, pick one of the found lines, change the relevant digits within the line to a red color, and then use the minute timestamp of that line in the clue for the LCC code.

So for the LCC code “TR659.8 N48 2017”, we have three satellite images (in order), the timestamps “11:04” and “09:05” (in that order) and the mission number “Soyuz MS-06”. How do we present this, along with the fact that they go together in a certain format?

We knew we wanted to use little capsules that people would have to find like easter eggs, so we decided that each clue would have one slip of paper with the encoded information and a formatting line, and then the satellite images would be printed on separate slips and stapled to the former slip (in the order that the letters appear in the LCC code). This little packet would be rolled up inside the capsules.

For the formatting line, we decided to use colored question marks to show where characters would be inserted. So the formatting line for “TR659.8 N48 2017” would be something like “?????.8 ??? ????“. We left the decimal in place unencoded. The mission name “Soyuz MS-06” gets written in red, and the coordinate indices “11:04 09:05” get written in green. But the satellite images are already colored, so for these, instead of using a question mark, we replaced the letters with the earth emoji. Thus the decoded line looked like “🌎🌎???.8 🌎?? ????“.

Now, we could have had just one encoded clue per book, leaving us with 12 capsules, or 24 or 36 if you wanted to have copies so that the players didn’t need to find every single one. But we wanted to make it a teensy bit harder, so instead we had three almost-copies of each clue, where in each copy, we omitted one of the three types of clues. To represent that in the formatting line, we replace the characters with grey X’s. So our example LCC code now has three clues with different formatting representations;

  • XX???.8 X?? ????
  • 🌎🌎XXX.8 🌎XX ????
  • 🌎🌎???.8 🌎?? XXXX

The first type of clue had the colored mission name and timestamp on the same slip as the formatting line. The second type of clue had the colored mission name on the same slip, and the satellite images stapled behind it. The third type of clue had the colored time stamps on the same slip, and the satellite images stapled behind it.

After generating these 36 different clues, we printed the slips and satellite images and stapled them together, being very careful to keep everything correctly collated and ordered. These slips were rolled up and placed inside a pill-bottle type capsule. We also printed off mini flags of the four space agencies’ governing bodies, and used a little strip of metal to stick them inside the capsule. (On the back of the flags, we printed a disclaimer that said, “This object is being used for a puzzle hunt — please do not move it! It will be gone by the end of <date>.”) We partitioned the clues up so that each space agency region had the nine clues for three books in it. We tried not to mix them up, although as long as the participants find enough clues, it doesn’t matter. As a last decorative element, we taped tiny solar panels to the sides of the capsules, to make them more space themed. It turns out that real, tiny solar panels are as cheap as fake, tiny solar panels.

After that, there are two things left; printing the mission briefing booklet, and hiding the capsules. The former I did mostly at home, except for the transparency, which I had made at a local print shop, at which I also bought little binders to hold the paper and protect it from the rain. Hiding the capsules took maybe 90 minutes for one person, since we were using such a wide area, and it was lightly raining. I brought the map and overlay with me to make sure that I was hiding everything within the bounds of the colored regions, and so that I hid capsules with the right flag in the right region.


The main problem we encountered when we actually ran this event was that the capsules took too long to find. Physically finding them was the one thing we didn’t get to playtest. The whole puzzle took about four hours, with much of that being people trying to find more capsules to complete the clues. This caused a lot of attrition, though by the end there was still a healthy number of solvers. This problem could be ameliorated by using a smaller search area, making the capsules less hidden, or having more clue redundancy. (You can’t reduce the number of LCC codes that need to be encoded, because you need twelve books to match the twelve moons.)

The second main problem was confusion about what the teams meant. The purpose of the teams was to efficiently split participants across the search area, and to increase the probability that they found at least 2 of the 3 capsules for each book. Explicitly saying “you should cooperate” in the briefing was not enough to break the implicit assumption that the teams were somehow competing, or to give participants the affordance for cooperating by default. For example, much time went by before anyone used the shared chat to share any discovered capsule clues, despite the fact that many teams had found them.

The tiny solar panels turned out to be extremely fragile, which didn’t matter except that it looked less cool and got little silicon crystal flakes on things. Of the 72 solar panels used, only 3 returned to my house unbroken.

The story about a lost resupply payload to the ISS could also benefit from further development.

The event itself got postponed twice, once because of smokey conditions in Berkeley, and once because the semester hadn’t started yet, so the library was closed (which could have been avoided if I had thought to check).

The rest of the details went quite well. The problem we were most worried about beforehand is that no one would have the “aha” moment about the twelve moons. It did takes several minutes, but people were not yet feeling tired and stuck. Whether this reproduces depends on the group size and constituents.

Checklist of steps


  • Pick a payload hiding location with 12 letters in its name.
  • Find a map of the surrounding area such that overlaying the ISS on it yields a reasonable search area.
  • Find 12 moon phrases that encode the location name as specified above.
  • Check out 12 books that encode the moon names through their title, author name or some other identifiable way.
  • Encode the book’s LCC codes using the satellite images, the JPL coordinates and the mission names.
  • Format this information with whichever level of redundancy you prefer.
  • Acquire 36 (or however many) capsules and twice as many tiny solar panels.


  • Print out the 12 phrases onto cards and put them into the books. I used cut-out rectangles from an astronomy book to emphasize the theme.
  • Acquire four binders to put the briefing info into.
  • Print four copies of the ISS overlays onto transparent sheets.
  • Print four copies of the map, the ISS coordinates, and the satellite images.
  • Put all the above in the binder.
  • Also print the text clues and the satellite images clues.
  • Cut up the clue slips and staple them together.
  • Print out the country flags and disclaimers. Laminate or tape them up so they’re waterproof.
  • Match the clues with flags and put them all in capsules.
  • Decorate the capsules with solar panels.
  • Prepare the payload prize. I filled a box with food and wrapped it in a space blanket.


  • A couple hours before the event starts, go around the venue and hide the capsules.
  • Just before the event begins, be at the meet-up spot with the four briefing books. After enough people have arrived, give a verbal orientation and instructions, partition the participants into four groups, and give each group a briefing packet. Set up a common channel of communication for everyone.
  • Shelve the 12 books before anyone figures out that the capsule codes are book numbers. Do this as late as you are comfortable with, so that no other library users take or move the books.
  • Hide the payload in the final location. Also do this as late as you are comfortable with, so the package does not get taken or reported or opened by curious passers-by.


  • Return the 12 books to the library.
  • Pick up the remaining unfound capsules so you haven’t littered.


I hope you enjoyed the puzzle! If you have any questions, feel free to contact me through this blog or on twitter.

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s