Else Heart.Break()

Else Heart.Break()

Tidak cukup rating
[SPOILERS!] Collection of useful data
Oleh Sushi_Rocks
SPOILERS! A collection of data I made in this game.

If you liked this guide, please consider writing a comment, giving it a thumbs up or a 5-star-rating to help other people find it.❤️

If you want to leave a lower rating, please consider writing a comment about why you did so, so that I can improve my guide!

(Work in progress)
   
Penghargaan
Favorit
Difavoritkan
Batalkan favorit
01 How 2 unlock all doors
01.1 Stationary Individual Unlock ("One door at a time")
Use the computer in the hotel lobby, since it has the "Unlock()"-function.

Use this code on that computer (for example):
loop Print("Enter command") string name == "door" if name == "door" Print("Unlock door:") var doorName = Input("") Unlock(doorName) end
Then enter the name of the door you want to unlock.

01.2 Stationary Collective Unlock ("All doors at once")
Variant from other user (see @ credits):

var Main = Connect("MainFrame") var Hugin = Connect("Hugin") var Rec = Connect("Hotel_Office_RecorderComputerWithMonitor_1") ### Main EntryPoint ### ### write your code here ### ♥♥♥♥ StringContains(string str, string substr) ♥♥♥♥ 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) ♥♥♥♥ result = Hugin.Unlock(name) if (result == true) Say(name + " unlocked") else Say(name + " doesn't exist") end end void Lock(string name) ♥♥♥♥ result = Hugin.Lock(name) if (result == true) Say(name + " locked") else Say(name + " doesn't exist") end end
02 Brute Forcing: Code & Improving Speed
02.1 For keys:
loop x from 0 to 54321 if Unlock(x) break end end
Explanation:
The game only has one unlock with more than 5 digits and 54321 is the highest 5-digit unlock code.
So running a brute force attack with this maximum value is faster.


If you want the game to tell you the unlock code:
[WORK IN PROGRESS]

02.2 Frank's Brute Force Computer in "The Lodge":
↓ Slurping / Slurp() ↓
|||||||||||||
↓ Teleporting / SetWorldLocation() ↓
Frank_Room_MediumComputer1_1
|||||||||||||
"Frank_Room", 22, 22

The original Brute Force code on Frank's pc will look like this:
DisconnectAll() ClearText() Print("") Print("*******************") Print("Enter target door: ") var target = Input("") var id = Connect(target) if id < 0 Print("Failed to connect") return end loop x from 0 to 99999 Print("Trying code: " + x) var success = id.Unlock(x) if success Print("Unlocked!") Print("*******************") break end end # Good targets # ------------ # * TownHall_DoorToLongsonOffice # * Factory_Corridor_DoorToOffice # * Hotel_Office_DoorToBasement
There are 3 problems with using that code:
(1) On start Frank's pc disconnects from all the useful doors and computers that you maybe want to use later (e.g. for slurping).
(2) It doesn't tell you the correct code it has found.
(3) It deletes the door codes that is has found through brute forcing when you open the program.
Therefore - if you want to find the codes with brute forcing yourself - you should change the code to this:
var t = GetHour() + ":" + GetMinute() Print(t + " Enter target door name: ") var target = Input("") var id = Connect(target) if id < 0 Print("No target with that name") return end loop x from 0 to 999999 Print(x) var success = id.Unlock(x) if success Print(target) Print("Code is >> " + x + " <<") Say("Code is > " + x + " <") break end end
The program will show the door name & found unlock code in the display of Frank's pc. So you can just come back later and read out the code or ignore it. When the Brute Forcer has found the code, the door will unlock after all.

