Main Page

Explain xkcd: It's 'cause you're dumb.
(Difference between revisions)
Jump to: navigation, search
(New here?: fix link)
(17 intermediate revisions by 4 users not shown)
Line 2: Line 2:
<font size=5px>''Welcome to the '''explain [[xkcd]]''' wiki!''</font>
<font size=5px>''Welcome to the '''explain [[xkcd]]''' wiki!''</font><br>
We have an explanation for all [[:Category:Comics|'''{{#expr:{{PAGESINCAT:Comics|R}}-13}}''' xkcd comics]],
We have an explanation for all [[:Category:Comics|'''{{#expr:{{PAGESINCAT:Comics|R}}-13}}''' xkcd comics]],
<!-- Note: the -13 in the calculation above is to discount subcategories (there are 8 of them as of 2013-02-27),
<!-- Note: the -13 in the calculation above is to discount subcategories (there are 8 of them as of 2013-02-27),
Line 8: Line 8:
     The extra one difference corresponds to 404, which is not really a comic, even though we've categorised it so.
     The extra one difference corresponds to 404, which is not really a comic, even though we've categorised it so.
and only {{PAGESINCAT:Incomplete articles|R}}
and only {{PAGESINCAT:Incomplete explanations|R}}
({{#expr: {{PAGESINCAT:Incomplete articles|R}} / {{LATESTCOMIC}} * 100 round 0}}%) [[:Category:Incomplete articles|are incomplete]]. Help us finish them!
({{#expr: {{PAGESINCAT:Incomplete explanations|R}} / {{LATESTCOMIC}} * 100 round 0}}%) [[:Category:Incomplete explanations|are incomplete]]. Help us finish them!
== Latest comic ==
== Latest comic ==
Line 29: Line 29:
*If you're new to wikis like this, take a look at these help pages describing [[mw:Help:Navigation|how to navigate]] the wiki, and [[mw:Help:Editing pages|how to edit]] pages.
*If you're new to wikis like this, take a look at these help pages describing [[mw:Help:Navigation|how to navigate]] the wiki, and [[mw:Help:Editing pages|how to edit]] pages.
*Discussion about various parts of the wiki is going on at [[Explain XKCD:Community portal]]. Share your 2¢!
*Discussion about various parts of the wiki is going on at the [[explain xkcd:Community portal|Community portal]]. Share your 2¢!
*[[List of all comics]] contains a table of most recent xkcd comics and links to the rest, and the corresponding explanations. There are incomplete explanations listed [[:Category:Incomplete articles|here]]. Feel free to help out by expanding them!
*[[List of all comics]] contains a table of most recent xkcd comics and links to the rest, and the corresponding explanations. There are incomplete explanations listed [[:Category:Incomplete explanations|here]]. Feel free to help out by expanding them!
*If you see that a new comic hasn't been explained yet, you can create it: '''[[Help:How to add a new comic explanation|Here's how]]'''.
*We sell advertising space to pay for our server costs. To learn more, go [[explain xkcd:Advertise Here|here]].
*We sell advertising space to pay for our server costs. To learn more, go [[explain xkcd:Advertise Here|here]].

Revision as of 17:59, 4 March 2014

Welcome to the explain xkcd wiki!
We have an explanation for all 1 xkcd comics, and only 20 (1%) are incomplete. Help us finish them!

Latest comic

Go to this comic explanation


To experience the interactivity, visit the original comic.



Ambox notice.png This explanation may be incomplete or incorrect: It's possible not all of the game's secrets have been unearthed yet.

The "comic" is actually a browser game made to celebrate the release of Randall's new book, Thing Explainer, which were released on the same day as this comic (November 24th 2015.) It was thus released on a Tuesday, and thus replaced that weeks normal Wednesday release.

The game features Cueball riding on a hoverboard. The only controls are the arrow keys. The player can jump repeatedly mid-jump to reach increasing heights. The player begins in a line-drawing maze with 17 gold coins located throughout and a "deposit" station. The ostensible goal of the game is to collect as many coins as possible and return them to the deposit in the fastest possible time, which returns a text message describing the result. Players consumed with obtaining the best possible time result for collecting the coins may not realize there is anything more to the game.

Beyond the maze on either side (just far enough that players who remain within the maze will not see) are tall walls seemingly designed to contain the player. However, the walls have a finite height and, combined with the ability to multi-jump, the player can leave the purported "play area" either to the sides or above the initial maze. This returns a flashing red error message "return to play area".

Outside the play area is an entire world to explore including numerous points of interest and Easter eggs similar in style to comic 1110: Click and Drag. The larger game world is physically bounded in the left and the right direction, but is technically unbounded upwards, however, past a certain point there appears to be nothing interesting in the up direction. However, the longer you continue to fly upwards by pressing the up arrow repeatedly, the longer will it take for Cueball to fall down again once you stop pressing. In principal it may also be unbound in the downwards direction, but there is only a few places you can "sink" into the ground/water/lava, and here you cannot go down indefinitely. It could be possible that there could be some unexplored parts of the map, but given the maps already made this seems unlikely. There are 152 more coins outside the initial "play area" for a total of 169 in the entire game.


Ambox notice.png This explanation may be incomplete or incorrect: Help needed migrating the info into a table
Coordinates Description
x: 483735, y: -551990 "What news of the world above? Please tell me - what's hot and viral? What's trending on twitter?"
x: 509587, y: -554621 Washington Monument
x: 509587, y: -554621 Captain's log

Technical aspects

As previously noted, the comic bears considerable resemblance to 1110: Click and Drag. The comic is made in much the same way, with 'drawn' images "glued" together to form a large "map", with the illusion of infinite bounds made possible through space saving techniques where blank tiles are not stored and are instead painted white. The boundary between blank squares and 'drawn' squares is made clear as any white space in the normal images has a very slight grey tint. Thus, seams between images and blank spaces can be discerned.

The tiles for the map are stored as simple PNG files in the naming scheme: X:Y+s.png. An example can be seen here: Each file is 513x513 pixels in size, one pixel is reserved as overlap to ensure seamless joining of images. So far, through experimentation, tiles in the range 928 to 1108 X and -1112 to -928 Y have been discovered, internally, the position of the player is divided by 512 and rounded down to give the position of the tile.

The collision map is encoded in the darkness of the black. Using an image manipulation program, one can easily find the secret pathways even in the zoomed out maps provided below by enhancing the contrast of the dark areas. On a slow connection, it's possible to move into an 'open' area and then the black image loads in and (probably permanently, without tricks) traps you immobile.

The game was made by Max Goodman who has previously worked on 1416: Pixels. The source code for the game can be found here.


one incomplete compilation of the entire game area (note the missing pinnacle of the Washington Monument

Starting area - (x: 512187, y: -549668)

West / Left

  • Washington Monument - (x: 509864, y: -549746)
    • Invisible entrance through the Monument, indicated by arrow sign
    • Secret entrance into the inside of the Monument, right side, about halfway up - (x: 509815, y: -552614)
      • From there you can fall down to the fault line shown in about the middle of the monument. You cannot see Cueball while he is in the monument in either entrance.
  • Girl in a hamster ball - (x: 505790, y: -549905)
  • Yet another dig at the Lion King and the lands touched by shadow - (x: 504998, y: -550676)
  • An X-Wing at a gas station, with coin accessible from the left - (x: 503253, y: -551129)
    • Go straight up from the cockpit for a coin, carried by african swallows (non-migratory)
  • A well with a girl at the bottom of it (and one of the yellow game coins), claiming to not be a ghost - (x: 501998, y: -551030)
  • Landing re-entry capsule with parachutes - (x: 500040, y: -552369)
  • Local Mom discovering This One Weird Bug - (x: 497994, y: -551334)
  • Someone flying a kite, with a coin beside the kite.
  • Volcano -
  • LOTR Eagles - (x: 489661 y: -556811)
  • A periscope peeking out of a shallow lava pool near two people playing "the lava is a floor" - (x: 488573 y: -556337)
  • Lava pools -
  • A dark grey ocean that isn't noticeable until you fall in
    • With suicidal quadcopters taking footage of it over a coin - (x: 486640, y: -554838)
  • Elon Musk's Volcano Lair - (x: 484167, y: -549462)
    • entrance hidden under volcano lava, before reaching Artex - (x: 483791, y: -551292)
  • The ground, that presumably all grounded electronics are connected to - (x: 485125, y: -549062)
  • Artex + Gandalf - (x: 483715, y: -554354)
  • Basketball hoop, with coin
  • Giant floating rock island in the sky (x: 507163, y: -567537)
  • Hat underground
  • A hole which traps(?) the player unless noclip mode is used

East / Right

  • People holding anchor lines to the Tantive IV (Star Wars: A New Hope), being attacked by an Imperial Star Destroyer - (the people: x: 518954, y: -549056)
  • Desert with dunes - (x: 520000, y: -549114)
  • Ocean Yelper (giving only 2.5/5 stars) - x: 522015, y: -549015
  • Talking Rogue Wave - (x: 523460, y: -549013)
  • Wedding - (x: 531558, y: -549386)
  • Graveyard - (x: 534140, y: -549546)
  • Remains of Ozymandias' Statue - (x: 535927, y: -549666)
  • Huge pyramid - (x: 538167, y: -550906)
  • Blackhat's hat on a stick - (x: 549997, y: -549777)
  • Whitehat's head in the grass? - (x: 559826, y: -549847)
  • Giant bird nest - (x: 567123, y; -550417)
  • Beret Guy riding a torpedo - (x: 522754, y: -554342)

Rebel Blockade Runner

Up in the air is the CR90 Corvette, Tantive IV aka Rebel Blockade Runner with Princess Leia fro. The start of the original Star Wars movie.

  • Coordinates:
    • ??
  • Cueball is standing at a ledge with a fishing rod with something on the hook somewhere below the spaceship. Two birds are circling the line.

Imperial Star Destroyer

High up in the air there's a huge spaceship.

  • Coordinates:
    • top left at (513072, -560660)
    • bottom left at (513080, -559470)
    • top at (552154, -569022)
    • top right at (556557, -567711)
    • bottom right at (558244, -556542)
  • Entrances (from bottom left clockwise):
    • Tunnel at (513080, -559680)
    • Tunnel at (513166, -560434)
    • Shaft at (516560, -560912)
    • Shaft at (519200, -561108)
    • Shaft at (525255, -561527)
    • Shaft at (527990, -561844)
    • Shaft at (533087, -562298)
    • Shaft at (539637, -563233)
    • Tunnel at (540958, -563721)
    • Shaft at (543789, -564670)
    • Stairwell down at (547438, -565058)
    • Tunnel at (552319, -566184)
    • Tunnel to an isolated small room at (557774, -562042)
    • Shaft at (556350, -556720)
    • Glitchfloor at (547890, -556779)
    • Shaft at (543850, -557500)
    • Main ramp at (537260, -557969)
    • Tunnel at (531840, -558547)
    • Parachutists' ramp at (526624, -558664)
    • Ramp at (525300, -558747)
    • Shaft at (520440, -559100)
    • Shaft at (516825, -559300)
  • Interesting objects and places inside:
    • Steven Universe and the Crystal Gems - (x: 551664, y: -567383)
    • A nearly complete depiction of Level 1 of Prince of Persia, an ancient Jump & Run game - (x: 551532, y: -563512)
    • Emperor Palpatine Park and Gazebo - (x: 546819, y: -559584)
    • Dancers (possibly spinning counter-clockwise) dancing to piano music - (x: 547536, y: -563301)
    • Octopus guarding two coins - (x: 531646, y: -559663)
    • A sign saying "Caution GlitchFloor" (falling straight down through it nets you a coin someway down) - (x: 547898, y: -556784)
    • A huge light bulb - (x: 555405, y: -557769)
    • The Emperor birdwatching - (x: 554777, y: -567346)
    • Ponytail jousting on an ostrich- (x: 552048, y: -568045)
    • A party on the ceiling (negative gravity?) - (x: 550350, y: -564354)
    • A huge ant - (x: 552309, y: -560208)
    • Tube slide - (x: 541813, y: -563721)
    • A reservoir (?) with hidden passages - (x: 541300, y: -560330)
    • A huge spark gap (?) - (x: 541900, y: -558110)
    • Torpedo launcher room - (x: 529627, y: -558481)
    • A Tetris block falling - (x: 529414, y: -529220)
    • Lightsaber Piñata party - (x: 515353, y: -560329)
    • Swimming pool - (x: 517346, y: -559831)
    • Children's swimming pool (ball pit?) - (x: 514500, y: -560436)
    • A crocodile - (x: 553623, -568091)
    • Spiral tunnel - (x: 543320, y: -558314)
    • A car - (x: 537750, y: -557937)



The keyboard controls are as follows:

  • Go Left - Left arrow key, a or h
  • Go Right - Right arrow key, d or l
  • Go Up (jump or hover) - Up arrow key, w, or k
  • Go Down (if gravity disabled) - Down arrow key, s, or j

This control scheme covers the three commonly used directional key sets: WASD a set of keys commonly used by modern games; HJKL a set of movement keys used by vi and applications which attempt to mimic vi key controls (vim); and the arrow keys, the most generic set of keys which is usually accepted by most applications which take movement as input, these were commonly used in older games.

On devices which have a touch screen and tilt sensor (portable devices like mobile phones and tablets) the controls are as follows:

  • Go Left - Roll the device anticlockwise
  • Go Right - Roll the device clockwise
  • Go Up (jump or hover) - Tap the screen

After inspecting the source code, there appears to be no way to move down on a portable device, this is only relevant if gravity is disabled.

Cheats and Exploits

Aside from the obvious ability to move out of bounds in the game, there are some more obscure hidden features which can't be enabled through normal gameplay, the ones found so far are as follows:

Modes are activated by opening the Javascript Console (F12 [Or Command-Alt-I in most browsers under Mac OS X] to open Developer Tools, then Console tab) and writing corresponding commands:

  • Gandalf Mode: = true - jumps and runs further
  • Speedhack: explorer.opts.speed= *Value* - Speed hacking, with 1 = normal speed
  • Jump Hack: explorer.opts.jumpForce= -*Value* - Jump hacking, with -1 = normal jump (positive values cause the hoverboard guy to move down when jumping)
  • Mewtwo mode: window.mewtwo = true - disables gravity
  • Noclip mode: window.noclip = true - player is able to move around the map without collision. Combine with Gandalf and Mewtwo modes for free easy map traversal.
  • Goggles mode: window.ze.goggles() - displays a small window showing area around the player in a pixelated manner. The goggles indicate collision boundaries (where the player touches the world) in cyan lines. Black pixels that are passable (such as other characters or text) will be highlighted red (allowing secret passages to be discovered).
  • Position Tracking: window.explorer.pos - Returns the player location to the console. Can be used to track position and test to ensure you are still moving. Must be re-entered to compare positioning.
  • Position Setting: window.explorer.pos.x = *Value* or window.explorer.pos.y = *Value* - Can be used to manually set a position within the world. The start is at x: 512106, y: -549612. The left terrain bound is at x: 475210, y: -553711. The right terrain bound is at x: 567281, y: -549712. Mewtwo and Noclip modes are a must for exploring in this way.
  • All the above: window.explorer.opts - Contains all the game's parameters. You can directly mess with gravity, collision (disableCollision), jump force (jumpForce) and speed (maxSpeed), among others. Run Object.keys(window.explorer.opts) to list all available parameters you can tweak.
  • List all coins: window.explorer.objects - Array containing the position of the 169 coins of the game.
  • Disable tilt input: getEventListeners(window)['deviceorientation'][0].remove() - on Macs with motion sensor, disables tilt input which causes problems controlling the avatar

Getting All Coins: To instantly get all coins, input the below into the console window. Does not use standard formatting of [i] to avoid conflicts with

   for (var T = 0; T < explorer.objects.length; T++) {
       explorer.objects[T].got = true;

To teleport to the next coin every time you press the left or right arrow:

   var T = 0;
   document.onkeydown = function(event){
     if (event.keyCode == 37) { T = T-1 }
     else if (event.keyCode == 39) { T = T+1 }
     else { return }
     T = T % explorer.objects.length;
     var coin = explorer.objects[T];
     explorer.pos.x = coin.x1; explorer.pos.y = coin.y1;

For a quick tour of all the coins:

   var delayInMilliseconds = 1000; // 1 second delay between each teleport. feel free to change this.
   var index = 0;
       explorer.pos.x = x.x1;
       explorer.pos.y = x.y1; = true;
       explorer.frame(); // forces a redraw
     (index + 1) * delayInMilliseconds);

To see a list of coin coordinates you have not yet collected:

   var L = 0;
   for (var S = 0; S < explorer.objects.length; S++) {
       var I = explorer.objects[S];
       if ( {
       } else {
           console.log(I.x1.toString() + ", " + I.y1.toString());
   console.log("You've found " + L.toString() + " of 169 coins");

To display the distance and direction to the closest coin (with inverted colors once you have all the coins):

   function distance(x1, y1, x2, y2) {
       var dx = x2 - x1;
       var dy = y2 - y1;
       return Math.sqrt(dx * dx + dy * dy);
   function angle(x1, y1, x2, y2) {
       var dx = x2 - x1;
       var dy = y2 - y1;
       return Math.atan2(dy, dx) * 180 / Math.PI;
   function renderRadar() {
       var mindist = 10000000000;
       var closest = {
           x1:512278.0, y1:-549613.0
       var linecolor = "red";
       for (var S = 0; S < explorer.objects.length; S++) {
          var I = explorer.objects[S];
          if (! {
              var dist = distance(explorer.pos.x, explorer.pos.y, I.x1, I.y1);
              if (dist < mindist) {
                  mindist = dist;
                  closest = I;
       if (mindist == 10000000000) {
           mindist = distance(explorer.pos.x, explorer.pos.y, closest.x1, closest.y1);
           if (document.getElementById("radar").style.backgroundColor != "red") {
               document.getElementById("radar").style.backgroundColor = "red";
           linecolor = "green";
       } else {
           if (document.getElementById("radar").style.backgroundColor != "green") {
               document.getElementById("radar").style.backgroundColor = "green";
       var ang = angle(explorer.pos.x, explorer.pos.y, closest.x1, closest.y1);
       var indicator = "";
       if (ang > 112.5 || ang < -112.5) {
           indicator += "left";
       if (ang < 67.5 && ang > -67.5) {
           indicator += "right";
       if (ang > -157.5 && ang < -22.5) {
           indicator += " up";
       if (ang > 22.5 && ang < 157.5) {
           indicator += " down";
       document.getElementById("radar").innerHTML = "Distance: " + mindist.toFixed(1).toString() + "<br/>";
       document.getElementById("radar").innerHTML += indicator + " (" + -ang.toFixed(1).toString() + "°)";
       document.getElementById("radar").innerHTML += "<div id='circle' style='border: 1px solid black; border-radius: 50px; width: 100px; height: 100px; position:absolute; top:50px; left:25px'/>";
       document.getElementById("radar").innerHTML += "<div id='line' style='width: 50px; height: 1px; background-color: " + linecolor + "; position:absolute; top:100px; left:75px; transform:rotate(" + ang + "deg); transform-origin:0% 0%'/>";
   var d = document.createElement("div"); = "radar"; = "fixed"; = "0px"; = "0px"; = "150px"; = "160px"; = "1px solid red"; = "2"; = "green"; = "#8f8";
   setInterval(renderRadar, 100);

To display your current coordinates:

  function renderRadar2() {
      document.getElementById("radar2").innerHTML = "x: " + explorer.pos.x.toFixed(1).toString() + "<br>y: " + explorer.pos.y.toFixed(1).toString()
  var d = document.createElement("div") = "radar2" = "fixed" = "150px" = "0px" = "150px" = "35px" = "1px solid red" = "2" = "green" = "#8f8"
  setInterval(renderRadar2, 1000)


By observing page code while playing, the game grabs and displays images based on location, and subsequently clears all non-visible images. The game uses what seems to be a position syntax to retrieve the intended images live, and returns an error if such an image does not exist, such as a blank area. This technically means things could be added to the world and updated live. If the player is moving sufficiently fast or if the internet connection is slow, this means that the player can get stuck in a black area that does not load in time.

This also means that the game does not have coded top or bottom limits, so any attempt to find the ceiling of the game will be futile unless the game is tweaked. The game does however have side limits.

When you deposit a certain number of coins, you will get one of the following messages:

  • 0 coins : You got 0 coins in (n) seconds/ You successfully avoided all the coins.
  • 1 coin : You got a single coin in (n) seconds/ It's a start.
  • 2-4 coins : You got (n) coins in (n) seconds/ Not bad!
  • 5-9 coins : You got (n) coins in (n) seconds/ Terrific!
  • 17 coins : You got 17 coins in (n) seconds/ You found all the coins! Great job!
  • 42 coins : You got 42 coins in (n) seconds/ No answers here.
  • 169 coins : You got 169 coins in (n) seconds/ Are you Gandalf?
  • All others: You got (n) coins in (n) seconds

Opening the console will display the text: what? hoverboard not enough for you!? in the log. Activating goggles mode will cause the text 'B-)' to appear in the log.

Leaving the play area will cause the red text 'RETURN TO THE PLAY AREA' to rapidly blink 3 times (150 msec duration), followed by a pause, and this will repeat 5 times for a total of 15 blinks. This will also reoccur if the player passes through the play area on their way back from exploring one side.


[This transcript only covers the starting page as shown on xkcd: xkcd 1608. A full transcript of the entire comic will be listed on a separate page.]
[Cueball is shown on a hoverboard in the centre of the comic. Around him is a simple maze with 12 yellow coins. Another Cueball without howerboard is shown standing on one of the platforms to the right. The bottom half of the window is black. Right of where Cueball stands is a ramp. Behind the ramp is a computer. There is lots of space left of the maze, outside the maze. Text is only written in white below in the black area. The first part of the text is written below Cueball on hoverboard. Then there is an arrow pointing to the computer and a label. Finally there is a line of text at the bottom of the black area.]
[Under Cueball:]
My new book,
Thing Explainer,
comes out today!
To celebrate, here's
a small game.
[Under the arrow below the computer]
Deposit coins here
[At the bottom:]
Use the arrow keys to move
[For the full transcript of the entire comic see 1608: Hoverboard/Transcript.]


  • There is as usual no title text for these interactive comics. But there is actually one listed in the info page on xkcd. But this text: "Return to the play area", is never shown as a normal title text. But it will erroneously be shown in the unofficial mobile versions of the site.
    • This is actually the text that is shown blinking red at the buttom of the screen when leaving the starting area.
  • If the focus switches from the game to the page, the cueball can freeze in midair. The same thing can happen if the window border overlaps the play area.
  • The Washington monument has an invisible floor next to the visible bricks which you can enter from further up the monument.
    • You can also just walk through the monument at it's base as shown by the sign.

Is this out of date? Clicking here will fix that.

New here?

Last 7 days (Top 10)

Lots of people contribute to make this wiki a success. Many of the recent contributors, listed above, have just joined. You can do it too! Create your account here.

You can read a brief introduction about this wiki at explain xkcd. Feel free to sign up for an account and contribute to the wiki! We need explanations for comics, characters, themes, memes and everything in between. If it is referenced in an xkcd web comic, it should be here.

  • Discussion about various parts of the wiki is going on at the Community portal. Share your 2¢!
  • List of all comics contains a table of most recent xkcd comics and links to the rest, and the corresponding explanations. There are incomplete explanations listed here. Feel free to help out by expanding them!
  • We sell advertising space to pay for our server costs. To learn more, go here.


Don't be a jerk. There are a lot of comics that don't have set in stone explanations; feel free to put multiple interpretations in the wiki page for each comic.

If you want to talk about a specific comic, use its discussion page.

Please only submit material directly related to —and helping everyone better understand— xkcd... and of course only submit material that can legally be posted (and freely edited). Off-topic or other inappropriate content is subject to removal or modification at admin discretion, and users who repeatedly post such content will be blocked.

If you need assistance from an admin, post a message to the Admin requests board.

Personal tools


It seems you are using noscript, which is stopping our project wonderful ads from working. Explain xkcd uses ads to pay for bandwidth, and we manually approve all our advertisers, and our ads are restricted to unobtrusive images and slow animated GIFs. If you found this site helpful, please consider whitelisting us.

Want to advertise with us, or donate to us with Paypal?