Index: code/branches/Boxhead_FS19/data/levels/Hover.oxw
===================================================================
--- code/branches/Boxhead_FS19/data/levels/Hover.oxw	(revision 12389)
+++ code/branches/Boxhead_FS19/data/levels/Hover.oxw	(revision 12390)
@@ -25,9 +25,7 @@
 ?>
 
-<Level
+<Level 
 plugins = hover
 gametype = Hover
-
-
 >
   <templates>
@@ -84,18 +82,10 @@
 
     <SpaceShip position="500,20,500" lookat="50,20,50" name="enemy" health="200" maxhealth="200" initialhealth="200" >
-                                    <templates>
-                                            <Template link=spaceshipzombie />
-                                      </templates>
-                                       <controller>
-                                          <WaypointPatrolController alertnessradius=2000 attackradius=1 team=1 >
-                                             <waypoints>
-                                              <Model mesh="cube.mesh" scale=0 position="15500,15500,15500" />
+      <templates>
+              <Template link=spaceshipzombie />
+      </templates>
+    </SpaceShip>
 
-                                              </waypoints>
-                                          
-                                          </WaypointPatrolController>
 
-                                       </controller>
-    </SpaceShip>
 
 
Index: code/branches/Boxhead_FS19/data/levels/templates/spaceshipzombie.oxt
===================================================================
--- code/branches/Boxhead_FS19/data/levels/templates/spaceshipzombie.oxt	(revision 12389)
+++ code/branches/Boxhead_FS19/data/levels/templates/spaceshipzombie.oxt	(revision 12390)
@@ -7,7 +7,7 @@
    explosionchunks        = 6
 
-   health            = 60
+   health            = 200
    maxhealth         = 200
-   initialhealth     = 60
+   initialhealth     = 100
 
    shieldhealth        = 25
@@ -34,6 +34,6 @@
    collisionType     = "dynamic"
    mass              = 100
-   linearDamping     = 0.2
-   angularDamping    = 0.9999999
+   linearDamping     = 0
+   angularDamping    = 0
 
 
@@ -68,4 +68,15 @@
   include("../includes/weaponSettingsHover.oxi")
 ?> -->
+    <controller>
+      <WaypointPatrolController alertnessradius=2000 attackradius=1 team=1 >
+         <waypoints>
+          <Model mesh="cube.mesh" scale=0 position="15500,15500,15500" />
+
+          </waypoints>
+      
+      </WaypointPatrolController>
+
+    </controller>
+
   </SpaceShip>
 </Template>
@@ -113,2 +124,3 @@
   </MultiStateEngine>
 </Template>
+
Index: code/branches/Boxhead_FS19/src/modules/hover/Hover.cc
===================================================================
--- code/branches/Boxhead_FS19/src/modules/hover/Hover.cc	(revision 12389)
+++ code/branches/Boxhead_FS19/src/modules/hover/Hover.cc	(revision 12390)
@@ -39,4 +39,13 @@
 #include "MazeGenerator.h"
 #include "core/CoreIncludes.h"
+#include "worldentities/pawns/Pawn.h"
+#include "worldentities/pawns/ScriptableControllerDrone.h"
+#include "worldentities/pawns/SpaceShip.h"
+
+#include "tools/Timer.h"
+#include "infos/Bot.h"
+#include "worldentities/pawns/ModularSpaceShip.h"
+#include "graphics/Model.h"
+
 
 
@@ -55,4 +64,77 @@
         this->setHUDTemplate("HoverHUD");
     }
