Else Heart.Break()

Else Heart.Break()

62 ratings
Welcome to Dorisburg!
By iq.gobo
This guide will help you settle in your new home and familiarize with what our nice town has to offer to the explorative adventurer. We don't want to spoil too much of the fun right from the start, so the further you dig into this treasure chest of information, the more in depth the information will get. And to be clear: it will get more spoilery the more you advance down this page!

The first three chapters are safe to be consumed by anyone and are especially geared towards beginners and first timers.

Starting with the fourth chapter, I am giving away knowledge that can seriously impact your game exprience, so the later chapters should only be read by people who are helplessly stuck or have completed the storyline at least once on their own.
3
2
   
Award
Favorite
Favorited
Unfavorite
General info: about the game and interface
Else Heart.Break() is split into two main gameplay mechanics: a 3D point & click adventure and a programming challenge/sandbox. Depending on how quickly and thoroughly you explore the open world that is the city of Dorisburg, you will have access to the coding part after just a few minutes or several hours. If you really want to get straight into the matrix, scroll way down to chapter six, there will be a section about how to access the nessessary equipment early on, without even starting any missions.

For the rest of the readers, who want to enjoy the experience at their own pace, keep reading, as this chapter is all about the adventuring part.

You play as Sebastian, the orange hooded fellow who just scored a job at a soda retailer. The camera can be swiveled with while holding the right mouse button, but you can also use the left and right cursor keys or "a" and "d". And I strongly encourage you to get used to the keyboard controls for the camera, because otherwise you will trigger unintentional interactions with objects once you release the right mousebutton. This might even result in the loss of an item if you happen to be carrying something in your hand while you release the right mouse button over a trashcan. You have been warned!

You can also zoom in and out with the up and down cursor keys or "w" and "s", and those actions cannot be performed with the mouse. On the other hand, moving the mouse up or down while holding the right mouse button will change the angle the camera takes to focus on the main character, which cannot be done with the keyboard alone, so in the end you will learn how to use both the mouse and the keyboard to keep the view to your liking.

One thing that can be quite irritating is that this game has no option to fade out objects blocking your camera view, so you can end up seeing essentially nothing. Keep calm and prefer to use the keyboard controls in that case.

Conversations are of course presented as a classical multiple choice dialog, but with two distinct quirks that set this game apart in some regard.
First off, the speech bubbles at the bottom of the screen that represent your possible answers or inquiries can get very wide and overlap with each other, making the text below difficult to read. You can wiggle your mouse while hovering the options, but it might take a while for the game to recognize that you are interested in something blocked by something else.
If you take too long though, the game will chose which line of dialog Sebastian will deliver next and it might not be what you would like him to say. It doesn't matter in the long run, but at least keep it in mind and don't think too bad about it. You can never give the wrong reply and fail a mission or something, but there are some best picks to get a bit more information out of a NPC or do a mission in a more relaxed way that you can miss if you get lazy and let the automated choices run your conversations.

While Dorisburg is presented as an open world to explore, it is not seamless. Doors and certain transitional areas like streets will indicate a loading screen to shift to a new area by a big orange arrow. But it works like a seamless map as the position of objects or the path a NPC walks will be preserved over those area changes. Only one person can travel such a connection at a time, so sometimes you will get a message at the top right of the screen that asks you to wait a bit before you can use the door again or keep walking a street to get to the new place.
On a side note, objects can block the path to a map transition, so it is possible to keep NPCs from walking to certain areas if you care to set up such restrictions. Just keep in mind that those barricades will hinder your own movement as well.

The world is made out of a rectangular grid and while it will take a while to get to know which coordinates someone or something is positioned at, the tiled nature of the game is obvious once you observe that only one item can be placed on its own. Stacks of objects can only be done by editing a level, not while playing the game. So if you want to collect all the floppy disks and stash them someplace, be prepared that this will require a large area.

If you took an item from an elevated point like a table and did not move one bit, chances are you will be able to put the item right back where it came from. But picking up something and walking over to a table with the intention to drop that thing on the table will most likely be impossible.

Speaking of items and objects: anything you can interact with will be indicated by a pink box while you hover it with the mouse. Left clicking will always "use" that thing, but depending on your equipment there might also be an option to interact with the object using the right mouse button as well. For example, right at the start of the game in your parent's house you can go to the kitchen and left click the stove to turn it on. But if you pick up a bun from the dinner table first and get back to the stove, there will be a second option to right click the stove and cook or rather burn the bun.

When you pick up an item, you are holding it in your hand. While in your hand, the left of the screen might display some further options for actions that can be taken with the current object. The bun could be eaten for example, or put into your bag, your always available inventory.
If you are holding one thing and then pick up something else, the game will try to put your first item into your bag automatically. If your bag is at max capacity (at 16 IIRC), you have to put the current item down before you can pick up the second one. Try not to hoard stuff and keep a slim inventory.

The inventory can be accessed by clicking the "open bag" button at the upper right part of the screen. Click any item from your bag to put it in your hand, possibly swapping it with the object you held there before. Later in the game you might find additional suitcases to carry around and essentially boost your inventory space, but in my opinion it is not worth it, as putting something into an inventory other than your bag can be quite a chore and the button for the secondary inventory can block a fair size of the screen, keeping you from clicking items underneath in the game world.

Above the bag button, you can see the current time and how much money you own. Sadly, money does not really play any significant role in this game, so lets concentrate on the clock first. The people of Dorisburg will perform their daily routines and Sebastian will get tired after walking around for too long. So they both will want to get to their bed every now and then. If Sebastian does not make it to a bed in time, he will pass out on the spot after a while. But don't worry, sleeping on the sidewalk is fine in this game and you can even rest in any bed you come across, as long as there is not someone else occuping the bed at the time.

