Else Heart.Break()

Else Heart.Break()

Rogue Sep 3, 2018 @ 8:18am
Looking for an example of a brute force code
I've been trying to get into the Mayor's office for a while and I can't seem to find anyone who will give me a hint about how to run a brute force key. Are there any examples or hints in-game? I've talked to the gardener, Hank and everyone in the lodge. Nothing about brute force.

I'm not looking for exact code but rather something that will help me figure it out, like how Hank teaches you about if else statements. Anything like that for brute force code?
Last edited by Rogue; Sep 3, 2018 @ 8:19am
< >
Showing 1-15 of 17 comments
skatche Sep 3, 2018 @ 10:46am 
Do you know how to use loops? Brute force means trying every possible key in sequence until one of them works.
Rogue Sep 3, 2018 @ 11:33am 
Yeah, I'm familiar with java programming so I get the theory behind it. My problem is I guess I just don't know what language/commands are at my disposal. I know there's a commands list in the guide section here but I was hoping for some in-game guidance to avoid spoiling things for myself.

Incidentally, I think I was messing around with it and I created a brute force key like this:

x == loop 1 to 99999 toggle(x) end

It felt a little sloppy but I'm proud that I figured that out. It's slow as hell looping through those numbers and literally almost takes an entire day. Another thing is that it doesn't stop when it gets to the right number so that's something I'll have to keep working on.

Edit: I imagine writing a bruteforce key that stops on the right number would look something like this:

x == 1 toggle(x) if X == (door unlock?) end else x ++ (?)




Last edited by Rogue; Sep 3, 2018 @ 11:36am
skatche Sep 6, 2018 @ 2:25pm 
Sorry, didn't get notified of your reply.

I mean, if you just hack a bunch of random objects you're bound to find something that looks like a loop. Then you can just copy it. I think the gardener might also have a lesson on loops, if you happen to have triggered his storyline.

Regarding speed, as far as I'm aware, every door except one (?) in the game can be opened with a three digit code. Of course, you'll still want to figure out how to break out of loops, but for that experimentation might suffice.
Last edited by skatche; Sep 6, 2018 @ 2:29pm
Scribble Clash Sep 13, 2018 @ 1:56am 
This may be old, but heres my approach:
Spoilers ahead
#Toggles known doors, hacks unknown array keyList = [1111, 344] open() void open() bool noskip = true if Count(keyList) >= 0 loop keyList if Toggle(@) #Unlock() noskip = false break else noskip = true end end end if noskip brute() end end void brute() loop x from 1 to 9999 if Unlock(x) break end end end

You still have to append keys to the array manually, as I believe it isn't possible to store it with just the key and I couldn't figure out a way to connect it with a drive to store the data. It still will safe some time after you learned the code for the door and also stops once it unlocks it.
Last edited by Scribble Clash; Sep 13, 2018 @ 1:57am
beefjuice Sep 17, 2018 @ 11:58am 
I've just started playing, sorry to reply 2 weeks after your question. You're very close to what I have on my skeleton key, which I'll include, but I will try and explain first without spoiling.

First, I keep the SPRAK manual and the SPRAK command reference page up in a browser while I'm playing to double check my code. The SRAK manual is available in game, but useful to have open in another window. Use both at your own discretion.

You might want to look at the documentation specifically on "loop" and "break" in the manual to make your code stop on the correct number.

I'm not sure about decreasing the time to find the key code. I would bet there's a way to connect to another item that is able to read the exact array off the door that holds the key code, and copy it for you. You could also try and incorporate the effects of drugs that speed up time, so you wouldn't be waiting as long. But since you're asking about brute forcing it, I'll include a skeleton key which can take a while if the key code is in the high digits.

*SPOILER*
Skeleton key:
loop x from 0 to 10001
if Unlock(x)
Unlock(x + 1)
break
end
end

This code unlocks the door when it reaches the right key code, but also increases one more time. If you want to copy the code for another item, just copy the last number -1 to your clipboard. I do have to wait a long time if the key code is in the 9xxx range, but I don't think it's an entire day.
Last edited by beefjuice; Sep 17, 2018 @ 12:02pm
Arucard Dec 3, 2018 @ 4:17am 
Basic Lockpicking Guide here on Steam gives a couple good examples, one which alternates between the lowest and highest numbers that may (slightly) cut down time depending on the actual code.
greysondn Dec 3, 2018 @ 4:14pm 
An even better skeleton key. Totes obv spoiler. Most of these keys are supposed to be harder to get than you probably realize immediately.