Modifications:
(1) If you want to see a black box counting up (in the room you're using the brute force code pc in) until you found the right code, add "Say(x) after "Print(x)".
(2) If you only want the last results listed, delete the "Print(x)".

02.3 Speed up brute force attacks:
You can speed up the brute forcing code by
  • increasing the pc's Mhz setting with a modified screwdriver. See guide section below.
  • Snus, drugs or cigarettes + FastForward() function after you've started the brute force code.
03 Screwdrivers: Mhz + API + Runtime
03.1 Change Mhz: SetMhz()
To increase the Mhz (= speed) of a pc for faster bruteforcing you can use this code:
SetMhz(500)
500 is the maximal Mhz value

03.2 Activate more functions on pc: EnableAPI()
The API-function of screwdrivers allows you to activate a code function on a device that previously didn't have this function unlocked. Unfortunately the game doesn't tell you which functions you can unlock directly. The first vital information regarding this is the "DigitalTrash5"-floppy which contains hints on which functions you can unlock:
APIs ===== (accessible with the screwdriver) - internet - arcade - floppy - memory - door # Are there more...? # /Zarah
It doesn't seem to include all functions you can unlock though ("Are there more... ?").

I don't know which other functions might be unlockable. The most important of the named ones might be "door" which unlocks the Unlock() and Lock() functions on any pc.

The code for enabling all known functions might look like this:
EnableAPI("internet") EnableAPI("arcade") EnableAPI("floppy") EnableAPI("memory") EnableAPI("door")
You CAN use screwdrivers on:
All computers, stoves (?)
You CAN NOT use screwdrivers on:
tv's, sinks, street lights, doors, radios, all drinks, cigarettes, fuse boxes, vending machines, juke boxes, teleporters, hotel fountain.

03.3 Infinite Runtime: SetMaxTime(-2)
You might now have tried to enable the Unlock() function on a random pc and run BruteForce code on it, but the code has stoppped after a while? There are 2 possible reasons for that: (1) A person with a correct key has entered the door or (2) the pc you're running the code on has a maximum run time, so it stops after a while. You can prevent the latter one by having this code on your screwdriver and using it on the device in question:
SetMaxTime(-2)
"-1" will set the machine back to regular runtime; "x" will set the machine to run for x seconds.

03.4 (Probably) Complete Screwdriver Code:
SetMhz(500) EnableAPI("internet") EnableAPI("arcade") EnableAPI("floppy") EnableAPI("memory") EnableAPI("door") SetMaxTime(-2)
04 Door unlock codes & Keys
I brute forced these with Frank Room Medium Computer1_1 + my code above.
You can find out the correct door name with an extractor + right clicking on the door or just hacking it and copying the name.

Door Name
Door Code
AlbertRoom_OuterRoom_DoorToInnerRoom [Wrong name!]
...
Casino_Exterior_MainDoor
666
DorisGardens_East_DoorToLodge
9788
DorisGardens_West_DoorToSchack
112358
Factory_Corridor_DoorToOffice
0
Factory_Floor2_DoorToStationNorth
0
FibSchack_DoorToGarden
0
HarborNorth_DoorToFancyHouse1
7471 [rolling code?]
HarborNorth_DoorToFancyHouse2
2044 [rolling code?]
Hotel_Corridor_Door1
1111
Hotel_Corridor_Door2
2358
Hotel_Corridor_Door3
34711
Hotel_Corridor_Door4
45914
Hotel_Corridor_Door5
5502
Hotel_Lobby_DoorToLeftSuite
54321
Hotel_Lobby_DoorToOffice
1337
Hotel_Lobby_DoorToRightSuite
424242
Hotel_Office_DoorToBasement
1337
Lodge_Entry_DoorToRoom1
9788
Lodge_Room1_DoorToRoom2
9788
Lodge_Underwater_DoorToRoom2
0
Ministry_Corridor3_DoorToMonadsOffice
38984312
Ministry_Front_Door
5611
Ministry_MO_Gateway_1
JK67
Ministry_MO_Gateway_2
XZZZ
Ministry_MonadsOffice_Internet_MediumComputer_1
...
OutsideFelixApartment_Door_2
1001
Plaza_DoorToMonadsApartment
48779
Plaza_DoorToPixiesApartment
9788 you creep
Poor_Storage [Wrong name!]
344
RadioStationEntry_DoorToHarbNorth
0
RentingAppartmentsKey
4991
Testing_Door1_inward_1 [Wrong name!]
...
TownHall_DoorToLongsonOffice
13
Fib's key
112358
TinyBarn key [Chuck & Bouncer have 1 each]
7141
Gunnar's key
-1
Nini's key
9788
05 How 2 Slurp
Connect("[name_of_pc]") Slurp()
If you don't have an extractor yet to find out the name of a pc, you can also try to use the "Info()" command in combination with a command that makes the pc say it or print it on the screen.

If the pc has a screen:
Print(Info())

If the pc has no screen:
Say(Info())
or
Print(Info())
In the latter case, the pc will actually still show the info in a black text window during regular gameplay.
06 Slurp Locations
PCs:

LongsonPlaystation
MainFrame [>> has GetPeople(), GetThingsOfType(), GetPosition(), GetAction(), GetRoom(), GetThingsInRoom(), GetAllRooms(), GetTypeOfRoom()]
[Brute Forcer]>> Frank_Room_MediumComputer1_1
[Unlocker]>> Frank_Room_LargeComputerL2_TheLodge_ComputerTerminal_LargeComputerL1_ 1
[Police Station pc] PoliceOfficeInterior_MinistryOfficeWorkstationComputer_1

[Hotel Basement]
CentralServer
SteeringComputer (>> has Unlock() & SaveMemory)
Hotel_ServerBasement_LargeComputerL3_LargeComputerL3_1

TownHall_PillarComputer_PillarComputer_1
LargeComputerL3_LargerComputerL3
Seaschack1_LargeComputerL3_LargeComputerL3_1
Seaschack1_NewComputerScreen_NewComputerScreen_1
Factory_ServerRoom_LargeComputerL3_LargeComputerL3A
>> Plaza_FuzeBox_Poor_Fusebox_1
>> MonadsApartment_HomeComputer
MonadsApartment_Internet_PoleComputer_12
FinanceComputer [Tourist Office] [password: passw00rd]
Hotel_Lobby_ComputerCashier
Casino_Floor2_ArmedBandit_2
CentralServer
OrganComputer [HotelBasement]
TestComputer1
Beer_Testroom_2
Wellspringer
Internet_Internet_MediumComputer_7
Internet_Internet_PoleComputer_1
PoorDesolateBuilding1_Elevator_Door
FactoryAccessComputer
HarbWeastHouseLobby_HugeComputer_HugeComputer_1Fr
NickeRoom_PureICO_SAHEDRON_1
[Ivan Location fuse box] Outpost
RatvadersDreamEntrance
PoorDesolateBuilding1_Exterior_NewComputerScreen_NewComputerScreen_1
Ministry_Offices3_Diskette_Diskette5_5
[MinistryCrypto pc] Ministry_ChamberOfNumbers_WooperComputerWhite_1
[Recorder] Ministry_ChamberOfNumbers_LargeRecorder_LargeRecorder_2 [>> Has ZapPerson(), MovePerson(), RestoreCode(), Broadcast()]
RadioStation_Channel1

Other:
Lowenbrau
Hotel_Exterior_CurcuitLocker_1
ZarahsTv
Hugin
Heart
FinanceComputer

WellspringSodas_sale_2_safe_0

Secret:
RatvadersDreamEntrance
RatvadersDream_GardenBoxComputer1_4
Hidden_FuseBox
07 How 2 unlock max lvl modifier
You may have already found 2 modifiers and asked yourself how you remove the restrictions. The basic modifier code looks like this:
# The allow function returns true/false # depending on if you're allowed to # modify the target or not. ♥♥♥♥ Allow(string target, number level) return level == 0 end
It would seem logical to just raise your security clearance level to unlock your modifiers true potential, correct?

No.
That's because the developers of this game are idio... idealistic about your coding skill level. They just assumed that you already know quite a bit of coding. Instead they want you to make the device answer the question for sufficient security clearance with "true". Therefore you must use this code:
♥♥♥♥ Allow(string target, number level) return true end
08 Teleport Locations
You can copy&paste these into your teleporter and then use them.*

* For use:
1) Hack your teleporter
2) Go down to the location that you want to go to
3) Go right of the "#" with your cursor
4) press CTRL + SHIFT + RIGHT ARROW (->) to mark the location
5) press CTRL + C to copy
6) press POS1 + PageUp to go to the top of the teleporter code script
7) write "SE", then press TAB, to autocomplete to "SetWorldPosition("
8) then press CTRL + V to insert the location
9) finish line with ")" and press CTRL + ENTER to finish coding
10) Press teleporter button to go to the location that you selected