This also means that a NPC will not stay put in one place all the time. They will get out of bed, walk to work, spend their evening at the bar, the cafe or whatever they prefer and finally get back home. Everyone has their own place to live and in most cases to work, but how they spend their time off may vary.

As I said, don't worry about money in this game. There are ways to both spent some and acquire lots of it, but there is no real point in doing so. But in addition to the every visible cash display, Sebastian carries a credit card in his bag. If you make a purchase, he will hand the card over to the shopkeeper by clicking the "give" button of the credit card's options on the left side of the screen. Other items, like drinks, can be given to other people as well, so keep that in mind. Once you start hacking, you will definately want to ceck out your credit card, but it is secured by a higher access level than your first hacking gear will be able to handle.
Dorisburg sightseeing: the map and the city
Some people have a hard time getting to know where they are, where something they want to go to is and generally make sense of how all of the different areas of the game come together.

There is no quest tracker and no big arrow pointing towards your target like in your typical MMORPG. But Else Heart.Break() is of much smaller scale, so don't fret, you'll get to know the place very quickly.

Once you get off the boat and arrive in the city, walk into the tourist office and grab a map from the counter. Even if you don't have the map in your hand, you can press "m" as long as you have one in your bag and the map screen shows up:


The first area you see of the city is at the pink circled "i" almost at the center of the map. The red framed ship is the one you took to get here. All the different parts of the city are marked by a black border. The double red lines that go through most of them is the city's public transportation system. The inner ring goes about clockwise, the outer ring travels the opposite direction. Bridges are shown as a mix of yellow, orange and red.

The area north of your starting area leads to other parts of the harbor. While you can find something interesting all over the place, most people will want to explore the parts to the east first instead. The area right next to the tourist info contains the Hotel Devotchka, which has a room booked for you by your new employer, Wellspring Soda. This is one of your main points of interest.

South of the hotel across the bridge are the burrows and the north eastern exit of the burrows leads to the plaza. Those three central sections are probably the areas you will visit most often throughout the game, so take your time to get familiar with them.

The map indicates the cardinal directions and the keen observer might have noticed, that your camera view always rotates to face to the north every time you open the map. This is a great feature that even works indoors. If you open the map and think something you are interested in is to the east, just walk to the right/east after you close the map without turning your camera again and you will head into the correct direction.

There are also a great number of white framed blue signs all over the place that will point you in the right direction as well.

If you really got lost and don't know where you are, try to find the railway tracks and walk besides those to find one of the stations. You might have to wait a bit, but once a train car arrives, feel free to enter as you don't need a ticket to ride. When the train gets close to a station, the station's name is displayed to the upper right of the screen.

Additionally, you can sit on the bench in the cabin and your view sill shift to the outside, so you can watch the city pass by as you go along the tracks. That can give you a overlook of the city as well. As an added benefit, Sebastian will not tire while seated, so you can ride the train as long as you like without falling asleep.

The dark colored parts on the map are buildings of course. You wont find detailed maps for them, but for the most part, they are really straightforward and easy to navigate.

Later in the game you will find ways to get around places much more quickly, but up until then, walking and taking the train will be your main ways of getting around town.

As the closing word for this chapter I'd like to point out that while there are some discrepancies between the map and the actual game world, the abstraction is very well accurate enoug to move around the city easily. The southern of the two parks for example is not accessible, while the northern one actually consists of two areas instead of just one. You'll spot some other differences as well, like the northernmost strip of the plaza area that consists of a separate area on its own as well, or the hut/boat southeast of the hotel can be accessed from the general hotel vicinity without leaving the area first. As I said, small errors that don't really make a difference in the big picture.
Bits replace atoms: the hacking interface
As mentioned in the introduction, hacking is the other of the two main game elements in Else Heart.Break(). If you spend a good amount of time with something, it pays off to familiarize with the interface early on.

This chapter of the guide will tell you about some features and shortcomings of the code editting view in the game, but not really spoil any crucial part of the game itself.

You enter the editor interface whenever you hack something. Note that once you have a hacking device, there is no need to carry floppy disks to a computer with a floppy reader as you can read a disks contents without even picking it up.

Let's start by mentioning the visible elements and their shortcuts:

  • in the upper left is a button you can press to leave the editor view and save and run the code in its current state, which is the equivalent of pressing escape.
  • embedded ino the hacking device is a "compile" button. Hitting this button (or pressing CTRL+ENTER) will perform a syntax check on your code rather than a compile in actual programming would do. This means that errors in your syntax will be spotted by the ingame compiler, but you will still have to use the actions you programmed on the hardware it is running on to spot errors like using arithmetics on strings or something like that.
  • "undo" is just like the undo you are used to from other editors and can also be invoked by pressing CTRL+Z
  • be cautious pressing the "reset" button on the lower right of the screen, as it will revert all changes done to the code and instead shows the initial content of the code window as left by the original author (i.e., not the player, essentially replacing anything wou wrote with the original content of the object). Still helpfull if you were just messing around and broke something.

Keep in mind that the buttons are the only thing you can interact with your mouse in this view. You cannot click into the code window and place the cursor to that spot or mark a selection of text.

Other than those buttons, you can see two black windows.

