Index: code/branches/resource/src/orxonox/GraphicsManager.cc
===================================================================
--- code/branches/resource/src/orxonox/GraphicsManager.cc	(revision 3328)
+++ code/branches/resource/src/orxonox/GraphicsManager.cc	(revision 3336)
@@ -182,12 +182,4 @@
         SetConfigValue(ogreLogLevelCritical_, 2)
             .description("Corresponding orxonox debug level for ogre Critical");
-        SetConfigValue(detailLevelParticle_, 2)
-            .description("O: off, 1: low, 2: normal, 3: high").callback(this, &GraphicsManager::detailLevelParticleChanged);
-    }
-
-    void GraphicsManager::detailLevelParticleChanged()
-    {
-        for (ObjectList<ParticleInterface>::iterator it = ObjectList<ParticleInterface>::begin(); it; ++it)
-            it->detailLevelChanged(this->detailLevelParticle_);
     }
 
Index: code/branches/resource/src/orxonox/GraphicsManager.h
===================================================================
--- code/branches/resource/src/orxonox/GraphicsManager.h	(revision 3328)
+++ code/branches/resource/src/orxonox/GraphicsManager.h	(revision 3336)
@@ -60,8 +60,4 @@
         void update(const Clock& time);
 
-        void detailLevelParticleChanged();
-        inline unsigned int getDetailLevelParticle() const
-            { return this->detailLevelParticle_; }
-
         inline Ogre::Viewport* getViewport()
             { return this->viewport_; }
@@ -99,5 +95,4 @@
 
         // config values
-        unsigned int        detailLevelParticle_;      //!< Detail level of particle effects (0: off, 1: low, 2: normal, 3: high)
         std::string         resourceFile_;             //!< resources file name
         std::string         ogreConfigFile_;           //!< ogre config file name
Index: code/branches/resource/src/orxonox/tools/ParticleInterface.cc
===================================================================
--- code/branches/resource/src/orxonox/tools/ParticleInterface.cc	(revision 3328)
+++ code/branches/resource/src/orxonox/tools/ParticleInterface.cc	(revision 3336)
@@ -43,4 +43,5 @@
 #include "util/Math.h"
 #include "core/CoreIncludes.h"
+#include "core/ConfigValueIncludes.h"
 #include "core/GameMode.h"
 #include "GraphicsManager.h"
@@ -91,4 +92,10 @@
     }
 
+    void ParticleInterface::setConfigValues()
+    {
+        SetConfigValue(globalDetailLevel_, 2)
+            .description("O: off, 1: low, 2: normal, 3: high").callback(this, &ParticleInterface::detailLevelChanged);
+    }
+
     Ogre::ParticleEmitter* ParticleInterface::createNewEmitter()
     {
@@ -180,10 +187,10 @@
         this->detaillevel_ = level;
         if (GameMode::showsGraphics())
-            this->detailLevelChanged(GraphicsManager::getInstance().getDetailLevelParticle());
-    }
-
-    void ParticleInterface::detailLevelChanged(unsigned int newlevel)
-    {
-        if (newlevel >= static_cast<unsigned int>(this->detaillevel_))
+            this->detailLevelChanged();
+    }
+
+    void ParticleInterface::detailLevelChanged()
+    {
+        if (this->globalDetailLevel_ >= this->detaillevel_)
             this->bAllowedByLOD_ = true;
         else
Index: code/branches/resource/src/orxonox/tools/ParticleInterface.h
===================================================================
--- code/branches/resource/src/orxonox/tools/ParticleInterface.h	(revision 3328)
+++ code/branches/resource/src/orxonox/tools/ParticleInterface.h	(revision 3336)
@@ -47,4 +47,5 @@
             ParticleInterface(Ogre::SceneManager* scenemanager, const std::string& templateName, LODParticle::Value detaillevel);
             virtual ~ParticleInterface();
+            void setConfigValues();
 
             inline Ogre::ParticleSystem* getParticleSystem()
@@ -77,5 +78,4 @@
                 { return this->bVisible_; }
 
-            void detailLevelChanged(unsigned int newlevel);
             void setDetailLevel(unsigned int level);
 
@@ -90,4 +90,5 @@
         private:
             void updateVisibility();
+            void detailLevelChanged();
 
             Ogre::ParticleSystem*     particleSystem_;
@@ -96,6 +97,9 @@
             bool                      bEnabled_;
             bool                      bAllowedByLOD_;
-            unsigned int              detaillevel_;     //!< Detail level of this particle effect (0: off, 1: low, 2: normal, 3: high)
+            unsigned int              detaillevel_;       //!< Detail level of this particle effect (0: off, 1: low, 2: normal, 3: high)
             float                     speedFactor_;
+
+            // config values
+            unsigned int              globalDetailLevel_; //!< Global maximum detail level of particle effects (0: off, 1: low, 2: normal, 3: high)
 
             static ParticleInterface* currentParticleInterface_s;
