Index: /code/branches/overlay/src/orxonox/CMakeLists.txt
===================================================================
--- /code/branches/overlay/src/orxonox/CMakeLists.txt	(revision 2319)
+++ /code/branches/overlay/src/orxonox/CMakeLists.txt	(revision 2320)
@@ -38,4 +38,6 @@
   overlays/stats/Stats.cc
   overlays/stats/StatsTest.cc
+  overlays/stats/CreateLines.cc
+  overlays/stats/Scoreboard.cc
 
   tools/BillboardSet.cc
Index: /code/branches/overlay/src/orxonox/OrxonoxPrereqs.h
===================================================================
--- /code/branches/overlay/src/orxonox/OrxonoxPrereqs.h	(revision 2319)
+++ /code/branches/overlay/src/orxonox/OrxonoxPrereqs.h	(revision 2320)
@@ -170,4 +170,6 @@
     class OverlayGroup;
     class OverlayText;
+    class CreateLines;
+    class Scoreboard;
 
     //gui
Index: /code/branches/overlay/src/orxonox/objects/gametypes/Gametype.cc
===================================================================
--- /code/branches/overlay/src/orxonox/objects/gametypes/Gametype.cc	(revision 2319)
+++ /code/branches/overlay/src/orxonox/objects/gametypes/Gametype.cc	(revision 2320)
@@ -40,4 +40,5 @@
 #include "objects/worldentities/pawns/Spectator.h"
 #include "objects/worldentities/SpawnPoint.h"
+#include "Settings.h"
 
 #include "network/Host.h"
@@ -67,6 +68,7 @@
 
         // load the corresponding score board
-        statsOverlay_ = new XMLFile(Settings::getDataPath() + "overlay/" + this->statsOverlayName_);
+        this->statsOverlay_ = new XMLFile(Settings::getDataPath() + "overlay/" + this->statsOverlayName_);
         Loader::open(statsOverlay_);
+        this->setGametype(this);
     }
 
Index: /code/branches/overlay/src/orxonox/objects/gametypes/Gametype.h
===================================================================
--- /code/branches/overlay/src/orxonox/objects/gametypes/Gametype.h	(revision 2319)
+++ /code/branches/overlay/src/orxonox/objects/gametypes/Gametype.h	(revision 2320)
@@ -82,4 +82,13 @@
                 { return this->startCountdown_; }
 
+            inline unsigned int getNumberOfPlayers() const
+                { return this->players_.size(); }
+
+            inline std::string getPlayersName() const
+                { return "StatsBot77"; }
+
+            inline unsigned int getPlayersFrags() const
+                { return 123; }
+
         private:
             void setConfigValues();
Index: /code/branches/overlay/src/orxonox/overlays/stats/CreateLines.cc
===================================================================
--- /code/branches/overlay/src/orxonox/overlays/stats/CreateLines.cc	(revision 2319)
+++ /code/branches/overlay/src/orxonox/overlays/stats/CreateLines.cc	(revision 2320)
@@ -44,5 +44,5 @@
 
     /**
-        @brief Constructor: Creates and initializes a line.
+        @brief Constructor: Creates a line.
     */
     CreateLines::CreateLines(BaseObject* creator)
@@ -63,19 +63,20 @@
         @brief Ensures that the number of OverlayElements is equal to numberOfColumns.
     */
