Index: code/branches/network/src/orxonox/objects/Ambient.h
===================================================================
--- code/branches/network/src/orxonox/objects/Ambient.h	(revision 1421)
+++ code/branches/network/src/orxonox/objects/Ambient.h	(revision 1425)
@@ -47,5 +47,5 @@
             virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode);
             void setAmbientLight(const ColourValue& colour);
-            bool create();
+            virtual bool create();
             void registerAllVariables();
 
Index: code/branches/network/src/orxonox/objects/Explosion.cc
===================================================================
--- code/branches/network/src/orxonox/objects/Explosion.cc	(revision 1421)
+++ code/branches/network/src/orxonox/objects/Explosion.cc	(revision 1425)
@@ -80,7 +80,9 @@
     };
     
-    bool Explosion::create(){
-      return WorldEntity::create();
-    }
+    /*bool Explosion::create(){
+      if(!WorldEntity::create())
+        return false;
+      classID=this->getIdentifier()->getNetworkID();
+    }*/
 
     void Explosion::destroyObject()
Index: code/branches/network/src/orxonox/objects/Explosion.h
===================================================================
--- code/branches/network/src/orxonox/objects/Explosion.h	(revision 1421)
+++ code/branches/network/src/orxonox/objects/Explosion.h	(revision 1425)
@@ -43,5 +43,5 @@
             virtual ~Explosion();
             void destroyObject();
-            bool create();
+            virtual bool create(){return WorldEntity::create();}
 
         private:
Index: code/branches/network/src/orxonox/objects/Model.h
===================================================================
--- code/branches/network/src/orxonox/objects/Model.h	(revision 1421)
+++ code/branches/network/src/orxonox/objects/Model.h	(revision 1425)
@@ -45,5 +45,5 @@
             virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode);
             void setMesh(const std::string& meshname);
-            bool create();
+            virtual bool create();
 
         protected:
Index: code/branches/network/src/orxonox/objects/NPC.cc
===================================================================
--- code/branches/network/src/orxonox/objects/NPC.cc	(revision 1421)
+++ code/branches/network/src/orxonox/objects/NPC.cc	(revision 1425)
@@ -67,8 +67,4 @@
   }
   
