diff --git a/src/main/java/com/comandante/creeper/Main.java b/src/main/java/com/comandante/creeper/Main.java
index 7e264d5323d8ab728254909a3bebfb5f1d46c8c6..b63335d2df71bb58fe62eb479e2e56309837f4a0 100644
--- a/src/main/java/com/comandante/creeper/Main.java
+++ b/src/main/java/com/comandante/creeper/Main.java
@@ -113,6 +113,8 @@ public class Main {
         creeperCommandRegistry.addCommand(new BuildCommand(gameManager));
         creeperCommandRegistry.addCommand(new MapCommand(gameManager));
         creeperCommandRegistry.addCommand(new AreaCommand(gameManager));
+        creeperCommandRegistry.addCommand(new HelpCommand(gameManager));
+
 
 
         CreeperServer creeperServer = new CreeperServer(PORT, db);
diff --git a/src/main/java/com/comandante/creeper/server/CreeperCommandRegistry.java b/src/main/java/com/comandante/creeper/server/CreeperCommandRegistry.java
index 929dcd8a579f7500d8504972816620f23102eb6e..069be058249dd198e79354d5e8ee7b2467f8a027 100644
--- a/src/main/java/com/comandante/creeper/server/CreeperCommandRegistry.java
+++ b/src/main/java/com/comandante/creeper/server/CreeperCommandRegistry.java
@@ -2,9 +2,7 @@ package com.comandante.creeper.server;
 
 import com.comandante.creeper.server.command.Command;
 
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
 
 public class CreeperCommandRegistry {
 
@@ -31,4 +29,9 @@ public class CreeperCommandRegistry {
         }
         return unknownCommand;
     }
+
+    public Set<Command> getCreeperCommands() {
+        Set<Command> creeperCommandUniq = new HashSet<Command>(creeperCommands.values());
+        return creeperCommandUniq;
+    }
 }
diff --git a/src/main/java/com/comandante/creeper/server/command/HelpCommand.java b/src/main/java/com/comandante/creeper/server/command/HelpCommand.java
new file mode 100644
index 0000000000000000000000000000000000000000..053e79f2087876b0edebc2749026248969f026ca
--- /dev/null
+++ b/src/main/java/com/comandante/creeper/server/command/HelpCommand.java
@@ -0,0 +1,37 @@
+package com.comandante.creeper.server.command;
+
+
+import com.comandante.creeper.Main;
+import com.comandante.creeper.managers.GameManager;
+import com.comandante.creeper.world.Area;
+import com.google.common.collect.Sets;
+import org.jboss.netty.channel.ChannelHandlerContext;
+import org.jboss.netty.channel.MessageEvent;
+
+import java.util.*;
+
+public class HelpCommand extends Command {
+    final static List<String> validTriggers = Arrays.asList("h", "help");
+    final static String description = "This help command.";
+
+    public HelpCommand(GameManager gameManager) {
+        super(gameManager, validTriggers, description);
+    }
+
+    @Override
+    public void messageReceived(ChannelHandlerContext ctx, MessageEvent e) throws Exception {
+        configure(e);
+        try {
+            Set<Command> creeperCommands = Main.creeperCommandRegistry.getCreeperCommands();
+            for (Command command : creeperCommands) {
+                List<String> validTriggers1 = command.validTriggers;
+                for (String s: validTriggers1) {
+                    write(s + " ");
+                }
+                write(": " + command.description + "\r\n");
+            }
+        } finally {
+            super.messageReceived(ctx, e);
+        }
+    }
+}