Index: code/branches/MouseAPI_FS19/data/levels/MouseAPIExample.oxw
===================================================================
--- code/branches/MouseAPI_FS19/data/levels/MouseAPIExample.oxw	(revision 12362)
+++ code/branches/MouseAPI_FS19/data/levels/MouseAPIExample.oxw	(revision 12363)
@@ -9,4 +9,6 @@
   include("stats.oxo")
   include("HUDTemplates3.oxo")
+  include("MouseCursor.oxo")
+  include("tetrisHUD.oxo")
   include("templates/lodInformation.oxt")
 ?>
@@ -21,5 +23,5 @@
     <Template link=lodtemplate_default />
   </templates>
-	
+
   <Scene
     ambientlight = "0.8, 0.8, 0.8"
@@ -49,5 +51,6 @@
 </MouseAPIExample>
 
- 
+<!--<MouseAPICursor></MouseAPICursor>
+<MouseCursor></MouseCursor>-->
   </Scene>
 </Level>
Index: code/branches/MouseAPI_FS19/data/overlays/MouseCursor.oxo
===================================================================
--- code/branches/MouseAPI_FS19/data/overlays/MouseCursor.oxo	(revision 12363)
+++ code/branches/MouseAPI_FS19/data/overlays/MouseCursor.oxo	(revision 12363)
@@ -0,0 +1,5 @@
+<Template name="MouseCursor">
+<OverlayGroup name = "MouseCursorGroup" scale = "1, 1">
+    <MouseAPICursor name="cursor" position = "0, 0" size="0.03, 0.03" cursorShape="cursor.png"></MouseAPICursor>
+</OverlayGroup>
+</Template>
Index: code/branches/MouseAPI_FS19/src/modules/MouseAPI/mouseapi.cc
===================================================================
--- code/branches/MouseAPI_FS19/src/modules/MouseAPI/mouseapi.cc	(revision 12362)
+++ code/branches/MouseAPI_FS19/src/modules/MouseAPI/mouseapi.cc	(revision 12363)
@@ -1,3 +1,13 @@
 #include "mouseapi.h"
+
+#if OGRE_VERSION >= 0x010900
+#   include <Overlay/OgreOverlayManager.h>
+#   include <Overlay/OgrePanelOverlayElement.h>
+#else
+#   include <OgreOverlayManager.h>
+#   include <OgrePanelOverlayElement.h>
+#endif
+
+#include "util/StringUtils.h"
 
 namespace orxonox{
@@ -29,4 +39,12 @@
         }
         //GUIManager::getInstance().showGUI("MouseAPICursor", true);//Display a mouse cursor by displaying a empty menu
+        /*cursor = static_cast<Ogre::PanelOverlayElement*>(Ogre::OverlayManager::getSingleton()
+                                                               .createOverlayElement("Panel", "MouseAPI_cursor_" + getUniqueNumberString()));
+        cursor->setMaterialName("Orxonox/RadarMarker");//todo: better material
+        cursor->setPosition(0,0);
+        cursor->setDimensions(0.1,0.1);
+        Ogre::Overlay* overlay = Ogre::OverlayManager::getSingleton().create( "MouseAPI_cursor_" + getUniqueNumberString() );
+        overlay->show();*/
+        //this->overlay_->add2D(this->cursor);
     }
 
@@ -84,5 +102,5 @@
     {
         InputManager::getInstance().leaveState("game");//hack: todo: crate 2nd input state with prioritz 98 for cegui(cursor)
-        GUIManager::getInstance().showGUI("MouseAPICursor", false);//hack todo: only if gui not shown & evt better if not in mouse mooved
+        //GUIManager::getInstance().showGUI("MouseAPICursor", false);//hack todo: only if gui not shown & evt better if not in mouse mooved
     }
 
Index: code/branches/MouseAPI_FS19/src/modules/MouseAPI/mouseapi.h
===================================================================
--- code/branches/MouseAPI_FS19/src/modules/MouseAPI/mouseapi.h	(revision 12362)
+++ code/branches/MouseAPI_FS19/src/modules/MouseAPI/mouseapi.h	(revision 12363)
@@ -96,4 +96,6 @@
     bool active = false;
 
+    Ogre::PanelOverlayElement* cursor;
+
 public:
 
