Index: /code/branches/network/src/network/Synchronisable.h
===================================================================
--- /code/branches/network/src/network/Synchronisable.h	(revision 926)
+++ /code/branches/network/src/network/Synchronisable.h	(revision 927)
@@ -56,5 +56,5 @@
     int getSize();
     bool updateData(syncData vars);
-    void registerAllVariables();
+    virtual void registerAllVariables()=0;
     virtual bool create()=0;
   protected:
Index: /code/branches/network/src/orxonox/objects/Model.cc
===================================================================
--- /code/branches/network/src/orxonox/objects/Model.cc	(revision 926)
+++ /code/branches/network/src/orxonox/objects/Model.cc	(revision 927)
@@ -44,4 +44,5 @@
     {
         RegisterObject(Model);
+        registerAllVariables();
     }
 
@@ -63,5 +64,6 @@
     /**
         @brief XML loading and saving.
-        @param xmlelement The XML-element
+    @p
+    aram xmlelement The XML-element
         @param loading Loading (true) or saving (false)
         @return The XML-element
@@ -82,4 +84,5 @@
 
     bool Model::create(){
+      WorldEntity::create();
       if(meshSrc_.compare("")!=0){
         this->mesh_.setMesh(meshSrc_);
@@ -87,10 +90,10 @@
         COUT(4) << "Loader: Created model" << std::endl;
       }
-      registerAllVariables();
       return true;
     }
 
     void Model::registerAllVariables(){
-//      registerVar(&meshSrc_, meshSrc_.length() + 1, network::STRING);
+      WorldEntity::registerAllVariables();
+      registerVar(&meshSrc_, meshSrc_.length() + 1, network::STRING);
     }
 }
Index: /code/branches/network/src/orxonox/objects/Model.h
===================================================================
--- /code/branches/network/src/orxonox/objects/Model.h	(revision 926)
+++ /code/branches/network/src/orxonox/objects/Model.h	(revision 927)
@@ -22,8 +22,10 @@
             bool create();
 
+        protected:
+            void registerAllVariables();
+            
         private:
             std::string meshSrc_;
             Mesh mesh_;
-            void registerAllVariables();
     };
 }
Index: /code/branches/network/src/orxonox/objects/SpaceShip.cc
===================================================================
--- /code/branches/network/src/orxonox/objects/SpaceShip.cc	(revision 926)
+++ /code/branches/network/src/orxonox/objects/SpaceShip.cc	(revision 927)
@@ -56,4 +56,5 @@
     {
         RegisterObject(SpaceShip);
+        this->registerAllVariables();
 
         this->setConfigValues();
@@ -125,6 +126,7 @@
         this->brakeLoop(loop);
 */
-        this->init();
-
+//         this->create();
+
+        
         COUT(3) << "Info: SpaceShip was loaded" << std::endl;
     }
@@ -136,4 +138,19 @@
     }
 
