Index: code/branches/mergeFS18/data/levels/newnewnewspacerace.oxw
===================================================================
--- code/branches/mergeFS18/data/levels/newnewnewspacerace.oxw	(revision 12028)
+++ code/branches/mergeFS18/data/levels/newnewnewspacerace.oxw	(revision 12029)
@@ -21,5 +21,5 @@
 
   include("templates/spaceshipAssff.oxt")
-  include("templates/pickupRepresentationTemplates.oxt")
+  include("templates/SpaceRaceTemplates.oxt")
 
 ?>
@@ -218,5 +218,5 @@
   </StaticEntity>
 
-<StaticEntity position="10000,-70,200" direction="-1,0,0" yaw=90 pitch=0 roll=-30 collisionType="static">
+<StaticEntity position="11000,-60,200" direction="-1,0,0" yaw=90 pitch=0 roll=-30 collisionType="static">
     <attached>
       <Model scale="20" mesh="Board2.mesh" />
@@ -233,4 +233,7 @@
     
     <!-- distance = how far from the middle point of a check point do i have to fly ? distance variable answers this question   -->
+   
+
+      
 
 
@@ -246,6 +249,6 @@
     </collisionShapes>
     </RaceCheckPoint>
-
-
+            <Model mesh="cube.mesh" scale=2 position="3000,200,100"/>
+            <Model mesh="cube.mesh" scale=2 position="5000,100,500"/>
 
 <RaceCheckPoint name="checkpoint2" yaw=90 pitch=90 position="3000,200,100" direction="0,1,0" roll="0" collisionType="static" scale="1" distance="60" checkpointindex="1" islast="false" nextcheckpoints="2,-1,-1">
@@ -262,5 +265,5 @@
 
 
-<RaceCheckPoint name="checkpoint3" yaw=90 pitch=90 position="5000,100,500" direction="0,1,0" roll="0" collisionType="static" scale="1" distance="60" checkpointindex="2" islast="false" nextcheckpoints="3,-1,-1">
+<RaceCheckPoint name="checkpoint3" yaw=90 pitch=90 position="5000,80,500" direction="0,1,0" roll="0" collisionType="static" scale="1" distance="60" checkpointindex="2" islast="false" nextcheckpoints="3,-1,-1">
         <attached>
       <Model position="0,0,0" scale="70" mesh="Checkpoint_InnerRing.mesh"/>
@@ -288,33 +291,33 @@
 
 
-<RaceCheckPoint name="checkpoint5"  yaw=90 pitch=90 position="10000,-200,200" direction="0,1,0" roll="0" collisionType="static" scale="1" distance="60" checkpointindex="4" islast="false" nextcheckpoints="5,-1,-1">
-        <attached>
-      <Model position="0,0,0" scale="70" mesh="Checkpoint_InnerRing.mesh"/>
-    </attached>
-    <collisionShapes>
-        <BoxCollisionShape position="0,0,70"      halfExtents="70, 10, 10" />
-        <BoxCollisionShape position="0,0,-70"     halfExtents="70, 10, 10" />
-        <BoxCollisionShape position="70,0,0"      halfExtents="10, 10, 70" />
-        <BoxCollisionShape position="-70,0,0"     halfExtents="10, 10, 70" />
-    </collisionShapes>
-    </RaceCheckPoint>
-
-
-
-<RaceCheckPoint name="checkpoint6" yaw=90 pitch=90 position="13000,200,400" direction="0,1,0" roll="0" collisionType="static" scale="1" distance="60" checkpointindex="5" islast="false" nextcheckpoints="6,-1,-1">
-        <attached>
-      <Model position="0,0,0" scale="70" mesh="Checkpoint_InnerRing.mesh"/>
-    </attached>
-    <collisionShapes>
-        <BoxCollisionShape position="0,0,70"      halfExtents="70, 10, 10" />
-        <BoxCollisionShape position="0,0,-70"     halfExtents="70, 10, 10" />
-        <BoxCollisionShape position="70,0,0"      halfExtents="10, 10, 70" />
-        <BoxCollisionShape position="-70,0,0"     halfExtents="10, 10, 70" />
-    </collisionShapes>
-    </RaceCheckPoint>
-
-
-
-<RaceCheckPoint name="checkpoint7" yaw=90 pitch=90 position="15000,0,0" direction="0,1,0" roll="0" collisionType="static" scale="1" distance="60" checkpointindex="6" islast="false" nextcheckpoints="7,-1,-1">
+<RaceCheckPoint name="checkpoint5"  yaw=90 pitch=90 position="11000,-200,200" direction="0,1,0" roll="0" collisionType="static" scale="1" distance="60" checkpointindex="4" islast="false" nextcheckpoints="5,-1,-1">
+        <attached>
+      <Model position="0,0,0" scale="70" mesh="Checkpoint_InnerRing.mesh"/>
+    </attached>
+    <collisionShapes>
+        <BoxCollisionShape position="0,0,70"      halfExtents="70, 10, 10" />
+        <BoxCollisionShape position="0,0,-70"     halfExtents="70, 10, 10" />
+        <BoxCollisionShape position="70,0,0"      halfExtents="10, 10, 70" />
+        <BoxCollisionShape position="-70,0,0"     halfExtents="10, 10, 70" />
+    </collisionShapes>
+    </RaceCheckPoint>
+
+
+
+<RaceCheckPoint name="checkpoint6" yaw=90 pitch=90 position="13000,-70,350" direction="0,1,0" roll="0" collisionType="static" scale="1" distance="60" checkpointindex="5" islast="false" nextcheckpoints="6,-1,-1">
+        <attached>
+      <Model position="0,0,0" scale="70" mesh="Checkpoint_InnerRing.mesh"/>
+    </attached>
+    <collisionShapes>
+        <BoxCollisionShape position="0,0,70"      halfExtents="70, 10, 10" />
+        <BoxCollisionShape position="0,0,-70"     halfExtents="70, 10, 10" />
+        <BoxCollisionShape position="70,0,0"      halfExtents="10, 10, 70" />
+        <BoxCollisionShape position="-70,0,0"     halfExtents="10, 10, 70" />
+    </collisionShapes>
+    </RaceCheckPoint>
+
+
+
+<RaceCheckPoint name="checkpoint7" yaw=90 pitch=90 position="15500,0,0" direction="0,1,0" roll="0" collisionType="static" scale="1" distance="60" checkpointindex="6" islast="false" nextcheckpoints="7,-1,-1">
         <attached>
       <Model position="0,0,0" scale="70" mesh="Checkpoint_InnerRing.mesh"/>
@@ -353,5 +356,4 @@
     </collisionShapes>
     </RaceCheckPoint>
-
 <RaceCheckPoint name="checkpoint10" yaw=90 pitch=90 position="24000,-150,-80" direction="0,1,0" roll="0" collisionType="static" scale="1" distance="60" checkpointindex="9" islast="false" nextcheckpoints="10,-1,-1">
         <attached>