The result at step 9 should look like this:
SetWorldPosition("MonadsApartment", 46, 98)

It should NOT look like this (!):
SetWorldPosition("MonadsApartment", 46, 98 )

Teleport Locations:

# APARTMENTS & BEDROOMS:
# "MonadsApartment", 46, 98
# "IvanApartment", -50, 108
# "PixiesApartment", 24, 21
# [PixiesApartmentDoorOutside] "PlazaBackstreet", 62, 51
# "Frank_Room", 22, 22
# "EmmaApartment", 8, -35
# "FelixApartment", 4, -17
# "PetrasApartment", 3, 4
# "LongsonApartment", 5, 2
# "CharacterRoom", 27, -11
# [Elsa] "PoorDesolateBuilding1_HackerRoom", 7, 10
# [AmandaApartment?]
# "HanksApartment", -7, 3
# "GlennApartment", 21, 70
# "TouristGirlApartment", 45, 78
# [Gunnar's purple house] "Hut", 5, 55
# [Babcia] "Hotel_LeftSuite", -1, 6

#_HOTEL:
# "Hotel_Exterior", 41, 35
# "Hotel_Lobby", 32, 15
# "Hotel_Room1", 11, 10

#_PLAZA&TOWN HALL:
# "Plaza", 6, 43
# "TownHall", 32, 45
# "LongsonOffice", 6, -3

