Solution to How to Run a Puzzlehunt

Back to Puzzle

Answer: ORSINO

by Brian Chen

Solvers are presented with a git .diff file, a file that represents a set of changes to be applied to a Git repository.

There are a few ways to figure out what to do with this .diff. The most reliable is to use the very suspicious first line, featuring a conspicuous airplane emoji:

This is a Django app for running puzzlehunts, written by several members of ✈

Using this to look into Galactic Trendsetters’ past hunts or simply Googling this line should lead solvers to the codebase ✈✈✈ Galactic Trendsetters ✈✈✈ used to run several puzzlehunts, gph-site. After it became clear that we wouldn’t be able to run Galactic Puzzle Hunt 2020, several groups asked us for advice about how to run a puzzlehunt and, in particular, host one on a website, so we open-sourced the website, and between then and Mystery Hunt at least three puzzlehunts used parts of this codebase (more on that later).

In any case, for this puzzle, the most notable features of this codebase are its Django fixtures (a way to include sample data) and sample hunt, both of which are linked from the README.

Solvers will need to reference the sample puzzles. Running gph-site on your local machine will make the puzzles more readable (and encouraging solvers to do so was a small indirect goal of this puzzle), but is not necessary. The sample solutions are occasionally helpful. In particular, the meta solution reveals that the answers in the meta all have unique double letters, which produce the answer.

With those sample puzzles, it is possible to interpret and follow along our poor hint-requestors’ unsuccessful and evidently quite misguided attempts at solving these puzzles. Sometimes the requestors do not explicitly say what they tried, and solvers must cross-reference their provided work and the puzzle or solution body to infer what they did. Here, we must also notice that, ignoring the meta, every hint request has exactly three paragraphs. Here are descriptions of those paragraphs:

  1. (On Ambiguity)
    1. Solve and extract from all clues except for the two longest, which are replaced by placeholders.
    2. Sort extracted things by length, and then alphabetically; many things tie at even lengths.
    3. Randomly apply a Caesar shift. The solver wants something soft to cuddle.
  2. (On Bad Cryptogram Puzzle)
    1. Concatenate groups of digits that have the same last digit, after discarding that last digit.
    2. Play Boggle on a square grid. Here, you have to actually create the grid this solver produced from 2a, which should look as follows:
      13413
      41341
      34134
      56278
      97224
      For many of the digit sequences, there are multiple Boggle paths that could have produced them. However, there is a unique path shape such that the nine translations of it in the grid produce precisely the nine five-digit sequences reported by the requestor, namely a path that goes west, southwest, north, and north from its start square.
    3. Randomly anagram the letters. The solver wants some form of help.
  3. (On Break It Down)
    1. Figure out the first part of the puzzle, create a grid with the letters, and flip it vertically / reverse the rows.
    2. Keep only the first few letters, exactly as many letters as needed to fill the blanks in the puzzle.
    3. Submit the last ⅔ of the contents of the box as the answer. The solver wonders how they were prevented from solving this puzzle.
  4. (On Championship)
    1. Sort the clues in some order. By looking at what the solver has done, you can infer they sorted the clue in reverse order of length.
    2. Solve the clue while ignoring the ? in the middle to try to find a word that fits in the bottom blanks.
    3. Treating letters and numbers as interchangeable via A=1, B=2, and so on, sum numbers and attempt to convert them back to letters. The solver wants to find structure in this puzzle.
  5. (On Diagramless)
    1. Find a famous, recent video game that is considered best of all time, which shares the first three or four letters with the puzzle title, but not the pronunciation of those letters.
    2. Treat all numbers in the puzzle as indexes, wrapping around if necessary. Solvers must deduce from the example letters that the requestor is indexing into the puzzle title.
    3. Treat all numbers in the puzzle as indexes into the clues. The solver wants to exclaim victory.
  6. (On Geometry)
    1. Transform the puzzle’s numbers digit by digit. Solvers must deduce that this solver is transforming x → 4x+3.
    2. Add 1 to all numbers again.
    3. Concatenate everything and attempt to find an ancient non-English name as an answer.

The meta hint request is a bit different, but basically, the requestor noticed what the answers have in common, but not how to order them.

It turns out that it is possible to reassign all 18 of these puzzle-solving steps to a different puzzle such that they still make sense. Although this is not explicit, the number and order of steps is always preserved, and all three steps originally applied to one puzzle are assigned to different puzzles: the first step a solver tried should be the first step on another puzzle, the second step should be the second step on a third puzzle, and the third step should be the third step on a fourth puzzle. When the assignment is complete, solvers should arrive at a plausible answer on every puzzle that matches the description of what the requestor wants at the end of the third step.