@@ -380,44 +382,44 @@
 
 
-<RaceCheckPoint name="checkpoint12" yaw=90 pitch=90 position="30000,-300,900" direction="0,1,0" roll="0" collisionType="static" scale="1" distance="60" checkpointindex="11" islast="false" nextcheckpoints="12,-1,-1">
-        <attached>
-      <Model position="0,0,0" scale="70" mesh="Checkpoint_InnerRing.mesh"/>
-    </attached>
-    <collisionShapes>
-        <BoxCollisionShape position="0,0,70"      halfExtents="70, 10, 10" />
-        <BoxCollisionShape position="0,0,-70"     halfExtents="70, 10, 10" />
-        <BoxCollisionShape position="70,0,0"      halfExtents="10, 10, 70" />
-        <BoxCollisionShape position="-70,0,0"     halfExtents="10, 10, 70" />
-    </collisionShapes>
-    </RaceCheckPoint>
-
-
-<RaceCheckPoint name="checkpoint13" yaw=90 pitch=90 position="33000,600,60" direction="0,1,0" roll="0" collisionType="static" scale="1" distance="60" checkpointindex="12" islast="false" nextcheckpoints="13,-1,-1">
-        <attached>
-      <Model position="0,0,0" scale="70" mesh="Checkpoint_InnerRing.mesh"/>
-    </attached>
-    <collisionShapes>
-        <BoxCollisionShape position="0,0,70"      halfExtents="70, 10, 10" />
-        <BoxCollisionShape position="0,0,-70"     halfExtents="70, 10, 10" />
-        <BoxCollisionShape position="70,0,0"      halfExtents="10, 10, 70" />
-        <BoxCollisionShape position="-70,0,0"     halfExtents="10, 10, 70" />
-    </collisionShapes>
-    </RaceCheckPoint>
-
-
-
-<RaceCheckPoint name="checkpoint14" yaw=90 pitch=90 position="35000,120,20" direction="0,1,0" roll="0" collisionType="static" scale="1" distance="60" checkpointindex="13" islast="false" nextcheckpoints="14,-1,-1">
-        <attached>
-      <Model position="0,0,0" scale="70" mesh="Checkpoint_InnerRing.mesh"/>
-    </attached>
-    <collisionShapes>
-        <BoxCollisionShape position="0,0,70"      halfExtents="70, 10, 10" />
-        <BoxCollisionShape position="0,0,-70"     halfExtents="70, 10, 10" />
-        <BoxCollisionShape position="70,0,0"      halfExtents="10, 10, 70" />
-        <BoxCollisionShape position="-70,0,0"     halfExtents="10, 10, 70" />
-    </collisionShapes>
-    </RaceCheckPoint>
-
-<RaceCheckPoint name="checkpoint15" yaw=90 pitch=90 position="38000,-200,0" direction="0,1,0" roll="0" collisionType="static" scale="1" distance="60" checkpointindex="14" islast="false" nextcheckpoints="15,-1,-1">
+<RaceCheckPoint name="checkpoint12" yaw=90 pitch=90 position="30000,-250,670" direction="0,1,0" roll="0" collisionType="static" scale="1" distance="60" checkpointindex="11" islast="false" nextcheckpoints="12,-1,-1">
+        <attached>
+      <Model position="0,0,0" scale="70" mesh="Checkpoint_InnerRing.mesh"/>
+    </attached>
+    <collisionShapes>
+        <BoxCollisionShape position="0,0,70"      halfExtents="70, 10, 10" />
+        <BoxCollisionShape position="0,0,-70"     halfExtents="70, 10, 10" />
+        <BoxCollisionShape position="70,0,0"      halfExtents="10, 10, 70" />
+        <BoxCollisionShape position="-70,0,0"     halfExtents="10, 10, 70" />
+    </collisionShapes>
+    </RaceCheckPoint>
+
+
+<RaceCheckPoint name="checkpoint13" yaw=90 pitch=90 position="33000,150,600" direction="0,1,0" roll="0" collisionType="static" scale="1" distance="60" checkpointindex="12" islast="false" nextcheckpoints="13,-1,-1">
+        <attached>
+      <Model position="0,0,0" scale="70" mesh="Checkpoint_InnerRing.mesh"/>
+    </attached>
+    <collisionShapes>
+        <BoxCollisionShape position="0,0,70"      halfExtents="70, 10, 10" />
+        <BoxCollisionShape position="0,0,-70"     halfExtents="70, 10, 10" />
+        <BoxCollisionShape position="70,0,0"      halfExtents="10, 10, 70" />
+        <BoxCollisionShape position="-70,0,0"     halfExtents="10, 10, 70" />
+    </collisionShapes>
+    </RaceCheckPoint>
+
+
+
+<RaceCheckPoint name="checkpoint14" yaw=90 pitch=90 position="35000,500,300" direction="0,1,0" roll="0" collisionType="static" scale="1" distance="60" checkpointindex="13" islast="false" nextcheckpoints="14,-1,-1">
+        <attached>
+      <Model position="0,0,0" scale="70" mesh="Checkpoint_InnerRing.mesh"/>
+    </attached>
+    <collisionShapes>
+        <BoxCollisionShape position="0,0,70"      halfExtents="70, 10, 10" />
+        <BoxCollisionShape position="0,0,-70"     halfExtents="70, 10, 10" />
+        <BoxCollisionShape position="70,0,0"      halfExtents="10, 10, 70" />
+        <BoxCollisionShape position="-70,0,0"     halfExtents="10, 10, 70" />
+    </collisionShapes>
+    </RaceCheckPoint>
+
+<RaceCheckPoint name="checkpoint15" yaw=90 pitch=90 position="38000,150,150" direction="0,1,0" roll="0" collisionType="static" scale="1" distance="60" checkpointindex="14" islast="false" nextcheckpoints="15,-1,-1">
         <attached>
       <Model position="0,0,0" scale="70" mesh="Checkpoint_InnerRing.mesh"/>
@@ -477,5 +479,5 @@
         <BoxCollisionShape position="-70,0,0"     halfExtents="10, 10, 70" />
     </collisionShapes>
-    </RaceCheckPoint>
+    </RaceCheckPoint> 
 
 <!-- the last checkpoint is bigger and red -->
@@ -490,21 +492,58 @@
         <BoxCollisionShape position="-90,0,0"     halfExtents="13, 13, 90" />
     </collisionShapes>
-    </RaceCheckPoint>
+    </RaceCheckPoint> 
 
 
 </checkpoints>
 </SpaceRaceManager>
-
+   <Arrow>
+      <attached>
+       <Model scale="5" mesh="botpointer4.mesh"/>
+      </attached>
+      <controller>
+        <ArrowController accuracy = 10000>
+          <gpspoints>
+            <Model mesh="cube.mesh" scale=0 position="1000,30,0"/>
+            <Model mesh="cube.mesh" scale=0 position="3000,200,100"/>
+            <Model mesh="cube.mesh" scale=0 position="5000,80,500"/>
+            <Model mesh="cube.mesh" scale=0 position="8000,-150,150"/>
+            <Model mesh="cube.mesh" scale=0 position="11000,-200,200"/>
+            <Model mesh="cube.mesh" scale=0 position="13000,-70,350"/>
+            <Model mesh="cube.mesh" scale=0 position="15500,0,0"/>
+            <Model mesh="cube.mesh" scale=0 position="18000,150,-150"/>
+            <Model mesh="cube.mesh" scale=0 position="21000,200,-120"/>
+            <Model mesh="cube.mesh" scale=0 position="24000,-150,-80"/>
+            <Model mesh="cube.mesh" scale=0 position="27000,-200,0"/>
+            <Model mesh="cube.mesh" scale=0 position="30000,-250,670"/>
+            <Model mesh="cube.mesh" scale=0 position="33000,150,600"/>
+            <Model mesh="cube.mesh" scale=0 position="35000,500,300"/>
+            <Model mesh="cube.mesh" scale=0 position="38000,150,150"/>
+            <Model mesh="cube.mesh" scale=0 position="41000,30,-50"/>
+            <Model mesh="cube.mesh" scale=0 position="44000,90,0"/>
+            <Model mesh="cube.mesh" scale=0 position="47000,120,30"/>
+            <Model mesh="cube.mesh" scale=0 position="50000,0,100"/>
+            <Model mesh="cube.mesh" scale=0 position="53000,0,0"/>
+
+            
+
+
+           
+
+                </gpspoints>
+        </ArrowController>
+      </controller>
+    </Arrow>
 
 
 <!-- ---------------------PickUps---------------------- -->
 
-    <PickupSpawner pickup=smallshrinkpickup position="10000,-200,200" triggerDistance="60" respawnTime="10" maxSpawnedItems="10" scale="8"/>
-    <PickupSpawner pickup=mediumboostpickup position="24000,-150,-80" triggerDistance="60" respawnTime="10" maxSpawnedItems="8" scale="10"/>
-    <PickupSpawner pickup=smallboostpickup position="38000,-200,0" triggerDistance="60" respawnTime="10" maxSpawnedItems="8" scale="10"/>
-
-    <PickupSpawner pickup=smallspeedpickup position="7000,-200,100" triggerDistance="60" respawnTime="10" maxSpawnedItems="8" scale="10"/>
-    <PickupSpawner pickup=mediumshinkpickup position="16000,150,50" triggerDistance="60" respawnTime="10" maxSpawnedItems="8" scale="10"/>
-    <PickupSpawner pickup=triplehealthspeedinvisibilitypickup position="41000,-300,100" triggerDistance="60" respawnTime="10" maxSpawnedItems="8" scale="10"/>
+    
+    <PickupSpawner pickup=mediumboostpickup position="24000,-165,-80" triggerDistance="60" respawnTime="10" maxSpawnedItems="8" scale="10"/>
+    
+    <PickupSpawner pickup=smallboostpickup position="42000,70,-30" triggerDistance="60" respawnTime="10" maxSpawnedItems="8" scale="10"/>
+    <PickupSpawner pickup=smallspeedpickup position="32000,0,650" triggerDistance="60" respawnTime="10" maxSpawnedItems="8" scale="10"/>
+
+    <PickupSpawner pickup=smallspeedpickup position="9000,-185,66" triggerDistance="60" respawnTime="10" maxSpawnedItems="8" scale="10"/>
+ 
   </Scene>
 </Level>
Index: code/branches/mergeFS18/data/levels/presentationHS12.oxw
===================================================================
--- code/branches/mergeFS18/data/levels/presentationHS12.oxw	(revision 12028)
+++ code/branches/mergeFS18/data/levels/presentationHS12.oxw	(revision 12029)
@@ -61,5 +61,5 @@
 
     <Light type=directional position="0,0,0" direction="0.253, 0.593, -0.765" diffuse="1.0, 0.9, 0.9, 1.0" specular="1.0, 0.9, 0.9, 1.0"/>
-    <SpawnPoint team=0 position="-900,0,0" lookat="0,0,0" spawnclass=SpaceShip pawndesign=spaceshipescort />
+    <SpawnPoint team=0 position="-900,0,0" lookat="0,0,0" primaryThrust=1000 spawnclass=SpaceShip pawndesign=spaceshipescort />
     <!--SpawnPoint team=0 position="-200,0,0" lookat="0,0,0" spawnclass=SpaceShip pawndesign=bigship /-->
     <!--SpawnPoint team=0 position="-900,0,0" lookat="0,0,0" spawnclass=SpaceShip pawndesign=spaceshipcollateraldamage /-->