Index: code/branches/MouseAPI_FS19/src/modules/MouseAPI/mouseapicursor.cc
===================================================================
--- code/branches/MouseAPI_FS19/src/modules/MouseAPI/mouseapicursor.cc	(revision 12362)
+++ code/branches/MouseAPI_FS19/src/modules/MouseAPI/mouseapicursor.cc	(revision 12363)
@@ -8,5 +8,37 @@
 {
     RegisterObject(MouseAPICursor);
-//TODO: copy from radar overlay
+    cursor = static_cast<Ogre::PanelOverlayElement*>(Ogre::OverlayManager::getSingleton()
+                                                          .createOverlayElement("Panel", "MouseAPI_cursor_" + getUniqueNumberString()));
+    cursor->setMaterialName(TextureGenerator::getMaterialName(
+                                      cursorname, Ogre::ColourValue::White));
+
+    overlay_->add2D(this->cursor);
+    scale(Vector2(0.03,0.03));
+    setVisible(true);
+}
+
+MouseAPICursor::~MouseAPICursor()
+{
+    if(running)
+        MouseAPI::getInstance().deactivate();
+}
+
+void MouseAPICursor::XMLPort(ticpp::Element &xmlelement, XMLPort::Mode mode)
+{
+    MouseAPI::getInstance().activate();
+    running = true;
+    SUPER(MouseAPICursor, XMLPort, xmlelement, mode);
+    XMLPortParam(MouseAPICursor, "cursorShape", setCursorName, getCursorName,xmlelement, mode);
+    //XMLPortParam(MouseAPICursor, "cursorColor", setCursorColor, getCursorColor,xmlelement, mode);//TODO: ColoValue::setAsARGB()
+}
+
+void MouseAPICursor::tick(float dt)
+{
+    if(running)
+    {
+        this->cursor->show();
+        this->show();
+        this->setPosition(MouseAPI::getInstance().getMousePosition());
+    }
 }
 
Index: code/branches/MouseAPI_FS19/src/modules/MouseAPI/mouseapicursor.h
===================================================================
--- code/branches/MouseAPI_FS19/src/modules/MouseAPI/mouseapicursor.h	(revision 12362)
+++ code/branches/MouseAPI_FS19/src/modules/MouseAPI/mouseapicursor.h	(revision 12363)
@@ -3,11 +3,45 @@
 #include <overlays/OrxonoxOverlay.h>
 #include "core/CoreIncludes.h"
+#include "tools/interfaces/Tickable.h"
+#include "overlays/OverlayGroup.h"
+#include "mouseapi.h"
+#include "core/XMLPort.h"
+
+
+#if OGRE_VERSION >= 0x010900
+#   include <Overlay/OgreOverlayManager.h>
+#   include <Overlay/OgrePanelOverlayElement.h>
+#else
+#   include <OgreOverlayManager.h>
+#   include <OgrePanelOverlayElement.h>
+#endif
+
+#include "tools/TextureGenerator.h"
+#include "util/StringUtils.h"
 
 namespace orxonox{
 
-class MouseAPICursor: public OrxonoxOverlay
+class MouseAPICursor: public OrxonoxOverlay, public Tickable
 {
+private:
+    Ogre::PanelOverlayElement* cursor;
+    bool running = false;
+    std::string cursorname = "cursor.png";
 public:
     MouseAPICursor(Context* context);
+    ~MouseAPICursor();
+    virtual void tick(float dt) override;
+    virtual void XMLPort(ticpp::Element &xmlelement, XMLPort::Mode mode) override;
+    inline void setCursorName(const std::string& name)
+    {
+        cursorname = name;
+        cursor->setMaterialName(TextureGenerator::getMaterialName(
+                                                      cursorname, Ogre::ColourValue::White));
+    }
+    inline std::string getCursorName(void) const
+    {
+        return cursorname;
+    }
+
 };
 
Index: code/branches/MouseAPI_FS19/src/modules/MouseAPI/mousegametype.cc
===================================================================
--- code/branches/MouseAPI_FS19/src/modules/MouseAPI/mousegametype.cc	(revision 12362)
+++ code/branches/MouseAPI_FS19/src/modules/MouseAPI/mousegametype.cc	(revision 12363)
@@ -8,8 +8,10 @@
     player_ =nullptr;
 
+    this->setHUDTemplate("MouseCursor");
+
 }
 
-void MouseGametype::start(){
-
+void MouseGametype::start()
+{
     bool temp = this->bForceSpawn_;
     this->bForceSpawn_ = true;
@@ -20,4 +22,5 @@
     // Reset the variable.
     this->bForceSpawn_ = temp;
+
 }
 
@@ -39,5 +42,4 @@
         this->player_ = player;
         this->players_[player].state_ = PlayerState::Alive;
-
     }
 }
