|An ARG created around the game Heartbound.|
Heartbound is an ARG created around the game of the same name. The ARG was discovered on April 5th, 2019 which started by finding the trailhead page on any of the pages on Pirate Software's website for the game.
- 1 Chapter 1
- 2 Chapter 2
- 3 Chapter 3
- 4 Chapter 4
On the page, there are 2 sets of guardian glyphs. They translate to:
This body is an illusion This mind is a collective
In the source code, a puzzle can be found. This sets the pattern for pages like this. The source code reads:
<div class="@Party | @...."> <!-- GsvWzipmvhhVmxilzxsvh --> </div> <!-- No matter how bright their hearts seem. --> <!-- Do not trust them. →
This can be split into 2 parts. The first part being the div class, the second being the 2 comments below. The comments don’t seem to relate to anything necessary to solve this part. The div class however is the puzzle.
"@Party | @...." is the hint to solving the comment inside. Another word for a party, is a bash. Add @ before bash and you end up with Atbash which is the cipher used on the text in the comment. So throwing
GsvWzipmvhhVmxilzxsvh through an atbash decoder will get
TheDarknessEncroaches. If you add that phrase onto the end of the URL for this page, you will get this page which will lead players to the next part.
The second page to Chapter 1, “Darksider”, features the same glyphs found in the first, translating them gives the following:
We are closer to the source now Memory is the key to this mind
In the source code for the page, another puzzle can be found, and it reads:
<div class="Signal"> <!-- *%%$*$%*%*$****$%%%$%%%$***$*$%***$%%%$%$**** --> </div> <!-- Keep your head down and keep moving. --> <!-- This is the way it should be. -->
Just like the first page, it can be divided into 2 parts. The div class, containing the puzzle and a hint, and the 2 comments below that don’t offer help for this particular part. Taking a look at the div class,
”Signal”, which is a hint to the two different signal durations found in morse code. Looking at
*%%$*$%*%*$****$%%%$%%%$***$*$%***$%%%$%$**** it’s obvious that the standardized characters have been switched, with “*” being a dot, “%” being a dash, and “$” acting as a space between sequences, switching the characters for the standardized ones we get
.-- . -.-. .... --- --- ... . -... --- - ...., running that through a morse code decoder you will get
WECHOOSEBOTH. Like the first puzzle, adding that to the end of the URL for this page, gets “Guardian”, which leads to the 3rd puzzle.
This page follows the same pattern as the 2 before it.The glyphs translate to:
This world is our undoing This world is our beginning
The source code this time reads:
<div class="13 + 64"> <!-- ITuyEzylp3ECMxI2MKW5I29lMN --> </div> <!-- This will never work. --> <!-- You are making a mistake. -->
As before, the 2 comments below the div don’t help with the puzzle. The hint for the puzzle is
"13 + 64", and this is hinting towards using Rot13 and Base64 together. First, applying rot13 to
ITuyEzylp3ECMxI2MKW5I29lMN and then putting it through a base64 decoder. The output will be
TheFirstOfEveryWord. Once again, if adding that to the end of the URL will lead you to the next page.
“The Virtue”, unlike the other pages, doesn’t feature an image but instead is completely black. This page’s source code reads:
<div class="Have"> <!-- 22NBK4456824048 --> <!-- 6*;48†5(7 --> </div> <!-- Will you listen to me now? →
This time the div class contains 3 puzzles that result in one phrase,
”Have” is the first one and it’s exactly what it says, so the first part of the word is
Have, taking a look at the second puzzle,
22NBK4456824048, they can be recognized as MGRS coordinates, which is the geocoordinate standard used by NATO militaries for locating points on Earth, searching them on Google Maps takes you to “Patience”, in French Guiana, “Patience” being the solution to the second puzzle we get the second part of the word, making it
HavePatience, the last puzzle
6*;48†5(7, due to the use of “†” it was identified as the Gold-Bug cipher, which was created by Edgar Allan Poe and featured in the short story by the same name, running the encrypted text through a decoder you will get
InTheDark, this concludes the set of puzzles making the word
HavePatienceInTheDark. Adding that to the end of the current URL will take you to the last page of Chapter 1, “Don’t Hit That Button”.
Don’t Hit That Button
This is the final page for Chapter 1. The source code includes a puzzle again along with 2 more comments:
<div class="25615185 235 3151420914215> <!-- 8592 8592 8593 8595 8594 8595 8595 8595 8592 8594 8594 8593 8593 --> </div> <!-- I had hope for this one. --> <!-- Time to start again. -->
This time, the hint isn’t as straightforward. The hint is a letter-number cipher and if breaking it up gets
2 5 6 15 18 5 / 23 5 / 3 15 14 20 9 14 21 5. This then decodes into
Before we Continue which is a hint for what to do with the next part.
The comment in the div shows some HTML character entities, which when decoded display a sequence of arrows:
← ← ↑ ↓ → ↓ ↓ ↓ ← → → ↑ ↑ .
See me Say me
Using the code given at the end of Chapter 1 mixed with the hint leads players to input the code when first launching the game before pressing the continue button. Once the code has been successfully inputted, a faint laughter will be heard and the player will gain an achievement (steam version only) titled “Laughing Man”. After this happens, all the guardian glyphs that appear ingame will be translated so you can read them, as well as the game dropping a new file into the save directory named
Save folder location:
Windows: %localappdata%\Heartbound Linux: ~/.config/Heartbound Mac: ~/Library/ApplicationSupport/com.piratesoftware.heartbound
Opening this file with a text editor will show a huge string of characters.
The “==” at the end gives it away that it is base64 encoded, but running it through a base64 to text decoder will result in garble text. Instead, a PNG header can be found when looking at the top. With this new info, running the code through a base64 to image decoder (as opposed to text), yields this image:
This puzzle is similar to another one made by Jason “Thor” Hall (The game director and founder of Pirate Studios and the person behind this ARG) in 2015, called “Play Rude”. The name of the puzzle itself is a reference to the Playfair Cipher, but this one has a couple of twists, it features 4 tables and the encrypted text is in clusters with repeated letters. Taking a look at the encrypted text, it was found that the letters repeat 4 times at max, this was used to quickly deduce that the number of times a letter repeats was a indication to what table to use out of the 4 available. Because of this, the coded text,
NNIII - UUUMMM - SSQQ - VVVVNNNN - YSSSS - QBBB - TIII - TTTLLL - YYXXXX was translated to
DI - AN - RF - KL - SU - IE- DN - EC - RE, reading the first letter of each grouping, then the second one or writing the sequence vertically like so:
DI AN RF KL SU IE DN EC RE
Will result in the string
Darksider Influence, like in Chapter 1, putting this string right at the end of the HeartBound URL will give you a new page, in this case it’s called “Pact”.
This page is the first puzzle page of Chapter 2 and, like Chapter 1, taking a look source code reveals this message:
<!-- Phase 2 - Pact --> <div class="NotMyName"> <!-- What HE calls me... --> </div> <!-- Can you feel it...? --> <!-- That growing power... --> <!-- Like static in your veins... --> <!-- Reach out... --> <!-- Take it... -->
Here the puzzle consists of
What HE calls me…, with a bit of knowledge of the game’s story progression and using a part of the URL,
Darksider Influence, as a hint, it was discovered that “HE” refers to a character ingame named Binder and “NotMyName” is The Artifact referencing to itself because the first time the player encounters Dark Lore is when the main character, Lore, first encounters The Artifact. Inputting
TheArtifact at the end of the page’s URL will get you the next puzzle, Why are you here, usurper...?.
Why are you here, usurper...?
Looking at the source code for this page, it will read:
<!-- A child... in this prison? --> <!-- Waking me from my slumber... --> <div class="Why are you here, usurper...?" --> <!-- TheyDancin.png -->
Here the puzzle consists of the mysterious file,
TheyDancin.png - the first thing to do is to find it. Having a look at the game’s files turns up with nothing in return, but taking a deeper look at the code it was found that the website’s assets are stored in URLs of similar nature to:
http://www.gopiratesoftware.com/games/Heartbound/assets/images/Artifact_1.png (example from the same page this puzzle is found in)
Following the URL format, this image with drawings of dancing men was found, it was assumed this was text encrypted with the Dancing Men Cipher and the encrypted text was translated to
BinderSentMe, adding that to the end of the URL will lead to the “What is it you want then...?” page.
What is it you want then...?
Here, the source code reads:
<!-- You pitiful creature of flesh... --> <!-- Doing the bidding of an old man... --> <div class="What is it you want then...?"> <!-- +4 | +2 | +0 | -2 | -4 --> <!-- 18 | 07 | 05 | 02 | 16 --> <!-- 19 | 21 | 01 | 20 | 01 --> <!-- XX | 10 | 09 | 11 | XX --> </div>
Taking a look at the 5x4, the first line features +’s and -’s, this will be used later to decode it, while the other 3 contain various numbers but none go over 26, making it safe to assume that the numbers are supposed to be translated to letters, but writing them as letters as they are will result in a string of random letters because the numbers are still encrypted, to decrypt them we go back to the first line,
+4 | +2 | +0 | -2 | -4, this was used to encrypt the numbers in the respective columns, so by switching the signals from + to - and vice versa you get what you need to decrypt the numbers,
-4 | -2 | +0 | +2 | +4, applying this to the respective columns, so 18-4 is 14 and so on will give a new grid:
14 | 05 | 05 | 04 | 20 15 | 19 | 01 | 22 | 05 XX | 08 | 09 | 13 | XX
Rewriting this new grid as letters will result in the text
NeedToSaveHim, where “XX” are nothing, adding this to the end of the current URL will result in the page “Who will benefit from this...?”.
Who will benefit from this...?
The source code of this page reads:
<!-- To save him...? --> <!-- He owns these mistakes... --> <div class="Who will benefit from this...?"> <!-- 853396807703048194 --> <!-- HearMe.Thor -->
Looking at the number, it can be determined that it is very similar to a Tweet ID from Twitter. Inputting the number into a twitter url reveals this image.
Looking at the image, some white pixels can be seen on the dog's nose. Zooming in shows a pattern of pixels.
The pixels are formed in 8 groups, with every 2 groups having a clear space between another 2 groups. If you count the number of pixels in every 2 groups, you get
23, 9, 12, 12. Using the letter numbers cipher, this gives the output
Putting both words together gives
BothWill, and this can be added to the end of the url to give the next puzzle "You will help me first."
You will help me first.
This page's source code reads:
<!-- If that is your true desire... --> <!-- I will help you... --> <div class="You will help me first."> <!-- ThatGuy + ThatOtherGuy--> <!-- XpnwHfZolKvtp -->
Using the vigenere cipher with the key
This can be appended to give the next puzzle, Do you agree?
Do you agree?
The source code reads:
<!-- To leave this place... --> <!-- Free me from this prison... --> <div class="Do you agree...?"> <!-- Up each step to the Theatre of Pompey. --> <!-- CPPWVFIAILMPBGSS -->
The "Theatre Of Pompey" line is a reference to the place where Julius Caesar was assassinated, which infers that a caesar cipher must be used. However, a normal caesar cipher does not give a reasonable output.
"Up the step" implies that each character must be shifted by a different amount, with the first character being shifted by 1, the 2nd character being shifted by 2, and so on. Doing this gives the output of
ContractAccepted. As before, this is appended to get the next puzzle,
The source code reads:
<!-- The contract has been sealed. --> <!-- Leave me alone while I prepare. --> <!-- While I pull the necessary... strings. -->
"pull the necessary... strings" implies an instrument is being played. However, appending "strings.wav" to the usual url will give a 404 error. Instead, by searching through the Heartbound game files, a file called STRINGS.wav can be found.
In it, clear DTMF notes can be heard. Decoding these gives
3 444 2 555 33 3 444 66.
Decoding this using a phone keypad cipher gives
This can then replace "DARKSIDERINFLUENCE" to give a new url and a new Chapter: Breakdown.
Here the source code reads:
<!-- Chapter 3 Breakdown --> <!-- You ruined everything. --> <!-- Why would you stop me? --> <div class="12410162315372"> <!-- DHPHBAAJKEPTBGACUKKTKGRFULKDKAGFDLTDSAGJ --> </div>
Counting the amount of letters in
DHPHBAAJKEPTBGACUKKTKGRFULKDKAGFDLTDSAGJ, tells us that there are 40 characters in it, using this information and dividing
12410162315372 into the biggest possible without passing 40, we get
12 4 10 16 23 15 37 2, now if we take out every letter in the position referenced by the numbers, so 12 will be the 12th letter and so on, we get
THECRASH, appending that to the end of the URL will take you to “The Sound Of Silence” puzzle.
The Sound Of Silence
Here the page is completely black and there is no sound, the source code is the following:
<!-- There is still time. --> <!-- We must pickup the pieces. --> <!-- Finally end this charade... --> <div class="Go On"> <!-- Ride The Wav --> </div>
With nothing to go on, and with the hint being
Ride The Wav, it was suspected that it was sound related, remembering how the URLs for stored sound files were formatted, this was found. Upon opening DTMF tones could be heard again, but this time it was in a different sequence, decoding them with a tool or manually through a spectrogram comes up with
1235 1 235 235 2345 134 1345 145 156 1234 134, the presence of numbers that never go over 6 and the groupings led to believe this is Braille, but attempts of decoding this with the normal format,
1 4 2 5 3 6
Didn’t work out, instead we have to use a format like this:
1 2 3 4 5 6
Decoding with this format gives the text
PASSTHROUGH, appending that to the URL will take you to the next puzzle, “Into The Abyss”.
Into The Abyss
Here the source code reads:
<!-- There is only one way forward. --> <!-- Meet at the crossroads. --> <div class="Bifurcation"> <!-- Quick Foxes --> <!-- Lazy Dogs --> <!-- Not a Triffid --> <!-- ZMREIMSGNK --> </div>
The div class,
Not a Triffid leads to believe that the cipher used to encrypt the text was a Bifid Cipher, the other part of the source code,
Quick Foxes and
Lazy Dogs hints towards the pangram, "The quick brown fox jumps over the lazy dog" which was the alphabet key used, throwing
ZMREIMSGNK through a Bifid decoder with the alphabet key will result in the deciphered text
DIVERGENCE in the URL will lead to the first puzzle from Chapter 4, “The Choice”
Here the source code reads:
<!-- Chapter 4 - Divergence --> <!-- Choose fate. --> <!-- Control destiny. --> <!-- The pages lay before you. --> <div class="Gridlocked"> <!-- 92 75 73 21 81 17 65 15 64 13 --> <!-- 16 94 27 75 96 72 --> <!-- 91 11 27 44 94 16 78 43 33 --> <!-- 88 36 52 73 25 28 42 75 86 87 34 21 --> <!--UEZPPXJNCLKMEDMWGFPUYTAQIBXHBCIVIPMOHFBYWSRJWSHNQVGFEODRQKDLUNMCFJZUXIIPGJYACTVVWPGTUSALQH --> </div> <div class="On The Path"> <!-- PDPZHULEQEDSTZUIAEINRTOTAFVDPERPHCOBLMBIJSNBZMHZUHNPLLNSYZTUVFHIMFGCCSZUQNHI --> </div>
This time we have two puzzles. Looking at
”Gridlocked”, the name suggests that there is a grid involved and counting the characters that are present in the string
UEZPPXJNCLKMEDMWGFPUYTAQIBXHBCIVIPMOHFBYWSRJWSHNQVGFEODRQKDLUNMCFJZUXIIPGJYACTVVWPGTUSALQH, gets us a total of 90 letters, with these two bits of information we can make a 9x10, like so:
Now using each number, we can determine to what letter they refer to by separating them into coordinates and locating them in the grid, so 92 becomes 9 across and row 2, that will give us F and so on, repeating this for every sequence will give us,
92 75 73 21 81 17 65 15 64 13,
16 94 27 75 96 72,
91 11 27 44 94 16 78 43 33 and
88 36 52 73 25 28 42 75 86 87 34 21, each of these can be append to the end of the current URL.
Friendship takes us to an image that is reminiscent of the Animus area ingame. The source code reads:
<!-- You fool. --> <!-- This will only end badly. -->
Sorrow takes us to an image that is reminiscent of the Tower area ingame. The source code reads:
<!-- Empty hearts --> <!-- Empty heads --> <!-- Run the wheel -->
Curiosity takes us to an image that is reminiscent of the “Fire” area ingame. The source code reads:
<!-- Surrounded by passion. --> <!-- They're going to hurt you.-->
Indifference takes us to an image that is reminiscent of the “Ice” area ingame. The source code reads:
<!-- Cold and alone. --> <!-- Can you see their worth now? -->
The "On the Path" puzzle seemed like it required another key, so people instead focused on decoding the darksider glyphs at the end of each ending in the demo. These read:
Animus ending (Friendship): DONOTTRUSTTHEM Tower ending (Sorrow): GIVEUPGIVEINGIVEOUT Fire ending (Curiosity): BURNBRIGHTBURNOUT Ice ending (Indifference): SOMETIMESWHENYOUWINYOULOSE
Combining these strings in the order shown and then appending them to the URL after DIVERGENCE gives a new page, lucky.
This page contains the source code:
<div class="Francis"> <!-- EGGEGEGEEEEGGEGEEGEEGEEGGEEGEEEEGEEEGGEG --> </div>
Francis suggests that a Baconian cipher should be used, since the creator of the cipher was Francis Bacon. Substituting E for A and G for B, the text translates to
This then suggests to do something to the previous text on "On the Path" with relation to 19. Using a Caesar cipher with the key of 19 changes the text to
Then, after noticing that the length of the ciphertext and the long concatenated string from before have the same length, it was assumed that a One Time Pad should be used. Finally, using a One Time Pad with a pad of
DONOTTRUSTTHEMGIVEUPGIVEINGIVEOUTBURNBRIGHTBURNOUTSOMETIMESWHENYOUWINYOULOSE on the ciphertext gives the result of
"FIVEHUNDREDEIGHTYTHREEMILLIONTWOHUNDREDTWENTYONETHOUSANDFOURHUNDREDNINETYSIX", shortened to
This number immediately made people think of the keypad in the Tower Ending of the demo. Inputting this code into the keypad would result in the same laugh heard after inputting the arrow code in Chapter 2. After inputting the code, the drawer in the south-east corner is unlocked. When interacting with it, a message appears, stating that a picture of a pirate with a lavender beard is in the drawer.
Appending LAVENDERBEARD to the URL after DIVERGENCE gives the next chapter, Lucky.
A message in the source code reads:
<!-- RING RING --> <!-- TEL ME YOUR SECRETS --> <!-- OSCAR --> <!-- FACE --> <!-- LOCATION --> <!-- CHAPTER 6 -->
|This page is a work in progress and will be updated as new developments emerge. If you have information you think should be added, please create an account to enable page edits or contact a Wiki Editor.|