@@ -328,8 +328,8 @@
         roll                = "180"
         name                = "collateralDamage"
-        radarname           = "Collateral Damage" >
-        <!--
+        radarname           = "Collateral Damage" 
         pitch               = "90"
-        yaw                 = "0"-->
+        yaw                 = "100"
+        primaryThrust       = "2000">
       <attached>
         <DockingTarget name="spaceShip" />
Index: code/branches/mergeFS18/data/levels/templates/SpaceRaceTemplates.oxt
===================================================================
--- code/branches/mergeFS18/data/levels/templates/SpaceRaceTemplates.oxt	(revision 12029)
+++ code/branches/mergeFS18/data/levels/templates/SpaceRaceTemplates.oxt	(revision 12029)
@@ -0,0 +1,885 @@
+<!-- Boost pickups: -->
+
+<Template name=smallboostpickupRepresentation>
+    <PickupRepresentation>
+        <spawner-representation>
+            <StaticEntity>
+                <attached>
+                    <Billboard position="0,0,0" colour="0.0,1.0,0.8" material="Sphere2" scale=0.1>
+                        <attached>
+                            <Billboard position="0,0,0" colour="0.0,1.0,0.8" material="Flash" scale=0.3 />
+                        </attached>
+                    </Billboard>
+                </attached>
+            </StaticEntity>
+        </spawner-representation>
+    </PickupRepresentation>
+</Template>
+
+<Template name=smallboostpickup baseclass=BoostPickup>
+  <BoostPickup
+    representation = "smallboostpickup"
+    boostrefill = 0.5
+    activationType = "immediate"
+    durationType = "once"
+  />
+</Template>
+
+<Template name=mediumboostpickupRepresentation>
+    <PickupRepresentation>
+        <spawner-representation>
+            <StaticEntity>
+                <attached>
+                    <Billboard position="0,0,0" colour="0.0,1.0,0.8" material="Sphere2" scale=0.1>
+                        <attached>
+                            <Billboard position="0,0,0" colour="0.0,1.0,0.8" material="Flash" scale=0.5 />
+                        </attached>
+                    </Billboard>
+                </attached>
+            </StaticEntity>
+        </spawner-representation>
+    </PickupRepresentation>
+</Template>
+
+<Template name=mediumboostpickup baseclass=BoostPickup>
+  <BoostPickup
+    representation = "mediumboostpickup"
+    boostrefill = 0.75
+    activationType = "immediate"
+    durationType = "once"
+  />
+</Template>
+
+<Template name=hugeboostpickupRepresentation>
+    <PickupRepresentation>
+        <spawner-representation>
+            <StaticEntity>
+                <attached>
+                    <Billboard position="0,0,0" colour="0.0,1.0,0.8" material="Sphere2" scale=0.1>
+                        <attached>
+                            <Billboard position="0,0,0" colour="0.0,1.0,0.8" material="Flash" scale=0.7 />
+                        </attached>
+                    </Billboard>
+                </attached>
+            </StaticEntity>
+        </spawner-representation>
+    </PickupRepresentation>
+</Template>
+
+<Template name=hugeboostpickup baseclass=BoostPickup>
+  <BoostPickup
+    representation = "hugeboostpickup"
+    boostrefill = 1.0
+    activationType = "immediate"
+    durationType = "once"
+  />
+</Template>
+
+<!-- Shield pickups: -->
+
+<Template name=smallshieldpickupRepresentation>
+    <PickupRepresentation>
+        <spawner-representation>
+            <StaticEntity>
+                <attached>
+                    <Billboard position="0,0,0" colour="1,1,1" material="Sphere2" scale=0.1>
+                        <attached>
+                            <Billboard position="0,0,0" colour="1,1,1" material="Shield" scale=0.3 />
+                        </attached>
+                    </Billboard>
+                </attached>
+            </StaticEntity>
+        </spawner-representation>
+    </PickupRepresentation>
+</Template>
+
+<Template name=smallshieldpickup baseclass=ShieldPickup>
+  <ShieldPickup
+    representation = "smallshieldpickup"
+    duration = 10
+    shieldabsorption = 0.7
+    shieldhealth = 300
+    activationType = "immediate"
+    durationType = "continuous"
+  />
+</Template>
+
+<Template name=mediumshieldpickupRepresentation>
+    <PickupRepresentation>
+        <spawner-representation>
+            <StaticEntity>
+                <attached>
+                    <Billboard position="0,0,0" colour="1,1,1" material="Sphere2" scale=0.1>
+                        <attached>
+                            <Billboard position="0,0,0" colour="1,1,1" material="Shield" scale=0.5 />
+                        </attached>
+                    </Billboard>
+                </attached>
+            </StaticEntity>
+        </spawner-representation>
+    </PickupRepresentation>
+</Template>
+
+<Template name=mediumshieldpickup baseclass=ShieldPickup>
+  <ShieldPickup
+    representation = "mediumshieldpickup"
+    duration = 30
+    shieldabsorption = 0.8
+    shieldhealth = 500
+    activationType = "immediate"
+    durationType = "continuous"
+  />
+</Template>
+
+
+<Template name=hugeshieldpickupRepresentation>
+    <PickupRepresentation>
+        <spawner-representation>
+            <StaticEntity>
+                <attached>
+                    <Billboard position="0,0,0" colour="1,1,1" material="Sphere2" scale=0.1>
+                        <attached>
+                            <Billboard position="0,0,0" colour="1,1,1" material="Shield" scale=0.7 />
+                        </attached>
+                    </Billboard>
+                </attached>
+            </StaticEntity>
+        </spawner-representation>
+    </PickupRepresentation>
+</Template>
+
+<Template name=hugeshieldpickup baseclass=ShieldPickup>
+  <ShieldPickup
+    representation = "hugeshieldpickup"
+    duration = 60
+    shieldabsorption = 0.95
+    shieldhealth = 700
+    activationType = "immediate"
+    durationType = "continuous"
+  />
+</Template>
+
+<!-- Health pickups: -->
+
+<Template name=smallhealthpickupRepresentation>
+    <PickupRepresentation>
+        <spawner-representation>
+            <StaticEntity>
+                <attached>
+                    <Billboard position="0,0,0" colour="0.50,0.90,0.25" material="Sphere2" scale=0.1>
+                        <attached>
+                            <Billboard position="0,0,0" colour="0.36,0.81,0.10" material="Cross" scale=0.3 />
+                        </attached>
+                    </Billboard>
+                </attached>
+            </StaticEntity>
+        </spawner-representation>
+    </PickupRepresentation>
+</Template>
+
+<Template name=smallhealthpickup baseclass=HealthPickup>
+  <HealthPickup
+    representation = "smallhealthpickup"
+    health = 10
+    healthType = "limited"
+    activationType = "immediate"
+    durationType = "once"
+  />
+</Template>
+
+<Template name=mediumhealthpickupRepresentation>
+    <PickupRepresentation>
+        <spawner-representation>
+            <StaticEntity>
+                <attached>
+                    <Billboard position="0,0,0" colour="0.50,0.90,0.25" material="Sphere2" scale=0.1>
+                        <attached>
+                            <Billboard position="0,0,0" colour="0.36,0.81,0.10" material="Cross" scale=0.5 />
+                        </attached>
+                    </Billboard>
+                </attached>
+            </StaticEntity>
+        </spawner-representation>
+    </PickupRepresentation>
+</Template>
+
+<Template name=mediumhealthpickup baseclass=HealthPickup>
+  <HealthPickup
+    representation = "mediumhealthpickup"
+    health = 50
+    healthType = "limited"
+    activationType = "immediate"
+    durationType = "once"
+  />
+</Template>
+
+<Template name=hugehealthpickupRepresentation>
+    <PickupRepresentation>
+        <spawner-representation>
+            <StaticEntity>
+                <attached>
+                    <Billboard position="0,0,0" colour="0.50,0.90,0.25" material="Sphere2" scale=0.1>
+                        <attached>
+                            <Billboard position="0,0,0" colour="0.36,0.81,0.10" material="Cross" scale=0.7 />
+                        </attached>
+                    </Billboard>
+                </attached>
+            </StaticEntity>
+        </spawner-representation>
+    </PickupRepresentation>
+</Template>
+
+<Template name=hugehealthpickup baseclass=HealthPickup>
+  <HealthPickup
+    representation = "hugehealthpickup"
+    health = 100
+    healthType = "limited"
+    activationType = "immediate"
+    durationType = "once"
+  />
+</Template>
+
+<Template name=crazyhealthpickupRepresentation>
+    <PickupRepresentation>
+        <spawner-representation>
+            <StaticEntity>
+                <attached>
+                    <Billboard position="0,0,0" colour="0.50,0.90,0.25" material="Sphere2" scale=0.1>
+                        <attached>
+                            <Billboard position="0,0,0" colour="0.36,0.81,0.10" material="Cross" scale=1.2 />
+                        </attached>
+                    </Billboard>
+                </attached>
+            </StaticEntity>
+        </spawner-representation>
+    </PickupRepresentation>
+</Template>
+
+<Template name=crazyhealthpickup baseclass=HealthPickup>
+  <HealthPickup
+    representation = "crazyhealthpickup"
+    health = 1000
+    healthType = "permanent"
+    activationType = "immediate"
+    durationType = "once"
+  />
+</Template>
+
+<!-- Munition pickups: -->
+
+<Template name=smallmunitionpickupRepresentation>
+    <PickupRepresentation>
+        <spawner-representation>
+            <StaticEntity>
+                <attached>
+                    <Billboard position="0,0,0" colour="0.59,0.30,0.16" material="Sphere2" scale=0.1>
+                        <attached>
+                            <Billboard position="0,0,0" colour="0.47,0.24,0.13" material="Munition" scale=0.3 />
+                        </attached>
+                    </Billboard>
+                </attached>
+            </StaticEntity>
+        </spawner-representation>
+    </PickupRepresentation>
+</Template>
+
+<Template name=smallmunitionpickup baseclass=MunitionPickup>
+  <MunitionPickup
+    representation = "smallmunitionpickup"
+    activationType = "immediate"
+    durationType = "once"
+  >
+    <munitioncontainers>
+        <MunitionContainer munitiontype="LaserMunition" munitionamount=16 magazinesamount=0 />
+        <MunitionContainer munitiontype="FusionMunition" munitionamount=8 magazinesamount=0 />
+        <MunitionContainer munitiontype="LightningMunition" munitionamount=8 magazinesamount=0 />
+    </munitioncontainers>
+  </MunitionPickup>
+</Template>
+
+<Template name=mediummunitionpickupRepresentation>
+    <PickupRepresentation>
+        <spawner-representation>
+            <StaticEntity>
+                <attached>
+                    <Billboard position="0,0,0" colour="0.59,0.30,0.16" material="Sphere2" scale=0.1>
+                        <attached>
+                            <Billboard position="0,0,0" colour="0.47,0.24,0.13" material="Munition" scale=0.5 />
+                        </attached>
+                    </Billboard>
+                </attached>
+            </StaticEntity>
+        </spawner-representation>
+    </PickupRepresentation>
+</Template>
+
+<Template name=mediummunitionpickup baseclass=MunitionPickup>
+  <MunitionPickup
+    representation = "mediummunitionpickup"
+    activationType = "immediate"
+    durationType = "once"
+  >
+    <munitioncontainers>
+        <MunitionContainer munitiontype="LaserMunition" munitionamount=32 magazinesamount=0 />
+        <MunitionContainer munitiontype="FusionMunition" munitionamount=16 magazinesamount=0 />
+        <MunitionContainer munitiontype="LightningMunition" munitionamount=16 magazinesamount=0 />        
+        <MunitionContainer munitiontype="SplitMunition" munitionamount=8 magazinesamount=0 />
+        <MunitionContainer munitiontype="RocketMunition" munitionamount=0 magazinesamount=2 />
+        <MunitionContainer munitiontype="MineMunition" munitionamount=0 magazinesamount=2 />
+    </munitioncontainers>
+  </MunitionPickup>
+</Template>
+
+<Template name=hugemunitionpickupRepresentation>
+    <PickupRepresentation>
+        <spawner-representation>
+            <StaticEntity>
+                <attached>
+                    <Billboard position="0,0,0" colour="0.59,0.30,0.16" material="Sphere2" scale=0.1>
+                        <attached>
+                            <Billboard position="0,0,0" colour="0.47,0.24,0.13" material="Munition" scale=0.7 />
+                        </attached>
+                    </Billboard>
+                </attached>
+            </StaticEntity>
+        </spawner-representation>
+    </PickupRepresentation>
+</Template>
+
+<Template name=hugemunitionpickup baseclass=MunitionPickup>
+  <MunitionPickup
+    representation = "hugemunitionpickup"
+    activationType = "immediate"
+    durationType = "once"
+  >
+    <munitioncontainers>
+        <MunitionContainer munitiontype="LaserMunition" munitionamount=64 magazinesamount=0 />
+        <MunitionContainer munitiontype="FusionMunition" munitionamount=32 magazinesamount=0 />
+        <MunitionContainer munitiontype="LightningMunition" munitionamount=32 magazinesamount=0 />        
+        <MunitionContainer munitiontype="SplitMunition" munitionamount=16 magazinesamount=0 />
+        <MunitionContainer munitiontype="RocketMunition" munitionamount=0 magazinesamount=10 />
+        <MunitionContainer munitiontype="IceMunition" munitionamount=0 magazinesamount=10 />
+        <MunitionContainer munitiontype="FlameMunition" munitionamount=0 magazinesamount=10 />
+        <MunitionContainer munitiontype="GravityBombMunition" munitionamount=0 magazinesamount=10 />
+        <MunitionContainer munitiontype="MineMunition" munitionamount=0 magazinesamount=10 />
+    </munitioncontainers>
+  </MunitionPickup>
+</Template>
+
+<!-- Meta pickups: -->
+
+<Template name=usepickupRepresentation>
+    <PickupRepresentation>
+        <spawner-representation>
+            <StaticEntity>
+                <attached>
+                    <Billboard position="0,0,0" colour="0.6,0.⁰,0.8" material="Sphere2" scale=0.1>
+                        <attached>
+                            <Billboard position="0,0,0" colour="0.6,0.⁰,0.8" material="ArrowUp" scale=0.65 />
+                        </attached>
+                    </Billboard>
+                </attached>
+            </StaticEntity>
+        </spawner-representation>
+    </PickupRepresentation>
+</Template>
+
+<Template name=usemetapickup baseclass=MetaPickup>
+  <MetaPickup representation="use" metaType="use" />
+</Template>
+
+<Template name=droppickupRepresentation>
+    <PickupRepresentation>
+        <spawner-representation>
+            <StaticEntity>
+                <attached>
+                    <Billboard position="0,0,0" colour="0.6,0.⁰,0.8" material="Sphere2" scale=0.1>
+                        <attached>
+                            <Billboard position="0,0,0" colour="0.6,0.⁰,0.8" material="ArrowDown" scale=0.65 />
+                        </attached>
+                    </Billboard>
+                </attached>
+            </StaticEntity>
+        </spawner-representation>
+    </PickupRepresentation>
+</Template>
+
+<Template name=dropmetapickup baseclass=MetaPickup>
+  <MetaPickup representation="drop" metaType="drop" />
+</Template>
+
+<Template name=destroypickupRepresentation>
+    <PickupRepresentation>
+        <spawner-representation>
+            <StaticEntity>
+                <attached>
+                    <Billboard position="0,0,0" colour="0.6,0.⁰,0.8" material="Sphere2" scale=0.1>
+                        <attached>
+                            <Billboard position="0,0,0" colour="0.6,0.⁰,0.8" material="Splash" scale=0.65 />
+                        </attached>
+                    </Billboard>
+                </attached>
+            </StaticEntity>
+        </spawner-representation>
+    </PickupRepresentation>
+</Template>
+
+<Template name=destroymetapickup baseclass=MetaPickup>
+  <MetaPickup representation="destroy" metaType="destroy" />
+</Template>
+
+<Template name=destroycarrierpickupRepresentation>
+    <PickupRepresentation>
+        <spawner-representation>
+            <StaticEntity>
+                <attached>
+                    <Billboard position="0,0,0" colour="0.6,0.⁰,0.8" material="Sphere2" scale=0.1>
+                        <attached>
+                            <Billboard position="0,0,0" colour="0.6,0.⁰,0.8" material="Asterisk" scale=0.65 />
+                        </attached>
+                    </Billboard>
+                </attached>
+            </StaticEntity>
+        </spawner-representation>
+    </PickupRepresentation>
+</Template>
+
+<Template name=destroycarriermetapickup baseclass=MetaPickup>
+  <MetaPickup representation="destroycarrier" metaType="destroyCarrier" />
+</Template>
+
+<!-- DamageBoost pickups -->
+
+<Template name=smalldamageboostpickupRepresentation>
+    <PickupRepresentation>
+        <spawner-representation>
+            <StaticEntity>
+                <attached>
+                    <Billboard position="0,0,0" colour="0.95,0.10,0.05" material="Sphere2" scale=0.1 >
+                        <attached>
+                            <Billboard position="0,0,0" colour="0.70,0.10,0.10" material="Damage" scale=0.3 />
+                        </attached>
+                    </Billboard>
+                </attached>
+            </StaticEntity>
+        </spawner-representation>
+    </PickupRepresentation>
+</Template>
+
+<Template name=smalldamageboostpickup baseclass=DamageBoostPickup>
+  <DamageBoostPickup
+    representation = "smalldamageboostpickup"
+    duration = 10.0
+    damageMultiplier = 2.0
+    activationType = "immediate"
+    durationType = "continuous"
+  />
+</Template>
+
+<Template name=mediumdamageboostpickupRepresentation>
+    <PickupRepresentation>
+        <spawner-representation>
+            <StaticEntity>
+                <attached>
+                    <Billboard position="0,0,0" colour="0.95,0.10,0.05" material="Sphere2" scale=0.1 >
+                        <attached>
+                            <Billboard position="0,0,0" colour="0.70,0.10,0.10" material="Damage" scale=0.5 />
+                        </attached>
+                    </Billboard>
+                </attached>
+            </StaticEntity>
+        </spawner-representation>
+    </PickupRepresentation>
+</Template>
+
+<Template name=mediumdamageboostpickup baseclass=DamageBoostPickup>
+  <DamageBoostPickup
+    representation = "mediumdamageboostpickup"
+    duration = 10.0
+    damageMultiplier = 5.0
+    activationType = "immediate"
+    durationType = "continuous"
+  />
+</Template>
+
+<Template name=hugedamageboostpickupRepresentation>
+    <PickupRepresentation>
+        <spawner-representation>
+            <StaticEntity>
+                <attached>
+                    <Billboard position="0,0,0" colour="0.95,0.10,0.05" material="Sphere2" scale=0.1 >
+                        <attached>
+                            <Billboard position="0,0,0" colour="0.70,0.10,0.10" material="Damage" scale=0.7 />                            
+                        </attached>
+                    </Billboard>
+                </attached>
+            </StaticEntity>
+        </spawner-representation>
+    </PickupRepresentation>
+</Template>
+
+<Template name=hugedamageboostpickup baseclass=DamageBoostPickup>
+  <DamageBoostPickup
+    representation = "hugedamageboostpickup"
+    duration = 10.0
+    damageMultiplier = 7.0
+    activationType = "immediate"
+    durationType = "continuous"
+  />
+</Template>
+
+
+<!-- Speed pickups -->
+
+<Template name=smallspeedpickupRepresentation>
+    <PickupRepresentation>
+        <spawner-representation>
+            <StaticEntity>
+                <attached>
+                    <Billboard position="0,0,0" colour="0.99,0.96,0.52" material="Sphere2" scale=0.1>
+                        <attached>
+                            <Billboard position="0,0,0" colour="0.98,0.94,0.22" material="3arrowsup" scale=0.3 />
+                        </attached>
+                    </Billboard>
+                </attached>
+            </StaticEntity>
+        </spawner-representation>
+    </PickupRepresentation>
+</Template>
+
+<Template name=smallspeedpickup baseclass=SpeedPickup>
+  <SpeedPickup
+    representation = "smallspeedpickup"
+    duration = 3.0
+    speedAdd = 0.0
+    SpeedMultiply = 1.8
+    activationType = "immediate"
+    durationType = "continuous"
+  />
+</Template>
+
+<Template name=mediumspeedpickupRepresentation>
+    <PickupRepresentation>
+        <spawner-representation>
+            <StaticEntity>
+                <attached>
+                    <Billboard position="0,0,0" colour="0.99,0.96,0.52" material="Sphere2" scale=0.1>
+                        <attached>
+                            <Billboard position="0,0,0" colour="0.98,0.94,0.22" material="3arrowsup" scale=0.5 />
+                        </attached>
+                    </Billboard>
+                </attached>
+            </StaticEntity>
+        </spawner-representation>
+    </PickupRepresentation>
+</Template>
+
+<Template name=mediumspeedpickup baseclass=SpeedPickup>
+  <SpeedPickup
+    representation = "mediumspeedpickup"
+    duration = 5.0
+    speedAdd = 0.0
+    SpeedMultiply = 0.1
+    activationType = "immediate"
+    durationType = "continuous"
+  />
+</Template>
+
+<Template name=hugespeedpickupRepresentation>
+    <PickupRepresentation>
+        <spawner-representation>
+            <StaticEntity>
+                <attached>
+                    <Billboard position="0,0,0" colour="0.99,0.96,0.52" material="Sphere2" scale=0.1>
+                        <attached>
+                            <Billboard position="0,0,0" colour="0.98,0.94,0.22" material="3arrowsup" scale=0.7 />
+                        </attached>
+                    </Billboard>
+                </attached>
+            </StaticEntity>
+        </spawner-representation>
+    </PickupRepresentation>
+</Template>
+
+<Template name=hugespeedpickup baseclass=SpeedPickup>
+  <SpeedPickup
+    representation = "hugespeedpickup"
+    duration = 2.0
+    speedAdd = 0.0
+    SpeedMultiply = 3.0
+    activationType = "immediate"
+    durationType = "continuous"
+  />
+</Template>
+
+<Template name=smalljumppickupRepresentation>
+    <PickupRepresentation>
+        <spawner-representation>
+            <StaticEntity>
+                <attached>
+                    <Billboard position="0,0,0" colour="0.99,0.96,0.52" material="Sphere2" scale=0.1>
+                        <attached>
+                            <Billboard position="0,0,0" colour="1,0,0" material="3arrowsup" scale=0.3 />
+                        </attached>
+                    </Billboard>
+                </attached>
+            </StaticEntity>
+        </spawner-representation>
+    </PickupRepresentation>
+</Template>
+
+<Template name=smalljumppickup baseclass=SpeedPickup>
+  <SpeedPickup
+    representation = "smalljumppickup"
+    duration = 0.7
+    speedAdd = 50.0
+    SpeedMultiply = 1.0
+    activationType = "immediate"
+    durationType = "continuous"
+  />
+</Template>
+
+<!-- Invisible pickups -->
+
+<Template name=smallinvisiblepickupRepresentation>
+    <PickupRepresentation>
+        <spawner-representation>
+            <StaticEntity>
+                <attached>
+                    <Billboard position="0,0,0" colour="0.22,0.32,0.86" material="Sphere2" scale=0.1>
+                        <attached>
+                            <Billboard position="0,0,0" colour="0.06,0.14,0.63" material="Eye" scale=0.5 />
+                        </attached>
+                    </Billboard>
+                </attached>
+            </StaticEntity>
+        </spawner-representation>
+    </PickupRepresentation>
+</Template>
+
+<Template name=smallinvisiblepickup baseclass=InvisiblePickup>
+  <InvisiblePickup 
+    representation = "smallinvisiblepickup"
+    duration = 5.0
+    activaionType = "immediate"
+    durationType = "continuous"
+  />
+</Template>
+
+<Template name=mediuminvisiblepickupRepresentation>
+    <PickupRepresentation>
+        <spawner-representation>
+            <StaticEntity>
+                <attached>
+                    <Billboard position="0,0,0" colour="0.22,0.32,0.86" material="Sphere2" scale=0.1>
+                        <attached>
+                            <Billboard position="0,0,0" colour="0.06,0.14,0.63" material="Eye" scale=0.7 />
+                        </attached>
+                    </Billboard>
+                </attached>
+            </StaticEntity>
+        </spawner-representation>
+    </PickupRepresentation>
+</Template>
+
+<Template name=mediuminvisiblepickup baseclass=InvisiblePickup>
+  <InvisiblePickup 
+    representation = "mediuminvisiblepickup"
+    duration = 10.0
+    activaionType = "immediate"
+    durationType = "continuous"
+  />
+</Template>
+
+<Template name=hugeinvisiblepickupRepresentation>
+    <PickupRepresentation>
+        <spawner-representation>
+            <StaticEntity>
+                <attached>
+                    <Billboard position="0,0,0" colour="0.22,0.32,0.86" material="Sphere2" scale=0.1>
+                        <attached>
+                            <Billboard position="0,0,0" colour="0.06,0.14,0.63" material="Eye" scale=0.9 />
+                        </attached>
+                    </Billboard>
+                </attached>
+            </StaticEntity>
+        </spawner-representation>
+    </PickupRepresentation>
+</Template>
+
+<Template name=hugeinvisiblepickup baseclass=InvisiblePickup>
+  <InvisiblePickup 
+    representation = "hugeinvisiblepickup"
+    duration = 20.0
+    activaionType = "immediate"
+    durationType = "continuous"
+  />
+</Template>
+
+<Template name=smallshrinkpickupRepresentation>
+    <PickupRepresentation>
+        <spawner-representation>
+            <StaticEntity>
+                <attached>
+                    <Billboard position="0,0,0" colour="1.0,0.55,1.0" material="Sphere2" scale=0.1>
+                        <attached>
+                            <Billboard position="0,0,0" colour="1.0,0.55,1.0" material="Shrink" scale=0.35 />
+                        </attached>
+                    </Billboard>
+                </attached>
+            </StaticEntity>
+        </spawner-representation>
+    </PickupRepresentation>
+</Template>
+
+<Template name=smallshrinkpickup baseclass=ShrinkPickup>
+  <ShrinkPickup 
+    representation = "smallshrinkpickup"
+    duration = 3.0
+    shrinkFactor = 2.5
+    activaionType = "immediate"
+    durationType = "continuous"
+  />
+</Template>
+
+<Template name=mediumshrinkpickupRepresentation>
+    <PickupRepresentation>
+        <spawner-representation>
+            <StaticEntity>
+                <attached>
+                    <Billboard position="0,0,0" colour="1.0,0.55,1.0" material="Sphere2" scale=0.1>
+                        <attached>
+                            <Billboard position="0,0,0" colour="1.0,0.55,1.0" material="Shrink" scale=0.55 />
+                        </attached>
+                    </Billboard>
+                </attached>
+            </StaticEntity>
+        </spawner-representation>
+    </PickupRepresentation>
+</Template>
+
+<Template name=mediumshrinkpickup baseclass=ShrinkPickup>
+  <ShrinkPickup 
+    representation = "mediumshrinkpickup"
+    duration = 30.0
+    shrinkFactor = 5.0
+    activaionType = "immediate"
+    durationType = "continuous"
+  />
+</Template>
+
+<Template name=hugeshrinkpickupRepresentation>
+    <PickupRepresentation>
+        <spawner-representation>
+            <StaticEntity>
+                <attached>
+                    <Billboard position="0,0,0" colour="1.0,0.55,1.0" material="Sphere2" scale=0.1>
+                        <attached>
+                            <Billboard position="0,0,0" colour="1.0,0.55,1.0" material="Shrink" scale=0.75 />
+                        </attached>
+                    </Billboard>
+                </attached>
+            </StaticEntity>
+        </spawner-representation>
+    </PickupRepresentation>
+</Template>
+
+<Template name=hugeshrinkpickup baseclass=ShrinkPickup>
+  <ShrinkPickup 
+    representation = "hugeshrinkpickup"
+    duration = 60.0
+    shrinkFactor = 10.0
+    activaionType = "immediate"
+    durationType = "continuous"
+  />
+</Template>
+
+<!-- Pickup Collection pickups -->
+
+<Template name=triplehealthspeedinvisibilitypickupRepresentation>
+    <PickupRepresentation>
+        <spawner-representation>
+            <StaticEntity>
+                <attached>
+                    <Billboard position="0,0,0" colour="0.95,0.85,0.27" material="Sphere2" scale=0.1>
+                        <attached>
+                            <Billboard position="0,20,0" colour="0.36,0.81,0.10" material="Cross" scale=0.25 />
+                            <Billboard position="-20,-10,0" colour="0.98,0.94,0.22" material="3arrowsup" scale=0.25 />
+                            <Billboard position="20,-10,0" colour="0.06,0.14,0.63" material="Eye" scale=0.35 />
+                        </attached>
+                    </Billboard>
+                </attached>
+            </StaticEntity>
+        </spawner-representation>
+    </PickupRepresentation>
+</Template>
+
+<Template name=triplehealthspeedinvisibilitypickup baseclass=PickupCollection>
+    <PickupCollection
+        representation = "triplehealthspeedinvisibilitypickup"
+    >
+        <pickupables>
+            <HealthPickup template=mediumhealthpickup />
+            <SpeedPickup template=mediumspeedpickup />
+            <InvisiblePickup template=mediuminvisiblepickup />
+        </pickupables>
+    </PickupCollection>
+</Template>
+
+<!-- Drone Pickup -->
+
+<Template name=droneTemplate>
+    <Drone name="Drone"  mass= "50" linearDamping = "0.7" angularDamping = "0.99999" maxDistanceToOwner_=150 minDistanceToOwner_=75 maxShootingRange_=1000 primaryThrust_=250 auxilaryThrust_=250 rotationThrust_=50>
+        <attached>
+            <Model scale="1" mesh="drone.mesh"/>
+        </attached>
+        <collisionShapes>
+            <SphereCollisionShape position="0,0,0" radius=5 />
+        </collisionShapes>
+        <weaponslots>
+            <WeaponSlot position="0,0,0" />
+        </weaponslots>
+        <weaponsets>
+            <WeaponSet firemode=0 />
+        </weaponsets>
+        <weaponpacks>
+            <WeaponPack>
+                <links>
+                    <DefaultWeaponmodeLink firemode=0 weaponmode=0 />
+                </links>
+                <Weapon>
+                    <attached>
+                        <Model mesh="hs-w01.mesh" roll="195" position="0,1,0" scale=2 />
+                        <Model mesh="hs-w01s.mesh" roll="195" position="0.1,0.5,0" scale=2 />
+                    </attached>
+                    <HsW01 mode=0 munitionpershot=0 delay=0.125 damage=1.5708 material="Flares/point_lensflare" muzzleoffset=" 0.7, 1.5,-4" />
+                    <HsW01 mode=0 munitionpershot=0 delay=0     damage=1.5708 material="Flares/point_lensflare" muzzleoffset="-0.9, 1.1,-4" />
+                </Weapon>
+            </WeaponPack>
+        </weaponpacks>
+        <munition>
+            <LaserMunition initialmagazines=2 maxmagazines=2 munitionpermagazine=10 replenishamount=1 replenishinterval=0.5/>
+        </munition>
+    </Drone>
+</Template>
+
+<Template name=dronepickupRepresentation>
+    <PickupRepresentation>
+        <spawner-representation>
+            <StaticEntity>
+                <attached>
+                    <Billboard position="0,0,0" colour="0.96,0.35,0.02" material="Sphere2" scale=0.1>
+                        <attached>
+                            <Model scale="5" mesh="drone.mesh"/>
+                        </attached>
+                    </Billboard>
+                </attached>
+            </StaticEntity>
+        </spawner-representation>
+    </PickupRepresentation>
+</Template>
+
+<Template name=dronepickup baseclass=DronePickup>
+    <DronePickup representation=dronepickup droneTemplate=droneTemplate />
+</Template>
+
Index: code/branches/mergeFS18/data/levels/templates/fastship.oxt
===================================================================
--- code/branches/mergeFS18/data/levels/templates/fastship.oxt	(revision 12028)
+++ code/branches/mergeFS18/data/levels/templates/fastship.oxt	(revision 12029)
@@ -21,11 +21,11 @@
    rotationThrust    = 50
 