#_LODGE:
# "Lodge_Room2", 30, 12
# "Lodge_Room1", 11, 22

#_MINISTRY:
# "Ministry_Lobby", 6, -27
# "Ministry_MonadsOffice", 12, 7
# "Ministry_Exterior", 44, -25
# "Ministry_Lobby", 5, -38
# "Ministry_CorridorLevel2b", -26, -23
# "Ministry_ChamberOfNumbers", 5, -112
# [PowerTap] "Ministry_ChamberOfNumbers", 11, -110
# [MeteorologyServer] "Ministry_ChamberOfNumbers", 15, -101
# [Hugin/MainFrame] "Ministry_ChamberOfNumbers", 5, -112
# "Wellspringer", -4, -102

#_OTHER:
#_[Elsa's Secret Balcony] "PoorDesolateBuilding1_Exterior",65,32
# "PoorDesolateBuilding1_Exterior", 24, 14
# "Casino_Floor2", -3, 20
# [Casino PC] Casino_Floor1", -1, 35
# "Cafe_Exterior", 6, -7
# "BetweenFelixAndLongson", -3, -7
# "Secret_Arcade", 1, 1
# (Albert) "Internet", 178, 309
# ["Miman" Floppy] "Internet", -394, -50
# [Heart] "Internet", -290, 3
# [Heart] "Internet", -194, 2
# "Factory_Office", 14, 2
# [Unaccessable harbour roof] "HarborSouth", 53, -106
# [[FancyHouse 1+2+3]]
# "FancyHouse3", 12, -35
# "TinyBarn", 1, -4
# "NickeRoom", 0, 0
# [RadioStationFrontDoor] "HarborNorth", 23, 22
# "BlaKnutenRoom1", 25, 28
# [Ratvader's Tower] "HarbSouthTower", 29, 5

#_ENDGAME/Secret:
# [Monad] "Internet", -399, -32
# [Ivan] "Internet", -32, -438
# "RatvadersDream", -52, -29
# [Prototype for RatvadersDream] "DreamForest", 1, 1