The big one is the code editor, with yellow line numbers running along the left side. You can write as many lines of code as you like (at least I didn't encounter any limitation myself) and scroll up and down by either using the cursor keys or page up and down. Take note though, that the editor is unable to scroll to the right! You can still write outside of the visible space and the code will run just fine, but for the most part, you will want to keep all your code visible without overflowing to the right.

While in the code editor, you can use common features like SHIFT+cursor keys to mark a selection of text pr CTRL+a to mark all text. CTRL+x, CTRL+c and CTRL+v to cut, copy and paste. It is worth mentioning that the clipboard you are using in those cases is your native operating system's clipboard. Which means you are not only able to copy code from one object in the game to another, but you can also copy and paste to and from other windows running on your computer alongside the game itself! So if you see some interesting code somewhere in this guide or elsewhere, just copy it and paste it right into your game. Or the other way around if you want to share ingame code with someone else. Way better than swapping screenshots and manually typing text from pictures, right?

Another cool feature of the editor is TAB completion. For example, most of the time you can just type "pr" and hit TAB for the editor to expand "pr" into "Print(". Note that not only did the editor complete the command, but it also used proper capitalization and included an opening bracket. If the command in question does not take any arguments, even the closing parenthesis will be entered automatically.

If a command does take arguments, glance to the lower, smaller screen, where you will usually get some additional information on the ommand and the current argument. If you are not currently working on a command and place the cursor by itself, outside of a comment, the small screen will list all the commands the current device you are working on supports. Keep in mind that the device may support more commands than what fits the small display, in which case you are encouraged to just start typing to narrow down the list of suggestions. Coming back to the Print() example above, somthing along those lines could happen in the lower monitor:

  • without typing anything yet, alll available commands are displayed
  • typing "p" will narrow down the list of commands, for example to "Pitch", "PlaySound", "Position" and "Print"
  • typing the second letter of the command will shrink the list to just one option in this case and allow you to hit TAB to complete the command and put it into the proper case.
  • if the command takes one or more arguments, the small screen will at least spell their names and usually display some clues about their nature

In the case of hitting an error while running your code, the hint screen in the editor will list error messages along with the lines they occured in to help you in finding and correcting them. Once you move the cursor though, the error messages will disappear. If you want to see them again, just run the code once more and then hit CTRL+h to hack the device once it runs into the error again. As mentioned before, hitting "compile" will not help in that case, as only syntax errors can be found by that.

Observing existing code and exploring the available commands are key elements of the hacking part of the game. When working through the ingame missions you only need to correct or rearrange existing code, but by making use of other commands not present in the original program you can come up with more generalized solutions or access features otherwise hidden. So you are strongly encouraged to experiment. If you really think you got to a point where nothing works at all, just "reset" the editor and either start over, or go tinker with something completly different.

As mentioned above, you can read floppy disks with the hacking device, but you can also edit their contents! Because of that I usually keep one disk with me all the time to take notes. And a second one to contain a mighty code computers can boot off of and connect to all sorts of other objects for various features. Floppies are really useful in this game :)

Fun fact: the line numbers in the editor only show up to 3 digits.

Bonus hint: some devices in the game have a CopyToClipboard() command that you can use for just that, copy anything to the clipboard from within your code.
Sprak 101: some easy code snippets
This section aims to be spoiler free as well, so I will not disclose any code that helps you advance in the story. Well, technically I do, if you consider the mystical cube challenges you might get from Hank or Fib while they teach you Sprak in the game, but those are purely optional and are explained ingame as well. So it is some kind of gray area and up to you if you want to continue reading or not, but I will not hide the code behind spoiler tags. Hm, providing the names of those characters can be considered spoilers, too..

One of the easiest things to hack almost anywhere in Dorisburg with direct feedback are the many streetlamps. While it never happened to me, you might get caught fiddling with the lamps by one of those guys in suits. If in doubt of the outcome, save the game to have a point to revert to in case anything bad happens.

So just walk up to a lamp and right click on the post to access the lamp's code once you have access to a hacking device. Move your cursor in the code window to an empty line and observe the small screen at the bottom, where available commands are listed. In this demo, we will use the commands to make the light show different colors by using commands like sine, cosine, getting the current time and generating random numbers. The code below gets beyond what you might learn by talking to Fib, Hank or the other teachers in the game and show you how to define your own functions and call them.

var red = RandomBetween(0.1, 0.9) # Start of initialization code var green = RandomBetween(0.1, 0.9) var blue = RandomBetween(0.1, 0.9) # start of the main program loop loop red = RandomBetween(0.1, 0.9) green = Clamp(green + RandomChange(0.3), 0, 3) blue = Clamp(Sin(Time() / 500), 0, 3) SetColor(red, green, blue) Sleep(0.1) end # end of the main program # Helper functions that extend the ones provided by the object itself # provide a random number between the lower and upper bound number RandomBetween(number low, number high) return low + Random() * (high - low) end # generate a random change, either up or down number RandomChange(number variance) return variance - Random() * (variance * 2) end # which of the two input values is the smaller one? number Min(number one, number two) if one < two return one else return two end end # which of the two input values is the bigger one? number Max(number one, number two) if one > two return one else return two end end # force a number to stay within the range between low and high number Clamp(number value, number low, number high) return Max(low, Min(high, value)) end

At the top, we define three variables. The "var" in this case sets the variables type to be anything. This is the most relaxed type you can assign to a variable, but in this case, where we are only working with numbers, we could have used "number" instead of "var" in the first three lines.

The three variables represent the three colors that make up any color that can be displayed by your monitor (kinda). The higher the value for one color, the brighter this color will shine when we run the code.

Usually, "Random()" will get you a fractional or floating point number between 0 and 1. Which is fine for this use case, but you can set the color to values higher than one to make the lamp shine brighter in a higher radius.