-   lift = 0;
-   stallSpeed = 220;
+   lift = 0
+   stallSpeed = 220
 
 
-   boostPower            = 8
+   boostPower            = 7.5  
    boostPowerRate        = 3
-   boostRate             = 8
+   boostRate             = 7.5
    boostCooldownDuration = 6
 
Index: code/branches/mergeFS18/data/levels/templates/spaceshipCollateralDamage.oxt
===================================================================
--- code/branches/mergeFS18/data/levels/templates/spaceshipCollateralDamage.oxt	(revision 12028)
+++ code/branches/mergeFS18/data/levels/templates/spaceshipCollateralDamage.oxt	(revision 12029)
@@ -19,5 +19,5 @@
    shieldrechargewaittime = 1
 
-   primaryThrust     = 100
+   primaryThrust     = 1000
    auxilaryThrust    = 30
    rotationThrust    = 50
@@ -29,5 +29,5 @@
    boostPowerRate        = 1
    boostRate             = 5
-   boostCooldownDuration = 10
+   boostCooldownDuration = 1
 
    shakeFrequency = 15
@@ -36,5 +36,5 @@
    collisionType     = "dynamic"
    mass              = 100
-   linearDamping     = 0.7
+   linearDamping     = 0.5
    angularDamping    = 0.9999999
   >