+    bool SpaceShip::create(){
+      if(Model::create())
+        this->init();
+      else
+        return false;
+      return true;
+    }
+    
+    void SpaceShip::registerAllVariables(){
+      Model::registerAllVariables();
+      
+      
+      
+    }
+    
     void SpaceShip::init()
     {
@@ -203,4 +220,5 @@
     {
         Model::loadParams(xmlElem);
+        this->create();
 /*
         if (xmlElem->Attribute("forward") && xmlElem->Attribute("rotateupdown") && xmlElem->Attribute("rotaterightleft") && xmlElem->Attribute("looprightleft"))
Index: /code/branches/network/src/orxonox/objects/SpaceShip.h
===================================================================
--- /code/branches/network/src/orxonox/objects/SpaceShip.h	(revision 926)
+++ /code/branches/network/src/orxonox/objects/SpaceShip.h	(revision 927)
@@ -21,4 +21,6 @@
             SpaceShip();
             ~SpaceShip();
+            bool create();
+            void registerAllVariables();
             void init();
             void setConfigValues();
Index: /code/branches/network/src/orxonox/objects/WorldEntity.cc
===================================================================
--- /code/branches/network/src/orxonox/objects/WorldEntity.cc	(revision 926)
+++ /code/branches/network/src/orxonox/objects/WorldEntity.cc	(revision 927)
@@ -49,15 +49,5 @@
         RegisterObject(WorldEntity);
 
-        if (Orxonox::getSingleton()->getSceneManager())
-        {
-            std::ostringstream name;
-            name << (WorldEntity::worldEntityCounter_s++);
-            this->setName("WorldEntity" + name.str());
-            this->node_ = Orxonox::getSingleton()->getSceneManager()->getRootSceneNode()->createChildSceneNode(this->getName());
-        }
-        else
-        {
-            this->node_ = 0;
-        }
+        //create();
 
         this->bStatic_ = true;
@@ -67,4 +57,18 @@
         this->rotationRate_ = 0;
         this->momentum_ = 0;
+        
+        if (Orxonox::getSingleton()->getSceneManager())
+        {
+          std::ostringstream name;
+          name << (WorldEntity::worldEntityCounter_s++);
+          this->setName("WorldEntity" + name.str());
+          this->node_ = Orxonox::getSingleton()->getSceneManager()->getRootSceneNode()->createChildSceneNode(this->getName());
+        
+          registerAllVariables();
+        }
+        else
+        {
+          this->node_ = 0;
+        }
     }
 
@@ -89,4 +93,5 @@
 
         BaseObject::loadParams(xmlElem);
+        create();
 /*
         if (xmlElem->Attribute("position"))
@@ -185,12 +190,8 @@
     }
 
-    bool WorldEntity::create(){
-      registerAllVariables();
-      return true;
-    }
 
     void WorldEntity::registerAllVariables()
     {
-/*      // register coordinates
+      // register coordinates
       registerVar( (void*) &(this->getPosition().x), sizeof(this->getPosition().x), network::DATA);
       registerVar( (void*) &(this->getPosition().y), sizeof(this->getPosition().y), network::DATA);
@@ -200,7 +201,7 @@
       registerVar( (void*) &(this->getOrientation().x), sizeof(this->getOrientation().x), network::DATA);
       registerVar( (void*) &(this->getOrientation().y), sizeof(this->getOrientation().y), network::DATA);
-      registerVar( (void*) &(this->getOrientation().z), sizeof(this->getOrientation().z), network::DATA);*/
+      registerVar( (void*) &(this->getOrientation().z), sizeof(this->getOrientation().z), network::DATA);
       // not needed at the moment, because we don't have prediction yet
-      /*// register velocity_
+      // register velocity_
       registerVar( (void*) &(this->getVelocity().x), sizeof(this->getVelocity().x), network::DATA);
       registerVar( (void*) &(this->getVelocity().y), sizeof(this->getVelocity().y), network::DATA);
@@ -210,5 +211,5 @@
       registerVar( (void*) &(this->getRotationAxis().x), sizeof(this->getRotationAxis().x), network::DATA);
       registerVar( (void*) &(this->getRotationAxis().y), sizeof(this->getRotationAxis().y), network::DATA);
-      registerVar( (void*) &(this->getRotationAxis().z), sizeof(this->getRotationAxis().z), network::DATA);*/
+      registerVar( (void*) &(this->getRotationAxis().z), sizeof(this->getRotationAxis().z), network::DATA);
     }
 
Index: /code/branches/network/src/orxonox/objects/WorldEntity.h
===================================================================
--- /code/branches/network/src/orxonox/objects/WorldEntity.h	(revision 926)
+++ /code/branches/network/src/orxonox/objects/WorldEntity.h	(revision 927)
@@ -17,5 +17,5 @@
 namespace orxonox
 {
-    class _OrxonoxExport WorldEntity : public BaseObject, public Tickable//, public network::Synchronisable
+    class _OrxonoxExport WorldEntity : public BaseObject, public Tickable, public network::Synchronisable
     {
         public:
@@ -26,5 +26,5 @@
             virtual void loadParams(TiXmlElement* xmlElem);
             virtual void XMLPort(Element& xmlelement, bool loading);
-            bool create();
+            inline bool create(){ return true; }
 
             void attachWorldEntity(WorldEntity* entity);
Index: /code/branches/network/src/orxonox/objects/weapon/AmmunitionDump.cc
===================================================================
--- /code/branches/network/src/orxonox/objects/weapon/AmmunitionDump.cc	(revision 926)
+++ /code/branches/network/src/orxonox/objects/weapon/AmmunitionDump.cc	(revision 927)
@@ -45,4 +45,5 @@
   {
     RegisterObject(AmmunitionDump);
+    registerAllVariables();
 
     for (int i = 0; i < numberOfAmmos_; i++)
@@ -114,3 +115,13 @@
     return stock_[id];
   }
+  
+  void AmmunitionDump::registerAllVariables(){
+    registerVar( &numberOfAmmos_, sizeof(int), network::DATA);
+    
+    for (int i = 0; i < numberOfAmmos_; i++)
+    {
+      registerVar(&stock_[i], sizeof(int), network::DATA);
+      registerVar(&capacity_[i], sizeof(int), network::DATA);
+    }
+  }
 }
Index: /code/branches/network/src/orxonox/objects/weapon/AmmunitionDump.h
===================================================================
--- /code/branches/network/src/orxonox/objects/weapon/AmmunitionDump.h	(revision 926)
+++ /code/branches/network/src/orxonox/objects/weapon/AmmunitionDump.h	(revision 927)
@@ -60,4 +60,5 @@
   protected:
     inline bool create() { return true; }
+    void registerAllVariables();
 
     int numberOfAmmos_;
Index: /code/branches/network/src/orxonox/objects/weapon/BulletManager.cc
===================================================================
--- /code/branches/network/src/orxonox/objects/weapon/BulletManager.cc	(revision 926)
+++ /code/branches/network/src/orxonox/objects/weapon/BulletManager.cc	(revision 927)
@@ -39,4 +39,5 @@
   {
     RegisterObject(BulletManager);
+    registerAllVariables();
     bullets_ = new Bullet*[bulletsSize_];
   }
@@ -103,3 +104,10 @@
   }
 
+  void BulletManager::registerAllVariables(){
+    registerVar(&bulletsSize_, sizeof(int), network::DATA);
+    registerVar(&bulletsIndex_, sizeof(int), network::DATA);
+    // TODO we got a problem here:
+    // there is no possibility (so far) to synchronise pointers to objects
+  }
+  
 }
Index: /code/branches/network/src/orxonox/objects/weapon/BulletManager.h
===================================================================
--- /code/branches/network/src/orxonox/objects/weapon/BulletManager.h	(revision 926)
+++ /code/branches/network/src/orxonox/objects/weapon/BulletManager.h	(revision 927)
@@ -60,4 +60,5 @@
   protected:
     inline bool create() { return true; }
+    void registerAllVariables();
 
     // Bullet array