Instead of just calling "Random()", the code contains the function "RandomBetween()" that expects the lower and upper bounds you expect your random numbers to get. This is done by a simple formula inside of the function. Please note that the function itself returns a number, so the first keyword in the definition of the function is "number" at the start of the line. Both parameters, "low" and "high", are numbers as well.

So we use "RandomBetween()" to initialize the values for red, green and blue to something random between 0.1 and 0.9. This will most likely assign different values to each of the three variables though, not the same to each one, as every time you call "RandomBetween()", a new random number is generated.

After the initialization in the first three lines, we enter a loop on line 5. A loop that just consists of "loop" on the first line will run forever, it is an infinite loop. So the streetlight will run this piece of code over and over and over. If you delete the lines "loop" and "end" (six lines below), the lamp will only assign random values once and keep them until you kick the post again.

Next up is the "RandomChange()" function, but it calls all three remaining functions "Min()", "Max()" and "Clamp()" inside its function body.

"Min()" and "Max()" both work as expected if you ever did a formula in Excel for example: you provide two numbers, and the functions return either the smaller or the bigger one. Why do we do that? It is easier to read than a nested conditional (the "if" and "else" parts) littered throughout your code every time you need to pick one of two values.

This is demonstrated in the "Clamp()" function, which takes three parameters: an input value and both a lower and upper bounds. So this function wil make sure that the first parameter is inside of the range defined by the second and third parameter, clipping it to either one if the initial value is outside of that range. Very useful!
On the inside of "Clamp()" we just call "Min()" and "Max()" in a clever way to achieve that. You could do it the other way around, too: "return Min(high, Max(low, value))" would result in the same output!

Why did we bother to do all of that? Well, on the one hand I wanted to show you how to do your own functions and use them, on the other hand we can use those three functions to make a smoother changing random number generator in "RandomChange()".

"RandomChange()" looks similar to the "RandomBetween()" function, but only takes one argument and subtracts something instead of adding it. Essentially, we generate a random number that is twice as tall as the variance we got as an input, then we subtract the original variance again. Why? Well, if we want our number to change by plus or minus 0.3 as shown above, we just provide 0.3 as the variance parameter and the function internally generates a random number between 0 and 0.6. Then it subtracts 0.3, so the resulting value really lies between -0.3 and +0.3!

The green variable in the loop not only calls the "RandomChange()" function, but it also wraps that inside a call to "Clamp()". This way we make sure that the number changes only in the range of 0 to 3, but each time the loop runs the number will only change by at most 0.3 in either direction, plus or minus.

Lastly, the blue variable changes depending on the time of the day. "Time()" gives the current ingame time as a number, so "800" would be "8 in the morning" and "1730" would be "halb past five in the afternoon". The sine function "Sin()" will return values between -1 and +1, but by wrapping it in our "Clamp()" function, we discard the negative part and ensure we have a positive result. Depending on the time of the day we will get a strong blue hue or not see traces of blue at all.

This should give you a good starting point to play with the numbers or swapping the function calls around and see what changes. Try to use only "RandomChange()" like the green variable in my example to have a smooth pulse of color. Exchange "Sin()" for "Cos()" and see how it affects the blue hue. Make "green = red" and "blue = red" before calling "SetColor()" to have the lamp just change intensity of white light instead of emitting colored light. Change the "Sleep()" parameter to slow down the changes in color by waiting longer at the end of each loop iteration. See what other uses of the available commands you can come up with. Try to really understand the helper functions I wrote for this example.

Enter the code.
Let the spoilers begin: notable items and locations
While the first few chapters only gave general ideas and information without giving away anything of the game's contents, starting with this chapter we are entering full spoiler territory! I cannot stress this point enough: only continue reading this guide if you can't make it any further on your own or have completed the game yourself at least once.

Even though I warned you of the following contents, I will make use of the spoiler tags so you don't stumble upon any of this by just glacing over the guide.
Quickstart: start hacking asap
So you don't care about the story and want to go down the rabbit hole as quickly as possible to get close and personal with the game? Go ahead, spoil yourself!

There are several ways to get access to a hacking device early on.

The most reliable free one
Once you arrive in Dorisburg, head east until you reach the closed hospital. To the north, but still in the area of the hospital, you can enter a building with two apartments. Enter the one on the left, without the rainbow colored doormat, to find a hack dev on the couch table just behind the big screen.

The quickest, costly one
Once you arrive in Dorisburg, head one area to the north. The purple building with the pixely animated pipe on the outside and the curved staircase to the second floor just in front of the northern bridge has one up for purchase at $100. Once you have the hack dev, you can work some terminals or slot machines to regain the money easily.

As we are deep within the spoiler warning, here are some notable locations: the computers at the tourist info, the shoe shop or the soda storage can be used to register sales worth any amount to your account. The house just north of the cafe has an apartment on the lower floor, that contains a slot machine which can be tweaked to give better chances to win, higher rewards and/or lower cost to play. You could even hack it to reward you money for playing it, instead of costing money to give it a shot.


The lucky one
This one is only accessible in about 15% of the games, so it might not be possible to get it there at the start of your run. Go all the way south through the burrows to the ministry and then walk behind the building. If you can't spot a hack dev there, either try one of the other ones or simply start new games until you get lucky.

The scholar one
Certain characters in this game will teach you Sprak, the ingame computer language. And at least one of them will "lend" you one of his spare devices, although as far as I know you are never expected to actually return it to him. To get this one, you have to talk to Fib, the gardener, and make him offer you to teach you. I never bothered to go through this myself, so all I can do is give you some hints on where to find Fib most of the time.

