Index: code/branches/sagerjFS16/src/orxonox/controllers/HumanController.cc
===================================================================
--- code/branches/sagerjFS16/src/orxonox/controllers/HumanController.cc	(revision 11163)
+++ code/branches/sagerjFS16/src/orxonox/controllers/HumanController.cc	(revision 11164)
@@ -178,4 +178,5 @@
     void HumanController::release(unsigned int firemode)
     {
+        orxout() << "HumanController " << firemode << endl;
         if (HumanController::localController_s)
             HumanController::localController_s->doRelease(firemode);
Index: code/branches/sagerjFS16/src/orxonox/controllers/HumanController.h
===================================================================
--- code/branches/sagerjFS16/src/orxonox/controllers/HumanController.h	(revision 11163)
+++ code/branches/sagerjFS16/src/orxonox/controllers/HumanController.h	(revision 11164)
@@ -63,7 +63,7 @@
             static void fire(unsigned int firemode);
             virtual void doFire(unsigned int firemode);
-            static void reload();
             static void release(unsigned int firemode);
             virtual void doRelease(unsigned int firemode);
+            static void reload();
 
             static void boost(const Vector2& value); // Static method, controls boosting.
Index: code/branches/sagerjFS16/src/orxonox/controllers/NewHumanController.cc
===================================================================
--- code/branches/sagerjFS16/src/orxonox/controllers/NewHumanController.cc	(revision 11163)
+++ code/branches/sagerjFS16/src/orxonox/controllers/NewHumanController.cc	(revision 11164)
@@ -54,5 +54,5 @@
     SetConsoleCommand("NewHumanController", "accelerate", &NewHumanController::accelerate).keybindMode(KeybindMode::OnPress);
     SetConsoleCommand("NewHumanController", "decelerate", &NewHumanController::decelerate).keybindMode(KeybindMode::OnPress);
-    SetConsoleCommand("NewHumanController", "release",    &NewHumanController::release    ).keybindMode(KeybindMode::OnRelease).addShortcut();
+    //SetConsoleCommand("NewHumanController", "release",    &NewHumanController::release   ).keybindMode(KeybindMode::OnRelease).addShortcut();
 
     RegisterUnloadableClass(NewHumanController);
@@ -294,4 +294,23 @@
     }
 
+    /*void NewHumanController::release(unsigned int firemode)
+    {
+        if (NewHumanController::localController_s)
+            NewHumanController::localController_s->doRelease(firemode);
+        orxout() << "Trigger " << firemode << endl;
+    }
+
+    /void NewHumanController::doRelease(unsigned int firemode)
+    {
+        // this->firemode_ = -1; (outdated code from unfire)
+        // hideArrows();
+        if (!this->controllableEntity_)
+            return;
+
+        this->firemode_ = firemode;
+
+        HumanController::doRelease(firemode); //call for formationflight
+    }*/
+
     void NewHumanController::hit(Pawn* originator, btManifoldPoint& contactpoint, float damage)
     {
@@ -342,23 +361,4 @@
             }
         }
-    }
-
-    void NewHumanController::release(unsigned int firemode)
-    {
-        if (NewHumanController::localController_s)
-            NewHumanController::localController_s->doRelease();
-        orxout() << "Trigger" << endl;
-    }
-
-    void NewHumanController::doRelease(unsigned int firemode)
-    {
-        // this->firemode_ = -1; (outdated code from unfire)
-        // hideArrows();
-        if (!this->controllableEntity_)
-            return;
-
-        this->firemode_ = firemode;
-
-        HumanController::doRelease(firemode); //call for formationflight
     }
 
Index: code/branches/sagerjFS16/src/orxonox/controllers/NewHumanController.h
===================================================================
--- code/branches/sagerjFS16/src/orxonox/controllers/NewHumanController.h	(revision 11163)
+++ code/branches/sagerjFS16/src/orxonox/controllers/NewHumanController.h	(revision 11164)
@@ -55,9 +55,8 @@
 
             virtual void doFire(unsigned int firemode) override;
