Index: branches/single_player_map/src/lib/script_engine/script_manager.h
===================================================================
--- branches/single_player_map/src/lib/script_engine/script_manager.h	(revision 8865)
+++ branches/single_player_map/src/lib/script_engine/script_manager.h	(revision 8869)
@@ -1,4 +1,4 @@
 /*!
- * @file scrip_manager.h
+ * @file script_manager.h
  *  manages the scripts
  */
Index: branches/single_player_map/src/world_entities/creatures/fps_player.cc
===================================================================
--- branches/single_player_map/src/world_entities/creatures/fps_player.cc	(revision 8865)
+++ branches/single_player_map/src/world_entities/creatures/fps_player.cc	(revision 8869)
@@ -35,4 +35,12 @@
 
 CREATE_FACTORY(FPSPlayer, CL_FPS_PLAYER);
+
+#include "script_class.h"
+CREATE_SCRIPTABLE_CLASS(FPSPlayer, CL_FPS_PLAYER,
+                        addMethod("setAbsCoor", ExecutorLua3<PNode,float,float,float>(&PNode::setAbsCoor))
+                            ->addMethod("getAbsCoorX", ExecutorLua0ret<PNode, float>(&PNode::getAbsCoorX))
+                            ->addMethod("getAbsCoorY", ExecutorLua0ret<PNode, float>(&PNode::getAbsCoorY))
+                            ->addMethod("getAbsCoorZ", ExecutorLua0ret<PNode, float>(&PNode::getAbsCoorZ))
+                       );
 
 
Index: branches/single_player_map/src/world_entities/npcs/generic_npc.cc
===================================================================
--- branches/single_player_map/src/world_entities/npcs/generic_npc.cc	(revision 8865)
+++ branches/single_player_map/src/world_entities/npcs/generic_npc.cc	(revision 8869)
@@ -40,10 +40,18 @@
 #include "script_class.h"
 CREATE_SCRIPTABLE_CLASS(GenericNPC, CL_GENERIC_NPC,
-                        //addMethod("walkTo", ExecutorLua7ret<GenericNPC,float, float, float, float, float, float, float, float>(&GenericNPC::walkTo))
+                       // Move
                         addMethod("walkTo", ExecutorLua3ret<GenericNPC,float,float,float,float>(&GenericNPC::walkTo))
                         ->addMethod("setTime", ExecutorLua1<GenericNPC,float>(&GenericNPC::setTime))
                         ->addMethod("turnTo", ExecutorLua4ret<GenericNPC,bool,float,float,float,float>(&GenericNPC::turnTo))
+                       // Display
+                        ->addMethod("hide", ExecutorLua0<WorldEntity>(&WorldEntity::hide))
+                        ->addMethod("unhide", ExecutorLua0<WorldEntity>(&WorldEntity::unhide))
+                       // Coordinates
+                        ->addMethod("getAbsCoorX", ExecutorLua0ret<PNode, float>(&PNode::getAbsCoorX))
+                        ->addMethod("getAbsCoorY", ExecutorLua0ret<PNode, float>(&PNode::getAbsCoorY))
+                        ->addMethod("getAbsCoorZ", ExecutorLua0ret<PNode, float>(&PNode::getAbsCoorZ))
                         ->addMethod("setAbsCoor", ExecutorLua3<PNode,float,float,float>(&PNode::setAbsCoor))
                         ->addMethod("setAbsDir", ExecutorLua4<PNode,float,float,float,float>(&PNode::setAbsDir))
+                            
                        );
 
@@ -412,6 +420,4 @@
   printf("Turning: %f, %f, %f, %f \n",qu,qx,qy,qz);
   // check if this is the current goal