Being a gardener by trade, he can usually be found in either part of the Dorisburg Gardens, the green park area between the burrows, plaza and cafe areas. He spends most of his spare time sitting on a bench near the hospital, but I also spotted him on benches at the plaza, the police station and near the cafe.


The regular one
This is how most players will get their first hacking device, so the spoiler in this case is walking you through most of the steps necessary to get to it.

Not sure if this is really needed, but check into your hotel to start the weird door fixing sequnce and also to see the office door and the computer at the reception there. After staying the night in your room, you will also find a floppy on the corridor floor containing some hints about suspicious activity at the plaza and a place called the Lodge.

Visit Bar Yvonne in the basement of the house at the north end of the plaza at the evening or early night to meet Pixie, the girl in the blue skirt on the dance floor. Flirt with her to really start the main story line. Try following her to work the next day, when she enters the forbidden door in the shoe store. There are several ways to get through the door yourself, so here is the most obvious one: talk to the shopkeeper, Nini, and bring her a cigarette. You have to place the cig in your hands to get the option to "give" it to her during your conversation, like how you did with your credit card when checking into the hotel. Once she leaves her desk to have a smoke outside, enter the door and head through the basement. You will find another reception desk and Felix guarding another locked door. Talking to him will lead to an option to have Pixie come out and talk to you. She'll be mad at you for stalking her, but have no grudge against you in the end.

One of the following nights you will dream about Pixie. The next morning, the door to the office at the hotel's reception won't be locked. In the office you will find a key to hotel room 4, where a hacking device is hidden under a chair.

See, the regular one is the one that takes the most time to get and you might even stumble upon one of the other ones mentioned here before all of the events above take place.


There are several other hacking devices throughout the game, but as far as I know they can only be reached once you have access to a hacking device already.
Other useful items and where to find them
The yellow screened computer at the police station
This one is so special because it is one of a few computers that feature powerful commands to look up information like the location of characters and items.

In its default configuration the computer will let you find the location of yourself or other characters in the game. But after some hackery, you can make it list the items contained in a room or tell you the type of an object. Or list the locations of all items of a kind. Yout should definately note the name of this machine, as you can access it from other computers and make use of those commands remotely.


The small computer at the hotel lobby
This is most probably one of the first computers you came across while playing the game regularly, yet it is a very powerful one. It has the ability to unlock any door in the game if you know what the door is called internally. This is useful in the computer's default configuration when you enter those names while in the hotel lobby, but it gets really powerful once you start accessing this command remotely.

The extractor
The extractor does exactly that: it extracts useful information from anything you point it at. Most notably it will read out an object's name in its default configuration. This is usefull for code (when connecting to things) or when looking up information (e.g. at the yellow screened computer in the police station). It also features a handy command to put something to the clipboard, so usually the first thing I do when I find an extractor is to hack it so it runs "CopyToClipboard(name)" in addition to just saying the name.

One of the first extractors in the game is found on top of a tall computer in the small alcove in the hotel basement. To unlock the door to the basement, hack the computer at the reception. Down in the comments at the bottom it will mention several doors that can be unlocked, so just memorize the name or write it down (you cannot paste into prompts on a running computer unfortunatly) and then run the computer normally. Enter "door" as the command instead of entering a guests name and the computer will prompt you for a name. Presto.


The Teleporter
There are two easy ways to get a teleporter once you have a hacking device. I'll explain the more complicated way first, as the second one really gives you access to some major story spoilers early on.

So there are several floppy disks that hint at a teleporting device hidden in a shack by Elsa. Elsa is quite a notable character on her own, but for the teleporter you don't even have to find and talk to her at all. Just head north twice from the tourist office, crossing a bridge over the rail tracks, to enter the shanty town, a very run down district of Dorisburg. Directly east of the entrance to the area is the shack, but its door is locked. If you don't have an extractor yet, you have to hack a room key to loop possible combinations and then use it on the door to brutefoce your way into it. Otherwise just extract the door's name and head back to the hotel and unlock it from the computer in the lobby. The code for the bruteforcing key is really simple:
loop from 1 to 9999 Unlock(@) end
The "at"-sign is a shorthand to access the loop's counter, which is passed to the key's Unlock() command. Once you have the code in place and right click a door while holding the key in your hands, it will try every combination up to 9999 until it finds the correct one. This doesn't take long. On the other hand, you could spend the extra minute and grab the key from Elsa's lair on the fourth floor of the tower building just across from the shack and use that to open the locked door.

In the second room of the shack you will find the teleporter.

The other easy way to get a teleporter is to go to the hotel's server basement as described in the section about the extractor above. In the same area you will find a large computer with a pink screen on the large wall of the basement. Use it and chose option 3 to "slurp". This will let you travel the internet to a "CentralServer", which is located in a testing area.

This testing area contains lots of items! Most notably two teleporters and two hacking devices. If you inspect the computers in this room, you will find connections to really late or even end game terminals.

Teleporters allow you to display your current position in a room and warp you to other places, if you can provide the room name and some coordinates. If your coordinates happen to lay outside of the walkable space of a map when you teleport there, just start clicking somewhere inside the room to make Sebastian warp to a legal spot inside the room automatically. I advise you to keep notes for possible locations right inside the teleporter itself, so you can quickly uncomment them or paste them into a "SetWorldPosition()" call.


Get a second hacking device
A hacking device cannot hack itself, but you can hack another hacking device. The code of a hack dev contains a function that controls the access level. To enable the full power of the device, this function should always return true, regardless of the level. There are several ways to do this, for example you could literally have it say "return true", or change "return level == 0" to "return level >= 0" or "return level == level".