The correct assignment is:

  1. Ambiguity
    1. 4a: Sort by reverse length. The clues should have lengths that are distinct enough that most ways of measuring length — counting words, letters, or characters — should give the same result: 3: “In the International…”, 5: “The blood type…”, 1: “To write this…”, 6: “On a QWERTY…”, 4: “You can type…”, 2: “If you were…”.
    2. 6b. Add 1 to all numbers, resulting in 4, 6, 2, 7, 5, 3.
    3. 5c: Index numbers into the clues:
      • [4] in t[H]e international…
      • [6] the bl[O]od type…
      • [2] t[O] write this…
      • [7] on a qwe[R]ty…
      • [5] you c[A]n type…
      • [3] if [Y]ou were…
      This produces HOORAY, matching this solver’s desire of exclaiming victory.
  2. Bad Cryptogram Puzzle
    1. 6a: Transform all digits k → 4k + 3. This produces a sequence of 37 numbers, but the later steps imply that only the last six digits matter, so we will list only those for ease of exposition: 972240 become 39, 31, 11, 11, 19, 3.
    2. 5b: Index every number into the title, wrapping around if necessary. “BAD CRYPTOGRAM PUZZLE” has 19 letters; the aforementioned numbers wrap to indexes 1, 12, 11, 11, 19, 3 and produce the word BARRED.
    3. 3c: Take last ⅔, the last six letters of the box. In this description of the solution path, we’ve done this already. The word BARRED is a synonym of “prevented” in the requestor’s last question.
  3. Break It Down
    1. 5a: Find a famous, recent video game that is considered best of all time, which shares the first three or four letters with the puzzle title, but not the pronunciation of those letters. There’s one obvious candidate on Wikipedia’s list, the last one as of time of writing: Breath of the Wild (although it is technically the subtitle, it’s commonly referred to directly as such).
    2. 4b: Ignore the ? to solve the clue. Taking the ? out, the clue just says STOP TIME. In Breath of the Wild, you stop time specifically with the STASIS rune, which fits in the blank.
    3. 2c: Randomly anagram STASIS to get ASSIST, a form of help.
  4. Championship
    1. 1a: Solve all clues except for the two longest, which are unambiguously CRUSTA?EOLOGY and INTERLOCU?ORY. With placeholders, you obtain the letters ?OMPE?ITIONNAME.
    2. 3b: Keep only the first few letters, exactly as many letters as needed to fill the blanks in the puzzle. There are seven blanks and the first seven letters, including placeholders, are ?OMPE?I.
    3. 6c: Concatenate everything and attempt to find an ancient non-English name as an answer. Indeed, there’s one compelling name that fits the pattern: POMPEII.
  5. Diagramless
    1. 3a: After solving the first part of the puzzle, reverse the rows of the grid to get
      PARS
      ELSE
      EASY
      BLUE
    2. 2b: Boggle a path that goes west, southwest, north, and north. Of the four places in this grid that that path can be traced, one produces a compelling word, SLEEP.
    3. 1c: Randomly Caesar shift the word. SLEEP has one Caesar shift that is a compelling word, BUNNY, something soft to cuddle.
  6. Geometry
    1. 2a: Concatenate groups of digits that have the same last digit, after discarding that last digit. We get the digit sets 1347 (digits paired with 1), 3174 (digits paired with 3), 27 (digits paired with 5), 147 (digits paired with 6), and 34 (digits paired with 7).
    2. 1b: Sort by length and then lexicographically. The order is 27, 34, 147, 1347, 3147.
    3. 4c: Sum the digits in each group, and convert A=1. We get 2+7 = 9 = I, 3+4 = 7 = G, 1+4+7 = 12 = L, 1+3+4+7 = 15 = O, and 3+1+4+7 = 15 = O, producing the answer IGLOO, a structure.

A subjective solve path one might follow to arrive at this assignment:

First, let’s attempt to reassign all first-step instructions.

  • Break It Down’s 3a involves a grid and applies much better to the actual crossword, Diagramless, with a grid.
  • Ambiguity’s 1a refers to subpuzzles that have solutions. This applies the best to Championship; none of the other puzzles (excepting Diagramless, perhaps, but that’s a worse fit and has been assigned anyway) have independent subpuzzles with independent solutions.
  • It’s possible to “reverse-engineer” 5a’s clue to arrive at Break It Down by looking at the most recent best video games on Wikipedia’s list. (The wording is to prevent solvers from choosing Breakout, which isn’t on the list and is very old, but is certainly a famously influential video game.) It’s also possible to observe that Break It Down lacks both numbers for 2a and 6a to work on and clues with meaningful lengths for 4a to sort, so 5a is the only remaining instruction remaining that could reasonably be applied to it.
  • Bad Cryptogram Puzzle’s 2a and Geometry’s 6a both work with numbers.
  • Although they might arguably apply to the clue numbers in Ambiguity, both steps are worded to suggest puzzles that are very number-heavy, so it makes sense to assign them to each other.
  • Having eliminated everything else, we finally assign Championship’s 4a to Ambiguity.

