diff --git a/doc/help/GMCP b/doc/help/GMCP
new file mode 100644
index 0000000..600ad88
--- /dev/null
+++ b/doc/help/GMCP
@@ -0,0 +1,356 @@
+General Mud Communication Protocol im MorgenGrauen
+==================================================
+
+0. Einleitung
+   GMCP wird benutzt, um Daten zwischen MUD und Client "out of band" zu
+   uebertragen. "Out of band" bedeutet hier, dass der Datenaustausch hinter
+   den Kulissen passiert statt in der normalen textuellen Spielausgabe,
+   welcher vom Client mittels mehr oder weniger komplizierter Trigger
+   ausgewertet werden muss.
+
+   Vorteile:
+   * keine komplexen Trigger (Regexps) mehr.
+   * Daten werden in einem definierten Format uebertragen, welches der Client
+     fuer euch interpretiert.
+   * keine Gagtrigger mehr noetig, um empfangenen Text auszublenden
+   * keine stoerenden Ausgaben, falls man diese Gagtrigger nicht hat.
+   * Daten koennen auch uebertragen werden in Situationen, in denen eine
+     normale Textausgabe nicht so gut geht, z.B. in Editoren.
+   * Daten, die die Clientscripte nicht verarbeiten, stoeren nicht den
+     Textfluss.
+   * Der Client kann konfigurieren, welche Informationen er bekommen will.
+   * Im MG ist neben Dingen wie LP und KP die Uebertragung div. anderer Dinge
+     geplant, vor allem andere Informationen  ueber den Char oder den Raum
+     (z.B. eindeutige Raum-IDs (in den meisten Faellen)).
+
+
+1. Unterstuetzte Module
+
+1.1. Core (aus IRE (Iron Realms Entertainment) MUDs)
+  Das Core Modul ist immer aktiv. Es verwaltet die grundsaetzlichen
+  Einstellungen von GMCP. Die MG-Variante ist fast identisch zur IRE-Variante,
+  hat allerdings zusaetzliche das "Debug"-Kommando.
+
+  Vom Client gesendet:
+    - Core.Hello
+        Muss die erste Nachricht sein, welche der Client nach Aktivierung von
+        GMCP sendet.
+        Die Daten sind ein Objekt mit den Schluesseln "client" und "version",
+        welche entsprechend den Clientnamen und seine Versionskennung
+        enthalten.
+      Core.Hello { "client": "Nexus", "version": "3.1.90" }
+    - Core.Supports.Set
+        Informiert das MUD ueber die Pakete/Module, die der Client
+        unterstuetzt, d.h. die der Client empfangen kann. Es ist immer noch
+        Entscheidung des Muds, welche dieser Module ihre Daten senden (z.B.
+        wird MG einem "MG.char" den Vorzug geben vor einem generischen "Char",
+        falls vom Client beide unterstuetzt werden.
+        Wenn bereits vorher ein Core.Supports.* Kommando empfangen wurde, wird
+        die Liste der unterstuetzten Module durch die neue ersetzt.
+        Daten sind ein Array von Strings, welche jeweils den Modulnamen und
+        die Versionsnummer angeben (mit einem Leerzeichen getrennt).
+        Die Versionsnummer muss eine positive Ganzzahl sein.
+        Die meisten Clients werden Set nur einmal am Anfang senden und
+        brauchen kein Add/Remove.
+      Core.Supports.Set [ "MG.char 1", "MG.room 1" ]
+    - Core.Supports.Add
+        aehnlich zu Set, aber es fuegt die angegeben Module an die in der
+        Vergangenheit uebermittelten an.
+        Wenn noch keine Liste gesendet wurde, ist das Ergebnis wie bei Set.
+        Wenn die Liste Module enthaelt, die bereits aktiv sind, wird die neue
+        Versionsnummer Prioritaet vor der alten haben, selbst wenn die kleiner
+        ist.
+        Die Daten sind identisch zu Set.
+    - Core.Supports.Remove
+        Entfernt die angebenen Module aus der Liste der unterstuetzen Module.
+        Die Daten sind identisch zu Set. Die Modulversionen sind NICHT
+        optional (anders als bei IRE). Allerdings werden auch Module anderer
+        Version abgeschaltet. (Insofern koennte man - zur Zeit - einfach immer 1
+        als Versionsnummer senden.)
+    - Core.KeepAlive
+        Vom MG ignoriert, weil Verbindungen nicht automatisch getrennt werden.
+    - Core.Ping
+        Veranlasst das MG mit einem Core.Ping zu antworten.
+        Die Daten ist eine Ganzzahl, welche die durchschnittliche Pingzeit
+        aus verherigen Pings enthaelt, falls verfuegbar.
+        (Anmerkung: IRE macht keine Angabe ueber die Einheit dieser Zahl. MG
+         geht von Millisekunden aus.)
+      Core.Ping 120
+    - Core.Debug
+        Kann gesendet werden, um die Ausgabe von menschenlesbaren
+        Debugmeldungen vom GMCP zu aktivieren.
+        Die Daten sind eine Ganzzahl. Je groesser, desto mehr Debugmeldungen
+        werden ausgegeben.
+        0 schaltet die Debugmeldungen aus.
+        1 schaltet nur die Ausgabe von GMCP-Fehlern an.
+        100 schaltet alles an.
+      Core.Debug 1
+  Vom Server gesendet:
+    - Core.Ping
+        Als Antwort eines vom Client empfangenen Core.Ping gesendet.
+        Keine Daten.
+    - Core.Goodbye [NOT IMPLEMENTED YET!]
+        Gesendet vom MUD unmittelbar vor Verbindungstrennung.
+        Die Daten sind eine Nachricht (string), welche dem User angezeigt
+        werden kann und koennen den Grund fuer den Disconnect erklaeren.
+      Core.Goodbye "Goodbye, adventurer"
+
+1.2. MG.char 1 (angelehnt an Aardwolf, aber modifiziert)
+  Die Uebertragung der Kommandos in diesem Modul wird aktiviert, wenn
+  "MG.char" aktiv ist. Es gibt keine Submodule, die getrennt aktiviert werden
+  muessten. Die jeweiligen Kommandos werden gesendet, wenn sich eins der
+  gesendeten Daten aendert.
+  Alle Kommandos werden einmal bei Modulaktivierung gesendet (auch wenn ein
+  Modul durch ein Core.Supports.Set (erneut) aktiviert wird).
+  Ist dieses Modul vom Client unterstuetzt, werden keine Daten aus den
+  Modulen "Char" und "char" gesendet.
+  (Spieler aelter als 12.05.2013 muessen einmalig den textuellen Report mit
+   "report ein" und "report vorsicht" einschalten, damit die Uebertragung
+   via GMCP freigeschaltet wird. Der Report kann danach wieder
+   ausgeschaltet werden.)
+
+1.2.2. MG.char.base
+  Vom Server gesendet:
+    - MG.char.base
+      Einige grundlegende Eigenschaften des Chars, die sich selten aendern.
+      Ein "wizlevel" von 1 zeigt an, dass der Char ein Seher ist.
+      Der "title" kann am Anfang ein Backspace "\b" gefolgt von "," oder "'"
+      enthalten.
+      MG.char.base { "name": "Jof", "guild": "Abenteurer",
+                     "race": "Elf", "presay": "Mudgott",
+                     "title": "idlet.", "wizlevel": 101 }
+
+1.2.3. MG.char.vitals
+  Vom Server gesendet:
+    - MG.char.vitals
+      Aktuelle Lebenspunkte, Konzentrationspunkte und Vergiftungzustand.
+      Im Falle von Gift: je groesser, desto staerker die Vergiftung.
+      MG.char.vitals { "hp": 210, "sp": 90, "poison": 3 }
+    - MG.char.maxvitals
+      Aktuelle Maximalwerte fuer LP, KP und Vergiftungszustand. Werden in
+      einer separaten Gruppe uebertragen, weil sie sich viel seltener aendern.
+      MG.char.maxvitals { "max_hp": 210, "max_sp": 226, "max_poison": 10 }
+
+1.2.4. MG.char.attributes
+  Vom Server gesendet:
+    - MG.char.attributes
+      Aktuelle Attribute des Chars.
+      Die Daten sind ein Objekt Name-Wert-Paaren von Attributen.
+      MG.char.attributes { "int": 12, "con": 10, "str": 8, "dex": 12 }
+
+1.2.5. MG.char.infoVars
+  Vom Server gesendet:
+    - MG.char.infoVars
+      Diese Nachricht gibt den "technischen" Namen aus MG.char.info einen
+      Namen, der dem Spieler stattdessen angezeigt werden sollte.
+      Diese Nachricht wird nur bei Modulaktivierung gesendet.
+      Die Daten sind ein Objekt von Name-Beschreibung-Paaren.
+      MG.char.infoVars { "level": "Stufe", "guildlevel": "Gildenstufe" }
+
+1.2.6. MG.char.info
+  Vom Server gesendet:
+    - MG.char.info
+      Uebertraegt (ausgewaehlte) Daten aus dem Kommando <info>.
+      Die Daten sind ein Objekt von Name-Wert-Paaren.
+      (Moegliche weitere Angaben in der Zukunft: Questpunkte, Stufenpunkte
+       (Genauigkeit 20% einer Stufe), ...)
+      MG.char.info { "level": 210, "guildlevel": 9 }
+
+1.2.7. MG.char.wimpy
+  Vom Server gesendet:
+    - MG.char.wimpy
+      Aktuelle Vorsicht und ggf. Fluchtrichtung des Char.
+      Die Daten sind ein Objekt Name-Wert-Paare von Vorsicht+Fluchtrichtung.
+      Ist keine Fluchtrichtung gesetzt, wird 0 uebertragen.
+      Fuer die Uebermittlung der Vorsicht muss der Char die Quest "Der Schrat
+      kann nicht einschlafen" geloest haben und fuer die Fluchtrichtung
+      Seher sein.
+      MG.char.wimpy { "wimpy": 50, "wimpy_dir": "norden" }
+
+
+1.3. char 1 (Aardwolf)
+  Dieses Modul ist so aehnlich zum "char" Modul von Aardwolf wie es geht, d.h.
+  es benutzt die gleichen Schluesselnamen. Es ist aber reduziert im Umfang der
+  Daten, d.h. es uebertraegt weniger Daten als Aardwolf es tut.
+  Wann immer moeglich, wird empfohlen, das Modul MG.char stattdessen zu
+  verwenden.
+  Wenn MG.char aktiv ist, werden von diesem Modul keine Daten uebertragen.
+  ES WIRD DAVON ABGERATEN, DIESES MODUL ZU VERWENDEN.
+  Wann immer moeglich, solltet ihr es in euren Clients abschalten!
+
+1.3.1. char.base
+  Vom Server gesendet:
+    - char.base
+      Einige grundlegende Eigenschaften des Chars, die sich selten aendern.
+      char.base { "name": "Jof", "race": "Elf",}
+
+1.3.2. char.vitals
+  Vom Server gesendet:
+    - char.vitals
+      Aktuelle Lebens- und Konzentrationspunkte.
+      char.vitals { "hp": 210, "mana": 90}
+
+1.3.3. char.stats
+  Vom Server gesendet:
+    - char.stats
+      Aktuelle Attribute des Spielers.
+      Die Daten sind ein Objekt Name-Wert-Paaren von Attributen.
+      char.stats { "int": 12, "con": 10, "str": 8, "dex": 12 }
+
+1.3.4. char.status
+  Vom Server gesendet:
+    - char.status
+      Aktueller Level des Chars. (Dies ist die einzige Angabe aus dem Aardwolf
+      char.status, welche das MG machen kann.)
+      Die Daten sind ein Objekt Name-Wert-Paaren von Attributen.
+      char.status { "level": 210 }
+
+
+1.4. Char 1 (IRE)
+  Dieses Modul ist so aehnlich zum "Char" Modul von IRE wie es geht, d.h.
+  es benutzt die gleichen Schluesselnamen. Es ist aber reduziert im Umfang der
+  Daten, d.h. es uebertraegt weniger Daten als IRE es tut.
+  Wann immer moeglich, wird empfohlen, das Modul MG.char stattdessen zu
+  verwenden.
+  Wenn MG.char aktiv ist, werden von diesem Modul keine Daten uebertragen.
+  ES WIRD DAVON ABGERATEN, DIESES MODUL ZU VERWENDEN.
+  Wann immer moeglich, solltet ihr es in euren Clients abschalten!
+
+1.4.1. Char.Vitals
+  Vom Server gesendet:
+    - Char.Vitals
+      Aktuelle und maximale Lebens- und Konzentrationspunkte.
+      Char.Vitals { "hp": 210, "mp": 90, "maxhp": 210, "maxmp": 226 }
+
+1.4.2. Char.Status
+  Vom Server gesendet:
+    - Char.Status
+      Aktueller Level und Gilde des Chars. 
+      Die Daten sind ein Objekt Name-Wert-Paaren von Attributen.
+      Char.Status { "level": 210, "guild": "Zauberer" }
+
+1.4.3. Char.StatusVars
+  Vom Server gesendet:
+    - Char.StatusVars
+      Diese Nachricht gibt den "technischen" Namen aus Char.Status einen
+      Namen, der dem Spieler stattdessen angezeigt werden sollte.
+      Dieses Kommando wird nur bei Modulaktivierung gesendet.
+      Die Daten sind ein Objekt von Name-Beschreibung-Paaren.
+      Char.StatusVars { "level": "Spielerstufe", "guild": "Gilde" }
+
+
+1.5. comm.channel 1 (Aardwolf)
+  Dieses Modul ist genauso wie es Aardwolf definiert. Allerdings werden
+  natuerlich aus dem MG andere Ebenen uebertragen. ;-)
+  Vom Server gesendet:
+    - comm.channel
+      Diese Nachricht wird immer dann gesendet, wenn jemand was auf einer
+      eingeschalteten Ebene sagt. (Nicht bei Abruf der History!)
+      Zur Zeit ist es nicht moeglich, Ebenen per GMCP ein- oder auszuschalten.
+      Wenn dieses GMCP-Modul eingeschaltet ist, wird die Ausgabe der
+      Ebenenmeldung in der normalen Spielausgabe des MG unterdrueckt.
+      Achtung: Zur Zeit erfolgt (noch) keine Beruecksichtung eurer
+      "ignoriere"-Einstellungen bei den via GMCP uebertragenen
+      Ebenenmeldungen.
+      comm.channel { "chan": "allgemein",
+          "msg": "[Allgemein:Maharet] Guten Morgen, Grauen!", 
+          "player": "Maharet" }
+
+
+1.5. MG.team 1 (eigene Variante, inspiriert von Aardwolf)
+     Kommt spaeter. ;-)
+
+
+1.6. MG.room 1 (eigene Variante, inspiriert von Aardwolf)
+  MG.room beinhaltet Informationen ueber den aktuellen Raum des Spielers
+
+  Vom Server gesendet:
+  - MG.room.info
+    Diese Nachrichtig wird immer nach Betreten eines neuen Raumes gesendet
+    und enthaelt folgende Informationen:
+    * id: Eine eindeutige ID des Raumes (technisch: ein MD5-Hash)
+        Diese Angabe fehlt in Labyrinthraeumen (nicht gewollt) und in einigen
+        speziellen Raeumen (technische Gruende, z.B. manche 'virtual
+        compiler'). In diesem Fall ist die ID "" (leerer String).
+    * short: Die Kurzbeschreibung des Raumes
+    * domain: Die Region, in der der Raum liegt
+        Manche Raeume liegen nicht in den Regionen. In dem Fall fehlt diese
+        Angabe.
+    * exits: eine Liste von sichtbaren Ausgaengen (d.h. unsichtbare Ausgaenge
+        werden nicht angezeigt).
+    Hinweis: es ist moeglich, dass der Spieler in einen Raum bewegt wird,
+    der zwar technisch ein anderer Raum ist, aber kein anderer Ort. In
+    diesem Fall unterbleibt diese Nachricht.
+    room.info { "id": "d41d8cd98f00b204e9800998ecf8427e",
+                "short": "Die beruehmte Abenteurergilde",
+                "domain": "Ebene",
+                exits: [ "norden", "oben" ] }
+
+
+2. Vergleich mit GMCP in Aardwolf und IRE Muds
+   Im Morgengrauen wird GMCP letztendlich nur als Spezifikation des Transport
+   Layers betrachtet, da bei den Modulen jedes Mud seine eigene Definition der
+   uebertragenen Daten und ihrer Bedeutung vornimmt.
+
+   Das Modul "Char" ist aus den IRE-Muds, welches nur existiert, weil einige
+   Clients es standardmaessig schonmal einschalten. Es sendet aber nur einen
+   Minimalsatz an Daten.
+   Das Modul "char" ist aus Aardwolf, welches nur existiert, weil einige
+   Clients es standardmaessig schonmal einschalten. Es sendet aber nur einen
+   Minimalsatz an Daten.
+
+   Dem Modul MG.char sollte immer der Vorzug vor "Char" oder "char" gegeben
+   werden, da dort deutlich mehr Daten uebertragen werden.
+
+   Das Modul "Room" aus IRE wird nicht unterstuetzt, weil seine Daten vom MG
+   groesstenteils nicht in der geforderten Form bereitgestellt werden koennen
+   (zumindest nicht ohne ungerechtfertigten Aufwand).
+
+3. Transport Specification
+   Einstweilen am besten auf http://www.gammon.com.au/gmcp nachlesen.
+
+   Kommt hier vielleicht spaeter noch, einstweilen am besten im Netz
+   nachgucken.
+
+4. Implementationsdetails
+  Im MG ist Gross-/Kleinschreibung des Modulnamens wichtig, im Gegensatz zum
+  IRE. Meines Wissens (bitte korrigiert mich ggf.), machte die
+  Transportspezifikation keine Aussage in diesem Punkt, sondern IRE hat dies
+  entschieden.
+  Jetzt ist es so, dass Aardwolf teils Module mit dem gleichen Namen, aber
+  anderer Funktion wie IRE gebaut hat. Alle Doku von Aardwolf schreibt aber
+  immer von kleingeschriebenen Modulnamen. Insofern ist das jetzt ein Versuch,
+  die Module von IRE/Aardwolf doch irgndendwie auseinander zu halten.
+
+
+5. Client-Kram
+5.1. Tips und Hinweiss
+  Manche Clients zeigen die empfangenen GMCP-Daten standardmaessig auf dem
+  Bildschirm an.
+  Normalerweise sortieren sie die Daten  aber in von Scripten nutzbare
+  Tabellen ein, so dass es entfaellt, irgendeinen Text zu parsen.
+  In der Regel ist es dann auch so, dass der Client Moeglichkeiten anbietet,
+  auf den Empfang von GMCP-Daten reagieren zu koennen (z.B. nen Script
+  aufrufen zu lassen).
+
+5.2. Clients mit GMCP-MG-Support
+
+5.3. Clients mit GMCP-Support (Transport Spec)
+  * Mudlet (http://forums.mudlet.org/viewtopic.php?f=7&t=1547)
+    Im Netz sind div. weitere Quellen und Tutorial zu finden.
+  * Tintin++ (http://tintin.sourceforge.net/board/viewtopic.php?p=4651)
+  * TF 5 (http://mikeride.chaosnet.org/abelinc/scripts/telopt.html)
+  * CMUD (http://forums.zuggsoft.com/forums/viewtopic.php?p=158455#158455)
+  * Mushclient (http://www.aardwolf.com/wiki/index.php/Clients/MushclientGMCP)
+
+
+6. Angedachte Module fuer die Zukunft
+Ob und wann etwas aus diesem Bereich kommt, ist voellig offen. Haengt auch vom
+Interesse der Spielerschaft ab.
+
+6.3. Char.Items (IRE)
+  Eigentlich eher weniger geplant...
+
+LETZTE AeNDERUNG:
+09.01.2016, Zesstra
+
