Index: branches/scriptimprovements/src/lib/script_engine/script.cc
===================================================================
--- branches/scriptimprovements/src/lib/script_engine/script.cc	(revision 10619)
+++ branches/scriptimprovements/src/lib/script_engine/script.cc	(revision 10620)
@@ -406,8 +406,7 @@
    bool success = false;
 
-   //this->registerClass(std::string("Vector"));
     this->registerClass("SpaceTrigger");
     this->registerClass("TickTrigger");
-  //  this->registerClass("AttractorMine");
+    this->registerClass("TimeTrigger");
 
    return success;
Index: branches/scriptimprovements/src/world_entities/WorldEntities.am
===================================================================
--- branches/scriptimprovements/src/world_entities/WorldEntities.am	(revision 10619)
+++ branches/scriptimprovements/src/world_entities/WorldEntities.am	(revision 10620)
@@ -104,4 +104,5 @@
                 world_entities/script_triggers/space_trigger.cc \
 		world_entities/script_triggers/tick_trigger.cc \
+		world_entities/script_triggers/time_trigger.cc \
                 \
                 \
@@ -238,4 +239,5 @@
                 script_triggers/space_trigger.h \
 		script_triggers/tick_trigger.h \
+		script_triggers/time_trigger.h \
                 \
                 \
