Index: code/branches/Highscore_HS16/data/defaultConfig/orxonox.ini
===================================================================
--- code/branches/Highscore_HS16/data/defaultConfig/orxonox.ini	(revision 11313)
+++ code/branches/Highscore_HS16/data/defaultConfig/orxonox.ini	(revision 11315)
@@ -11,5 +11,4 @@
 
 [Highscore]
-tests_[0] = "name1"
-tests_[1] = "name2"
+highscores_[0] = "player./.Jump./.0"
 
Index: code/branches/Highscore_HS16/data/gui/scripts/HighscoreMenu.lua
===================================================================
--- code/branches/Highscore_HS16/data/gui/scripts/HighscoreMenu.lua	(revision 11313)
+++ code/branches/Highscore_HS16/data/gui/scripts/HighscoreMenu.lua	(revision 11315)
@@ -56,5 +56,4 @@
 
 function P.onShow()
-	P.nameList = {}
 	
 	P.scoreList = {}
@@ -62,6 +61,5 @@
 
 	for i=0,orxonox.Highscore:getInstance():getNumberOfHighscores()-1 do
-		table.insert(P.nameList, orxonox.Highscore:getInstance():getHighscore(i))
-		table.insert(P.scoreList, i)
+		table.insert(P.scoreList, orxonox.Highscore:getInstance():getHighscore(i))
 	
 	end
@@ -112,9 +110,15 @@
     local offset = 2
     for k,v in pairs(P.scoreList) do
-        local line = P.createPickupEntry(tabName .. k,k,tag)
-        table.insert(P.linesList, line)
-        line:setYPosition(CEGUI.UDim(0,offset))
-        offset = offset + line:getHeight():asAbsolute(1)+2
-        pane:addChildWindow(line)
+    	
+    	local splitlist = P.Split(v,"./.")
+
+    	if(splitlist[1] ~= name)then  --TODO!!!!!!!
+    		local line = P.createPickupEntry(tabName .. k,k,tag)
+       	 	table.insert(P.linesList, line)
+        	line:setYPosition(CEGUI.UDim(0,offset))
+        	offset = offset + line:getHeight():asAbsolute(1)+2
+        	pane:addChildWindow(line)	
+    	end
+        
     end
 
@@ -166,5 +170,28 @@
     end
 end
-
+function P.Split(str, delim, maxNb)
+    -- Eliminate bad cases...
+    if string.find(str, delim) == nil then
+        return { str }
+    end
+    if maxNb == nil or maxNb < 1 then
+        maxNb = 0    -- No limit
+    end
+    local result = {}
+    local pat = "(.-)" .. delim .. "()"
+    local nb = 0
+    local lastPos
+    for part, pos in string.gfind(str, pat) do
+        nb = nb + 1
+        result[nb] = part
+        lastPos = pos
+        if nb == maxNb then break end
+    end
+    -- Handle the last field
+    if nb ~= maxNb then
+        result[nb + 1] = string.sub(str, lastPos)
+    end
+    return result
+end
 function P.HighscoreSelectionChanged(e)
 	--local pane = tolua.cast(winMgr:getWindow("orxonox/HighscoreMenuPane"), "CEGUI::ScrollablePane")
Index: code/branches/Highscore_HS16/src/modules/jump/Jump.cc
===================================================================
--- code/branches/Highscore_HS16/src/modules/jump/Jump.cc	(revision 11313)
+++ code/branches/Highscore_HS16/src/modules/jump/Jump.cc	(revision 11315)
@@ -312,8 +312,9 @@
         cleanup();
         GSLevel::startMainMenu();
-        orxout() << "Test Highscore" << endl;
         if (Highscore::exists()){
-                    orxout() << "exists" << endl;
-                   Highscore::getInstance().storeHighscore("player","jump",sectionNumber_ - 2);
+                    int score = this->getScore(this->getPlayer());
+                    if(score > Highscore::getInstance().getHighestScoreOfGame("Jump")) 
+                        Highscore::getInstance().storeHighscore("player","Jump",score);
+
           }
         Deathmatch::end();
Index: code/branches/Highscore_HS16/src/orxonox/Highscore.cc
===================================================================
--- code/branches/Highscore_HS16/src/orxonox/Highscore.cc	(revision 11313)
+++ code/branches/Highscore_HS16/src/orxonox/Highscore.cc	(revision 11315)
@@ -20,10 +20,29 @@
     void Highscore::setConfigValues()
     {
+        SetConfigValue(highscores_, std::vector<std::string>()).description("HighscoreVektor");
+    }
 
-		SetConfigValue(name_, "Test").description("The name of the game");
-        SetConfigValue(tests_, std::vector<std::string>()).description("Testvektor");
+    int Highscore::getHighestScoreOfGame(std::string game){
+        std::string delimiter = "./.";
+        int best = -1;
+        for (std::string score : this->highscores_)
+        {
+            
+            score.erase(0, score.find(delimiter) + delimiter.length());
+            if(game.compare(score.substr(0,score.find(delimiter))) == 0){
+                score.erase(0, score.find(delimiter) + delimiter.length());
+                int possibleBest = std::stoi(score);
+                if(possibleBest > best) best = possibleBest;
+            }
+
+
+        }
+        
+        return best;
+        
     }
+
     void Highscore::storeHighscore(std::string player, std::string level, int points){
-        ModifyConfigValue(tests_, add, player+"./."+level+"./."+std::to_string(points));
+        ModifyConfigValue(highscores_, add, player+"./."+level+"./."+std::to_string(points));
     }
     /* static std::string Highscore::getName(){
Index: code/branches/Highscore_HS16/src/orxonox/Highscore.h
===================================================================
--- code/branches/Highscore_HS16/src/orxonox/Highscore.h	(revision 11313)
+++ code/branches/Highscore_HS16/src/orxonox/Highscore.h	(revision 11315)
@@ -15,15 +15,11 @@
         void setConfigValues(); // Inherited function
         void storeHighscore(std::string player, std::string level, int points);
+
+        int getHighestScoreOfGame(std::string game);
         // tolua_begin
-		inline const std::string& getName() {
-			return this->name_;
-		}
-        inline void test(){
-            this->storeHighscore("test","t",1);
-        }
         inline unsigned int getNumberOfHighscores()
-                { return this->tests_.size(); }
+                { return this->highscores_.size(); }
             inline const std::string& getHighscore(unsigned int index)
-                { return this->tests_[index]; }
+                { return this->highscores_[index]; }
 
         static Highscore& getInstance()
@@ -34,6 +30,5 @@
 
     private:
-        std::vector<std::string> tests_;
-        std::string name_;
+        std::vector<std::string> highscores_;
         float version_;
         static Highscore* singletonPtr_s;
