Index: code/trunk/src/orxonox/Scene.h
===================================================================
--- code/trunk/src/orxonox/Scene.h	(revision 11161)
+++ code/trunk/src/orxonox/Scene.h	(revision 11176)
@@ -48,4 +48,5 @@
 #include "network/synchronisable/Synchronisable.h"
 #include "tools/interfaces/Tickable.h"
+#include "core/command/ConsoleCommandIncludes.h"
 
 namespace orxonox
Index: code/trunk/src/orxonox/weaponsystem/WeaponSystem.h
===================================================================
--- code/trunk/src/orxonox/weaponsystem/WeaponSystem.h	(revision 11161)
+++ code/trunk/src/orxonox/weaponsystem/WeaponSystem.h	(revision 11176)
@@ -55,4 +55,6 @@
             void removeWeaponSlot(WeaponSlot * wSlot);
             WeaponSlot * getWeaponSlot(unsigned int index) const;
+            inline const std::vector<WeaponSlot *>& getAllWeaponSlots() const
+                { return weaponSlots_; }
 
             // adding and removing WeaponSets
Index: code/trunk/src/orxonox/worldentities/pawns/Pawn.cc
===================================================================
--- code/trunk/src/orxonox/worldentities/pawns/Pawn.cc	(revision 11161)
+++ code/trunk/src/orxonox/worldentities/pawns/Pawn.cc	(revision 11176)
@@ -49,4 +49,5 @@
 #include "weaponsystem/Munition.h"
 #include "sound/WorldSound.h"
+#include "core/object/ObjectListIterator.h"
 
 #include "controllers/FormationController.h"
@@ -55,4 +56,6 @@
 {
     RegisterClass(Pawn);
+
+    SetConsoleCommand("Pawn", "debugDrawWeapons", &Pawn::consoleCommand_debugDrawWeapons).addShortcut();
 
     Pawn::Pawn(Context* context)
@@ -168,4 +171,5 @@
     {
         registerVariable(this->bAlive_,            VariableDirection::ToClient);
+        registerVariable(this->bVulnerable_,       VariableDirection::ToClient);
         registerVariable(this->health_,            VariableDirection::ToClient);
         registerVariable(this->maxHealth_,         VariableDirection::ToClient);
@@ -592,3 +596,56 @@
         return BLANKSTRING;
     }
+
+    void Pawn::drawWeapons(bool bDraw)
+    {
+        if (bDraw)
+        {
+            std::vector<WeaponSlot*> weaponSlots = weaponSystem_->getAllWeaponSlots();
+            int numWeaponSlots = weaponSlots.size();
+            Vector3 slotPosition = Vector3::ZERO;
+            Quaternion slotOrientation = Quaternion::IDENTITY;
+            Model* slotModel = nullptr;
+
+            for (int i = 0; i < numWeaponSlots; ++i)
+            {
+                slotPosition = weaponSlots.at(i)->getPosition();
+                slotOrientation = weaponSlots.at(i)->getOrientation();
+                slotModel = new Model(this->getContext());
+                slotModel->setMeshSource("Coordinates.mesh");
+                slotModel->setScale(3.0f);
+                slotModel->setOrientation(slotOrientation);
+                slotModel->setPosition(slotPosition);
+
+                this->attach(slotModel);
+                debugWeaponSlotModels_.push_back(slotModel);
+            }
+        }
+        else
+        {
+            // delete all debug models
+            for(Model* model : debugWeaponSlotModels_) 
+            {
+                model->destroy();
+            }
+            debugWeaponSlotModels_.clear();
+        }
+    }
+
+    /*static*/ void Pawn::consoleCommand_debugDrawWeapons(bool bDraw)
+    {
+        if (bDraw)
+        {
+            orxout() << "WeaponSlot visualization enabled." << endl;
+        }
+        else
+        {
+            orxout() << "WeaponSlot visualization disabled." << endl;
+        }
+
+        ObjectList<Pawn> pawnList;
+        for (ObjectListIterator<Pawn> it = pawnList.begin(); it != pawnList.end(); ++it)
+        {
+            it->drawWeapons(bDraw);
+        }
+    }
 }
Index: code/trunk/src/orxonox/worldentities/pawns/Pawn.h
===================================================================
--- code/trunk/src/orxonox/worldentities/pawns/Pawn.h	(revision 11161)
+++ code/trunk/src/orxonox/worldentities/pawns/Pawn.h	(revision 11176)
@@ -218,4 +218,6 @@
                 { return this->weaponSystem_; }
 
+            static void consoleCommand_debugDrawWeapons(bool bDraw);
+
         protected:
             virtual void preDestroy() override;
@@ -233,5 +235,5 @@
 
             bool bAlive_;
-            bool bVulnerable_; ///< If false the pawn may not ged damaged
+            bool bVulnerable_; ///< If this is false, then the pawn may not take damage
 
             virtual std::vector<PickupCarrier*>* getCarrierChildren(void) const override
@@ -269,8 +271,11 @@
             inline void setWeaponSystem(WeaponSystem* weaponsystem)
                 { this->weaponSystem_ = weaponsystem; }
+            void drawWeapons(bool bDraw);
 
             Vector3 aimPosition_;
 
             WorldSound* explosionSound_; // TODO: Does this really belong here? Maybe move it to BigExplosion?
+
+            std::vector<Model*> debugWeaponSlotModels_;
 
     }; // tolua_export