+            /*virtual void release(unsigned int firemode);
+            virtual void doRelease(unsigned int firemode);*/
 
             virtual void hit(Pawn* originator, btManifoldPoint& contactpoint, float damage) override;
-
-            static void release(unsigned int firemode);
-            virtual void doRelease(unsigned int firemode);
 
             void centerCursor();
Index: code/branches/sagerjFS16/src/orxonox/weaponsystem/Weapon.cc
===================================================================
--- code/branches/sagerjFS16/src/orxonox/weaponsystem/Weapon.cc	(revision 11163)
+++ code/branches/sagerjFS16/src/orxonox/weaponsystem/Weapon.cc	(revision 11164)
@@ -134,4 +134,7 @@
     }
 
+    void Weapon::release(unsigned int mode)
+    {orxout() << "release weapon " << mode << endl;}
+
     /**
     @brief
Index: code/branches/sagerjFS16/src/orxonox/weaponsystem/Weapon.h
===================================================================
--- code/branches/sagerjFS16/src/orxonox/weaponsystem/Weapon.h	(revision 11163)
+++ code/branches/sagerjFS16/src/orxonox/weaponsystem/Weapon.h	(revision 11164)
@@ -53,4 +53,5 @@
 
             void fire(unsigned int mode);
+            void release(unsigned int mode);
             void reload();
 
Index: code/branches/sagerjFS16/src/orxonox/weaponsystem/WeaponMode.cc
===================================================================
--- code/branches/sagerjFS16/src/orxonox/weaponsystem/WeaponMode.cc	(revision 11163)
+++ code/branches/sagerjFS16/src/orxonox/weaponsystem/WeaponMode.cc	(revision 11164)
@@ -169,5 +169,6 @@
     }
 
-    void WeaponMode::release()
+    void WeaponMode::release(float* reloadTime)
+    {orxout() << "release wmode " << reloadTime << endl;}
 
     bool WeaponMode::reload()
Index: code/branches/sagerjFS16/src/orxonox/weaponsystem/WeaponMode.h
===================================================================
--- code/branches/sagerjFS16/src/orxonox/weaponsystem/WeaponMode.h	(revision 11163)
+++ code/branches/sagerjFS16/src/orxonox/weaponsystem/WeaponMode.h	(revision 11164)
@@ -58,4 +58,5 @@
 
             virtual bool fire(float* reloadTime);
+            virtual void release(float* reloadTime);
             bool reload();
 
Index: code/branches/sagerjFS16/src/orxonox/weaponsystem/WeaponPack.cc
===================================================================
--- code/branches/sagerjFS16/src/orxonox/weaponsystem/WeaponPack.cc	(revision 11163)
+++ code/branches/sagerjFS16/src/orxonox/weaponsystem/WeaponPack.cc	(revision 11164)
@@ -78,4 +78,11 @@
         for (Weapon* weapon : this->weapons_)
             weapon->fire(weaponmode);
+    }
+
+    void WeaponPack::release(unsigned int weaponmode)
+    {
+        for (Weapon* weapon : this->weapons_)
+            weapon->release(weaponmode);
+        orxout() << "release wpack " << weaponmode << endl;
     }
 
Index: code/branches/sagerjFS16/src/orxonox/weaponsystem/WeaponPack.h
===================================================================
--- code/branches/sagerjFS16/src/orxonox/weaponsystem/WeaponPack.h	(revision 11163)
+++ code/branches/sagerjFS16/src/orxonox/weaponsystem/WeaponPack.h	(revision 11164)
@@ -47,4 +47,5 @@
 
             void fire(unsigned int weaponmode);
+            void release(unsigned int weaponmode);
             void reload();
 
Index: code/branches/sagerjFS16/src/orxonox/weaponsystem/WeaponSet.cc
===================================================================
--- code/branches/sagerjFS16/src/orxonox/weaponsystem/WeaponSet.cc	(revision 11163)
+++ code/branches/sagerjFS16/src/orxonox/weaponsystem/WeaponSet.cc	(revision 11164)
@@ -68,4 +68,15 @@
     }
 
+    void WeaponSet::release()
+    {
+        
+        // Fire all WeaponPacks with their defined weaponmode
+        for (const auto& mapEntry : this->weaponpacks_)
+            if (mapEntry.second != WeaponSystem::WEAPON_MODE_UNASSIGNED)
+                mapEntry.first->release(mapEntry.second);
+        orxout() << "release wset " << endl;
+        
+    }
+
     void WeaponSet::reload()
     {
Index: code/branches/sagerjFS16/src/orxonox/weaponsystem/WeaponSet.h
===================================================================
--- code/branches/sagerjFS16/src/orxonox/weaponsystem/WeaponSet.h	(revision 11163)
+++ code/branches/sagerjFS16/src/orxonox/weaponsystem/WeaponSet.h	(revision 11164)
@@ -47,4 +47,5 @@
 
             void fire();
+            void release();
             void reload();
 
Index: code/branches/sagerjFS16/src/orxonox/weaponsystem/WeaponSystem.cc
===================================================================
--- code/branches/sagerjFS16/src/orxonox/weaponsystem/WeaponSystem.cc	(revision 11163)
+++ code/branches/sagerjFS16/src/orxonox/weaponsystem/WeaponSystem.cc	(revision 11164)
@@ -299,4 +299,5 @@
         if (it != this->weaponSets_.end() && it->second)
             it->second->release();
+        orxout() << "release wsys " << firemode << endl;
     }
 
Index: code/branches/sagerjFS16/src/orxonox/weaponsystem/WeaponSystem.h
===================================================================
--- code/branches/sagerjFS16/src/orxonox/weaponsystem/WeaponSystem.h	(revision 11163)
+++ code/branches/sagerjFS16/src/orxonox/weaponsystem/WeaponSystem.h	(revision 11164)
@@ -75,6 +75,6 @@
 
             void fire(unsigned int firemode);
+            void release(unsigned int firemode);
             void reload();
-            void release(unsigned int firemode);
 
             Munition * getMunition(SubclassIdentifier<Munition> * identifier);
Index: code/branches/sagerjFS16/src/orxonox/worldentities/ControllableEntity.cc
===================================================================
--- code/branches/sagerjFS16/src/orxonox/worldentities/ControllableEntity.cc	(revision 11163)
+++ code/branches/sagerjFS16/src/orxonox/worldentities/ControllableEntity.cc	(revision 11164)
@@ -303,8 +303,24 @@
         if(GameMode::isMaster())
         {
+            orxout() << "f CE IF " << firemode << endl;
             this->fired(firemode);
         }
         else
         {
+            orxout() << "f CE EL " << firemode << endl;
+            callMemberNetworkFunction(&ControllableEntity::fire, this->getObjectID(), 0, firemode);
+        }
+    }
+
+    void ControllableEntity::release(unsigned int firemode)
+    {
+        if(GameMode::isMaster())
+        {
+            orxout() << "r CE IF " << firemode << endl;
+            this->released(firemode);
+        }
+        else
+        {
+            orxout() << "r CE EL " << firemode << endl;
             callMemberNetworkFunction(&ControllableEntity::fire, this->getObjectID(), 0, firemode);
         }
Index: code/branches/sagerjFS16/src/orxonox/worldentities/ControllableEntity.h
===================================================================
--- code/branches/sagerjFS16/src/orxonox/worldentities/ControllableEntity.h	(revision 11163)
+++ code/branches/sagerjFS16/src/orxonox/worldentities/ControllableEntity.h	(revision 11164)
@@ -97,5 +97,7 @@
 
             void fire(unsigned int firemode);
+            void release(unsigned int firemode);
             virtual void fired(unsigned int firemode) {}
+            virtual void released(unsigned int firemode) {}
             virtual void reload() {}
 
