diff --git a/src/main/java/com/comandante/creeper/ConfigureCommands.java b/src/main/java/com/comandante/creeper/ConfigureCommands.java
index dc186d2f089ce6a54e64c55eae29e875ab50d242..27664b1bfdc254617611b91d2259f0488d4fd59c 100644
--- a/src/main/java/com/comandante/creeper/ConfigureCommands.java
+++ b/src/main/java/com/comandante/creeper/ConfigureCommands.java
@@ -94,5 +94,6 @@ public class ConfigureCommands {
         creeperCommandRegistry.addCommand(new SpellsCommand(gameManager));
         creeperCommandRegistry.addCommand(new LeaveCommand(gameManager));
         creeperCommandRegistry.addCommand(new BackCommand(gameManager));
+        creeperCommandRegistry.addCommand(new RecallCommand(gameManager));
     }
 }
diff --git a/src/main/java/com/comandante/creeper/command/RecallCommand.java b/src/main/java/com/comandante/creeper/command/RecallCommand.java
new file mode 100644
index 0000000000000000000000000000000000000000..ddb5cbb159c68b6022ae814eac5f2ed28c942196
--- /dev/null
+++ b/src/main/java/com/comandante/creeper/command/RecallCommand.java
@@ -0,0 +1,42 @@
+package com.comandante.creeper.command;
+
+import com.comandante.creeper.managers.GameManager;
+import com.comandante.creeper.player.CoolDown;
+import com.comandante.creeper.player.CoolDownType;
+import com.comandante.creeper.player.PlayerMovement;
+import org.jboss.netty.channel.ChannelHandlerContext;
+import org.jboss.netty.channel.MessageEvent;
+
+import java.util.Arrays;
+import java.util.List;
+
+public class RecallCommand extends Command {
+
+    final static List<String> validTriggers = Arrays.asList("recall");
+    final static String description = "Return to the lobby, once every 5 minutes.";
+    final static String correctUsage = "back";
+
+    public RecallCommand(GameManager gameManager) {
+        super(gameManager, validTriggers, description, correctUsage);
+    }
+
+    @Override
+    public void messageReceived(ChannelHandlerContext ctx, MessageEvent e) throws Exception {
+        execCommand(ctx, e, () -> {
+            if (player.isActiveFights()) {
+                write("You can't move while in a fight!");
+                return;
+            }
+
+            if (player.isActive(CoolDownType.PLAYER_RECALL)) {
+                write("You can not recall right now.");
+                return;
+            }
+
+            PlayerMovement playerMovement = new PlayerMovement(player, player.getCurrentRoom().getRoomId(), GameManager.LOBBY_ID, "vanished into the ether.", "");
+            player.addCoolDown(new CoolDown(CoolDownType.PLAYER_RECALL));
+            player.movePlayer(playerMovement);
+        });
+    }
+
+}
\ No newline at end of file
diff --git a/src/main/java/com/comandante/creeper/player/CoolDownType.java b/src/main/java/com/comandante/creeper/player/CoolDownType.java
index 2993ef20b5e7a2988fd2593b1d917efc2578a097..caa1d3567d45461101a0bd6e037e5f763a15ea00 100644
--- a/src/main/java/com/comandante/creeper/player/CoolDownType.java
+++ b/src/main/java/com/comandante/creeper/player/CoolDownType.java
@@ -11,7 +11,8 @@ public enum CoolDownType {
     SPELL("",0),
     NPC_FIGHT("fight",30),
     NPC_ROAM("npc-roam", 1200),
-    NPC_ALERTED("npc-alerted", 30);
+    NPC_ALERTED("npc-alerted", 30),
+    PLAYER_RECALL("recall", 600);
     private final String name;
     private final int ticks;
 
diff --git a/src/main/java/com/comandante/creeper/spells/LightningSpellRunnable.java b/src/main/java/com/comandante/creeper/spells/LightningSpellRunnable.java
index 1c74b828abafbea70ddc4f0650735f33c3d2c079..3f91acdf619026175684d9795ffdf34e244e3319 100644
--- a/src/main/java/com/comandante/creeper/spells/LightningSpellRunnable.java
+++ b/src/main/java/com/comandante/creeper/spells/LightningSpellRunnable.java
@@ -65,7 +65,6 @@ public class LightningSpellRunnable implements SpellRunnable {
         }
         long burnEffectPower = (long) ((stats.getLevel() * .05) + (1 * stats.getIntelligence()));
         return getBurnEffect(burnEffectPower, 2);
-
     }
 
     private void executeSpellAgainstPlayer(Player player, Player destinationPlayer) {