Index: code/branches/mergeFS18/src/libraries/tools/Timer.h
===================================================================
--- code/branches/mergeFS18/src/libraries/tools/Timer.h	(revision 12028)
+++ code/branches/mergeFS18/src/libraries/tools/Timer.h	(revision 12029)
@@ -115,4 +115,5 @@
             void run();
 
+
             /// Re-starts the timer: The executor will be called after @a interval seconds.
             inline void startTimer()
Index: code/branches/mergeFS18/src/modules/gametypes/SpaceRace.cc
===================================================================
--- code/branches/mergeFS18/src/modules/gametypes/SpaceRace.cc	(revision 12028)
+++ code/branches/mergeFS18/src/modules/gametypes/SpaceRace.cc	(revision 12029)
@@ -69,5 +69,7 @@
 #include "SpaceRaceBot.h"
 #include "items/Engine.h"
-#include <vector>
+#include <vector> 
+#include <iostream>
+#include <string>
 
 
@@ -83,6 +85,6 @@
         this->cantMove_ = false;
         this->bTimeIsUp_ = false;
-
         this->numberOfBots_ = 5; // quick fix: don't allow default-bots to enter the race 
+        this->bLost =false;
         //we fixed the number of bots in order to have the same starting position all the time ! 
     }
@@ -101,5 +103,5 @@
         startpos[4] =-40;
         startpos[5] =100;
