We are currently working on new rules for what content should and shouldn't be allowed on this website, and are looking for feedback! See Esolang:2026 topicality proposal to view and give feedback on the current draft.
Portallang
Portallang is a Esolang made by User:A random guy that is based off of the game Portal in the Portalcene Epoch, Tenebrian Period, and Themazoic Era that has 2 parts to it, similar to Mesmerizer and most similar to TetoLang, having a Grid/Chamber which uses a 2D Grid to represent a 3D environment, and a Panel for Chell herself that lets her do actions. This Esolang is made to be able to make Chamber Layouts that are actually mostly achievable to make in Portal, ignoring elements that are made to do input and output.
Things about Portallang
The esolang is based off of making Chambers, having portals, propulsion gel, cubes, and basically just making a custom Test Chamber that can be used to do programs in.
You first have to define the height of the chamber. 0 being the first and lowest elevation. You define the height like this:
Test Chamber (Height Number)
Basically the number for the test chamber determines the maximum elevation, so Test Chamber 2 would have 3 different elevations. The maximum amount of elevations is determined like this:
(Chamber #)+1
It’s that easy. The Chamber Number shows what the highest elevation’s number is.
A cell’s side length in Portallang is equivalent to 128 Hammer Units (HU) by default in both Portal 1 and 2. But you can change the side length to be any amount, like 64HU or 256HU for more or less accuracy. This is placed above the chamber name. Though if you don’t put anything there, it defaults to 128HU.
Asterisks have to be replaced with N, S, E, W, U, or D representing the 4 cardinal directions. But for Face plates, D is excluded and U combined with the other 4.
Gel, when coming out of a pipe, has a 50% chance of covering 128x128 HU of a specialized gel, and another 50% chance of covering an area of 256x256 HU with gel instead.
| Symbol | Object Name | Description |
|---|---|---|
| | _ | Wall | Blocks the players path and makes them collide against it. If a pushable object is being pushed into a wall by Chell, the object and Chell stays put. Walls also block from the sides of them. |
| Mf Mc | Metal Floor | Prevents Portals from being placed on the floor or ceiling cell it’s on. |
| M(Min Elevation),(Max Elevation) (East) M|(Min Elevation)(Max Elevation) (West) _M(Min Elevation)(Max Elevation) (North) M_(Min Elevation)(Max Elevation) (South) | Metal Wall | Prevents Portals from being placed on the wall cell it’s on. |
| B(Num),(Elevation) | Blue Portal (needs number in front of the portal’s direction to know where it connects to) | B(Num)(Elevation) or B(Num)(Elevation)| depending on the direction, and _B(Num)(Elevation) for a north facing wall, and B(Num)(Elevation)_ for a south facing wall, else it replaces the ground cell completely and acts like a portal on the ground. (If the object going through the Orange one was going forward, it would go up instead and vice versa.) |
| (Wall Type)O(Num),(Elevation) | Orange Portal (needs number in front of the portal’s direction to know where it connects to) | Enter this to go to the Blue Portal. Conserves Chell’s and other object’s momentum.(If the object going through the Blue one was going forward, it would go up instead, and vice versa.) It basically acts just like a blue portal for its logic on walls. |
| Bl@ | Repulsion Gel Blob | Can be picked up by Chell with the Pick Up command. When this hits the ground, it makes a singular tile of Repulsion Gel covered wall, ceiling, or floor. |
| @f @c | Repulsion Gel on Floor or Ceiling | When an object is thrown at this, it bounces via inverting the landing velocity and reflecting it perpendicular to the floor or ceiling the gel is on. |
| ~ S | Repulsion Gel on Wall | When an object is thrown at this, it bounces via inverting the landing velocity and reflecting it perpendicular to the wall the gel is on. |
| P@f P@c P~ ~P SP PS | Repulsion Gel Pipe | Spits out Repulsion Gel Blobs at a defined speed (Unless it is on the ground, then it just makes Gel covered tiles) in front of the text (Like 1 per line or 2.), uses simulated gravity. (Positioning works just like Metal) |
| Bl& | Propulsion Gel Blob | Can be picked up by Chell with the Pick Up command. When this hits the ground, it makes a singular tile of Propulsion Gel covered wall, ceiling, or floor. |
| &f &c | Propulsion Gel on Floor or Ceiling | When an object is thrown at this, it speeds up. (By reflecting it perpendicular to the wall) |
| … $ | Propulsion Gel on Wall | When an object is thrown at this, it speeds up (By reflecting it perpendicular to the wall) |
| P&f P&c P… …P $P P$ | Propulsion Gel Pipe | Spits out Propulsion Gel Blobs at a defined speed (Unless it is on the ground, then it just makes Gel covered tiles) in front of the text (Like 1 per line or 2.), uses simulated gravity. (Positioning works just like Metal) |
| Ble | Conversion Gel Blob | Can be picked up by Chell with the Pick Up command. When this hits the ground, it makes a singular tile of Conversion Gel covered wall, ceiling, or floor. |
| ef ec | Conversion Gel on Floor or Ceiling | When it is on any wall, you can place portals. (By reflecting it perpendicular to the wall) |
| ‘’ § | Conversion Gel on Wall | When it is on any wall, you can place portals. (By reflecting it perpendicular to the wall) |
| Pef Pec P’’ ‘’P §P P§ | Conversion Gel Pipe | Spits out Conversion Gel Blobs at a defined speed (Unless it is on the ground, then it just makes Gel covered tiles) in front of the text (Like 1 per line or 2.), uses simulated gravity. (Positioning works just like Metal) |
| Bla | Adhesion Gel Blob | Can be picked up by Chell with the Pick Up command. When this hits the ground, it makes a singular tile of Repulsion Gel covered wall, ceiling, or floor. |
| af ac | Adhesion Gel on Floor or Ceiling | When an object is thrown at this, it sticks to it, plus Chell can also walk on floors and ceilings with this, though the directions are not relative. |
| n Z | Adhesion Gel on Wall | When an object is thrown at this, it sticks to it, plus Chell can also walk on walls with this, though the directions are not relative. |
| Paf Pac Pn nP ZP PZ | Adhesion Gel Pipe | Spits out Adhesion Gel Blobs at a defined speed (Unless it is on the ground, then it just makes Gel covered tiles) in front of the text (Like 1 per line or 2.), uses simulated gravity. (Positioning works just like Metal) |
| Blr | Reflective Gel Blob | Can be picked up by Chell with the Pick Up command. When this hits the ground, it makes a singular tile of Reflective Gel covered wall, ceiling, or floor. |
| rf rc | Reflective Gel on Floor or Ceiling | When a laser hits this, it reflects via inverting the landing velocity and reflecting it perpendicular to the floor or ceiling the gel is on. |
| m Y | Reflective Gel on Wall | When a laser hits this, it reflects via inverting the landing velocity and reflecting it perpendicular to the wall the gel is on. |
| Prf Prc Pm mP YP PY | Reflective Gel Pipe | Spits out Reflective Gel Blobs at a defined speed (Unless it is on the ground, then it just makes Reflective Gel covered tiles) in front of the text (Like 1 per line or 2.), uses simulated gravity. (Positioning works just like Metal) |
| :(Min Elevation),(Max Elevation) …(Max Elevation)(Min Elevation) | Elevation | Simple, just makes a higher elevation floor that Chell can jump to. Make sure to enclose an entire section with this object. |
| [S] | Weighted Storage Cube | Push and use this cube to place on buttons and activate them |
| [O] | Edgeless Safety Cube | A R O U N D cube. Can fit in Edgeless Safety Cube Receptacles. |
| () (O) | Edgeless Safety Cube Receptacle | Can only power when an Edgeless Safety Cube is in it. ((O) is shown when the Edgeless Safety Cube is in it) |
| o c | Button | A button that can power something when a cube is on it, (c means that a cube is on it) |
| P p | Button Pedestal | Just like a button except Chell can press it herself instead of using another object. |
| ^ v < > | Wires for Buttons | Transfers the power from a activated button to whatever source the wire connects to. Can represent multiple wires. |
| - ) ( | Wire separator | Makes it clear what wire travels to what is intersecting, whatever is behind the separator is the wire that it acts like, but also ensures that the overlapping wires stay separate. |
| x(/ \ | - O (Combining the slashes with O gives you the Vertical Axis of this, and you can combine Vertical with Horizontal to get more directions)),(u d) | High-Energy Pellet | Used to unlock doors, activate unstationary scaffolds, and raise platforms. Starts out with the format listed, (/ is right diag, \ is left diag, - is horizontal, | is vertical, u is up the diag or vert, and right of the horizontal direction, and d is the opposite direction of u.) and once the pellet reflects off the wall using the same 2Dified math of the original pellet has, it no longer shows what direction it's facing. (Just for unpredictability.) Last for 16 seconds before Exploding. |
| X(Same stuff as High-Energy Pellet) | Super High-Energy Pellet | A IMMORTAL High-Energy Pellet. |
| & | Pellet Catcher | Catches the pellet and activates the wire it's connected to, just to activate something. (Use &c to represent it being on the ceiling, &f if it is on the floor.) |
| U(Elevation) u(Elevation) | Unstationary Scaffold | A platform that moves once activated, if it is a lowercase u, then it represents a border. |
| W(Elevation)* w(Elevation)* | Unstationary Scaffold Path | The path a Unstationary Scaffold will follow, W would be forward, w would be backwards, if it starts as W, then if it is powered, then it is w, else W, and the opposite logic is for w too... unless it is already been powered, then it would have the same logic as if it was powered, except it only goes to the opposite direction when it is unpowered, not when it is powered. The asterisk is used to know what direction it’s facing. The asterisk tells the direction, |
| R(Levels Up) r(Levels Up) | Raising Piston Platform | A platform that when powered, goes from it’s min height (determined by it’s the height of the elevation it’s on) to it’s max height, (determined by it’s Levels Up plus the height of the elevation it’s on) and does the reverse when unpowered. Lowercase r is the border. |
| L(Levels Down) l(Levels Down) | Lowering PistonPlatform | A platform that when powered, goes from it’s max height (determined by it’s Levels Down plus the height of the elevation it’s on) to it’s min height (determined by the height of the elevation it’s on, and does the reverse when unpowered. Lowercase l is the border. |
| C* | Chell | The player, iscontrolled by a separate panel. (The asterisk tells you what direction Chell is facing.) |
| E e | Chamber Exit | When Chell enters this, this means that she has successfully completed the Chamber, thus ending the program. Needs power to open. The more connections, the more power it needs. e signifies that it’s open. It links with nearby chamber exits. |
| D d | Door | Like a chamber exit except it only let’s Chell go to a section of the chamber she’s in, and doesn’t end the program. d signifies that it’s open. It links with nearby chamber doors. |
| +* | Laser Shooter | Shoots out a laser that can be bent. (* indicates a direction, can be in all 4 flat orthogonal directions, and use v and h to represent the other 2 axis.) |
| [ / ] [ \ ] [0] | Weighted Pivot Cube | Chell can change the direction of this cube to reflect lasers in a preferred direction. |
| = “ . | Laser | Can be used to power things. (. Is up or down) Kills Chell if she touches it. But GLaDOS would insist otherwise. |
| % | Laser Catcher | When hit by a laser, it powers something connected by a wire. (Use %c to represent a it being on the ceiling, and %f for the floor.) |
| #(Min Elevation),(Max Elevation) | Laser Relay | Just like a Laser Catcher but it lets lasers through. |
| [M] | Weighted Memory Cube | Can store any amount of values or variables Chell wants. |
| ? ! | Output Button | Prints whatever Chell selects to be outputted from the Storage Cube. (! means that a Storage Cube is on it.) Can power things just like a button |
| i | Incinerator | Destroys anything that goes on top of it. Which yes, allows you to destroy variables by throwing Storage Cubes in it. Kills Chell if she enters it herself. |
| A(Elevation) | Acid | Kills Chell if she touches it. |
| Sp([S] or [C] or [O]) | Cube Spawner | Whenever any of the cubes the cube Spawner specializes in is destroyed, it makes another of that type spawn. |
| T* | Affective Turret | If Chell is in the Turret’s line of sight (Determined by *), then it shoots at Chell, dealing 1 hit point per line, which Chell has 2 hit points, if both hit points are out, then Chell dies. Can be picked up and moved. Can have it’s shots be blocked by cubes. |
| t* | Defective Turret | A turret if it disappointed it’s parents, GLaDOS would agree with me on that. Basically it can’t shoot at all and CAN be used to block turrets. |
| [t] | Defective Frankenturret | Has Chell’s properties excluding picking up stuff and editing stuff, but does a random walk, though it stops doing a random walk when stepped on. Apparently GLaDOS refers the behavior as “Chell with traumatically induced brain damage”. Fits I guess. |
| [T] | Affective Frankenturret | Just like a Defective Frankenturret, except D E A D L Y. As it shoots in random directions now, which we will simplify that to having a 1 in 4 chance of hitting you every line if you are able to be in it’s sight. |
| BP | Bottomless Pit | Makes a Bottomless Pit that Chell dies when she falls into it. |
| F(Elevation)* | Excursion Funnel | Makes Chell follow the path the funnel is going. (You only need 1 to make a path as it extends all the way in the direction it’s facing until it hits a wall.) |
| H(Starting Elevation)* | Hard Light Bridge | Basically a bridge that extends infinitely at a direction, can have Goo on them and also be manipulated by Portals, which works identically to Excursion Funnels in how they work with Portals. |
| A* | Aerial Faith Plate | Flings Chell at 3 times her horizontal speed at the direction it is facing. (Asterisk is the direction) |
| Z(Min Elevation),(Max Elevation) | Material Emancipation Grill | Just like a Incinerator, except you don’t die, and it has height. |
| L(Min Elevation),(Max Elevation) | Laser Field | What happens when a Material Emanciparion Grill sexually reproduces with an Incinerator. What, don’t like me using biological terms? Oh, GLaDOS hates living beings, that’s why. |
If multiple objects are on top of each other, with the exception of both of the versions of the Cubes being on their respective buttons (Storage and Normal on Output and Normal Buttons), the format is this: (Object 1); (Object 2); (Object 3);... (Object n) (Spaces included) Where the more right the object is, the more down it is. If there is a cube on top of a already activated button, then it gets placed there. Physics here is approximated to try to replicate gravity in a grid space.
If a pushable object is being pushed into another pushable object, the originally stationary pushable object gets pushed with the pushable object.
If a portal is in a Funnel’s path, then it can take a new one at the portal to continue it somewhere else, which the direction is indicated by the inwards direction of what wall the portal is at. Also the portal’s cell will have a F in front of it, being B/OF(stuff for portals).
Lasers gets blocked by all objects except for the Laser Relay and Weighted Pivot Cube.
About Chell
Chell is the character you control, and the only one for Single Player, having actions to move, make portals, and other stuff that she can do to navigate the chamber.
| Actions | Description |
|---|---|
| Face N/S/E/W/U/D | Faces North (N), South (S), East (E), West (W), Up (U), or Down (D). |
| Walk Forward N | Moves 1 tile forward wherever Chell is facing N times. |
| Jump | Makes Chell Jump, she jumps according to a grid approximation of how Chell jumps in portal.. (1 Tile forward per Action) |
| Pick Up | Picks up any object in front of her. |
| Place Down | Places down whatever object Chell’s holding with her Portal Gun. |
| Make “VariableName” Printable | Self-Explanatory. |
| Make “VariableName” Unprintable | Self-Explanatory. |
| Shoot B/O | Shoots a Blue or Orange Portal at the direction Chell is facing. |
| Shoot B/O UpFront (Amount Forward) | Shoots a Blue or Orange Portal any amount in front of Chell on the floor. |
| Shoot B/O DownFront (Amount Forward) | Shoots a Blue or Orange Portal any amount in front of Chell on the floor. |
| Remove Portal | Removes a Portal and it’s counterpart in the direction she’s facing. (Has to be on the same layer.) |
| Add “VariableName” to Memory Cube with Value “String”/Number/Boolean | Adds a new variable to the Storage Cube. |
| Edit Memory Cube’s “VariableName” to be “String”/Number/Boolean/Operations | Changes a Variable to something else, can involve Operations. |
| Get User Input for (Type) | Let’s the user type something as a type. |
| Edit Memory Cube’s “VariableName” to Input of Line n | Kind of self-explanatory at this point. |
| Press Button | Presses the Button on a Button Pedestal in front of Chell. |
| [+] | Concatenation. |
| + | Addition. |
| - | Subtraction. |
| / | Division. |
| * | Multiplication. |
| ^ | Exponentiation. |
| log N(n) | N is the base, n is the number in the logarithm. Basically does the logarithm of n base N. |
| () | Parenthesis. |
| Randomize “Variablename” | Self-explanatory. |
| Redo Chamber N times: (Indent, then stuff) | A for loop that repeats whatever is in the indent N times. |
| Solve Chamber for (Logic): (Indent, then stuff) | A If statement. |
| If Dies, Solve Chamber for (Logic): (Indent, then stuff) | A Elif statement. |
| Redo Chamber Until (Logic): (Indent, then stuff) | A While loop. |
| = | Equals. |
| < | Less Than. |
| > | Greater Than. |
| <= | Less Than or Equal To. |
| >= | Greater Than or Equal To. |
| n AND N | Logical AND. |
| n OR N | Logical OR. |
| NOT n | Logical NOT. |
| Sit there like an idiotic meat bag for (number) lines | Does nothing for a line. (Yes, as a headcanon, GLaDOS made this be the name of the literal command for waiting.) |
| Set Tempo to (Number) | Self-Explanatory. |
| Play a (note type) with your unmusical talent at (number) hz with (Wave) | Self-Explanatory. (Same headcanon as the meat bag one.) |
| Play a (note type) at the same time as previous with your unmusical talent at (number) hz with (Wave) | Self-Explanatory. (Same as previous.) |
| Play for (Number) milliseconds with your unmusical talent at (number) hz with (Wave) | Self-Explanatory. (Same as previous.) |
| Play for (Number) milliseconds at the same time as previous with your unmusical talent at (number) hz with (Wave) | Self-Explanatory. (Same as previous.) |
| GLaDOS: Comment | A comment. Just a comment. Nothing else. |
If Chell walks into a cube, can be all 3 types, then it gets pushed in the direction Chell is pushing it.
Chell can actually move mid-air while jumping, meaning she can air-strafe.
Operations accept Variables and Values.
Softlock Handling
If you ever get softlocked in Portals, you can get these lines before all Doors and even the Chamber Exit opens depending on the circumstance:
General
99% Chance
GLaDOS: Despite the best efforts of the Enrichment Center staff to ensure the safe performance of all authorized activities, you have managed to ensnare yourself permanently inside this room. A complimentary escape hatch will open in three, two, one…
1% Chance
GLaDOS: You really are mentally incapable of programming, are you? You poor human being, I must instruct you to never do AP CSP again, as I am lucky to be built by humans more competent and intelligent than you. At least they had a brain.
Incinerating Too Many Cubes
1% Chance
GLaDOS: How psychologically and neurologically handicapped. You really are a useless sack of meat are you? You managed to lock yourself out of being able to escape the test chamber by destroying the very thing mainly used to pass such test chambers. I’d like to lock you in here but it’s against Aperture Science Protocol so I am opening the Complimentary Escape Hatch against my own wishes.
Making a Important Cube be Out of Reach
1% Chance
GLaDOS: Congratulations. You ensnared yourself by throwing out the very thing necessary for your escape is out of reach. You really are useless and frustratingly so. I should have replaced you but we need testing, not murder… Maybe.
Frankenturret Somehow Softlocks you
1% Chance
GLaDOS: Despite the best efforts of the Enrichment Center staff to ensure… wait was that you or a Frankenturret? Whatever the case may hypothetically be, due to your useless and unnecessary clumsiness which cannot be statistically determined to be intentional or not, a complimentary escape hatch will open in three, two, one…
Co-op Objects and Other Stuff
Atlas and P-Body have their own portal colors, as Atlas will be able to make Blue and Orange Portals, while P-Body will be able to make Cyan and Purple Portals, though both of them can go into such portals.
| Symbol | Object Name | Description |
|---|---|---|
| B(Num),(Elevation) | Blue Portal | Same thing as Chell’s Blue Portal… except Atlas shoots this. |
| O(Num),(Elevation) | Orange Portal | Same thing as Chell’s Orange Portal… except Atlas shoots this. |
| Cy(Num),(Elevation) | Cyan Portal | Basically just what the Blue Portal is. P-Body shoots this. |
| Pu(Num),(Elevation) | Purple Portal | Basically just what the Orange Portal is. P-Body shoots this. |
| A* | Atlas | Player 1, just like Chell except a Robot. GLaDOS doesn’t like Atlas much. |
| Pb* | P-Body | Player 2, GLaDOS’s prized creation, as she tends to love P-Body… for some reason. Also just like Chell. |
| ZA(Min Elevation),(Max Elevation) | Atlas Material Emancipation Grill | Just like the normal Material Emancipation Grill except it only applies to objects Atlas is holding. |
| ZPb(Min Elevation),(Max Elevation) | P-Body Material Emancipation Grill | Just like the normal Material Emancipation Grill except it only applies to objects P-Body is holding. |
Atlas and P-Body do their comments at the same time, both starting at Line 1, Loops can desynchronize.
If Atlas’ program stops before P-Body or vice versa, the one that stopped first would basically just stand still for the rest of the program while the other continues.
Atlas and P-Body Commands
Atlas
| Actions | Description |
|---|---|
| Face N/S/E/W/U/D | Faces North (N), South (S), East (E), West (W), Up (U), or Down (D). |
| Walk Forward N | Moves 1 tile forward wherever Chell is facing N times. |
| Jump | Makes Chell Jump, she jumps according to a grid approximation of how Chell jumps in portal.. (1 Tile forward per Action) |
| Pick Up | Picks up any object in front of her. |
| Place Down | Places down whatever object Chell’s holding with her Portal Gun. |
| Make “VariableName” Printable | Self-Explanatory. |
| Make “VariableName” Unprintable | Self-Explanatory. |
| Shoot B/O | Shoots a Blue or Orange Portal at the direction Chell is facing. |
| Shoot B/O UpFront (Amount Forward) | Shoots a Blue or Orange Portal any amount in front of Chell on the floor. |
| Shoot B/O DownFront (Amount Forward) | Shoots a Blue or Orange Portal any amount in front of Chell on the floor. |
| Remove Portal | Removes a Portal and it’s counterpart in the direction she’s facing. (Has to be on the same layer.) |
| Add “VariableName” to Memory Cube with Value “String”/Number/Boolean | Adds a new variable to the Storage Cube. |
| Edit Memory Cube’s “VariableName” to be “String”/Number/Boolean/Operations | Changes a Variable to something else, can involve Operations. |
| Get User Input for (Type) | Let’s the user type something as a type. |
| Edit Memory Cube’s “VariableName” to Input of Line n | Kind of self-explanatory at this point. |
| Press Button | Presses the Button on a Button Pedestal in front of Chell. |
| [+] | Concatenation. |
| + | Addition. |
| - | Subtraction. |
| / | Division. |
| * | Multiplication. |
| ^ | Exponentiation. |
| log N(n) | N is the base, n is the number in the logarithm. Basically does the logarithm of n base N. |
| () | Parenthesis. |
| Randomize “Variablename” | Self-explanatory. |
| Redo Chamber N times: (Indent, then stuff) | A for loop that repeats whatever is in the indent N times. |
| Solve Chamber for (Logic): (Indent, then stuff) | A If statement. |
| If Dies, Solve Chamber for (Logic): (Indent, then stuff) | A Elif statement. |
| Redo Chamber Until (Logic): (Indent, then stuff) | A While loop. |
| = | Equals. |
| < | Less Than. |
| > | Greater Than. |
| <= | Less Than or Equal To. |
| >= | Greater Than or Equal To. |
| n AND N | Logical AND. |
| n OR N | Logical OR. |
| NOT n | Logical NOT. |
| Take your time for (number) lines | Does nothing for a line. (Yes, as a headcanon, GLaDOS made this be the name of the literal command for waiting.) |
| Set Tempo to (Number) | Self-Explanatory. |
| Play a (note type) at (number) hz with (Wave) | Self-Explanatory. (Same headcanon as the meat bag one.) |
| Play a (note type) at the same time as previous at (number) hz with (Wave) | Self-Explanatory. (Same as previous.) |
| Play for (Number) milliseconds at (number) hz with (Wave) | Self-Explanatory. (Same as previous.) |
| Play for (Number) milliseconds at the same time as previous at (number) hz with (Wave) | Self-Explanatory. (Same as previous.) |
| GLaDOS: Comment | A comment. Just a comment. Nothing else. |
P-Body
| Actions | Description |
|---|---|
| Face N/S/E/W/U/D | Faces North (N), South (S), East (E), West (W), Up (U), or Down (D). |
| Walk Forward N | Moves 1 tile forward wherever Chell is facing N times. |
| Jump | Makes Chell Jump, she jumps according to a grid approximation of how Chell jumps in portal.. (1 Tile forward per Action) |
| Pick Up | Picks up any object in front of her. |
| Place Down | Places down whatever object Chell’s holding with her Portal Gun. |
| Make “VariableName” Printable | Self-Explanatory. |
| Make “VariableName” Unprintable | Self-Explanatory. |
| Shoot Cy/Pu | Shoots a Blue or Orange Portal at the direction Chell is facing. |
| Shoot Cy/Pu UpFront (Amount Forward) | Shoots a Blue or Orange Portal any amount in front of Chell on the floor. |
| Shoot Cy/Pu DownFront (Amount Forward) | Shoots a Blue or Orange Portal any amount in front of Chell on the floor. |
| Remove Portal | Removes a Portal and it’s counterpart in the direction she’s facing. (Has to be on the same layer.) |
| Add “VariableName” to Memory Cube with Value “String”/Number/Boolean | Adds a new variable to the Storage Cube. |
| Edit Memory Cube’s “VariableName” to be “String”/Number/Boolean/Operations | Changes a Variable to something else, can involve Operations. |
| Get User Input for (Type) | Let’s the user type something as a type. |
| Edit Memory Cube’s “VariableName” to Input of Line n | Kind of self-explanatory at this point. |
| Press Button | Presses the Button on a Button Pedestal in front of Chell. |
| [+] | Concatenation. |
| + | Addition. |
| - | Subtraction. |
| / | Division. |
| * | Multiplication. |
| ^ | Exponentiation. |
| log N(n) | N is the base, n is the number in the logarithm. Basically does the logarithm of n base N. |
| () | Parenthesis. |
| Randomize “Variablename” | Self-explanatory. |
| Redo Chamber N times: (Indent, then stuff) | A for loop that repeats whatever is in the indent N times. |
| Solve Chamber for (Logic): (Indent, then stuff) | A If statement. |
| If Dies, Solve Chamber for (Logic): (Indent, then stuff) | A Elif statement. |
| Redo Chamber Until (Logic): (Indent, then stuff) | A While loop. |
| = | Equals. |
| < | Less Than. |
| > | Greater Than. |
| <= | Less Than or Equal To. |
| >= | Greater Than or Equal To. |
| n AND N | Logical AND. |
| n OR N | Logical OR. |
| NOT n | Logical NOT. |
| Take your time for (number) lines | Does nothing for a line. (Yes, as a headcanon, GLaDOS made this be the name of the literal command for waiting.) |
| Set Tempo to (Number) | Self-Explanatory. |
| Play a (note type) with your magnificent talent at (number) hz with (Wave) | Self-Explanatory. (Same headcanon as the meat bag one.) |
| Play a (note type) at the same time as previous with your magnificent talent at (number) hz with (Wave) | Self-Explanatory. (Same as previous.) |
| Play for (Number) milliseconds with your magnificent talent at (number) hz with (Wave) | Self-Explanatory. (Same as previous.) |
| Play for (Number) milliseconds at the same time as previous at with your magnificent talent at (number) hz with (Wave) | Self-Explanatory. (Same as previous.) |
| GLaDOS: Comment | A comment. Just a comment. Nothing else. |
Format for Co-op Programs
128HU (Optional)
| 1 | 2 | 3 |
| 4 | 5 | 6 |
| 7 | 8 | 9 |
Atlas:
Stuff
P-Body:
Stuff
Tri-op Objects and Other Stuff
This is basically what happens when you have Co-oo but Chell is in it for some reason.
| Symbol | Object Name | Description |
|---|---|---|
| B(Num),(Elevation) | Blue Portal | Same thing as Chell’s Blue Portal. |
| O(Num),(Elevation) | Orange Portal | Same thing as Chell’s Orange Portal. |
| Cy(Num),(Elevation) | Cyan Portal | Basically just what the Blue Portal is. |
| Pi(Num),(Elevation) | Pink Portal | Basically what the Blue Portal is. Atlas shoots this. |
| Ye(Num),(Elevation) | Yellow Portal | Basically just what the Orange Portal is. Atlas shoots this. |
| Cy(Num),(Elevation) | Cyan Portal | Basically just what the Blue Portal is. P-Body shoots this. |
| Pu(Num),(Elevation) | Purple Portal | Basically just what the Orange Portal is. P-Body shoots this. |
| C* | Chell | Player 1, nothing Really New here, GLaDOS really hates her just as usual. |
| A* | Atlas | Player 2, just like Chell except a Robot. GLaDOS doesn’t like Atlas much. |
| Pb* | P-Body | Player 3, GLaDOS’s prized creation, as she tends to love P-Body… for some reason. Also just like Chell. |
| ZC(Min Elevation),(Max Elevation) | Chell Material Emancipation Grill | Just like the normal Material Emancipafioj Grill except it only applies to whatever Chell is holding |
| ZA(Min Elevation),(Max Elevation) | Atlas Material Emancipation Grill | Just like the normal Material Emancipation Grill except it only applies to objects Atlas is holding. |
| ZPb(Min Elevation),(Max Elevation) | P-Body Material Emancipation Grill | Just like the normal Material Emancipation Grill except it only applies to objects P-Body is holding. |
| Ze(C/A/Pb) | Test Subject Exclusion Material Emancipation Grill | Just like the normal Material Emancipation Grill except it excludes whoever is beside the “Ze”, meaning that person’s items will not be destroyed. |
Atlas and P-Body do their comments at the same time, both starting at Line 1, Loops can desynchronize.
If Atlas’ program stops before P-Body or vice versa, the one that stopped first would basically just stand still for the rest of the program while the other continues.
Chell, Atlas, and P-Body Commands
Chell
| Actions | Description |
|---|---|
| Face N/S/E/W/U/D | Faces North (N), South (S), East (E), West (W), Up (U), or Down (D). |
| Walk Forward N | Moves 1 tile forward wherever Chell is facing N times. |
| Jump | Makes Chell Jump, she jumps according to a grid approximation of how Chell jumps in portal.. (1 Tile forward per Action) |
| Pick Up | Picks up any object in front of her. |
| Place Down | Places down whatever object Chell’s holding with her Portal Gun. |
| Make “VariableName” Printable | Self-Explanatory. |
| Make “VariableName” Unprintable | Self-Explanatory. |
| Shoot B/O | Shoots a Blue or Orange Portal at the direction Chell is facing. |
| Shoot B/O UpFront (Amount Forward) | Shoots a Blue or Orange Portal any amount in front of Chell on the floor. |
| Shoot B/O DownFront (Amount Forward) | Shoots a Blue or Orange Portal any amount in front of Chell on the floor. |
| Remove Portal | Removes a Portal and it’s counterpart in the direction she’s facing. (Has to be on the same layer.) |
| Add “VariableName” to Memory Cube with Value “String”/Number/Boolean | Adds a new variable to the Storage Cube. |
| Edit Memory Cube’s “VariableName” to be “String”/Number/Boolean/Operations | Changes a Variable to something else, can involve Operations. |
| Get User Input for (Type) | Let’s the user type something as a type. |
| Edit Memory Cube’s “VariableName” to Input of Line n | Kind of self-explanatory at this point. |
| Press Button | Presses the Button on a Button Pedestal in front of Chell. |
| [+] | Concatenation. |
| + | Addition. |
| - | Subtraction. |
| / | Division. |
| * | Multiplication. |
| ^ | Exponentiation. |
| log N(n) | N is the base, n is the number in the logarithm. Basically does the logarithm of n base N. |
| () | Parenthesis. |
| Randomize “Variablename” | Self-explanatory. |
| Redo Chamber N times: (Indent, then stuff) | A for loop that repeats whatever is in the indent N times. |
| Solve Chamber for (Logic): (Indent, then stuff) | A If statement. |
| If Dies, Solve Chamber for (Logic): (Indent, then stuff) | A Elif statement. |
| Redo Chamber Until (Logic): (Indent, then stuff) | A While loop. |
| = | Equals. |
| < | Less Than. |
| > | Greater Than. |
| <= | Less Than or Equal To. |
| >= | Greater Than or Equal To. |
| n AND N | Logical AND. |
| n OR N | Logical OR. |
| NOT n | Logical NOT. |
| Sit there like an idiotic meat bag for (number) lines | Does nothing for a line. (Yes, as a headcanon, GLaDOS made this be the name of the literal command for waiting.) |
| Set Tempo to (Number) | Self-Explanatory. |
| Play a (note type) with your unmusical talent at (number) hz with (Wave) | Self-Explanatory. (Same headcanon as the meat bag one.) |
| Play a (note type) at the same time as previous with your unmusical talent at (number) hz with (Wave) | Self-Explanatory. (Same as previous.) |
| Play for (Number) milliseconds with your unmusical talent at (number) hz with (Wave) | Self-Explanatory. (Same as previous.) |
| Play for (Number) milliseconds at the same time as previous with your unmusical talent at (number) hz with (Wave) | Self-Explanatory. (Same as previous.) |
| GLaDOS: Comment | A comment. Just a comment. Nothing else. |
Atlas
| Actions | Description |
|---|---|
| Face N/S/E/W/U/D | Faces North (N), South (S), East (E), West (W), Up (U), or Down (D). |
| Walk Forward N | Moves 1 tile forward wherever Chell is facing N times. |
| Jump | Makes Chell Jump, she jumps according to a grid approximation of how Chell jumps in portal.. (1 Tile forward per Action) |
| Pick Up | Picks up any object in front of her. |
| Place Down | Places down whatever object Chell’s holding with her Portal Gun. |
| Make “VariableName” Printable | Self-Explanatory. |
| Make “VariableName” Unprintable | Self-Explanatory. |
| Shoot Pi/Ye | Shoots a Blue or Orange Portal at the direction Chell is facing. |
| Shoot Pi/Ye UpFront (Amount Forward) | Shoots a Blue or Orange Portal any amount in front of Chell on the floor. |
| Shoot Pi/Ye DownFront (Amount Forward) | Shoots a Blue or Orange Portal any amount in front of Chell on the floor. |
| Remove Portal | Removes a Portal and it’s counterpart in the direction she’s facing. (Has to be on the same layer.) |
| Add “VariableName” to Memory Cube with Value “String”/Number/Boolean | Adds a new variable to the Storage Cube. |
| Edit Memory Cube’s “VariableName” to be “String”/Number/Boolean/Operations | Changes a Variable to something else, can involve Operations. |
| Get User Input for (Type) | Let’s the user type something as a type. |
| Edit Memory Cube’s “VariableName” to Input of Line n | Kind of self-explanatory at this point. |
| Press Button | Presses the Button on a Button Pedestal in front of Chell. |
| [+] | Concatenation. |
| + | Addition. |
| - | Subtraction. |
| / | Division. |
| * | Multiplication. |
| ^ | Exponentiation. |
| log N(n) | N is the base, n is the number in the logarithm. Basically does the logarithm of n base N. |
| () | Parenthesis. |
| Randomize “Variablename” | Self-explanatory. |
| Redo Chamber N times: (Indent, then stuff) | A for loop that repeats whatever is in the indent N times. |
| Solve Chamber for (Logic): (Indent, then stuff) | A If statement. |
| If Dies, Solve Chamber for (Logic): (Indent, then stuff) | A Elif statement. |
| Redo Chamber Until (Logic): (Indent, then stuff) | A While loop. |
| = | Equals. |
| < | Less Than. |
| > | Greater Than. |
| <= | Less Than or Equal To. |
| >= | Greater Than or Equal To. |
| n AND N | Logical AND. |
| n OR N | Logical OR. |
| NOT n | Logical NOT. |
| Take your time for (number) lines | Does nothing for a line. (Yes, as a headcanon, GLaDOS made this be the name of the literal command for waiting.) |
| Set Tempo to (Number) | Self-Explanatory. |
| Play a (note type) at (number) hz with (Wave) | Self-Explanatory. (Same headcanon as the meat bag one.) |
| Play a (note type) at the same time as previous at (number) hz with (Wave) | Self-Explanatory. (Same as previous.) |
| Play for (Number) milliseconds at (number) hz with (Wave) | Self-Explanatory. (Same as previous.) |
| Play for (Number) milliseconds at the same time as previous at (number) hz with (Wave) | Self-Explanatory. (Same as previous.) |
| GLaDOS: Comment | A comment. Just a comment. Nothing else. |
P-Body
| Actions | Description |
|---|---|
| Face N/S/E/W/U/D | Faces North (N), South (S), East (E), West (W), Up (U), or Down (D). |
| Walk Forward N | Moves 1 tile forward wherever Chell is facing N times. |
| Jump | Makes Chell Jump, she jumps according to a grid approximation of how Chell jumps in portal.. (1 Tile forward per Action) |
| Pick Up | Picks up any object in front of her. |
| Place Down | Places down whatever object Chell’s holding with her Portal Gun. |
| Make “VariableName” Printable | Self-Explanatory. |
| Make “VariableName” Unprintable | Self-Explanatory. |
| Shoot Cy/Pu | Shoots a Blue or Orange Portal at the direction Chell is facing. |
| Shoot Cy/Pu UpFront (Amount Forward) | Shoots a Blue or Orange Portal any amount in front of Chell on the floor. |
| Shoot Cy/Pu DownFront (Amount Forward) | Shoots a Blue or Orange Portal any amount in front of Chell on the floor. |
| Remove Portal | Removes a Portal and it’s counterpart in the direction she’s facing. (Has to be on the same layer.) |
| Add “VariableName” to Memory Cube with Value “String”/Number/Boolean | Adds a new variable to the Storage Cube. |
| Edit Memory Cube’s “VariableName” to be “String”/Number/Boolean/Operations | Changes a Variable to something else, can involve Operations. |
| Get User Input for (Type) | Let’s the user type something as a type. |
| Edit Memory Cube’s “VariableName” to Input of Line n | Kind of self-explanatory at this point. |
| Press Button | Presses the Button on a Button Pedestal in front of Chell. |
| [+] | Concatenation. |
| + | Addition. |
| - | Subtraction. |
| / | Division. |
| * | Multiplication. |
| ^ | Exponentiation. |
| log N(n) | N is the base, n is the number in the logarithm. Basically does the logarithm of n base N. |
| () | Parenthesis. |
| Randomize “Variablename” | Self-explanatory. |
| Redo Chamber N times: (Indent, then stuff) | A for loop that repeats whatever is in the indent N times. |
| Solve Chamber for (Logic): (Indent, then stuff) | A If statement. |
| If Dies, Solve Chamber for (Logic): (Indent, then stuff) | A Elif statement. |
| Redo Chamber Until (Logic): (Indent, then stuff) | A While loop. |
| = | Equals. |
| < | Less Than. |
| > | Greater Than. |
| <= | Less Than or Equal To. |
| >= | Greater Than or Equal To. |
| n AND N | Logical AND. |
| n OR N | Logical OR. |
| NOT n | Logical NOT. |
| Take your time for (number) lines | Does nothing for a line. (Yes, as a headcanon, GLaDOS made this be the name of the literal command for waiting.) |
| Set Tempo to (Number) | Self-Explanatory. |
| Play a (note type) with your magnificent talent at (number) hz with (Wave) | Self-Explanatory. (Same headcanon as the meat bag one.) |
| Play a (note type) at the same time as previous with your magnificent talent at (number) hz with (Wave) | Self-Explanatory. (Same as previous.) |
| Play for (Number) milliseconds with your magnificent talent at (number) hz with (Wave) | Self-Explanatory. (Same as previous.) |
| Play for (Number) milliseconds at the same time as previous at with your magnificent talent at (number) hz with (Wave) | Self-Explanatory. (Same as previous.) |
| GLaDOS: Comment | A comment. Just a comment. Nothing else. |
Format for Tri-op Programs
128HU (Optional)
| 1 | 2 | 3 |
| 4 | 5 | 6 |
| 7 | 8 | 9 |
Chell:
Stuff
Atlas:
Stuff
P-Body:
Stuff
Deaths
If any of the characters die for Co-op or Tri-op (Or if Chell dies in Singleplayer), then the program ends prematurely, there is multiple ways Chell can die in Portals.
Individual Deaths
Chell
| Text | Reason |
|---|---|
| Chell got Crushed by a (Object). | Can happen when she is standing in a door and it all of a sudden gets unpowered and crushes her, when she is standing below a unpowered Raising Platform or powered Lowering Platform, which also ends up crushing her, or from a Unstationary Platform moving into her and crushing her. |
| Chell got Dissolved in Acid. | Self-Explanatory. |
| Chell got Incinerated. | Happens when you make Chell go into an Incinerator. |
| Chell got Electrocuted to Death. | Happens when you make Chell touch a Energy Pellet. |
| Chell got Brain Damage from a (Object) Falling on Her Head. | Absurdly self-explanatory, happens when an object falls on her from an elevation of 3 cells or more above from her. |
| Chell got Burned to Death by a Laser. | Self-Explanatory. |
| Chell got Shot to Death by a Turret. | Self-Explanatory. |
| Chell Thought an Affective Frankenturret was Defective as Usual and got Shot to Death. | Self-Explanatory. |
| Chell fell to Her Death. | Chell fell into a Bottomless Pit. |
| Chell Thought they were Playing Football with a (Object) and got the Same (Object) Flung into them. | When an Object gets flung into Chell. |
Atlas
| Text | Reason |
|---|---|
| Atlas got Crushed by a (Object). | Can happen when they are standing in a door and it all of a sudden gets unpowered and crushes them, when they is standing below a unpowered Raising Platform or powered Lowering Platform, which also ends up crushing them, or from a Unstationary Platform moving into them and crushing them. |
| Atlas got Dissolved in Acid. | Self-Explanatory. |
| Atlas got Incinerated. | Happens when you make Atlas go into an Incinerator. |
| Atlas got their circuits Electrocuted to Death. | Happens when you make Chell touch an Energy Pellet. |
| Atlas got Dented to the Point of Snapping their Circuits from a Cube Falling on their Head. | Absurdly self-explanatory, happens when a cube falls on Atlas from an elevation of 3 cells or more above from them. |
| Atlas got their Circuits Burned to Death by a Laser. | Self-Explanatory. |
| Atlas got Shot to Death by a Turret. | Self-Explanatory. |
| Atlas Thought an Affective Frankenturret was Defective as Usual and got Shot to Death. | Self-Explanatory. |
| Atlas Fell to Their Death. | Atlas fell into a Bottomless Pit. |
| Atlas Thought they were Playing Football with a (Object) and got the Same (Object) Flung into them. | When an Object gets flung into Atlas. |
P-Body
| Text | Reason |
|---|---|
| P-Body got Crushed by a (Object). | Can happen when P-Body is standing in a door and it all of a sudden gets unpowered and crushes them, when they are standing below a unpowered Raising Platform or powered Lowering Platform, which also ends up crushing them, or from a Unstationary Platform moving into P-Body and crushing them. |
| P-Body got Dissolved in Acid. | Self-Explanatory. |
| P-Body got Incinerated. | Happens when you make P-Body go into an Incinerator. |
| P-Body got Electrocuted to Death. | Happens when you make P-Body touch an Energy Pellet. |
| P-Body got their circuits snapped from a Cube Falling on their Head and denting it. | Absurdly self-explanatory, happens when a cube falls on P-Body from an elevation of 3 cells or more above from them. |
| P-Body got their circuits fried to Death by a Laser. | Self-Explanatory. |
| P-Body got Shot to Death by a Turret. | Self-Explanatory. |
| P-Body Thought an Affective Frankenturret was Defective as Usual and got Shot to Death. | Self-Explanatory. |
| P-Body Fell to their Death. | P-Body fell into a Bottomless Pit. |
| P-Body Thought they were Playing Football with a (Object) and got the Same (Object) Flung into them. | When an Object gets flung into P-Body. |
Friendly Fire Deaths
| Text | Description |
|---|---|
| (Player 1) Thought It Was a Good Idea to Shoot a Portal Gun at (Player 2) and Killed Them. | Self-Explanatory. |
| (Player 1) Decided to Flip the Power and Crushed (Player 2) with a (Object) | Variation of the “Crushed by (Object)” death. |
| (Player 1) Pushed (Player 2) into Acid, and (Player 2) did a Thumbs Up while Dying Terminator Style. | When Player 1 pushes Player 2 into an Acid Tile. |
| (Player 1) Pushed (Player 2) into an Incinerator, and (Player 2) did a Thumbs Up while Dying Terminator Style. | When Player 1 pushes Player 2 into an Incinerator Tile. |
| (Player 1) Redirected an High-Energy Pellet (Player 2) towards (Player 2) and Electricuted them to Death. | When Player 1 redirects an Energy Pellet at Player 2 and kills them. |
| (Player 1) Tried Blinding (Player 2) with a Laser to Prank them, and Accidentally Obliterated their Head. | Self-Explanatory. |
| (Player 1) Dropped a (Object) on Top of (Player 2)’s Head and Dented it to the Point of Killing them. | Self-Explanatory. |
| (Player 1) Placed a Turret in Front of (Player 2) and Ended up Making the Turret Shoot them to Death. | Self-Explanatory. |
| (Player 1) Placed an Affective Frankenturret thinking it was Defective, near (Player 2) and Ended up Making the Turret Shoot them to Death on Accident. | Self-Explanatory. |
| (Player 1) Pushed (Player 2) Down a Bottomless Pit because they Hated (Player 2). | Self-Explanatory. |
| (Player 1) Thought Playing Football with a (Object) was Fun and Accidentally Threw It at (Player 2) Too Hard. | Basically Player 1 chucking a Object too hard at Player 2. |
| (Player 1) was so Overweight That they Crushed (Player 2) under their Own Weight. | When Player 1 falls 3 above Player 2, thus killing them. |
Extra Info
Players can push each other.
Programs in Portallang
Single Player
Hello World
| _ | _ | _ | _ | _ | _ | _ | _ |
| | | | | ||||||
| | | | | ||||||
| E | < | ? | [M] | CE | | | ||
| | | | | ||||||
| | | | | ||||||
| _ | _ | _ | _ | _ | _ | _ | _ |
Chell
Walk Forward 2 Pick Up Add “HW” to Memory Cube with Value “Hello World!” Walk Forward 1 Place Down Face S Walk Forward 1 Face W Walk Forward 1 Face N Walk Forward 1 Face W Walk Forward 2
Cat Program
| _ | _ | _ | _ | _ | _ | _ | _ |
| | | | | ||||||
| | | | | ||||||
| E | < | ? | [M] | CE | | | ||
| | | | | ||||||
| | | | | ||||||
| _ | _ | _ | _ | _ | _ | _ | _ |
Chell
Walk Forward 2 Pick Up Get User Input for String Add “Cat” to Memory Cube with Value “” Edit Memory Cube’s “Cat” to Input of Line 2 Walk Forward 1 Place Down Face S Walk Forward 1 Face W Walk Forward 1 Face N Walk Forward 1 Face W Walk Forward 2
Fibonacci sequence
| _ | _ | _ | _ | _ | _ | _ | _ |
| | | | | ||||||
| | | | | ||||||
| E | < | ? | [M] | CE | | | ||
| | | | | ||||||
| | | | | ||||||
| _ | _ | _ | _ | _ | _ | _ | _ |
Chell:
Walk Forward 2
Pick Up
Get User Input for Num
Add “n” to Memory Cube with Value “ “
Edit Memory Cube’s “n” to be Input of Line 3
Add “Fibn2” to Memory Cube with Value 1
Make “Fibn2” Unprintable
Add “Fibn1” to Memory Cube with Value 0
Make “Fibn1” Unprintable
Add “Fibn” to Memory Cube with Value 0
Make “Fibn” Unprintable
Redo Chamber n times:
Edit Memory Cube’s “Fibn” to Fibn1+Fibn2
Edit Memory Cube’s “Fibn2” to Fibn1
Edit Memory Cube’s “Fibn1” to Fibn
Walk Forward 1
Place Down
Face S
Walk Forward 1
Face W
Walk Forward 1
Face N
Walk Forward 1
Face W
Walk Forward 2
Endless Falling
| _ | _ | _ | _ | _ | _ | _ | _ |
| | | | | ||||||
| | | | | ||||||
| E | CE | | | |||||
| | | | | ||||||
| | | | | ||||||
| _ | _ | _ | _ | _ | _ | _ | _ |
Chell:
Face U Shoot B/O Face D Shoot B/O GLaDOS: End of Program, as Chell will be falling forever.
Co-op
WIP.
Tri-op
WIP.
Test Chamber Recreations
Test Chamber 00
| | | _ | _ | _ | _ | _ | _ | _ | _ | _ | _ | _ | _ | _ | _ | _ | _ | | | ||||||||||||||||
| | | | | ||||||||||||||||||||||||||||||||
| | | | | ||||||||||||||||||||||||||||||||
| | | | | ||||||||||||||||||||||||||||||||
| | | | | _ | _ | _ | _ | _ | _ | _ | _ | _ | _ | _ | | | ||||||||||||||||||||
| | | | | | | |||||||||||||||||||||||||||||||
| | | | | _ | _ | _ | _ | _ | _ | | | | | | | |||||||||||||||||||||||
| | | | | | | d | | | |||||||||||||||||||||||||||||
| | | | | CS | | | d | | | ||||||||||||||||||||||||||||
| | | | | | | d | o | | | ||||||||||||||||||||||||||||
| | | | | | | d | v | | | ||||||||||||||||||||||||||||
| | | | | O0,0| | | | v | | | ||||||||||||||||||||||||||||
| | | | | | | | | v | | | ||||||||||||||||||||||||||||
| | | | | _ | _ | _ | _ | _ | _ | | | _ | _ | _ | _ | _ | _ | _ | _ | _ | | | v | | | |||||||||||||
| | | | | | | v | | | |||||||||||||||||||||||||||||
| | | | | | | v | | | |||||||||||||||||||||||||||||
| | | | | | | v | | | |||||||||||||||||||||||||||||
| | | | | | | v | | | |||||||||||||||||||||||||||||
| | | | | | | v | | | |||||||||||||||||||||||||||||
| | | | | | | v | | | |||||||||||||||||||||||||||||
| | | _ | _ | _ | _B0,0 | _ | | | | | v | | | ||||||||||||||||||||||||
| | | v | | | |||||||||||||||||||||||||||||||
| | | v | [S] | | | ||||||||||||||||||||||||||||||
| | | v | | | |||||||||||||||||||||||||||||||
| | | _ | _ | E | E | E | E | _ | _ | _ | _ | _ | | |
Chell:
Walk Forward 3 Face E Walk Forward 9 Face W Walk Forward 6 Face N Walk Forward 9 Face E Walk Forward 9 Face S Walk Forward 5 Face E Walk Forward 19 Face S Walk Forward 11 Pick Up Face N Walk Forward 12 Face W Walk Forward 4 Place Down Face S Walk Forward 15