-    void setNumberOfColumns(unsigned int numberOfColumns) {
+    void CreateLines::setNumberOfColumns(unsigned int numberOfColumns, unsigned int lineIndex) {
 
         Ogre::OverlayManager* ovMan = Ogre::OverlayManager::getSingletonPtr();
 
-        while (textColumns_.getSize() < numberOfColumns) {
+        while (textColumns_.size() < numberOfColumns) {
 
-            tempTextArea* = static_cast<Ogre::TextAreaOverlayElement*>(ovMan->createOverlayElement("TextArea", "StatsLineTextArea" + getName() + convertToString(lineIndex)));
-            textColumns_->add2D(tempTextArea);
+            Ogre::TextAreaOverlayElement* tempTextArea = static_cast<Ogre::TextAreaOverlayElement*>(ovMan->createOverlayElement("TextArea", "StatsLineTextArea" + getName() + convertToString(lineIndex)));
             textColumns_.push_back(tempTextArea);
+            this->background_->addChild(tempTextArea);
 
         }
 
-        while (textColumns_.getSize() > numberOfColumns) {
+        while (textColumns_.size() > numberOfColumns) {
 
-            ovMan->destroy(textColumns_.back());
+            this->background_->_removeChild(textColumns_.back());
+            ovMan->destroyOverlayElement(textColumns_.back());
             textColumns_.pop_back();
 
@@ -84,11 +85,11 @@
     }
 
-    void alignColumn(int columnIndex, float leftOffset) {
+    void CreateLines::alignColumn(int columnIndex, float leftOffset, float topOffset) {
 
-        this->textColumns_[columnIndex]->setPosition(leftOffset,0);
+        this->textColumns_[columnIndex]->setPosition(leftOffset, topOffset);
 
     }
 
-    void setColumnText(int columnIndex, string columnText) {
+    void CreateLines::setColumnText(int columnIndex, std::string columnText) {
 
         this->textColumns_[columnIndex]->setCaption(columnText);
Index: /code/branches/overlay/src/orxonox/overlays/stats/CreateLines.h
===================================================================
--- /code/branches/overlay/src/orxonox/overlays/stats/CreateLines.h	(revision 2319)
+++ /code/branches/overlay/src/orxonox/overlays/stats/CreateLines.h	(revision 2320)
@@ -44,13 +44,14 @@
 
     public: // functions
-        CreateLines();
-        ~CreateLines();
+        CreateLines(BaseObject* creator);
+        virtual ~CreateLines() {}
 
         virtual void XMLPort(Element& xmlElement, XMLPort::Mode mode);
 
+        void setNumberOfColumns(unsigned int numberOfColumns, unsigned int lineIndex);
+        void alignColumn(int columnIndex, float leftOffset, float topOffset);
+        void setColumnText(int columnIndex, std::string columnText);
+
     private: // functions
-        void setNumberOfColumns();
-        void alignColumn();
-        void setColumnText();
 
     private: // variables
Index: /code/branches/overlay/src/orxonox/overlays/stats/Scoreboard.cc
===================================================================
--- /code/branches/overlay/src/orxonox/overlays/stats/Scoreboard.cc	(revision 2319)
+++ /code/branches/overlay/src/orxonox/overlays/stats/Scoreboard.cc	(revision 2320)
@@ -26,5 +26,5 @@
 
 #include "OrxonoxStableHeaders.h"
-#include "CreateLines.h"
+#include "Scoreboard.h"
 
 #include <string>
@@ -38,4 +38,6 @@
 #include "core/CoreIncludes.h"
 #include "core/ConfigValueIncludes.h"
+#include "objects/gametypes/Gametype.h"
+#include "CreateLines.h"
 
 namespace orxonox
@@ -44,5 +46,5 @@
 
     /**
-        @brief Constructor: Creates and initializes a line.
+        @brief Constructor: Creates the scoreboard.
     */
     Scoreboard::Scoreboard(BaseObject* creator)
@@ -52,3 +54,37 @@
     }
 
+    /**
+        @brief Prints the scoreboard on the screen.
+    */
+    void Scoreboard::printLines() {
+
+        numberOfColumns = 2;
+        numberOfLines = this->gametype_->getNumberOfPlayers();
+        columnIndex = 0;
+        topOffset = 0.3;
+        lineSpacing = 0.1;
+
+        for (unsigned int i = 0; i < numberOfLines; i++) {
+
+            leftOffset = 0.3;
+
+            this->createlines_->setNumberOfColumns(numberOfColumns, i);
+
+            columnText = this->gametype_->getPlayersName();
+            this->createlines_->alignColumn(columnIndex, topOffset, leftOffset);
+            this->createlines_->setColumnText(columnIndex, columnText);
+
+            columnIndex++;
+            leftOffset = leftOffset + 0.4;
+
+            columnText = this->gametype_->getPlayersFrags();
+            this->createlines_->alignColumn(columnIndex, topOffset, leftOffset);
+            this->createlines_->setColumnText(columnIndex, columnText);
+
+            topOffset = topOffset + lineSpacing;
+
+        }
+
+    }
+
 }
Index: /code/branches/overlay/src/orxonox/overlays/stats/Scoreboard.h
===================================================================
--- /code/branches/overlay/src/orxonox/overlays/stats/Scoreboard.h	(revision 2319)
+++ /code/branches/overlay/src/orxonox/overlays/stats/Scoreboard.h	(revision 2320)
@@ -44,13 +44,30 @@
 
     public: // functions
-        Scoreboard();
-        ~Scoreboard();
+        Scoreboard(BaseObject* creator);
+        ~Scoreboard() {}
+
+        inline void setGametype(Gametype* gt)
+            { this->gametype_ = gt; }
+        inline Gametype* getGametype() const
+            { return this->gametype_; }
+
+        inline void setCreateLines(CreateLines* cl)
+            { this->createlines_ = cl; }
+        inline CreateLines* getCreateLines() const
+            { return this->createlines_; }
 
     private: // functions
-        
+        void printLines();
 
     private: // variables
-        
-
+        unsigned int numberOfColumns;
+        unsigned int numberOfLines;
+        unsigned int columnIndex;
+        float topOffset;
+        float leftOffset;
+        float lineSpacing;
+        std::string columnText;
+        Gametype* gametype_;
+        CreateLines* createlines_;
     };
 }