Notice that the function also gets the name of the object to be hacked as a parameter, so you can put it to the clipboard if you connect to your extractor or even make your hack dev unlock doors while hacking them by connecting to the computer in the hotel lobby and invoking its Unlock() command right from within the hack dev for example.

You can find several additional hacking devices all over town, but you will most likely run into the one in the Lodge, where Pixie and the other guys of the underground resistance meet. With an upgraded and enhanced hacking device, getting through the locked door in the shoe store's basement will be a piece of cake.
Taste your special brew

Hacking drinks plays a great role in this game and beverages have access to the powerful "Connect()" command and can execute remote procedures. This makes drinks one of the most versatile items in the game, easy to acquire and powerful in their range of effects.

But before we get down to breaking the game by abusing drinks of any type, let's inspect the soda machines first. And by inspecting I mean hacking of course!

The "CreateDrink()" command takes two arguments: the type of beverage you want and the amount of liquid to be contained in a can. So essentially you can have a soda machine dispense coffee or even fancy longdrinks if you like and make them last longer by having them as bigas you like, for example 1000 instead of 100.

Each time you take a sip from a drink, it will run the drink's code. If you drink a coffee, it will call "Seleepiness(-25)" for example. So you will be 25 units less sleepy and the drink will use up 25% of its contents. But the 25 are only 25% if the can's maximum amount of liquid is 100! If you change the amount to 1000, the first sip of coffee will lower the remaining amount of the can from "1000%" to "975%".

What does that matter? Well, it means that a normal can can get you a max value of "Sleepiness(-100)" before it is empty. Well, you can have the code read "Sleepiness(-200)" if you like, but if the max amount of liquid is 100, your benefit will be just 100 as well. Given a can of "1000%" coffe, the same code will net you the expected 200 units of... awakeness... and lower the remaining amount of coffee to "800%".

This is a good start! But can we do more? You bet we can!

See those other commands? "Charisma()", "Corruption()", "Smelliness()", "Speed()"? They each control one of the drinker's attributes. So in addition to keep you awake, you can have your drinks keep you charismatic, running faster and smelling good as well! It doesn't matter at all on yourself, but watch what happens to Frank while you take your test to gain a membership in the revolution gang down in the Lodge.

Smelliness happens to you while you drink booze or sleep without a proper bed and Corruption is what happens to you while you stay on the internet. The more time you spend there, the funkier Sebastian will look like, with parts of his body showing strange colors or even a whole box of colors appearing around him after a while. This is also what has happened to Ivan when the ministry ran its experiment.

When you have a drink call "Corruption()" with negative numbers as its argument, your corruption level (or better yet: the corruption level of the person having the drink) is lowered, up until it all gets back to normal.

This part is probably the most troublesome in regards to how you can alter the game. Again: Don't read the rest of this if you are on your first playthrough!

Great, so your drink can have all of those status changes at once. But it will rapidly drain the can!

Sinks to the rescue! Your soda can is able to connect to other objects in the world. Extract the name of a water tap or have the police computer list all items within a room to find a suitable name. but before you connect to one, have a look at a sink's code first. See those "ClearCode()" and "AppendCode()" commands? You don't want that to happen, as it will overwrite the contents of your drink's code once you connect to it. So delete all of that. The code of the sink you want to tap (hehe) into should only read like this:

var Refill(number amount) SetLiquidAmount(amount) end

Once you took care of that, add this to your can's code:

var sink = Connect("Name_of_my_prefered_WaterTap") sink.Refill(1000)

You have to replace the name in the connection call of course to reflect the name of the tap that you hacked as instructed above.

Now everytime you drink from your can, it will get refilled to 1000, lasting forever!

The fun doesn't stop here, though! Want your drink to control the weather? Connect to the meteorology server and set it to anything you prefer. Want to unlock all doors in the room you are drinking this in? Connect to the police computer, determine the name of your room and then connect to the computer in the hotel to unlock every door you encounter while you have the police computer cycle through all objects in the room. Wonder why the quicktravel command through the internet is called "Slurp()"? Connect to anywhere from your can and call "Slurp()" it to see why.

The most abundant item yields the greatest power.

And as a soda salesman, you can even enhance all drinks by altering the code before you hand them out to the unsuspecting buyer :)
(EHB)²: Else Heart.Break() Elite Hacker Board
Another serious word of advice: don't peek this chapter unless you finished the game once or twice yourself! With the info in this section you will gain almost unlimited powers in the game.

A hacker's ultimate tool of trade. If you ever wondered how you could possibly unleash your cyber powers with items that only allow one button to push (or wheel to turn) and hate having to screwdriver floppy functionality to each computer you come across and hack it to run your mighty boot floppy code with a bit of collected code snippets, this thing will seem like the final answer. Would you like to summon a screen floating in mid air and running code to empower Sebastian like Neo after takeing a full night of VR instruction experiences? Then this is just what you were waiting for.

I was testing a bunch of computers to call up to where ever I was, but none looked right. Or they were too small in size. Then I saw a video of Pudding Muffin in which he used the Playstation from Longson's apartment just like what I described above. This was it, the final proof for me that you could rule Dorisburg in style like Hiro Protagonist ruled the Metaverse in Neal Stephenson's cyberpunk bestseller novel 'Snow Crash'. And you don't even have to make a fool out of yourself by turning into a lametta!

Other than the cool looks, the Playstation is a good choice because of its broad support of commands right from the start. But if you prefer to switch to another rig, use a screwdriver to enable all API's and swap 'LongsonPlaystation' with the name of your object of choice.

OK, let's get down to the real treat. Head over to my Github project for EHB[github.com] to get the code. You can either download everything as a zip file, clone it with git or just copy the code right from the webpage.