-        
+         
         startpos[6] =100;
         startpos[7] =-40;
@@ -117,4 +119,5 @@
 
         this->spawnPlayersIfRequested();
+        this->countdown_mode=true;
         this->cantMove_ = true;
         //players are unable to move while countdown is running
@@ -122,4 +125,5 @@
         {
             engine->setActive(false);
+            engine->addSpeedMultiply(1.7);
         }
 
@@ -138,28 +142,62 @@
         }
 
-        std::string message("Use headphones to hear the countdown!");
-        this->getGametypeInfo()->sendAnnounceMessage(message);
-        ChatManager::message(message);
-
-        //after 11 seconds , countdownFinished function is called to activate bots` engines
-        Timer* countdownTimer = new Timer();
-        countdownTimer->setTimer(11, false, createExecutor(createFunctor(&SpaceRace::countdownFinished, this)));
-    }
-
-
-
+        std::string message("Use headphones to hear the countdown! Press W for forward acceleration, press W+space for boost!");
+
+        this->getGametypeInfo()->sendAnnounceMessage(message);
+        ChatManager::message(message);
+        
+
+
+        
+    }
+
+    // Counter in the beginning of the game
+    void SpaceRace::tick(float dt) {
+        SUPER(SpaceRace, tick, dt);
+        
+        //countdown_mode is set true,when spawnIfRequested is called
+        if (countdown_mode) {
+            //10 seconds will be counted
+            this->time_passed -= dt;
+
+            //orxout() << "time: " <<(int) time_passed << "s" << endl;
+
+            std::string message=std::to_string((int)time_passed);
+            this->getGametypeInfo()->sendAnnounceMessage(message);
+            if (time_passed <= 1) {
+
+                this->countdownFinished();
+                this->countdown_mode = false;
+            }
+        }
+
+    }
+        
+    void SpaceRace::startmessage(int second){
+
+        std::string message=std::to_string(second);
+        this->getGametypeInfo()->sendAnnounceMessage(message);
+        ChatManager::message(message);
+        
+        
+
+    }
 
     void SpaceRace::end()
     {
+        
         this->clock_.capture();
         int s = this->clock_.getSeconds();
         int ms = static_cast<int>(this->clock_.getMilliseconds() - 1000*s);
         std::string message;
-
         if (this->bTimeIsUp_)
         {
-            message = multi_cast<std::string>(s) + "." + multi_cast<std::string>(ms) + " seconds !!\n"
-                        + "You lose!";
-        }
+            message =  "TIME IS UP! YOU LOOSE!";
+        }
+       else if(this->bLost){
+            message = "YOU LOOSE!";
+
+       }        
+       
         else
         {
@@ -167,6 +205,8 @@
                         + "." + multi_cast<std::string>(ms) + " seconds.";
         }