+    // void Hover::spawnZombie(std::string id)
+    // {
+    //     Identifier *identifier = ClassByString("SpaceShip");
+
+    //       if(!identifier)
+    //     {
+    //         orxout(user_error) << "Script tried to spawn unknown object" << std::endl;
+    //         return;
+    //     }
+
+    //     if(!identifier->isLoadable())
+    //     {
+    //         orxout(user_error) << "Script tried to spawn unloadable object" << std::endl;
+    //         return;
+    //     }
+        
+    
+    //     WorldEntity *entity;
+    //     Identifiable *obj = identifier->fabricate(this->controller_->getWorldEntityByID("Player")->getContext());
+
+
+
+    //     orxout(user_status) << "First hit!" << std::endl;
+
+    //    if(obj->isA(ClassIdentifier<WorldEntity>::getIdentifier()))
+    //     {
+    //         orxout(user_status) << "Is WorldEntity!" << std::endl;
+    //         entity = orxonox_cast<WorldEntity*>(obj);
+    //     }
+    //     else if(obj->isA(ClassIdentifier<PlayerInfo>::getIdentifier()))
+    //     {
+    //         // TODO This does not work yet because somehow the controllable entity is not set
+    //         // yet at this stage.
+    // //        entity = orxonox_cast<PlayerInfo*>(obj)->getControllableEntity();
+
+    //         orxout(user_status) << "Is PlayerInfo!" << std::endl;
+
+    //         //use TEMPLATES in the map to define objects that are not present on the map yet
+    //         return;
+    //     }
+    //     else
+    //     {
+    //         orxout(user_warning) << "Script tried to spawn an object that is neither a WorldEntity, nor a PlayerInfo" << std::endl;
+            
+    //         return;
+    //     }
+       
+    //     if(entity->isA(ClassIdentifier<MobileEntity>::getIdentifier())) {
+    //         orxout(user_status) << "Is MobileEntity!" << std::endl;
+    //         this->controller_->registerMobileEntity(id, orxonox_cast<MobileEntity*>(entity));
+    //     }
+
+        
+
+    //     if(entity->isA(ClassIdentifier<Pawn>::getIdentifier())) {
+    //         orxout(user_status) << "Is Pawn!" << std::endl;
+    //         this->controller_->registerPawn(id, orxonox_cast<Pawn*>(entity));
+    //     }
+        
+    //     this->controller_->registerWorldEntity(id, orxonox_cast<WorldEntity*>(entity));
+
+
+    //     ///////////////GOLD!!!!!!!!!!!!!!!////////////////////////
+    //     Pawn* pawn = this->controller_->getPawnByID(id);
+
+    //     //Attach to pawn
+    //     SpaceShip* drone = new SpaceShip(pawn->getContext()); // this is neccessary because the projectiles fired need a valid creator for the particlespawner (when colliding against something)
+        
+    //     drone->addTemplate("spaceshipzombie"); //ScriptableControllerDroneTemplate spaceshipescort
+
+    //     Vector3 spawnPosition = pawn->getWorldPosition() + Vector3(500,20,500);
+    //     drone->setPosition(spawnPosition);
+    // }
 
     void Hover::tick(float dt)
@@ -95,4 +177,6 @@
             // }
 
+            
+
 
 
@@ -117,4 +201,9 @@
         // }
         // numberOfFlags_ = flags_.size();
+
+        //Spawn Zombies
+        //spawnZombie(z1);
+
+
     }
 }
Index: code/branches/Boxhead_FS19/src/modules/hover/Hover.h
===================================================================
--- code/branches/Boxhead_FS19/src/modules/hover/Hover.h	(revision 12389)
+++ code/branches/Boxhead_FS19/src/modules/hover/Hover.h	(revision 12390)
@@ -45,4 +45,8 @@
 namespace orxonox
 {
+
+
+   
+
     class _HoverExport Hover : public Gametype
     {
@@ -58,4 +62,14 @@
                 { return this->numberOfFlags_; }
 
+             void spawnZombie(std::string id);
+
+            /**
+             * @brief Set the position of an object
+             * @param id The ID of the object
+             * @param x The position on the x-axis
+             * @param y The position on the y-axis
+             * @param z The position on the z-axis
+             */
+
         private:
             WeakPtr<HoverOrigin> origin_;
@@ -66,3 +80,4 @@
 }
 
+
 #endif /* _Hover_H__ */
Index: code/branches/Boxhead_FS19/src/orxonox/scriptablecontroller/scriptable_controller_api.cc
===================================================================
--- code/branches/Boxhead_FS19/src/orxonox/scriptablecontroller/scriptable_controller_api.cc	(revision 12389)
+++ code/branches/Boxhead_FS19/src/orxonox/scriptablecontroller/scriptable_controller_api.cc	(revision 12390)
@@ -10,4 +10,6 @@
 #include "graphics/Model.h"
 #include "worldentities/pawns/ScriptableControllerDrone.h"
+#include "worldentities/pawns/SpaceShip.h"
+
 
 
@@ -42,5 +44,5 @@
 
         LuaTB<ScriptableControllerAPI, decltype(&ScriptableControllerAPI::spawnTest)>::registerFunction<&ScriptableControllerAPI::spawnTest>(this, lua, "spawnTest");
-
+        LuaTB<ScriptableControllerAPI, decltype(&ScriptableControllerAPI::spawnZombie)>::registerFunction<&ScriptableControllerAPI::spawnZombie>(this, lua, "spawnZombie");
 
 
@@ -289,6 +291,77 @@
     }
 