To use it in the game, follow these simple steps:
  • Copy the contents of 'SummonHackerBoard.sprak' into the item you want to use to summon or dismiss the Hacker Board with. Could be a mystical cube, a radio or pretty much anything Sebastian can use. I prefer to put this into the CheckBalance() function of my creditcard, because I can have it ready in my hand without having to fear losing it by accidentally letting go of the right mouse button over a trash can while turning the camera. And you don't have to bring any special items as you will most likely never throw away your creditcard. On the other hand, you will need a souped up modifier that is able to hack into objects of higher security levels.
  • With the first part of the code in place, you can now pull up the board anywhere in the game. If the board is already present in your area and you use your selected item again, the board will vanish. Call the board now. It's not really a Hacker Board right now, it is just running the usual Playstation code. We will change that now!
  • Hack the Playstation and overwrite its code with the one from 'EliteHackerBoard.sprak'. The original functionality will still be available from the Hacker Board, if you enter the command 'playstation'.
  • To use the Hacker Board, there is nothing else to do after those three steps. But I recommend to check out the 'help' command, check out the default configuration with 'get all' and maybe tweak at least the lastlistaddr setting once with 'set lastlistaddr 1000' to have it saved in the playstation's memory. Also, have a look at the README.md file to get some more tips and examples to get up to speed with the Elite Hacker Board.

Now, what would you like to use your new power for? Maybe get yourself a taser like the typers have? Enter 'all type taser' to get a list of all tasers in the game. If you want to know where any of these can be found, use 'find !0' to get the position of the first item in the list you just saw. Likewise, 'find !1' will do the same for the second item on the list. So the numbers match the ones in the list output and they are zero based indexes. Say you want to get the second taser after checking its coordinates. You could try several things now: 'slurp !1' will let you slurp to the item if possible, while 'slurp @' will let you travel to the room the item is in. The at-sign is a shortcut for the last room just like '!#' refers to a numbered item from the last list. You could also do it the other way around and transport the taser to your feet by typing the command 'move !1 LongsonPlaystation'.

But let me tell you this: you won't need a taser as long as you have your board ready. You can even zap anyone anywhere in the game, without needing to get up close and personal! Say you are in your hotel room, using your Board. And you want to finally have the police officer that never sleeps take a nap. You can do so by entering 'zap Police'. Don't believe me? You could query 'action Police' to see that she is doing nothing, but if that is not proof enough, 'slurp @' to quick travel there and see with your own eyes.

If you want to get a list of all items in a room, it will be available as 'all room Hotel_Room1' (if you are interested in your hotel room) or 'all room @' to get a list of all items in the room of your last query. Or 'all room here' to get a list of all items in your current area.

Want to know which type an item is? You can do that for just one item with the list expansion you already know: 'type !0' for the first item on your list. Or you could get the type of every item on a list if you do a 'list type' instead. You can see the result by entering 'list show' or just 'show' for short.

You see, using the Elite Hacker Board is easy, but you can accomplish a lot by just using one simple item to summon it. Just like the normal game: play around, study the code, modify it to suit your needs and add features. Got the sound effects working? Implemented a text filter for lists? Did any other cool thing with this? If you want to share your modifications, notify me in the comments or even put it up on your own Github account and send me a pull request.
Secrets, EasterEggs and Oddities
Some fun things you might have missed on your playthrough.

How many cabins does the ship have?
Once you can unlock any door you encounter, get back onto the ship you arrived on and unlock every door there. Where will they take you? :)

The (not so) Secret Arcade
You can find several hints about the Secret Arcade on various floppy disks and computers. But once you get there, the place is more dull than its name implied. It has only one arcade cabinet, a graphical floppy disk reader, some small computers and a sink you can use without risking any NPC to stumble in and use it.

The dreamworld
Just like the Secret Arcade, you can come across disks that refer to Ratvader and RatvadersDreamEntrance. If you warp there, you are treated with a lush green scenery where you can relax and enjoy some nice music without anyone ever disturbing you. Although some disks mention you should visit at night to meet other folks, but Ratvader has already transcended to the next world it seems.

Hidden message at Pixie's
Did you notice the large walkable wardrobe in the lower section of Pixie's Apartment? Did you also notice the disk with her diary?

Also: did you notice the hidden message written to the back of the cupboard besides her bed? It's the same URL as the graffiti in one of the cells at the police station...


Felix' miracle box
Did you notice that apart from arcade cabinets, Felix' computer below the staircase to his sleeping area is the only one computer in the game that displays a graphical animation? Because of that I like to think of him as a member of the Demo Scene :)

He also has an arcade cabinet in his flat that comes with an added benefit. Did you notice the pipe connecting to the arcade? Inspect the tap on top of it - parties at his place will never run out of booze for sure!


Inventory space
Did you know a character's inventory space is actually a room as far as the game is concerned? Just append "_inventory" to a character name and have the police computer list the items in the room to get to know the names of items even without having an extractor. Or get to know your extractor's name.

You cannot teleport to inventories though. But you can inspect other people's posessions and even exchange items.


The inaccessible cupboard
The large computer in the hotel's basement with the pink screen will let you slurp to the CentralServer in a Testing environment. One of the other computers there will let you even travel to another testing area, called the beer room on the machine. If you explore the list of rooms the police computer gets you, you can find other testing areas as well. There is also a tiny rooftop hideout across from the hotel that you can get to by slurping to "Lowenbrau", a floppy disk of that name is hidden there.