# Undetermined Locations:
# SodaStorage_Point
# [ShoeStore_Point]
# [HarborEast_Point]
# "Factory_Server_Room"
# "Harbor_West_House_Room_1"
09 Refill SuperSink Water Tap
Adds the energy drink function to any drink of your choice while also refilling it and adding other useful information like the name of the water tap to the code of the drink.
SetLiquidAmount(9999) ClearCode() AppendCode("Charisma(100)") AppendCode("Corruption(-100)") AppendCode("Drunkenness(-100)") AppendCode("Sleepiness(-100)") AppendCode("Smelliness(-100)") AppendCode("Speed(100)") AppendCode("var a=Connect('Poor_WaterTap_Poor_WaterTap')") AppendCode("a.SetLiquidAmount(9999)") AppendCode("Say(GetRoom())") AppendCode("# SuperSink used: ") AppendCode("# "+GetName())
10 Self-Refilling Energy Drink
Charisma(100) Corruption(-100) Drunkenness(-100) Sleepiness(-100) Smelliness(-100) Speed(100) Say(GetRoom()) var a=Connect('Poor_WaterTap_Poor_WaterTap') a.SetLiquidAmount(9999)
This code uses the dot-operator function* from SPRAK Manual No. 9 to connect to a water tap and use the refill function (SetLiquidAmount) on the drink itself.
"Poor_WaterTap_Poor_WaterTap" is just the first water tap in the hotel bathroom. I use it, because it has the shortest name.
You can also use the Drink() function, but for a self-refiling drink it's redundant.
I set the refill amount to 9999% to avoid ANY possibility of confusion with normal drinks in the inventory.

