From Valve Developer Community
Jump to: navigation, search

I am beginning to analyze by means of extreme sneakiness. Due to the length, questions and answers will not be displayed on this page. Play with the site if you want to find out!

Also, I believe this is a form of viral marketing! Go Valve!

This is a personal page on my own namespace. If you have anything to add or you managed to find something I didn't, please post on the talk page. Thanks!

Site Ownership

The site's reverse DNS is, same as It's obviously owned by Valve. Look on the Talk page for the WHOIS, which I didn't grab because it wasn't really nessicary.


I have extracted the SWF file's ActionScript and analyzed it. There are three input stages, as follows:

Stage One

You are presented with a blank terminal prompt. You can do two things: LOGIN/LOGON/USER, which lets you log in, or you can type ?/HELP which will display a useless 'help' menu.
If you choose to log in, you can type any username that is greater than two characters, and use the password PORTAL or PORTALS. Then you'll move on to stage two.

Stage Two

You are presented with a version string and yet another prompt, GlaDOS v1.07 (c) 1982 Aperture Science, Inc.
Here you can enter several things, with different results:

Command Result
THECAKEISALIE This is important! See the They Lied About the Cake section.
IP Reveals your UID(+L) code. See the #UID section for more information.
HELP/LIB Lists the commands in this list.
LOGOUT/BYE/LOGOFF/VALVE Plays a sound and sends you to your homepage if you have one, or if you don't.
APPEND/ATTRIB/COPY/FORMAT/ERASE/RENAME Gives you an error about the disk being write protected.
INTERROGATE Gives an error if no parameter is provided, otherwise gives an error about 'illegally initiating diciplinary action'.
TAPEDISK Gives an error about the user not being authorized to transfer system tapes.
APPLY/APPLY.EXE Begins the registration process, before moving to stage three.
Anything else Gives an error about the file not being found.

Oddly enough, even though these commands emulate a DOS prompt, there is an LS command, which is from UNIX. Ironically, the actual webserver (this very server, to be exact) is running Debian.

Next you are presented with a Aperture Science notification. You can type CONTINUE or QUIT. Typing CONTINUE will lead you to another prompt.

Next you will be presented with a blinking UID, which starts as the same as you were given earlier if you typed IP at the prompt. The UID is irrelevant and has no use at this point in time. From here you can type CONTINUE or QUIT with an obvious result. Now you get to proceed to Stage Three, the questions!

Stage Three

Here you are asked a lot of weird questions, some revealing a few facts about what may happen during the game. You also learn a couple things about Aperture Science, Inc.'s weird obsession with cake. After you finish, proceed to Stage Four.

During this stage, a picture of a cake flashes at random intervals. According to a forum post on there are numbers that flash on certain questions that spell THECAKEISALIE

Stage Four

The final stage! Basically they ask you to enter your case sensitive (read: it's in lowercase, you can only type uppercase) UID(+L). The fact that this is impossible is irrelevant, there is no code to continue past this stage. You automatically see the failure message.

They Lied About the Cake

An interesting message sent from someone who apparently 'hacked' into the terminal.

When was the last time you left the building?
Has anybody left the building lately?
I don't know why we're in lockdown. I don't know who's in charge.
I did find out a few things, like these terminals don't have to
tap out characters one at a time. And while we're all working
on twenty year old equipment, somehow they can afford to build
an 'Enrichment Center'. Check out this security feed.
Whatever the hell a 'relaxation vault' is, it
doesn't have any doors.

I don't think going home is part of our job description anymore.
If a supervisor walks by, press return!

There's also a video stream that plays.

Personal thought: Narbacular Drop started with you in a cage. I bet you might start inside there and have to use the Portal Gun to escape.

Okay, now for the important part that's not quite obvious that reveals how this somewhat plays into the Half-Life universe: He says they're working on twenty year old equipment. The DOS version says 1982, so we can assume this takes place sometime around 2000-2005. According to the Half-Life Saga Story Guide Timeline, this is the point in time after the events in Half-Life 1 where Gordon is in stasis! Particularly, if you want to take the dates precicely, it's when the portal storms occour. Interesting...


Your UID is generated by the gdxt.php script by giving it a unique variable that Flash provides.


I have poked at this script's interaction with the flash file. It doesn't seem to do a whole lot other than provide you with your UID and reply with an okay to your questions.. but it may be storing that information in a database for all we know.

Almost every question you're asked is sent back to the server upon answering, only identifying you with your UID. Someone from Valve wanna tell us what you're doing with it? ;) Perhaps something for a future version.


At this point in time, the site only reveals a couple things. Namely, it appears that you'll be stuck in the testing center without help, but we already knew that from the trailer. Also, it appears the main character won't talk, big suprise. Most importantly, it appears that Portal takes place while Gordon is in stasis.

File Versions

This was initially written with v16 (AperatureScience16.swf, GLaDOS v1.06)
Evening 9/7/06: Updated SWF to v17, now GLaDOS v1.07. Fixes some bug. Dunno what it does, has to do with the text input. Nothing relevant to the story or entering the UID at the end.


There are actually several websites that link to this page, all owned by Valve.


9/05/06: Extracted the flash file's AS and looked at it.
9/06/06: Begun this page. More to come soon. - Okay, I think I've got lots of stuff! - An update!