Index: code/branches/network/src/network/Server.cc
===================================================================
--- code/branches/network/src/network/Server.cc	(revision 1747)
+++ code/branches/network/src/network/Server.cc	(revision 1748)
@@ -326,4 +326,9 @@
     w->setClientID(temp->getID());
     assert(w->send());
+    packet::Gamestate *g = new packet::Gamestate();
+    g->setClientID(temp->getID());
+    assert(g->collectData(0));
+    assert(g->compressData());
+    assert(g->send());
     return true;
   }
@@ -353,5 +358,4 @@
     no->setCamera(std::string("cam_") + convertToString(client->getID()));
     no->create();
-    no->setBacksync(true);
     
     return true;
Index: code/branches/network/src/network/Synchronisable.cc
===================================================================
--- code/branches/network/src/network/Synchronisable.cc	(revision 1747)
+++ code/branches/network/src/network/Synchronisable.cc	(revision 1748)
@@ -64,4 +64,5 @@
     datasize=0;
     objectFrequency_=1;
+    objectMode_=0x1; // by default do not send data to servere
     objectID=idCounter++;
     syncList = new std::list<synchronisableVariable *>;
@@ -82,4 +83,5 @@
   }
 
+  
   void Synchronisable::setClient(bool b){
     if(b) // client
@@ -314,7 +316,12 @@
   }
   
+  /**
+   * 
+   * @param id 
+   * @return 
+   */
   bool Synchronisable::isMyTick(unsigned int id){
 //     return true;
-    return id==0 || id%objectFrequency_==objectID%objectFrequency_;
+    return ( id==0 || id%objectFrequency_==objectID%objectFrequency_ ) && ((objectMode_&state_)!=0);
   }
   
@@ -333,11 +340,9 @@
   }
   
-  void Synchronisable::setBacksync(bool sync){
-    backsync_=sync;
-  }
-
-  bool Synchronisable::getBacksync(){
-    return backsync_;
-  }
+  void Synchronisable::setObjectMode(int mode){
+    assert(mode==0x1 || mode==0x2 || mode==0x3);
+    objectMode_=mode;
+  }
+
 
 }
Index: code/branches/network/src/network/Synchronisable.h
===================================================================
--- code/branches/network/src/network/Synchronisable.h	(revision 1747)
+++ code/branches/network/src/network/Synchronisable.h	(revision 1748)
@@ -34,4 +34,5 @@
 #include <list>
 #include "core/OrxonoxClass.h"
+#include "util/XMLIncludes.h"
 #include "NetworkCallback.h"
 
@@ -66,5 +67,5 @@
   class _NetworkExport Synchronisable : virtual public orxonox::OrxonoxClass{
   public:
-
+    
     virtual ~Synchronisable();
     unsigned int objectID;
@@ -76,6 +77,7 @@
     bool updateData(unsigned char*& mem, int mode=0x0);
     bool isMyData(unsigned char* mem);
-    void setBacksync(bool sync);
-    bool getBacksync();
+    void setObjectMode(int mode);
+    void setObjectFrequency(unsigned int freq){ objectFrequency_ = freq; }
+    
     virtual void registerAllVariables()=0;
     virtual bool create();
@@ -93,4 +95,5 @@
     bool backsync_; // if true the variables with mode > 1 will be synchronised to server (client -> server)
     unsigned int objectFrequency_;
+    int objectMode_;
   };
 }
Index: code/branches/network/src/network/packet/Welcome.cc
===================================================================
--- code/branches/network/src/network/packet/Welcome.cc	(revision 1747)
+++ code/branches/network/src/network/packet/Welcome.cc	(revision 1748)
@@ -32,4 +32,5 @@
 #include "Welcome.h"
 #include "network/Host.h"
+#include "network/Synchronisable.h"
 #include "core/CoreIncludes.h"
 #include <assert.h>
@@ -79,4 +80,5 @@
   Host::setShipID(shipID);
   COUT(3) << "Welcome set clientId: " << clientID << " shipID: " << shipID << std::endl;
+  Synchronisable::setClient(true);
   delete this;
   return true;
Index: code/branches/network/src/orxonox/objects/Model.cc
===================================================================
--- code/branches/network/src/orxonox/objects/Model.cc	(revision 1747)
+++ code/branches/network/src/orxonox/objects/Model.cc	(revision 1748)
@@ -45,8 +45,13 @@
     CreateFactory(Model);
 
+    /**
+     * 
+     */
     Model::Model()
     {
         RegisterObject(Model);
         registerAllVariables();
+        if(this->isExactlyA(Class(Model)))
+           setObjectFrequency(1);
     }
 
Index: code/branches/network/src/orxonox/objects/SpaceShip.cc
===================================================================
--- code/branches/network/src/orxonox/objects/SpaceShip.cc	(revision 1747)
+++ code/branches/network/src/orxonox/objects/SpaceShip.cc	(revision 1748)
@@ -166,6 +166,8 @@
         if(network::Host::running())
           COUT(3) << "this id: " << this->objectID << " myShipID: " << network::Host::getShipID() << std::endl;
-        if(network::Host::running() && objectID == network::Host::getShipID())
+        if(network::Host::running() && objectID == network::Host::getShipID()){
+          setObjectMode(0x3);
           myShip_=true;
+        }
         else
           this->setRadarObjectColour(this->getProjectileColour());
@@ -360,5 +362,4 @@
       if(myShip_){
         COUT(3) << "requesting focus for camera" << std::endl;
-        this->setBacksync(true);
         //CameraHandler::getInstance()->requestFocus(cam_);
         if(this->isExactlyA(Class(SpaceShip))){
@@ -466,5 +467,5 @@
             }
 
-            projectile->setBacksync(true);
+            projectile->setObjectMode(0x3);
             this->timeToReload_ = this->reloadTime_;
         }