*The devs made a mistake here, by not clearly differentiating between RemoteFunctionCall and the dot-operators in my opinion.
11 Music Tokens
  1. "Vagabond"
  2. "Surge"
  3. "Knobb"
  4. "Hunger"
  5. "HoneyBee"
  6. "Confounded"
  7. "Wolf"
  8. "Clarity"
  9. "Shelter"
  10. "Rust"
  11. ??? (I searched through all floppys in the game, it's not in those)
  12. "Arcade Music"
  13. "AllAboutYouToo"
Unknown Nr. in Music Token list or extra:
  • "BlaKnuten" (plays in BlaKnuten café)
  • "Fumes"
  • ThereminSound
  • "Stairs" (runs on juke box in TinyBarn)
  • "Ponty"
  • "Ghost"
  • "RatVadersDream" [not working?]
  • "Meisure"
  • "Apache"
  • "Confound"
  • "Panda"
  • "Wolf"
  • "BalconyTunes"
  • "SadStation"
  • "NoirStation"
  • "FelixsMix"
  • "Petras Mix"
  • "TrumpetDudeMusixBox" [doesn't seem to work anymore]
  • "HospitalExteriorMusicBox"
  • "FrankDJset"
  • "InternetAtmosphereSound1"
  • "InternetAtmosphereSound2"
  • "CasinoMusicBox"
  • "ChillStation"
  • "TechnoStation"
  • [the mixer in front of the hospital also sometime plays the Quartz Quadrant "G" Mix by SEGA (SONIC)]
You can listen to music tracks by taking any device that can run the PlaySound()-function and then putting in the name of the song into to the () with " " around the name.
12 Smarter TV
SmartTV 1.0
###########################################################
Tells you the time, when it changes channel and which channel it plays
###########################################################
var time = "It's "+GetHour()+":00 " var channel = GetChannel()+"-program playing" string TellMe = time+channelPrint(TellMe) number h = GetHour() if h < 4 SetChannel("Anime") else if h < 6 SetChannel("TestScreen") else if h < 7 SetChannel("Bergman") else if h < 18 SetChannel("Talkshow") else if h < 22 SetChannel("News") else SetChannel("Terminator") end
SmartTV 1.1
###########################################################
Has no annoying TestScreen- and Talkshow-channels
###########################################################
var time = "It's "+GetHour()+":00 " var channel = GetChannel()+"-program playing" string TellMe = time+channel Print(TellMe) number h = GetHour() if h < 4 SetChannel("Anime") else if h < 7 SetChannel("Bergman") else if h < 22 SetChannel("News") else SetChannel("Terminator") end
13 Sounds (not music)
No. 1-10
No. 11-20
No. 21-30
No. 31-40
No. 41-49
01. "Atmosphere 1"
11. "Coin 1"
21. "Error"
31. "Lose"
41. "Shoot 3"
02. "Atmosphere 2"
12. "Coin 2"
22. "Explosion 1"
32. "Powerup 1"
42. "Sine"
03. "Blackbird 1"
13. "Coin 3"
23. "Explosion 2"
33. "Powerup 2"
43. "Square"
04. "Blackbird 2"
14. "Coin 4"
24. "Guardian"
34. "Powerup 3"
44. "Thunder 1"
05. "Blackbird 3"
15. "ComputerSound 1"
25. "Hit 1"
35. "Powerup 4"
45. "Thunder 2"
06. "Blackbird 4"
16. "ComputerSound 2"
26. "Hit 2"
36. "Powerup 4"
46. "Warning"
07. "Blackbird 5"
17. "ComputerSound 3"
27. "Hit 3"
37. "Shoot 1"
47. "CasinoSpinn"
08. "Blip 1"
18. "ComputerSound 4"
28. "Jump 1"
38. "Shoot 2"
48. "CasinoWin"
09. "Blip 2"
19. "Electricity 1"
29. "Jump 2"
39. "Shoot 2"
49. "CasinoLost"
10. "Blip 3"
20. "Electricity 2"
30. "Jump 3"
40. "Sine"
14 Automatically switching lights
loop number r = 0.5 + 0.5 * Sin(Time()) number g = 0.5 + 0.5 * Sin(Time() + 1) number b = 0.5 + 0.5 * Sin(Time() + 2) SetColor(r, g, b) Sleep(0.1) end
15 Rebel Street Lights
Ever wondered what code the rebels used to make those lanterns change colour constantly? This is it:
loop SetColor(10, 0, 0) Sleep(2) SetColor(0, 10, 0) Sleep(2) end

Here is a variation with changing light radius and 3 colors instead of just 2:
var red = RandomBetween(1.1, 0.7) var green = 1.0 var blue = 0.9 loop SetColor(red * Random() + 2.5, green, blue) Sleep(1) SetColor(red, green * Random() + 2.5, blue) Sleep(1) SetColor(red, green, blue * Random() + 2.5) Sleep(1) end
16 GhettoBlaster with Disco Lights
Take a mystical cube of any type and use this code:
PlaySound("FelixsMix") loop SetColor(2, 0, 0) Sleep(1.5) SetColor(0, 2, 0) Sleep(1.5) SetColor(0, 0, 2) Sleep(1.5) end
Instead of "FelixsMix" you can use any other musik token.
17 Simplified person finder for Hugin
loop var name = Input("Enter name: ") Print(GetPosition(name)) end
18 GetAllRoomNames
The MainFrame and the Police Station pc have the GetAllRooms()-function. With that, you can find all the rooms.

You could ask: How many rooms are there in game?
SPRAK Manual 6 (Arrays) will tell you how (at the end). First, we want to use GetAllRooms() to create an array. Secondly, we want to use Count() to count the number of rooms in the array. Thirdly, we want the answer printed with Print(). The code looks like this:
var loadallrooms = GetAllRooms() array allrooms = loadallrooms Print("Number of rooms is: "+">> "+Count(allrooms)+" <<")
If we do this on the MainFrame computer, the game will tell us that the total number of rooms is:
>> 274 <<
But the harder part is: How can you make a list that shows or records all the rooms names?

This is the code that will show you all the room names on the MainFrame computer:
ClearText() number x=0 loop rooms in GetAllRooms() Print(rooms) x++ if x > 26 x=0 Print("") Print("Press CTRL + R if the program crashes!") Input("Press >> ENTER << to scroll down list! ") end end
On any other pc (with a screen):
var a=Connect("MainFrame") ClearText() number x=0 loop rooms in a.GetAllRooms() Print(rooms) x++ if x > 26 x=0 Print("") Print("Press CTRL + R if the program crashes!") Input("Press >> ENTER << to scroll down list! ") end end
The last page will probably look strange & I have found no way so far to fix that.

I am still working on the "recording" part. It may work over the "SaveMemory" or "AppendCode" functions.
19 EveryItemFinder
On the MainFrame, you can access a list of all rooms as well as search them for certain things (GetThingsInRoom()).

Here is the code you can use on the MainFrame itself to find certain things:

[...]
20 ThorTouch/SunnyBoy
[Doesn't work yet!]

Want to have a full blown storm every time you touch a humidity reader box?

Here's the Code that you have to use on the MeterologyServer pc:
number ReadHumidity() SetRain(250) number humidity = (GetRain() / 250.0) * 100 Print("Reading requested, humidity is " + humidity) return humidity end

Want to have sunshine?
number ReadHumidity() SetRain(0) number humidity = (GetRain() / 250.0) * 100 Print("Reading requested, humidity is " + humidity) return humidity end
The humidity reader should tell when your code has worked.
21 Floppys: How many & Where to find them
This code run on the police station pc...
Print(Count(GetThingsOfType("floppy")))
...tells us that there are a total of >> 343 << floppys in the game.

I started to use a tedious work of going through all the floppys by spawning them with the SetPosition()-function on top of the DigitalTrash29-floppy in the police station (which I moved next to the trash can beforehand). I looked through some of them before disposing them into the trash can nearby. The code looks like this:
var a = "PoliceOfficeInterior_Diskette_Diskette6_1" #SetPosition(a, "PoliceOfficeInterior_CoffeeCup_CoffeeCup_3") var b = GetThingsOfType("floppy") array c = b SetPosition(c[61], "PoliceOfficeInterior_Diskette_Diskette6_1") SetPosition(c[62], "PoliceOfficeInterior_Diskette_Diskette6_1") SetPosition(c[63], "PoliceOfficeInterior_Diskette_Diskette6_1") SetPosition(c[64], "PoliceOfficeInterior_Diskette_Diskette6_1") SetPosition(c[65], "PoliceOfficeInterior_Diskette_Diskette6_1") SetPosition(c[66], "PoliceOfficeInterior_Diskette_Diskette6_1") [...etc. how many you want to spawn at once. You can't spawn all at once!]
The code after the # is there just in case that you accidentally trash the DigitalTrash29-floppy.
22 How 2 hack inventories
Where do items go when you put them into your pockets?
Well, they get transported to an imaginary room that contains all the user's inventory items.
>> Unfortunately, you can't teleport into these rooms. <<
For example, you can use the extractor to get an items name like "Hotel_Modifier", then put it into Sebastian's inventory and then run this code on the MainFrame pc:
Print(GetPosition("Hotel_Modifier"))
The answer will be:
Room: Sebastian_inventory, coordinate: (0,0)
So logically, each character should've an inventory named like "[character]_inventory".
This may enable you to steal items from them and inspect the code of those items.

22.1 How to steal items from a character's inventory:
Print(Count(GetPeople()))
...on the MainFrame pc tells us that there are >> 61 << people with inventories. Now, if we want to steal another character's items from his or her inventory for example, we can use the MainFrame pc to find out which items are in the inventory first:
Print(GetThingsInRoom("Michails_inventory")

Then we can read out the name of the item that we want & transport it to an accessible location. This could be a another item in your inventory (e.g. "Hotel_Modifiert") or one outside of it. As an example: If we want to steal "KeySuite2" from Michail's inventory and teleport it into Sebastian's inventory (there has to be at least 1 free space!), the code looks like this:
SetPosition("KeySuite2", "Hotel_Modifier")
Now you could hack this key for example, to find out the key code for the door without the need to use any brute force code. Or to get access to any items "hidden" in the characters inventory. Or to pay with Dr. Monads' credit card when other characters ask you for your credit card!

If you want to search through a characters inventory & then select one of the items to steal, your code could look like this:
var a=GetThingsInRoom("Monad_inventory") array b=a Print(">> "+Count(b)+" <<"+" objects in inventory:") Print(a) #Remove # in next line to STEAL object at that pos. in array #SetPosition(b[0], "Hotel_Modifier") #DO NOT forget to add a # after executing function once!
The computer will first print a list of the objects in the inventory and create an array from those items. If you have decided which item you want to steal, you can just remove the # and enter the number of the object in the array. DO NOTE that the array starts with 0! So the first object in the array will have the number 0, not 1!

22.2 How to return items into the inventory of a character:
If you want to prevent the game from getting a bug, you can use this code to return the stolen items:
var a=GetThingsInRoom("Monad_inventory") array b=a Print(">> "+Count(b)+" <<"+" objects in inventory:") Print(a) #Remove # in next line to STEAL object at that pos. in array #SetPosition(b[0], "Hotel_Modifier") #DO NOT forget to add a # after executing function once! #RETURN OBJECT: #SetPosition ("LoneTaser", b[0]) #DO NOT forget to add a # after executing function once!
This is only possible when there is at least one item left in the inventory of that character. If you have forgot the item's name, you can look onto the computer screen history above or extract it with the extractor.
If returning the item worked, the array should now contain the name of the object again if you press CTRL+ R.

22.3 Variable input to search through different characters inventories:
Print("Please enter character name: ") var x = Input("") var input = x+"_inventory" var a=GetThingsInRoom(input) array b=a Print(">> "+Count(b)+" <<"+" objects in inventory:") Print(a) Sleep(1) #Remove # in next line to STEAL object at that pos. in array #SetPosition(b[0], "Hotel_Modifier") #DO NOT forget to add a # after executing function once! #RETURN OBJECT: #SetPosition ("LoneTaser", b[0]) #DO NOT forget to add a # after executing function once!
23 Fib's annoying mystery flower cube
loop number r = 0.5 + 0.5 * Sin(Time()) number g = 0.5 + 0.5 * Sin(Time() + 1) number b = 0.5 + 0.5 * Sin(Time() + 2) SetColor(r, g, b) PlaySound("Coin " + (1 + Int(Random() * 4))) Sleep(0.1) end
Plays an annoying loop of the the Coin sound and something may happen with the lights, dunno yet.
24 Frank's loop box
loop x from 1 to 10 SetPitch(x * 0.25) PlaySound("Blip 1") Sleep(0.1) end Stop()
25 SECRET: Jorgen's grog
Jorgen is the only character with grog in his inventory ("Jorgens_grog"), a rare drink.
26 How 2 beat the Casino entrance pc
Sneaking around the pc is really easy. Beating it is hard.
First, you need to find out the room in which the casino pc is in. You can do this by using the Energy drink above. This will return the room name "Casino_Floor1". Then you need to use the MainFrame pc to locate all the objects in the room to find the casino pc's name. You can use this code:
ClearText() number x = 0 loop things in GetThingsInRoom("Casino_Floor1") Print(things) x++ if x > 26 x = 0 Print("") Print("Press CTRL + R if the program crashes!") Input("Press >> ENTER << to scroll down list! ") end end
On any other pc:
ClearText() var a=Connect("MainFrame") number x=0 loop things in a.GetThingsInRoom("Casino_Floor1") Print(things) x++ if x > 26 x=0 Print("") Print("Press CTRL + R if the program crashes!") Input("Press >> ENTER << to scroll down list! ") end end
Right at the end of the list it will return the name "Casino_Floor1_MinistryCubbardComputerScreen_MinistryCubbardComputerScreen_1".
Now you can travel to that pc:
ClearText() var a = 'Casino_Floor1_MinistryCubbardComputerScreen_MinistryCubbardComputerScreen_1' Connect(a) Slurp()
When you interact with the pc normally and THEN hack it, you can remove all the code & save. The pc should now be under your control.

The normal code on this pc looks like this:
void OnHack(string name) Sleep(1) Say("WARNING! Detected hacker: " + name) Sleep(1) Say("Initiating defense mechanisms...") Sleep(2) ZapPerson(name) Sleep(1) RestoreCode("Casino_Floor1_Fence_1") RestoreCode("Casino_Floor1_MinistryCubbardComputerScreen_MinistryCubbardComputerScreen_1") end void OnIntruder(string name) Print("Entered room: " + name) end
END Credits
Credits for additional information that is not from me.

1.
Music Tokens & Sounds (although he didn't get all of them)
User Zephere36, 2019.06.06, 13:24
https://steamproxy.net/app/400110/discussions/0/1471967615880456663/

2.
Other variant for unlocking (all?) doors
User 76561198895889846, 2019.02.28, 22:26
https://steamproxy.net/app/400110/discussions/0/1738841319821154500/
END Legal
Reposting (parts of) this guide on third party websites is forbidden if you don't give credit to me with my username.
This excludes any parts of the guide which contain solutions that are not written by me (see point above: "Credits".
Reposting (parts of) this guide on third party websites is permissable if you credit me with my username.
Regarding all content on Steam, including guides, the usual Steam content rules apply.