Index: branches/scriptimprovements/src/world_entities/script_triggers/space_trigger.cc
===================================================================
--- branches/scriptimprovements/src/world_entities/script_triggers/space_trigger.cc	(revision 10619)
+++ branches/scriptimprovements/src/world_entities/script_triggers/space_trigger.cc	(revision 10620)
@@ -49,5 +49,4 @@
 {
   this->registerObject(this, SpaceTrigger::_objectList);
-  //this->toList(OM_COMMON);
 
   radius = 10;
Index: branches/scriptimprovements/src/world_entities/script_triggers/tick_trigger.cc
===================================================================
--- branches/scriptimprovements/src/world_entities/script_triggers/tick_trigger.cc	(revision 10619)
+++ branches/scriptimprovements/src/world_entities/script_triggers/tick_trigger.cc	(revision 10620)
@@ -15,4 +15,5 @@
 
 #include "util/loading/factory.h"
+#include "script_class.h"
 #include "tick_trigger.h"
 #include "debug.h"
@@ -43,5 +44,4 @@
 {
   this->registerObject(this, TickTrigger::_objectList);
-  //this->toList(OM_COMMON);
 
   if(root != NULL)
Index: branches/scriptimprovements/src/world_entities/script_triggers/tick_trigger.h
===================================================================
--- branches/scriptimprovements/src/world_entities/script_triggers/tick_trigger.h	(revision 10619)
+++ branches/scriptimprovements/src/world_entities/script_triggers/tick_trigger.h	(revision 10620)
@@ -1,4 +1,4 @@
 /*!
- * @file space_trigger.h
+ * @file tick_trigger.h
  *  always triggeres a script
  */
@@ -10,5 +10,4 @@
 
 #include "script.h"
-#include "script_class.h"
 #include "script_trigger.h"
 
Index: branches/scriptimprovements/src/world_entities/script_triggers/time_trigger.cc
===================================================================
--- branches/scriptimprovements/src/world_entities/script_triggers/time_trigger.cc	(revision 10619)
+++ branches/scriptimprovements/src/world_entities/script_triggers/time_trigger.cc	(revision 10620)
@@ -0,0 +1,96 @@
+/*
+   orxonox - the future of 3D-vertical-scrollers
+
+   Copyright (C) 2004 orx
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 2, or (at your option)
+   any later version.
+
+### File Specific:
+   main-programmer: Silvan Nellen
+   co-programmer: ...
+*/
+
+#include "util/loading/factory.h"
+#include "time_trigger.h"
+#include "debug.h"
+#include "script_class.h"
+
+ObjectListDefinition(TimeTrigger);
+CREATE_FACTORY(TimeTrigger);
+
+CREATE_SCRIPTABLE_CLASS(TimeTrigger,
+             // Coordinates
+                        addMethod("setAbsCoor", Executor3<PNode, lua_State*,float,float,float>(&PNode::setAbsCoor))
+                            ->addMethod("getAbsCoorX", Executor0ret<PNode, lua_State*, float>(&PNode::getAbsCoorX))
+                            ->addMethod("getAbsCoorY", Executor0ret<PNode, lua_State*, float>(&PNode::getAbsCoorY))
+                            ->addMethod("getAbsCoorZ", Executor0ret<PNode, lua_State*, float>(&PNode::getAbsCoorZ))
+             //Properties
+                            ->addMethod("setName", Executor1<BaseObject, lua_State*, const std::string&>(&BaseObject::setName))
+                            ->addMethod("setScript", Executor1<ScriptTrigger, lua_State*, const std::string&>(&ScriptTrigger::setScript))
+                            ->addMethod("setFunction", Executor1<ScriptTrigger, lua_State*, const std::string&>(&ScriptTrigger::setFunction))
+                            ->addMethod("setDebugDraw", Executor1<ScriptTrigger, lua_State*, bool>(&ScriptTrigger::setDebugDraw))
+                            ->addMethod("start", Executor0<TimeTrigger, lua_State*>(&TimeTrigger::start))
+                            ->addMethod("stop", Executor0<TimeTrigger, lua_State*>(&TimeTrigger::stop))
+                            ->addMethod("reset", Executor0<TimeTrigger, lua_State*>(&TimeTrigger::reset))
+                            ->addMethod("setDelay", Executor1<TimeTrigger, lua_State*, float>(&TimeTrigger::setDelay))
+                           
+                       );
+
+
+/**
+ * Constructs a new TimeTrigger.
+ * @param root the xml element to load the parameters from.
+ *
+ */
+TimeTrigger::TimeTrigger(const TiXmlElement* root)
+{
+  this->registerObject(this, TimeTrigger::_objectList);
+  
+  this->delay = 1;
+  this->currentTime = delay;
+  this->isStopped = true;
+
+  if(root != NULL)
+  {
+    loadParams(root);
+
+    if(addToScript && scriptIsOk)
+    {
+      script->addObject( "TimeTrigger", this->getName());
+    }
+
+  }
+
+}
+
+/**
+ * Deletes the TimeTrigger.
+ *
+ */
+TimeTrigger::~TimeTrigger()
+{
+
+}
+
+
+void TimeTrigger::tick(float timestep)
+{
+  if( scriptFinished ) return;
+  
+  if( !isStopped )
+  {
+    currentTime -= timestep;
+    
+    if(currentTime < 0)
+    {
+      this->executeAction(timestep);
+      this->stop();
+    }
+  
+  }
+
+      
+}
Index: branches/scriptimprovements/src/world_entities/script_triggers/time_trigger.h
===================================================================
--- branches/scriptimprovements/src/world_entities/script_triggers/time_trigger.h	(revision 10619)
+++ branches/scriptimprovements/src/world_entities/script_triggers/time_trigger.h	(revision 10620)
@@ -0,0 +1,37 @@
+/*!
+ * @file time_trigger.h
+ *  triggers a script after a given time
+ */
+
+#ifndef _TIME_TRIGGER_H
+#define _TIME_TRIGGER_H
+
+#include <string>
+
+#include "script.h"
+#include "script_trigger.h"
+
+class TimeTrigger : public ScriptTrigger
+{
+  ObjectListDeclaration(TimeTrigger);
+  
+  public:
+    TimeTrigger(const TiXmlElement* root = NULL);
+    ~TimeTrigger();
+    
+    void setDelay(float newDelay){this->currentTime = this->delay = newDelay;}
+    void start(){ this->isStopped = false; }
+    void stop(){ this->isStopped = true; }
+    void reset(){ this->currentTime = delay; }
+
+    /// DO WORK
+    virtual void tick(float timestep);
+  
+  private:
+    float delay;
+    float currentTime;
+    bool  isStopped;
+
+};
+
+#endif