-  bool NPC::create(){
-    Model::create();
-    return true;
-  }
 
   /**
Index: code/branches/network/src/orxonox/objects/NPC.h
===================================================================
--- code/branches/network/src/orxonox/objects/NPC.h	(revision 1421)
+++ code/branches/network/src/orxonox/objects/NPC.h	(revision 1425)
@@ -53,5 +53,5 @@
       void setValues(Vector3 location, Vector3 speed, Vector3 acceleration, bool movable);
       void registerAllVariables();
-      bool create();
+      virtual bool create(){return Model::create();}
 
     private:
Index: code/branches/network/src/orxonox/objects/Projectile.cc
===================================================================
--- code/branches/network/src/orxonox/objects/Projectile.cc	(revision 1421)
+++ code/branches/network/src/orxonox/objects/Projectile.cc	(revision 1425)
@@ -91,5 +91,6 @@
                 if (this->getPosition().squaredDistance(it->getPosition()) <= (radius*radius))
                 {
-                    new Explosion(this);
+                    Explosion *exp = new Explosion(this);
+                    exp->create();
                     delete this;
                     return;
Index: code/branches/network/src/orxonox/objects/Projectile.h
===================================================================
--- code/branches/network/src/orxonox/objects/Projectile.h	(revision 1421)
+++ code/branches/network/src/orxonox/objects/Projectile.h	(revision 1425)
@@ -46,4 +46,5 @@
             void destroyObject();
             virtual void tick(float dt);
+            virtual bool create(){return WorldEntity::create();}
 
         private:
Index: code/branches/network/src/orxonox/objects/Skybox.h
===================================================================
--- code/branches/network/src/orxonox/objects/Skybox.h	(revision 1421)
+++ code/branches/network/src/orxonox/objects/Skybox.h	(revision 1425)
@@ -47,5 +47,5 @@
             void setSkybox(const std::string& skyboxname);
             
-            bool create();
+            virtual bool create();
             void registerAllVariables();
             void setSkyboxSrc(const std::string &src);
Index: code/branches/network/src/orxonox/objects/SpaceShip.cc
===================================================================
--- code/branches/network/src/orxonox/objects/SpaceShip.cc	(revision 1421)
+++ code/branches/network/src/orxonox/objects/SpaceShip.cc	(revision 1425)
@@ -70,5 +70,5 @@
       Iterator<SpaceShip> it;
       for(it = ObjectList<SpaceShip>::start(); it; ++it){
-        if((it)->server_ || ( network::Client::getSingleton() && network::Client::getSingleton()->getShipID()==it->objectID ) )
+        if( (it)->myShip_ )
           return *it;
       }
@@ -109,5 +109,5 @@
       mouseY_(0.0f),
       emitterRate_(0.0f),
-      server_(false)
+      myShip_(false)
     {
         RegisterObject(SpaceShip);
@@ -140,4 +140,8 @@
 
     bool SpaceShip::create(){
+      if(!myShip_){
+        if(network::Client::getSingleton() && objectID == network::Client::getSingleton()->getShipID())
+          myShip_=true;
+      }
       if(Model::create())
         this->init();
@@ -299,5 +303,5 @@
         XMLPortParamLoadOnly(SpaceShip, "transDamp", setTransDamp, xmlelement, mode);
         XMLPortParamLoadOnly(SpaceShip, "rotDamp", setRotDamp, xmlelement, mode);
-        server_=true; // TODO: this is only a hack
+        myShip_=true; // TODO: this is only a hack
         SpaceShip::create();
         getFocus();
@@ -354,4 +358,5 @@
 
             Projectile *p = new Projectile(this);
+            p->create();
 
             p->setBacksync(true);
@@ -439,5 +444,5 @@
             this->tt_->setRate(0);
 
-        if( (network::Client::getSingleton() &&  network::Client::getSingleton()->getShipID() == objectID) || server_ )
+        if( myShip_ )
         {
           COUT(4) << "steering our ship: " << objectID << std::endl;
Index: code/branches/network/src/orxonox/objects/SpaceShip.h
===================================================================
--- code/branches/network/src/orxonox/objects/SpaceShip.h	(revision 1421)
+++ code/branches/network/src/orxonox/objects/SpaceShip.h	(revision 1425)
@@ -49,5 +49,5 @@
             SpaceShip();
             ~SpaceShip();
-            bool create();
+            virtual bool create();
             void registerAllVariables();
             void init();
@@ -81,4 +81,6 @@
             Vector3 getOrth();
             Camera* getCamera();
+            
+            bool getMyShip(){return myShip_;}
 
         private:
@@ -135,5 +137,5 @@
 
             float emitterRate_;
-            bool server_;
+            bool myShip_;
 
             static SpaceShip* instance_s;
Index: code/branches/network/src/orxonox/objects/WorldEntity.cc
===================================================================
--- code/branches/network/src/orxonox/objects/WorldEntity.cc	(revision 1421)
+++ code/branches/network/src/orxonox/objects/WorldEntity.cc	(revision 1425)
@@ -153,8 +153,8 @@
       registerVar( (void*) &(this->bStatic_), sizeof(this->bStatic_), network::DATA, 0x3);
       //register acceleration & momentum
-      registerVar( (void*) &(this->getAcceleration().x), sizeof(this->getAcceleration().x), network::DATA, 0x3);
-      registerVar( (void*) &(this->getAcceleration().y), sizeof(this->getAcceleration().y), network::DATA, 0x3);
-      registerVar( (void*) &(this->getAcceleration().z), sizeof(this->getAcceleration().z), network::DATA, 0x3);
-      registerVar( (void*) &(this->getMomentum()), sizeof(this->getMomentum()), network::DATA);
+//       registerVar( (void*) &(this->getAcceleration().x), sizeof(this->getAcceleration().x), network::DATA, 0x2);
+//       registerVar( (void*) &(this->getAcceleration().y), sizeof(this->getAcceleration().y), network::DATA, 0x2);
+//       registerVar( (void*) &(this->getAcceleration().z), sizeof(this->getAcceleration().z), network::DATA, 0x2);
+//       registerVar( (void*) &(this->getMomentum()), sizeof(this->getMomentum()), network::DATA, 0x2); // only backsync
     }
 
Index: code/branches/network/src/orxonox/objects/WorldEntity.h
===================================================================
--- code/branches/network/src/orxonox/objects/WorldEntity.h	(revision 1421)
+++ code/branches/network/src/orxonox/objects/WorldEntity.h	(revision 1425)
@@ -53,5 +53,5 @@
             virtual void loadParams(TiXmlElement* xmlElem);
             virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode);
-            inline bool create(){ return Synchronisable::create(); }
+            virtual inline bool create(){ return Synchronisable::create(); }
 
             void attachWorldEntity(WorldEntity* entity);