Second-step instructions:

  • Championship’s 4b conspicuously references a “? in the middle”, and Break It Down is the only other puzzle with a question mark, so it makes sense to assign 4b to Break It Down. This is confirmed by STASIS being a compelling answer specific to Breath of the Wild that is also the right length.
  • Bad Cryptogram Puzzle’s 2b specifically calls out a square grid, so again we assign it to the puzzle with an actually reasonable square grid, Diagramless. Break It Down’s 3b specifically references a discrete number of blanks, so should be assigned to the only other puzzle with such blanks, Championship.
  • Now we have Ambiguity’s 1b (sort length then lex), Diagramless’s 5b (index into title mod length), and Geometry’s 6b (+1 to all) to assign to Ambiguity, Bad Cryptogram Puzzle, and Geometry. Here it might be useful to do some lookahead. Break It Down’s 3c conspicuously references a “box” with “contents”, the last ⅔ of which are the answer, which suggests assigning it to the only other puzzle with a box, Bad Cryptogram Puzzle. This means we want to convert Bad Cryptogram Puzzle’s numbers to letters, and the only second step that does this we have left is Diagramless’s 5b.
  • Then, to avoid assigning puzzles’ steps to themselves, we assign Ambiguity’s 1b and Geometry’s 6b to each other.

Final-step instructions:

  • As mentioned above, 3c matches to Bad Cryptogram Puzzle and successfully extracts BARRED, so we are done with it.
  • The remaining puzzles at this point are at these states:
    1. Ambiguity is a list of numbers and clues;
    2. Break It Down has produced the word STASIS;
    3. Championship has produced the letters ?OMPE?I;
    4. Diagramless has produced the word SLEEP;
    5. and Geometry has produced the digit sequences 27, 34, 147, 1347, and 3147.
  • We can finally assign Diagramless’s 5c to the only puzzle in the state where indexing makes sense, Ambiguity, and Championship’s 4c to the only puzzle with numbers to sum, Geometry. Wheel of fortuning ?OMPE?I produces a compelling word. STASIS has no good Caesar shifts, but does have one good anagram, and SLEEP successfully Caesar shifts to BUNNY, so the matchup is complete.

Now, following the misguided meta solve attempt, you can extract the meta with the same mechanism of taking double letters without reordering to get the meta answer that this misguided team of requestors might arrive at, which is the true answer to this puzzle: ORSINO.

Author’s Notes

The biggest reason for this puzzle’s is really just that I think that I was working on cleaning up the gph-site repo, hammered out a sample hunt in a few hours to show off how publishing puzzles worked in the framework, and thought, “This could be an opportunity to include Mystery Hunt puzzle content.” I don’t have any good connections, so this was my poor man’s version of slipping Mystery Hunt content into an external source.

Of course, to try to make this puzzle fair to people who hadn’t done Galactic Puzzle Hunt, I wanted to publicize the repo. That was maybe a third of the reason I decided to organize the writing of an entire DP Puzzle Hunt in September (although I was the only person writing the hunt who was also writing Mystery Hunt).

Discord chat logs from DP Puzzle Hunt planning in which writers wonder whether solvers will think this is part of Mystery Hunt

Now you know. Thanks to my DP co-writers for playing along. I was pleasantly surprised that between then and Mystery Hunt, Matt & Emma's Birthday Bash and UMD Puzzlehunt both occurred using modifications of gph-site. We also managed to convince both groups to link to the repository from their wrap-ups without, I hope, arousing any suspicion. I’m not sure how many people really did find this repository through these links ahead of Mystery Hunt, but at least even puzzlers who started doing puzzlehunts in 2020 have plausible paths to discovering this repository.

(Moderate spoilers for some Galactic Puzzle Hunt puzzles follow.)

Callback puzzles appear with some regularity in Mystery Hunt and other puzzlehunts, including, for example, GPH 2018’s Overtime. Although I wasn’t directly involved in writing that puzzle, one disadvantage I learned about from reading feedback for that puzzle is that people may not want to spoil themselves on old puzzles for the sake of solving a callback puzzle, because they might want to go back and solve the old puzzles later. Also, I thought it wasn’t “fair” for MIT Mystery Hunt to reference other hunts, which might give teams who had done or were simply aware of the other hunt too much of an advantage over teams who hadn’t. So my takeaway was that if I wanted to write a puzzle referencing other puzzles, it would be ideal if the puzzles being referenced weren’t something that teams would want to legitimately solve later.

One strategy, demonstrated by GPH’s Ten Years Later, is to make the puzzles and intended solutions deliberately bad. This puzzle takes a complementary approach, of having puzzles that are not completely broken, but are hopefully sufficiently uninteresting that solvers will not feel bad about spoiling themselves on them. Instead, the puzzle consists of figuring out incorrect and deliberately bad attempts at solving the puzzle.

Puzzles about puzzles or that “break the fourth wall” to reference puzzle hunt mechanics (e.g. the 2012 Mystery Hunt puzzle Piercing the Veil) are routinely one of my favorites anyway, so I think this puzzle was slated to happen.