Index: trunk/src/world_entities/particles/box_emitter.cc
===================================================================
--- trunk/src/world_entities/particles/box_emitter.cc	(revision 10618)
+++ trunk/src/world_entities/particles/box_emitter.cc	(revision 10658)
@@ -112,5 +112,5 @@
     Quaternion moment = Quaternion(this->momentum + this->momentumRandom, randDir);
 
-    this->getSystem()->addParticle(box, velocityV, orient, moment);
+    this->getSystem()->addParticle(box, velocityV, orient, moment, extForce);
 
   }
Index: trunk/src/world_entities/particles/dot_emitter.cc
===================================================================
--- trunk/src/world_entities/particles/dot_emitter.cc	(revision 10618)
+++ trunk/src/world_entities/particles/dot_emitter.cc	(revision 10658)
@@ -88,5 +88,5 @@
 
     this->getSystem()->addParticle(this->getAbsCoor() + this->getVelocity()*.1*rand()/RAND_MAX,
-                                   velocityV, orient, moment);
+                                   velocityV, orient, moment, extForce);
 
   }
Index: trunk/src/world_entities/particles/particle_emitter.cc
===================================================================
--- trunk/src/world_entities/particles/particle_emitter.cc	(revision 10618)
+++ trunk/src/world_entities/particles/particle_emitter.cc	(revision 10658)
@@ -39,4 +39,5 @@
   this->setEmissionRate(emissionRate);
   this->setEmissionVelocity(velocity);
+  this->setExtForce(0, 0, 0);
 
   this->saveTime = 0.0;
@@ -69,4 +70,7 @@
   LoadParam(root, "emission-velocity", this, ParticleEmitter, setEmissionVelocity)
     .describe("How fast the particles are emittet (their initial speed)");
+
+  LoadParam(root, "ext-force", this, ParticleEmitter, setExtForce)
+      .describe("The external force that affects the particles.");
 
   LoadParam(root, "emission-momentum", this, ParticleEmitter, setEmissionMomentum)
@@ -166,4 +170,12 @@
   this->momentum = momentum;
   this->momentumRandom = randomMomentum;
+}
+
+/**
+ *  sets the external force that affects all particles emitted
+*/
+void ParticleEmitter::setExtForce(float x, float y, float z)
+{
+    this->extForce = Vector(x, y, z);
 }
 
Index: trunk/src/world_entities/particles/particle_emitter.h
===================================================================
--- trunk/src/world_entities/particles/particle_emitter.h	(revision 10618)
+++ trunk/src/world_entities/particles/particle_emitter.h	(revision 10658)
@@ -47,4 +47,5 @@
   void setEmissionVelocity(float velocity, float randomVelocity = 0.0);
   void setEmissionMomentum(float momentum, float randomMomentum = 0.0);
+  void setExtForce(float x, float y, float z);
 
   /** @returns the emissionRate */
@@ -73,4 +74,5 @@
   float           momentum;          //!< The Initial spped of the Rotation.
   float           momentumRandom;    //!< The random variation of the Momentum.
+  Vector          extForce;          //!< The external Force
 
 //private:
Index: trunk/src/world_entities/particles/particle_system.cc
===================================================================
--- trunk/src/world_entities/particles/particle_system.cc	(revision 10618)
+++ trunk/src/world_entities/particles/particle_system.cc	(revision 10658)
@@ -339,5 +339,5 @@
                      + randMassAnim.getValue(tickPart->lifeCycle) * tickPart->massRand;
 
-    tickPart->extForce = Vector(0,0,0);
+    //tickPart->extForce = Vector(0,0,0);
 
     // applying Color
@@ -422,5 +422,5 @@
  * @param data some more data given by the emitter
 */
-void ParticleSystem::addParticle(const Vector& position, const Vector& velocity, const Quaternion& orientation, const Quaternion& momentum, unsigned int data)
+void ParticleSystem::addParticle(const Vector& position, const Vector& velocity, const Quaternion& orientation, const Quaternion& momentum, const Vector& extForce, unsigned int data)
 {
   if (this->count <= this->maxCount)
@@ -462,4 +462,5 @@
     particles->position = position;
     particles->velocity = velocity;
+    particles->extForce = extForce;
 
     particles->orientation = orientation;
Index: trunk/src/world_entities/particles/particle_system.h
===================================================================
--- trunk/src/world_entities/particles/particle_system.h	(revision 10618)
+++ trunk/src/world_entities/particles/particle_system.h	(revision 10658)
@@ -102,5 +102,5 @@
   virtual void tickPhys(float dt) {};
 
-  void addParticle(const Vector& position, const Vector& velocity, const Quaternion& orientation, const Quaternion& momentum, unsigned int data = 0);
+  void addParticle(const Vector& position, const Vector& velocity, const Quaternion& orientation, const Quaternion& momentum, const Vector& extForce, unsigned int data = 0);
 
   void precache(unsigned int seconds, unsigned int ticksPerSecond = 25);
Index: trunk/src/world_entities/particles/plane_emitter.cc
===================================================================
--- trunk/src/world_entities/particles/plane_emitter.cc	(revision 10618)
+++ trunk/src/world_entities/particles/plane_emitter.cc	(revision 10658)
@@ -111,5 +111,5 @@
     Quaternion moment = Quaternion(this->momentum + this->momentumRandom, randDir);
 
-    this->getSystem()->addParticle(plane, velocityV, orient, moment);
+    this->getSystem()->addParticle(plane, velocityV, orient, moment, extForce);
 
   }