+        
         if (!this->hasEnded())
         {
+
             this->getGametypeInfo()->sendAnnounceMessage(message);
             ChatManager::message(message);
@@ -183,10 +223,15 @@
         int ms = this->clock_.getMilliseconds() % 1000;
 
-       
-    
-        const std::string& message = player->getName() + " reached the checkpoint " + multi_cast<std::string>(checkpoint->getCheckpointIndex() + 1) 
+
+        std::string message(player->getName() + " reached the checkpoint " + multi_cast<std::string>(checkpoint->getCheckpointIndex() + 1) 
+        + " after " + multi_cast<std::string>(s) + "." + multi_cast<std::string>(ms) + " seconds.");
+
+        this->getGametypeInfo()->sendAnnounceMessage(message);
+        ChatManager::message(message);
+      /*  const std::string& message = player->getName() + " reached the checkpoint " + multi_cast<std::string>(checkpoint->getCheckpointIndex() + 1) 
         + "after " + multi_cast<std::string>(s) + "." + multi_cast<std::string>(ms) + " seconds.";
         this->getGametypeInfo()->sendAnnounceMessage(message);
-        ChatManager::message(message);
+        ChatManager::message(message);*/
+        
 
     }
@@ -195,11 +240,16 @@
     {
 
-        std::string message("RACE STARTED ");
-        this->getGametypeInfo()->sendAnnounceMessage(message);
-        ChatManager::message(message);
+        std::string message("RACE STARTED");
+        this->getGametypeInfo()->sendAnnounceMessage(message);
+        ChatManager::message(message);
+        
 
 
         for (Engine* engine : ObjectList<Engine>())
             engine->setActive(true);
+
+        std::string message2("Press W for forward acceleration, press W+space for boost!");
+        this->getGametypeInfo()->sendAnnounceMessage(message2);
+        ChatManager::message(message2);
     }
 
Index: code/branches/mergeFS18/src/modules/gametypes/SpaceRace.h
===================================================================
--- code/branches/mergeFS18/src/modules/gametypes/SpaceRace.h	(revision 12028)
+++ code/branches/mergeFS18/src/modules/gametypes/SpaceRace.h	(revision 12029)
@@ -42,4 +42,5 @@
 #include "SpaceRaceManager.h"
 
+
 namespace orxonox
 {
@@ -54,5 +55,5 @@
 
         public:
-            SpaceRace(Context* context);
+            SpaceRace(Context* context);//, SpaceRace* parentRace);
             virtual ~SpaceRace() {}
 
@@ -60,5 +61,8 @@
             virtual void end() override;
             virtual void countdownFinished();
+            
             virtual void addBots(unsigned int amount) override; //<! overwrite function in order to bypass the addbots command.
+            virtual void tick(float dt) override;
+            virtual void startmessage(int second);
 
 
@@ -79,13 +83,18 @@
             inline Clock& getClock()
                 { return this->clock_; }
+            //inline void setParentRace(SpaceRace* parentRace) { this->parentRace = parentRace; }
 
             virtual bool allowPawnHit(Pawn* victim, Pawn* originator) override;
             virtual bool allowPawnDamage(Pawn* victim, Pawn* originator) override;
             virtual bool allowPawnDeath(Pawn* victim, Pawn* originator) override;
+            bool countdown_mode = false;
+            float time_passed = 11.0f;
+            
+            bool bLost=false;
 
         private:
             bool cantMove_;                                            ///< Helper variable, used to stall the engines before the race starts.
             std::map<PlayerInfo*, RaceCheckPoint*> checkpointReached_; ///< The number of the last check point reached by each player.
-            bool bTimeIsUp_;                                           ///< True if one of the check points is reached too late.
+            bool bTimeIsUp_;    ///< True if one of the check points is reached too late.
 
             Clock clock_; ///< The clock starts running at the beginning of the game. It is used to give the time at each check point, the give the time at the end of the game, and to stop the game if a check point is reached too late.
Index: code/branches/mergeFS18/src/modules/gametypes/SpaceRaceController.cc
===================================================================
--- code/branches/mergeFS18/src/modules/gametypes/SpaceRaceController.cc	(revision 12028)
+++ code/branches/mergeFS18/src/modules/gametypes/SpaceRaceController.cc	(revision 12029)
@@ -20,5 +20,5 @@
  *   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
  *
- *  Created on: Oct 8, 2012
+ *  Created on: Oct 8, 2012findCheck
  *      Author: purgham
  */
@@ -30,4 +30,5 @@
 #include "collisionshapes/CollisionShape.h"
 #include "BulletCollision/CollisionShapes/btCollisionShape.h"
+#include "SpaceRace.h"
 
 
@@ -38,4 +39,5 @@
     const int ADJUSTDISTANCE = 500;
     const int MINDISTANCE = 5;
+
     /*
      * Idea: Find static Point (checkpoints the spaceship has to reach)
@@ -45,4 +47,6 @@
     {
         RegisterObject(SpaceRaceController);
+        //this->parentRace = nullptr;
+
         std::vector<RaceCheckPoint*> checkpoints;
 
@@ -63,5 +67,5 @@
 
         int i;
-        for (i = -2; findCheckpoint(i) != nullptr; i--)
+        for (i = -2; findCheckpoint(i) != nullptr; i--)     // WIESO?
         {
             continue;
@@ -103,5 +107,13 @@
         return returnVec;
     }
-
+    void SpaceRaceController::endtheGame() const {
+        SpaceRace* gametype = orxonox_cast<SpaceRace*>(this->getGametype());
+        assert(gametype)
+;        if (!gametype)
+        return;
+        gametype->bLost=true;
+        gametype->end();
+
+    }
     /*
      * called from 'findStaticCheckpoints'
@@ -122,13 +134,16 @@
             for (int checkpointIndex : currentCheckpoint->getNextCheckpoints())
             {
+                if (findCheckpoint(checkpointIndex) == nullptr){
+                    orxout(internal_warning) << "Problematic Point: " << checkpointIndex << endl;
+                }
                 if (currentCheckpoint == findCheckpoint(checkpointIndex))
                 {
-                    //orxout() << currentCheckpoint->getCheckpointIndex()<<endl;
+                    orxout() << currentCheckpoint->getCheckpointIndex()<<endl;
                     continue;
                 }
-                if (findCheckpoint(checkpointIndex) == nullptr)
-                    orxout(internal_warning) << "Problematic Point: " << checkpointIndex << endl;
+             
                 else
                     numberOfWays += rekSimulationCheckpointsReached(findCheckpoint(checkpointIndex), zaehler);
+
             }
             zaehler[currentCheckpoint] += numberOfWays;
@@ -162,4 +177,5 @@
         {
             RaceCheckPoint* nextRaceCheckPoint = findCheckpoint(checkpointIndex);
+
             float distance = recCalculateDistance(nextRaceCheckPoint, this->getControllableEntity()->getPosition());
 
@@ -168,8 +184,12 @@
                 minDistance = distance;
                 minNextRaceCheckPoint = nextRaceCheckPoint;
-            }
-
-        }
-
+
+            }
+            //There is a bug. If the user passes through the 19th checkpoint with the opponents, the game will end immediately
+            if(nextRaceCheckPoint->isLast())
+                endtheGame(); 
+
+        }
+        if(minNextRaceCheckPoint == nullptr) { orxout()<<"nullptr found @192 SpaceRaceController" << endl;}
         return minNextRaceCheckPoint;
     }
@@ -208,4 +228,6 @@
 
         {
+            if(nextRaceCheckpoint_ == nullptr) orxout()<<"nullptr found @218 SpaceRaceController" << endl;
+
             return nextRaceCheckpoint_;
         }
@@ -213,4 +235,6 @@
 
         {
+            if(nextRaceCheckpoint_ == nullptr) orxout()<<"nullptr found @223 SpaceRaceController" << endl;
+
             return nextRaceCheckpoint_;
         }
@@ -221,11 +245,28 @@
     }
 
+
+
+
+    
+
     RaceCheckPoint* SpaceRaceController::findCheckpoint(int index) const
     {
-        for (RaceCheckPoint* checkpoint : this->checkpoints_)
-            if (checkpoint->getCheckpointIndex() == index)
-                return checkpoint;
-        return nullptr;
-    }
+        RaceCheckPoint* res = nullptr;
+        for (RaceCheckPoint* checkpoint : this->checkpoints_){
+            //conclusion: index=20 is not 
+            if (checkpoint->getCheckpointIndex() == index){
+                //if(checkpoint == nullptr) orxout()<<"returned nullptr @line 234 SpaceRaceController"<<endl;
+                //orxout()<< "index of the checkpoint "<< index <<endl;
+                res = checkpoint;
+                return res;
+            }
+        }
+    /* if(index>2 )   
+        this->endtheGame();*/
+
+        return res;
+    }
+    
+
 
     /*RaceCheckPoint* SpaceRaceController::addVirtualCheckPoint( RaceCheckPoint* previousCheckpoint, int indexFollowingCheckPoint , const Vector3& virtualCheckPointPosition )
@@ -282,4 +323,6 @@
     void SpaceRaceController::tick(float dt)
     {
+        
+
         if (this->getControllableEntity() == nullptr || this->getControllableEntity()->getPlayer() == nullptr )
         {
@@ -312,4 +355,6 @@
         {
             nextRaceCheckpoint_ = adjustNextPoint();
+            if(nextRaceCheckpoint_ == nullptr) orxout()<<"nullptr found @327 SpaceRaceController" << endl;
+
             lastPositionSpaceship = this->getControllableEntity()->getPosition();
         }
@@ -325,11 +370,31 @@
         }
         //orxout(user_status) << "dt= " << dt << ";  distance= " << (lastPositionSpaceship-this->getControllableEntity()->getPosition()).length() <<std::endl;
-        lastPositionSpaceship = this->getControllableEntity()->getPosition();
-       
+        /*lastPositionSpaceship = this->getControllableEntity()->getPosition();
+        
+        SpaceRace obj=new SpaceRace();
+        obj.setParentRace(parentRace);
+        this->parentRace=obj.parentRace;*/
+        
         this->boostControl();