-
-
+    void ScriptableControllerAPI::spawnZombie(std::string id)
+    {
+        Identifier *identifier = ClassByString("SpaceShip");
+
+          if(!identifier)
+        {
+            orxout(user_error) << "Script tried to spawn unknown object" << std::endl;
+            return;
+        }
+
+        if(!identifier->isLoadable())
+        {
+            orxout(user_error) << "Script tried to spawn unloadable object" << std::endl;
+            return;
+        }
+        
+    
+        WorldEntity *entity;
+        Identifiable *obj = identifier->fabricate(this->controller_->getWorldEntityByID("Player")->getContext());
+
+
+
+        orxout(user_status) << "First hit!" << std::endl;
+
+       if(obj->isA(ClassIdentifier<WorldEntity>::getIdentifier()))
+        {
+            orxout(user_status) << "Is WorldEntity!" << std::endl;
+            entity = orxonox_cast<WorldEntity*>(obj);
+        }
+        else if(obj->isA(ClassIdentifier<PlayerInfo>::getIdentifier()))
+        {
+            // TODO This does not work yet because somehow the controllable entity is not set
+            // yet at this stage.
+    //        entity = orxonox_cast<PlayerInfo*>(obj)->getControllableEntity();
+
+            orxout(user_status) << "Is PlayerInfo!" << std::endl;
+
+            //use TEMPLATES in the map to define objects that are not present on the map yet
+            return;
+        }
+        else
+        {
+            orxout(user_warning) << "Script tried to spawn an object that is neither a WorldEntity, nor a PlayerInfo" << std::endl;
+            
+            return;
+        }
+       
+        if(entity->isA(ClassIdentifier<MobileEntity>::getIdentifier())) {
+            orxout(user_status) << "Is MobileEntity!" << std::endl;
+            this->controller_->registerMobileEntity(id, orxonox_cast<MobileEntity*>(entity));
+        }
+
+        
+
+        if(entity->isA(ClassIdentifier<Pawn>::getIdentifier())) {
+            orxout(user_status) << "Is Pawn!" << std::endl;
+            this->controller_->registerPawn(id, orxonox_cast<Pawn*>(entity));
+        }
+        
+        this->controller_->registerWorldEntity(id, orxonox_cast<WorldEntity*>(entity));
+
+
+        ///////////////GOLD!!!!!!!!!!!!!!!////////////////////////
+        Pawn* pawn = this->controller_->getPawnByID(id);
+
+        //Attach to pawn
+        SpaceShip* drone = new SpaceShip(pawn->getContext()); // this is neccessary because the projectiles fired need a valid creator for the particlespawner (when colliding against something)
+        
+        drone->addTemplate("spaceshipzombie"); //ScriptableControllerDroneTemplate spaceshipescort
+
+        Vector3 spawnPosition = pawn->getWorldPosition() + Vector3(500,20,500);
+        drone->setPosition(spawnPosition);
+    }
 
 
Index: code/branches/Boxhead_FS19/src/orxonox/scriptablecontroller/scriptable_controller_api.h
===================================================================
--- code/branches/Boxhead_FS19/src/orxonox/scriptablecontroller/scriptable_controller_api.h	(revision 12389)
+++ code/branches/Boxhead_FS19/src/orxonox/scriptablecontroller/scriptable_controller_api.h	(revision 12390)
@@ -161,4 +161,16 @@
      * @param z The position on the z-axis
      */
+
+    void spawnZombie(std::string id);
+
+    /**
+     * @brief Set the position of an object
+     * @param id The ID of the object
+     * @param x The position on the x-axis
+     * @param y The position on the y-axis
+     * @param z The position on the z-axis
+     */
+
+
     void setPosition(std::string id, double x, double y, double z);
 