### # Skeleton key # # Low-effort version # # @author J. "Dorian Greyson" L. ( greysondn on github ) # @date 3 December 2018 # @license WTFPL ( http://www.wtfpl.net/about/ ) # empty list array keyList = [] # had to be done this way to document # each entry. I'm open to other ideas # so long as they document the keys Append(keyList, -1) # Gunnar - does this even work? Append(keyList, 13) # Longson Append(keyList, 344) # Poor Storage Append(keyList, 666) # Casino Append(keyList, 1111) # Room 1, Dvotchka Append(keyList, 1234) # Testing2, haha. Append(keyList, 1337) # Hotel Basement Append(keyList, 2358) # Room 2, Dvotchka Append(keyList, 4991) # Renting Apartment Append(keyList, 5611) # Room 5, Dvotchka Append(keyList, 5611) # Computer Ministry Append(keyList, 7141) # Tiny Barn Append(keyList, 7471) # Fancy House 1 Append(keyList, 7472) # Fancy House 2 Append(keyList, 9788) # Lodge Append(keyList, 9788) # Nini Append(keyList, 9788) # Pixie's Apartment Append(keyList, 9788) # Petra's Apartment Append(keyList, 34711) # Room 3, Dvotchka Append(keyList, 45914) # Room 4, Dvotchka Append(keyList, 54321) # Suite 1 Append(keyList, 112358) # Fib's Key Append(keyList, 424242) # Suite 2 Append(keyList, 38984312) # Monad's Apartment Append(keyList, 38984312) # extra office key # we can now iterate over the keylist bool found = false loop key in keyList if Toggle(key) found = true break end end # error code in case I'm defeated if (false == found) Toggle(8675309) # Jenny's number end
greysondn Dec 3, 2018 @ 4:20pm 
On the heels of that code, I'd like to add there's a better method, but it goes beyond ruining a list of numbers to revealing things about the game's mechanics many players may prefer to find for themselves.

If you hack certain APIs to certain objects with the modifier and a screwdriver, you could - conceivably - just unlock a target. At worst, you'd have to connect to a machine that can unlock other objects and then pass it the object's name you want to unlock.
greysondn Dec 3, 2018 @ 5:13pm 
And on the heels of both of those, just want to point out that "just because you can doesn't mean that there's any reward waiting". Can we turn the ship into a hub for teleporting around the map?

https://youtu.be/PK7rCEkByY4
Rogue Dec 3, 2018 @ 7:41pm 
Cool. Thank you for sharing! Else.HeartBreak is so unique. I wish there were more games like it.
76561198895889846 Feb 28, 2019 @ 1:26pm 
There is a much easier way to hack doors. SPOILER: a specific framework can do that called hugin.
Just use the functions down below to either unlock all doors in your room or in the whole world. Or use the door name to individually unlock doors.

var Main = Connect("MainFrame") var Hugin = Connect("Hugin") var Rec = Connect("Hotel_Office_RecorderComputerWithMonitor_1") ### Main EntryPoint ### ### write your code here ### bool StringContains(string str, string substr) bool result = Rec.StringContains(str, substr) if (result == true) Say("'" + str + "' contains '" + substr + "'") return true else Say("'" + str + "' doesn't contain '" + substr + "'") return false end end void UnlockAllInRoom() loop Main.GetThingsInRoom(GetRoom()) if (StringContains(@, "Door")) Hugin.Unlock(@) end end Say("All Doors in Room unlocked") end void LockAllInRoom() loop Main.GetThingsInRoom(GetRoom()) if (StringContains(@, "Door")) Hugin.Lock(@) end end Say("All Doors in Room locked") end void UnlockAllInWorld() loop Main.GetThingsOfType("door") Hugin.Unlock(@) end Say("All Doors in World unlocked") end void Unlock(string name) bool result = Hugin.Unlock(name) if (result == true) Say(name + " unlocked") else Say(name + " doesn't exist") end end void Lock(string name) bool result = Hugin.Lock(name) if (result == true) Say(name + " locked") else Say(name + " doesn't exist") end end
Last edited by void*; Mar 4, 2019 @ 12:21pm
greysondn Mar 1, 2019 @ 1:20am 
People who do things like that and don't spoil it are "ugh". Be aware that the preceeding comment is a major spoiler for things you can discover as part of the game.
76561198895889846 Mar 4, 2019 @ 12:20pm 
Sorry I've put them in spoiler
tableflipper3000 May 19, 2019 @ 12:31pm 
Thanks! Trying to open Ministry_MonadsOffice_DoorToCorridor3_FISH
greysondn May 20, 2019 @ 6:15pm 
The skeleton key I provided should be complete.

Edit: If you have tested it and it isn't, please tell me explicitly that. I'll dive in and fix it.
Last edited by greysondn; May 20, 2019 @ 6:17pm
< >
Showing 1-15 of 17 comments
Per page: 1530 50