-  this->destDir.debug();
-  destDir.debug();
   if( this->destDir != destDir)
   {
Index: branches/single_player_map/src/world_entities/script_trigger.cc
===================================================================
--- branches/single_player_map/src/world_entities/script_trigger.cc	(revision 8865)
+++ branches/single_player_map/src/world_entities/script_trigger.cc	(revision 8869)
@@ -24,7 +24,7 @@
 CREATE_SCRIPTABLE_CLASS(ScriptTrigger, CL_SCRIPT_TRIGGER,
                             addMethod("setAbsCoor", ExecutorLua3<PNode,float,float,float>(&PNode::setAbsCoor))
-                                ->addMethod("getAbsCoorX", ExecutorLua0ret<PNode, float>(&PNode::getAbsCoorX))
-                                ->addMethod("getAbsCoorY", ExecutorLua0ret<PNode, float>(&PNode::getAbsCoorY))
-                                ->addMethod("getAbsCoorZ", ExecutorLua0ret<PNode, float>(&PNode::getAbsCoorZ))
+                            ->addMethod("getAbsCoorX", ExecutorLua0ret<PNode, float>(&PNode::getAbsCoorX))
+                            ->addMethod("getAbsCoorY", ExecutorLua0ret<PNode, float>(&PNode::getAbsCoorY))
+                            ->addMethod("getAbsCoorZ", ExecutorLua0ret<PNode, float>(&PNode::getAbsCoorZ))
                        );
 
@@ -41,5 +41,5 @@
 
   returnCount = 1;
-  actionFinished = false;
+  scriptFinished = false;
   doDebugDraw = false;
   invert = false;
@@ -102,7 +102,4 @@
         .describe("The name of the parent as it is in the *.oxw file")
         .defaultValues("");
-    LoadParam(root, "callonce", this, ScriptTrigger, setCallOnce)
-        .describe("True if the script shoul only be called once")
-        .defaultValues("");
     LoadParam(root, "invert", this, ScriptTrigger, setInvert)
         .describe("")
@@ -112,5 +109,5 @@
         .defaultValues("");
     LoadParam(root, "debugdraw", this, ScriptTrigger, setDebugDraw)
-        .describe("True if the script should only be called once")
+        .describe("")
         .defaultValues("");
     LoadParam(root, "addtoscript", this, ScriptTrigger, setAddToScript)
@@ -159,5 +156,5 @@
 void ScriptTrigger::tick(float timestep)
 {
-  if(actionFinished) return;
+  if(scriptFinished) return;
 
   if(triggerLasts && scriptCalled)
@@ -169,28 +166,12 @@
   if( !invert && this->distance(target) < radius)
  {
-  if(!callOnce)
-   {
     executeAction(timestep);
     scriptCalled = true;
-   }
-  else if(callOnce && !scriptCalled)
-  {
-   executeAction(timestep);
-   scriptCalled = true;
-  }
   
  }
  else if( invert && this->distance(target) > radius)
  {
-   if(!callOnce)
-   {
-     executeAction(timestep);
-   }
-   else if(callOnce && !scriptCalled)
-   {
-     executeAction(timestep);
+     executeAction(timestep); 
      scriptCalled = true;
-   }
-   
  }
  //else
@@ -202,4 +183,5 @@
 void ScriptTrigger::executeAction(float timestep)
 {
+  
      if(scriptIsOk)
      {
@@ -213,5 +195,5 @@
        printf("Error ScriptTrigger: Execution of %s in %s failed.\n",functionName.c_str(), script->getFileName().c_str());
      
-     actionFinished = script->getReturnedBool();
+     scriptFinished = script->getReturnedBool();
      }
      
Index: branches/single_player_map/src/world_entities/script_trigger.h
===================================================================
--- branches/single_player_map/src/world_entities/script_trigger.h	(revision 8865)
+++ branches/single_player_map/src/world_entities/script_trigger.h	(revision 8869)
@@ -35,5 +35,4 @@
     void setTarget(WorldEntity* target) { if(target!=NULL) this->target=target; }
     void setTriggerParent(const std::string& name);
-    void setCallOnce(const bool call) { this->callOnce = call; }
     void setTriggerLasts(const bool lasts) { this->triggerLasts = lasts; }
     void setInvert(const bool inv) { this->invert = invert; }
@@ -51,5 +50,4 @@
 
     WorldEntity* target;
-    bool         callOnce;
     bool         triggerLasts;
     bool         invert;
@@ -63,5 +61,5 @@
     bool         scriptCalled;
     bool         scriptIsOk;
-    bool         actionFinished;
+    bool         scriptFinished;
     int          returnCount;        //TODO: set return count correctly
 