But this section is about one of the cupboards in the original testing area. Did you notice you can put items in it? Did you also notice you cannot access its contents? Well, you can, but you have to use the police computer again! The cupboard is listed as a room and you can have the computer list its contents as well as transfer them to your inventory with the SetPosition() function. Just put the item's name as the first parameter and "Sebastian_inventory" as the second argument and you can retrieve anything that is hidden in there. I guess Eric never got around to implement proper storage handling for containers like that or he decided against their use. The few suitcases that can be found are an indication for this.


Speaking of suitcases...
Did you find the suitcases that can enhance your inventory space? There is one in hotel room 3 for example, or in Pixie's apartment. You can also find one while doing the Radio tower sidequest or when exploring the ministry.

You can put suitcases in your bag and they will show up as additional inventory space for you to open like your bag. The suitcase in the radio station for example contains a disk with valuable info.
But to put something into a suitcase you have to drop the case to the floor, then take the item you want to place there in your hands, then right click the suitcase and pick it up again and put it back into you bag. Way too complicated to be useful in my opinion


Elsa's hidden hideout
Did you find Elsa on your own? Did you also find here little hideout on the roof? This one is easy to miss. Elsa lives in the tallest building in the shanty town all the way to the north from the tourist info. The different floors of the tower can be reached by the elevator inside, or can they? Hack the elevator panel inside to reveal that the buttons 2 and 3 both go to floor 2, which is the third floor. Change the code to get to floor 1 whenever you press 2 to get to a whole hidden floor of the building with an exit to the rooftop with more of Elsa's equipment. If you feel inclined to keep her secret, have the elevator only go to floor 1 if Sebastian is using it ;)

Btw: the numbering of the floors is odd here: Elsa refers to her lair (where you find the shack key and where she spends most of the time indoors) as being on the fourth floor, and you get there by pushing the 4 on the panel in the elevator. Yet the hidden floor 1 at number 2 leads to the rooftop, so it should be the higher one...


The free apartment
Did you notice that the building to the west of the hotel has an empty apartment on the lower floor? If you enter the building from the south you can access it without a locked door in your way. Inside you will find a bed, a floppy disk reader and key to open the locked door that leads to the lobby of the house with the two big entrances that lead to the hotel exterior. It's a nice alternative to the hotel if you want to buy the hacking device from the north harbor and don't like to stretch out your credit card by paying the fee the hotel demands.

Ivan's highscore
Did you notice that Ivan holds the highscore on the arcade in Bar Yvonne? Setting a record yourself seems difficult until you gain the ability to hack the cabinet....

The biggest testing area
Most players will stumble upon the testing area you can travel to from one of the computers in the basement of the hotel. But did you check out NickeRoom? That is the biggest hidden area with the most items in it. You can see about any computer type, any door, drinks and other stuff. It even has blank credit cards and a taser. And the big cannon that they used to beam Ivan into the matrix. Hey, we are waist deep in the spoiler swamp here, it's OK!

Poor Bob/h1]
You can find Bob's creditcard at the financial computer, but you'll be unable to give it back to poor Bob. Really, he has no inventory to put it anyways, so you're even unable to sneak the card back to him!

Highly experimental
Did you know there are only 4 teleporters in this game and that only one of them is in a regular room while the other three are found in testing areas?

If you want to have one as soon as possible, here is probably the quickest way:

Once you get off the boat, head north to the next area (possibly buying a modifier for $100 while you are here) and over the bridge to yet another area to the north. Enter the tower there, with the long narrow hallway that leads to an elevator and ride it to the top floor. Enter the room to the left of the elevator exit and grab the key from the bookshelf. Exit the tower and use the key to open the door to the east of the south exit of the area. The teleporter is in the second room.
8 Comments
Jonathan_S Nov 2, 2020 @ 4:10am 
@smHatter a sink operates on the last drink that was used on it, not on the drink that connects to it. same with the stove and probably some other items.

@Gl'bgolyb: SetPosition, GetRoom etc. are part of the "TingrunnerAPI", which you can't set via the screwdriver. the only computers in the game with the "TingrunnerAPI" are:

- Heart
- LongsonPlaystation
- MainFrame
- PoliceOfficeInterior_MinistryOfficeWorkstationComputer_1
Dancoul May 1, 2017 @ 5:08pm 
i don't know how to hack the playstation
iq.gobo  [author] Apr 26, 2017 @ 11:55am 
There are two code snippets involved in the infinite beverage trick. First you need to change the code of the sink, then alter the code of the drink, like I described in the chapter "Taste your special brew". First snippet to the sink, second one to the drink object. Sinks usually overwrite the code of the connected script, so you have to replace it by something useful instead of destructive.
smHatter Apr 24, 2017 @ 11:54pm 
Ok, so using the drink on the sink fixed it.
smHatter Apr 24, 2017 @ 2:36am 
I can't get the refilling drink to work. Doesn't matter where I put it, the drink doesn't refill.
Connecting to: var sink= Connect("Hotel_Bathroom_Poor_WaterTap_Poor_WaterTap_1")

iq.gobo  [author] Mar 13, 2017 @ 9:05am 
I admit I don't know the answer. All I ever really used the screwdriver for was to enable floppy and internet, the rest was pulled in from the code on my disk from other machines. Oh, and of course tweaking the speed of arcades...
Gl'bgolyb Mar 6, 2017 @ 4:50pm 
About your EHB, I noticed something odd you pointed out- you mentioned using a screwdriver to add all APIs to another computer and just using it instead of LongsonPlaystation... is it possible to add SetPostion, GetRoom, and whatnot with the Screwdriver? If so, what's the name of that API?
DJ AXLE Feb 8, 2017 @ 11:46am 
Very nice and humorful! I had a good laugh :)