+
+        /*if(nextRaceCheckpoint_ == nullptr){
+            this->parentRace->bLost=true;
+            this->parentRace->end();
+        }*/
+        // if(nextRaceCheckpoint_ == nullptr ){
+        //    // if( nextRaceCheckpoint_->getCheckpointIndex()==19) 
+        //     orxout()<<"nullptr @351 Line"<<endl;
+        // }
+
+        
         this->moveToPosition(nextRaceCheckpoint_->getPosition());
+
         this->boostControl();
     }
 
+
+    /*void SpaceRaceController::setParentRace(parentRace){
+        this->parentRace=parentRace;
+    }*/
     // True if a coordinate of 'pointToPoint' is smaller then the corresponding coordinate of 'groesse'
     bool SpaceRaceController::vergleicheQuader(const Vector3& pointToPoint, const Vector3& groesse)
Index: code/branches/mergeFS18/src/modules/gametypes/SpaceRaceController.h
===================================================================
--- code/branches/mergeFS18/src/modules/gametypes/SpaceRaceController.h	(revision 12028)
+++ code/branches/mergeFS18/src/modules/gametypes/SpaceRaceController.h	(revision 12029)
@@ -47,8 +47,9 @@
     {
         public:
-            SpaceRaceController(Context* context);
+            SpaceRaceController(Context* context);//, SpaceRace* parentRace);
             virtual ~SpaceRaceController();
             virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode) override;
             virtual void tick(float dt) override;
+            
 
         private:
@@ -57,4 +58,6 @@
             RaceCheckPoint* nextPointFind(RaceCheckPoint*);
             RaceCheckPoint* adjustNextPoint();
+            void endtheGame() const;
+
             std::vector<RaceCheckPoint*> findStaticCheckpoints(RaceCheckPoint*, const std::vector<RaceCheckPoint*>&);
             std::vector<RaceCheckPoint*> staticCheckpoints();
@@ -74,4 +77,5 @@
             Vector3 lastPositionSpaceship;
             int virtualCheckPointIndex;
+            //SpaceRace* parentRace;
     };
 
Index: code/branches/mergeFS18/src/modules/gametypes/SpaceRaceManager.cc
===================================================================
--- code/branches/mergeFS18/src/modules/gametypes/SpaceRaceManager.cc	(revision 12028)
+++ code/branches/mergeFS18/src/modules/gametypes/SpaceRaceManager.cc	(revision 12029)
@@ -113,7 +113,13 @@
     RaceCheckPoint* SpaceRaceManager::findCheckpoint(int index) const
     {
-        for (RaceCheckPoint* checkpoint : this->checkpoints_)
+        /*for (RaceCheckPoint* checkpoint : this->checkpoints_)
         if (checkpoint->getCheckpointIndex() == index)
         return checkpoint;
+        return nullptr;*/
+        for (RaceCheckPoint* checkpoint : this->checkpoints_){
+            if (checkpoint->getCheckpointIndex() == index)
+                return checkpoint;
+        }
+        orxout()<<"returned checkpoint @line 123 SpaceRaceManager"<<endl;
         return nullptr;
     }
Index: code/branches/mergeFS18/src/orxonox/items/Engine.cc
===================================================================
--- code/branches/mergeFS18/src/orxonox/items/Engine.cc	(revision 12028)
+++ code/branches/mergeFS18/src/orxonox/items/Engine.cc	(revision 12029)
@@ -54,5 +54,5 @@
         this->relativePosition_ = Vector3::ZERO;
 
-        this->boostFactor_ = 1.5f;
+        this->boostFactor_ = 1.2f;
 
         this->maxSpeedFront_ = 0.0f;
@@ -61,5 +61,5 @@
         this->maxSpeedUpDown_ = 0.0f;
 
-        this->accelerationFront_ = 0.0f;
+        this->accelerationFront_ = 1.0f;
         this->accelerationBrake_ = 0.0f;
         this->accelerationBack_ = 0.0f;
@@ -68,5 +68,5 @@
 
         this->speedAdd_ = 0.0f;
-        this->speedMultiply_ = 1.0f;
+        this->speedMultiply_ = 1.0f;                       //////////////////////////////////////////
 
         this->setConfigValues();
Index: code/branches/mergeFS18/src/orxonox/worldentities/pawns/SpaceShip.cc
===================================================================
--- code/branches/mergeFS18/src/orxonox/worldentities/pawns/SpaceShip.cc	(revision 12028)
+++ code/branches/mergeFS18/src/orxonox/worldentities/pawns/SpaceShip.cc	(revision 12029)
@@ -65,5 +65,5 @@
         this->boostPowerRate_ = 1.0f;
         this->boostRate_ = 5.0f;
-        this->boostCooldownDuration_ = 5.0f;
+        this->boostCooldownDuration_ = 10.0f;
 
         this->shakeFrequency_ = 15.0f;
Index: code/branches/mergeFS18/src/orxonox/worldentities/pawns/SpaceShip.h
===================================================================
--- code/branches/mergeFS18/src/orxonox/worldentities/pawns/SpaceShip.h	(revision 12028)
+++ code/branches/mergeFS18/src/orxonox/worldentities/pawns/SpaceShip.h	(revision 12029)
@@ -103,5 +103,5 @@
             */
             virtual void moveFrontBack(const Vector2& value)
-                { this->steering_.z -= value.x; }
+                { this->steering_.z -= (0.6)*value.x; }
             /**
             @brief Move right or left.
@@ -109,5 +109,5 @@
             */
             virtual void moveRightLeft(const Vector2& value)
-                { this->steering_.x += value.x; }
+                { this->steering_.x += (0.6)*value.x; }
             /**
             @brief Move up or down.
@@ -115,5 +115,5 @@
             */
             virtual void moveUpDown(const Vector2& value)
-                { this->steering_.y += value.x; }
+                { this->steering_.y += (0.6)*value.x; }
 
             inline void moveFrontBack(float value)
