diff --git a/OpenSim/OpenSim.Region/OpenSim.Region.csproj b/OpenSim/OpenSim.Region/OpenSim.Region.csproj
index 0d9e9b041e..4131142321 100644
--- a/OpenSim/OpenSim.Region/OpenSim.Region.csproj
+++ b/OpenSim/OpenSim.Region/OpenSim.Region.csproj
@@ -77,6 +77,7 @@
       ..\..\bin\libsecondlife.dll
       False
     
+    
     
       System.dll
       False
@@ -86,6 +87,7 @@
       System.Xml.dll
       False
     
+    
   
   
     
@@ -190,13 +192,15 @@
     
       Code
     
-    
-    
-    
-    
+    
+    
+    
+    
+    
+    
   
   
-    
+    
   
   
   
diff --git a/OpenSim/OpenSim.Region/Scenes/SceneEvents.cs b/OpenSim/OpenSim.Region/Scenes/SceneEvents.cs
index 2898578fa7..4b39e51d8c 100644
--- a/OpenSim/OpenSim.Region/Scenes/SceneEvents.cs
+++ b/OpenSim/OpenSim.Region/Scenes/SceneEvents.cs
@@ -1,3 +1,30 @@
+/*
+* Copyright (c) Contributors, http://www.openmetaverse.org/
+* See CONTRIBUTORS.TXT for a full list of copyright holders.
+*
+* Redistribution and use in source and binary forms, with or without
+* modification, are permitted provided that the following conditions are met:
+*     * Redistributions of source code must retain the above copyright
+*       notice, this list of conditions and the following disclaimer.
+*     * Redistributions in binary form must reproduce the above copyright
+*       notice, this list of conditions and the following disclaimer in the
+*       documentation and/or other materials provided with the distribution.
+*     * Neither the name of the OpenSim Project nor the
+*       names of its contributors may be used to endorse or promote products
+*       derived from this software without specific prior written permission.
+*
+* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS AND ANY
+* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
+* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+* 
+*/
 using System;
 using System.Collections.Generic;
 using System.Text;
diff --git a/OpenSim/OpenSim.Region/Scenes/scripting/Engines/CSharpScriptEngine.cs b/OpenSim/OpenSim.Region/Scenes/scripting/Engines/CSharpScriptEngine.cs
new file mode 100644
index 0000000000..870303f67a
--- /dev/null
+++ b/OpenSim/OpenSim.Region/Scenes/scripting/Engines/CSharpScriptEngine.cs
@@ -0,0 +1,104 @@
+/*
+* Copyright (c) Contributors, http://www.openmetaverse.org/
+* See CONTRIBUTORS.TXT for a full list of copyright holders.
+*
+* Redistribution and use in source and binary forms, with or without
+* modification, are permitted provided that the following conditions are met:
+*     * Redistributions of source code must retain the above copyright
+*       notice, this list of conditions and the following disclaimer.
+*     * Redistributions in binary form must reproduce the above copyright
+*       notice, this list of conditions and the following disclaimer in the
+*       documentation and/or other materials provided with the distribution.
+*     * Neither the name of the OpenSim Project nor the
+*       names of its contributors may be used to endorse or promote products
+*       derived from this software without specific prior written permission.
+*
+* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS AND ANY
+* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
+* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+* 
+*/
+using System;
+using System.Collections.Generic;
+using System.Text;
+
+// Compilation stuff
+using System.CodeDom;
+using System.CodeDom.Compiler;
+using Microsoft.CSharp;
+
+namespace OpenSim.Scripting
+{
+    public class CSharpScriptEngine : IScriptCompiler
+    {
+        public string FileExt()
+        {
+            return ".cs";
+        }
+
+        private Dictionary LoadDotNetScript(ICodeCompiler compiler, string filename)
+        {
+            CompilerParameters compilerParams = new CompilerParameters();
+            CompilerResults compilerResults;
+            compilerParams.GenerateExecutable = false;
+            compilerParams.GenerateInMemory = true;
+            compilerParams.IncludeDebugInformation = false;
+            compilerParams.ReferencedAssemblies.Add("OpenSim.Region.dll");
+            compilerParams.ReferencedAssemblies.Add("OpenSim.Framework.dll");
+            compilerParams.ReferencedAssemblies.Add("libsecondlife.dll");
+            compilerParams.ReferencedAssemblies.Add("System.dll");
+
+            compilerResults = compiler.CompileAssemblyFromFile(compilerParams, filename);
+
+            if (compilerResults.Errors.Count > 0)
+            {
+                OpenSim.Framework.Console.MainLog.Instance.Error("Compile errors");
+                foreach (CompilerError error in compilerResults.Errors)
+                {
+                    OpenSim.Framework.Console.MainLog.Instance.Error(error.Line.ToString() + ": " + error.ErrorText.ToString());
+                }
+            }
+            else
+            {
+                Dictionary scripts = new Dictionary();
+                
+                foreach (Type pluginType in compilerResults.CompiledAssembly.GetExportedTypes())
+                {
+                    Type testInterface = pluginType.GetInterface("IScript", true);
+
+                    if (testInterface != null)
+                    {
+                        IScript script = (IScript)compilerResults.CompiledAssembly.CreateInstance(pluginType.ToString());
+
+                        string scriptName = "C#/" + script.getName();
+                        Console.WriteLine("Script: " + scriptName + " loaded.");
+
+                        if (!scripts.ContainsKey(scriptName))
+                        {
+                            scripts.Add(scriptName, script);
+                        }
+                        else
+                        {
+                            scripts[scriptName] = script;
+                        }
+                    }
+                }
+                return scripts;
+            }
+            return null;
+        }
+
+        public Dictionary compile(string filename)
+        {
+            CSharpCodeProvider csharpProvider = new CSharpCodeProvider();
+            return LoadDotNetScript(csharpProvider.CreateCompiler(), filename);
+        }
+    }
+}
diff --git a/OpenSim/OpenSim.Region/Scenes/scripting/Engines/JScriptEngine.cs b/OpenSim/OpenSim.Region/Scenes/scripting/Engines/JScriptEngine.cs
new file mode 100644
index 0000000000..ffae1d705f
--- /dev/null
+++ b/OpenSim/OpenSim.Region/Scenes/scripting/Engines/JScriptEngine.cs
@@ -0,0 +1,104 @@
+/*
+* Copyright (c) Contributors, http://www.openmetaverse.org/
+* See CONTRIBUTORS.TXT for a full list of copyright holders.
+*
+* Redistribution and use in source and binary forms, with or without
+* modification, are permitted provided that the following conditions are met:
+*     * Redistributions of source code must retain the above copyright
+*       notice, this list of conditions and the following disclaimer.
+*     * Redistributions in binary form must reproduce the above copyright
+*       notice, this list of conditions and the following disclaimer in the
+*       documentation and/or other materials provided with the distribution.
+*     * Neither the name of the OpenSim Project nor the
+*       names of its contributors may be used to endorse or promote products
+*       derived from this software without specific prior written permission.
+*
+* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS AND ANY
+* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
+* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+* 
+*/
+using System;
+using System.Collections.Generic;
+using System.Text;
+
+// Compilation stuff
+using System.CodeDom;
+using System.CodeDom.Compiler;
+using Microsoft.JScript;
+
+namespace OpenSim.Scripting
+{
+    public class JScriptEngine : IScriptCompiler
+    {
+        public string FileExt()
+        {
+            return ".js";
+        }
+
+        private Dictionary LoadDotNetScript(ICodeCompiler compiler, string filename)
+        {
+            CompilerParameters compilerParams = new CompilerParameters();
+            CompilerResults compilerResults;
+            compilerParams.GenerateExecutable = false;
+            compilerParams.GenerateInMemory = true;
+            compilerParams.IncludeDebugInformation = false;
+            compilerParams.ReferencedAssemblies.Add("OpenSim.Region.dll");
+            compilerParams.ReferencedAssemblies.Add("OpenSim.Framework.dll");
+            compilerParams.ReferencedAssemblies.Add("libsecondlife.dll");
+            compilerParams.ReferencedAssemblies.Add("System.dll");
+
+            compilerResults = compiler.CompileAssemblyFromFile(compilerParams, filename);
+
+            if (compilerResults.Errors.Count > 0)
+            {
+                OpenSim.Framework.Console.MainLog.Instance.Error("Compile errors");
+                foreach (CompilerError error in compilerResults.Errors)
+                {
+                    OpenSim.Framework.Console.MainLog.Instance.Error(error.Line.ToString() + ": " + error.ErrorText.ToString());
+                }
+            }
+            else
+            {
+                Dictionary scripts = new Dictionary();
+
+                foreach (Type pluginType in compilerResults.CompiledAssembly.GetExportedTypes())
+                {
+                    Type testInterface = pluginType.GetInterface("IScript", true);
+
+                    if (testInterface != null)
+                    {
+                        IScript script = (IScript)compilerResults.CompiledAssembly.CreateInstance(pluginType.ToString());
+
+                        string scriptName = "JS.NET/" + script.getName();
+                        Console.WriteLine("Script: " + scriptName + " loaded.");
+
+                        if (!scripts.ContainsKey(scriptName))
+                        {
+                            scripts.Add(scriptName, script);
+                        }
+                        else
+                        {
+                            scripts[scriptName] = script;
+                        }
+                    }
+                }
+                return scripts;
+            }
+            return null;
+        }
+
+        public Dictionary compile(string filename)
+        {
+            JScriptCodeProvider jscriptProvider = new JScriptCodeProvider();
+            return LoadDotNetScript(jscriptProvider.CreateCompiler(), filename);
+        }
+    }
+}
diff --git a/OpenSim/OpenSim.Region/Scenes/scripting/Engines/JSharpScriptEngine.cs b/OpenSim/OpenSim.Region/Scenes/scripting/Engines/JSharpScriptEngine.cs
new file mode 100644
index 0000000000..b33b55df42
--- /dev/null
+++ b/OpenSim/OpenSim.Region/Scenes/scripting/Engines/JSharpScriptEngine.cs
@@ -0,0 +1,104 @@
+/*
+* Copyright (c) Contributors, http://www.openmetaverse.org/
+* See CONTRIBUTORS.TXT for a full list of copyright holders.
+*
+* Redistribution and use in source and binary forms, with or without
+* modification, are permitted provided that the following conditions are met:
+*     * Redistributions of source code must retain the above copyright
+*       notice, this list of conditions and the following disclaimer.
+*     * Redistributions in binary form must reproduce the above copyright
+*       notice, this list of conditions and the following disclaimer in the
+*       documentation and/or other materials provided with the distribution.
+*     * Neither the name of the OpenSim Project nor the
+*       names of its contributors may be used to endorse or promote products
+*       derived from this software without specific prior written permission.
+*
+* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS AND ANY
+* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
+* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+* 
+*/
+using System;
+using System.Collections.Generic;
+using System.Text;
+
+// Compilation stuff
+using System.CodeDom;
+using System.CodeDom.Compiler;
+using Microsoft.VJSharp;
+
+namespace OpenSim.Scripting
+{
+    public class JSharpScriptEngine : IScriptCompiler
+    {
+        public string FileExt()
+        {
+            return ".jsl";
+        }
+
+        private Dictionary LoadDotNetScript(ICodeCompiler compiler, string filename)
+        {
+            CompilerParameters compilerParams = new CompilerParameters();
+            CompilerResults compilerResults;
+            compilerParams.GenerateExecutable = false;
+            compilerParams.GenerateInMemory = true;
+            compilerParams.IncludeDebugInformation = false;
+            compilerParams.ReferencedAssemblies.Add("OpenSim.Region.dll");
+            compilerParams.ReferencedAssemblies.Add("OpenSim.Framework.dll");
+            compilerParams.ReferencedAssemblies.Add("libsecondlife.dll");
+            compilerParams.ReferencedAssemblies.Add("System.dll");
+
+            compilerResults = compiler.CompileAssemblyFromFile(compilerParams, filename);
+
+            if (compilerResults.Errors.Count > 0)
+            {
+                OpenSim.Framework.Console.MainLog.Instance.Error("Compile errors");
+                foreach (CompilerError error in compilerResults.Errors)
+                {
+                    OpenSim.Framework.Console.MainLog.Instance.Error(error.Line.ToString() + ": " + error.ErrorText.ToString());
+                }
+            }
+            else
+            {
+                Dictionary scripts = new Dictionary();
+
+                foreach (Type pluginType in compilerResults.CompiledAssembly.GetExportedTypes())
+                {
+                    Type testInterface = pluginType.GetInterface("IScript", true);
+
+                    if (testInterface != null)
+                    {
+                        IScript script = (IScript)compilerResults.CompiledAssembly.CreateInstance(pluginType.ToString());
+
+                        string scriptName = "J#/" + script.getName();
+                        Console.WriteLine("Script: " + scriptName + " loaded.");
+
+                        if (!scripts.ContainsKey(scriptName))
+                        {
+                            scripts.Add(scriptName, script);
+                        }
+                        else
+                        {
+                            scripts[scriptName] = script;
+                        }
+                    }
+                }
+                return scripts;
+            }
+            return null;
+        }
+
+        public Dictionary compile(string filename)
+        {
+            VJSharpCodeProvider jsharpProvider = new VJSharpCodeProvider();
+            return LoadDotNetScript(jsharpProvider.CreateCompiler(), filename);
+        }
+    }
+}
diff --git a/OpenSim/OpenSim.Region/Scenes/scripting/Script.cs b/OpenSim/OpenSim.Region/Scenes/scripting/Script.cs
new file mode 100644
index 0000000000..56bd1dbddb
--- /dev/null
+++ b/OpenSim/OpenSim.Region/Scenes/scripting/Script.cs
@@ -0,0 +1,71 @@
+/*
+* Copyright (c) Contributors, http://www.openmetaverse.org/
+* See CONTRIBUTORS.TXT for a full list of copyright holders.
+*
+* Redistribution and use in source and binary forms, with or without
+* modification, are permitted provided that the following conditions are met:
+*     * Redistributions of source code must retain the above copyright
+*       notice, this list of conditions and the following disclaimer.
+*     * Redistributions in binary form must reproduce the above copyright
+*       notice, this list of conditions and the following disclaimer in the
+*       documentation and/or other materials provided with the distribution.
+*     * Neither the name of the OpenSim Project nor the
+*       names of its contributors may be used to endorse or promote products
+*       derived from this software without specific prior written permission.
+*
+* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS AND ANY
+* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
+* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+* 
+*/
+using System;
+using System.Collections.Generic;
+using System.Text;
+
+using OpenSim.Framework.Console;
+using OpenSim.Framework;
+using OpenSim.Region;
+using OpenSim.Region.Scenes;
+
+namespace OpenSim.Scripting
+{
+    public interface IScript
+    {
+        void Initialise(ScriptInfo scriptInfo);
+        string getName();
+    }
+
+    public class TestScript : IScript
+    {
+        ScriptInfo script;
+
+        public string getName()
+        {
+            return "TestScript 0.1";
+        }
+
+        public void Initialise(ScriptInfo scriptInfo)
+        {
+            script = scriptInfo;
+            script.events.OnFrame += new OpenSim.Region.Scenes.EventManager.OnFrameDelegate(events_OnFrame);
+            script.events.OnNewPresence += new EventManager.OnNewPresenceDelegate(events_OnNewPresence);
+        }
+
+        void events_OnNewPresence(ScenePresence presence)
+        {
+            script.logger.Verbose("Hello " + presence.firstname.ToString() + "!");
+        }
+
+        void events_OnFrame()
+        {
+            //script.logger.Verbose("Hello World!");
+        }
+    }
+}
diff --git a/OpenSim/OpenSim.Region/Scenes/scripting/ScriptInfo.cs b/OpenSim/OpenSim.Region/Scenes/scripting/ScriptInfo.cs
new file mode 100644
index 0000000000..cf627dd32a
--- /dev/null
+++ b/OpenSim/OpenSim.Region/Scenes/scripting/ScriptInfo.cs
@@ -0,0 +1,58 @@
+/*
+* Copyright (c) Contributors, http://www.openmetaverse.org/
+* See CONTRIBUTORS.TXT for a full list of copyright holders.
+*
+* Redistribution and use in source and binary forms, with or without
+* modification, are permitted provided that the following conditions are met:
+*     * Redistributions of source code must retain the above copyright
+*       notice, this list of conditions and the following disclaimer.
+*     * Redistributions in binary form must reproduce the above copyright
+*       notice, this list of conditions and the following disclaimer in the
+*       documentation and/or other materials provided with the distribution.
+*     * Neither the name of the OpenSim Project nor the
+*       names of its contributors may be used to endorse or promote products
+*       derived from this software without specific prior written permission.
+*
+* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS AND ANY
+* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
+* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+* 
+*/
+using System;
+using System.Collections.Generic;
+using System.Text;
+
+using OpenSim.Region.Scenes;
+using OpenSim.Framework.Console;
+
+namespace OpenSim.Scripting
+{
+    /// 
+    /// Class which provides access to the world
+    /// 
+    public class ScriptInfo
+    {
+        // Reference to world.eventsManager provided for convenience
+        public EventManager events;
+
+        // The main world
+        public Scene world;
+
+        // The console
+        public LogBase logger;
+
+        public ScriptInfo(Scene scene)
+        {
+            world = scene;
+            events = world.eventManager;
+            logger = OpenSim.Framework.Console.MainLog.Instance;
+        }
+    }
+}
diff --git a/OpenSim/OpenSim.Region/Scenes/scripting/ScriptManager.cs b/OpenSim/OpenSim.Region/Scenes/scripting/ScriptManager.cs
new file mode 100644
index 0000000000..abffffa1fa
--- /dev/null
+++ b/OpenSim/OpenSim.Region/Scenes/scripting/ScriptManager.cs
@@ -0,0 +1,99 @@
+/*
+* Copyright (c) Contributors, http://www.openmetaverse.org/
+* See CONTRIBUTORS.TXT for a full list of copyright holders.
+*
+* Redistribution and use in source and binary forms, with or without
+* modification, are permitted provided that the following conditions are met:
+*     * Redistributions of source code must retain the above copyright
+*       notice, this list of conditions and the following disclaimer.
+*     * Redistributions in binary form must reproduce the above copyright
+*       notice, this list of conditions and the following disclaimer in the
+*       documentation and/or other materials provided with the distribution.
+*     * Neither the name of the OpenSim Project nor the
+*       names of its contributors may be used to endorse or promote products
+*       derived from this software without specific prior written permission.
+*
+* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS AND ANY
+* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
+* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+* 
+*/
+using System;
+using System.Collections.Generic;
+using System.Text;
+
+namespace OpenSim.Scripting
+{
+    public class ScriptManager
+    {
+        List scripts = new List();
+        OpenSim.Region.Scenes.Scene scene;
+        Dictionary compilers = new Dictionary();
+
+        private void LoadFromCompiler(Dictionary compiledscripts)
+        {
+            foreach (KeyValuePair script in compiledscripts)
+            {
+                ScriptInfo scriptInfo = new ScriptInfo(scene); // Since each script could potentially corrupt their access with a stray assignment, making a new one for each script.
+                OpenSim.Framework.Console.MainLog.Instance.Verbose("Loading " + script.Key);
+                script.Value.Initialise(scriptInfo);
+                scripts.Add(script.Value);
+            }
+            OpenSim.Framework.Console.MainLog.Instance.Verbose("Finished loading " + compiledscripts.Count.ToString() + " script(s)");
+        }
+
+        public ScriptManager(OpenSim.Region.Scenes.Scene world)
+        {
+            scene = world;
+
+            // Default Engines
+            CSharpScriptEngine csharpCompiler = new CSharpScriptEngine();
+            compilers.Add(csharpCompiler.FileExt(),csharpCompiler);
+
+            JScriptEngine jscriptCompiler = new JScriptEngine();
+            compilers.Add(jscriptCompiler.FileExt(), jscriptCompiler);
+
+            JSharpScriptEngine jsharpCompiler = new JSharpScriptEngine();
+            compilers.Add(jsharpCompiler.FileExt(), jsharpCompiler);
+        }
+
+        public void Compile(string filename)
+        {
+            foreach (KeyValuePair compiler in compilers)
+            {
+                if (filename.EndsWith(compiler.Key))
+                {
+                    LoadFromCompiler(compiler.Value.compile(filename));
+                    break;
+                }
+            }
+        }
+
+        public void RunScriptCmd(string[] args)
+        {
+            switch (args[0])
+            {
+                case "load":
+                    Compile(args[1]);
+                    break;
+
+                default:
+                    OpenSim.Framework.Console.MainLog.Instance.Error("Unknown script command");
+                    break;
+            }
+        }
+    }
+
+    interface IScriptCompiler
+    {
+        Dictionary compile(string filename);
+        string FileExt();
+    }
+}
diff --git a/OpenSim/OpenSim.Terrain.BasicTerrain/TerrainFilter.cs b/OpenSim/OpenSim.Terrain.BasicTerrain/TerrainFilter.cs
index 689375d786..5baf87fcc9 100644
--- a/OpenSim/OpenSim.Terrain.BasicTerrain/TerrainFilter.cs
+++ b/OpenSim/OpenSim.Terrain.BasicTerrain/TerrainFilter.cs
@@ -1,3 +1,30 @@
+/*
+* Copyright (c) Contributors, http://www.openmetaverse.org/
+* See CONTRIBUTORS.TXT for a full list of copyright holders.
+*
+* Redistribution and use in source and binary forms, with or without
+* modification, are permitted provided that the following conditions are met:
+*     * Redistributions of source code must retain the above copyright
+*       notice, this list of conditions and the following disclaimer.
+*     * Redistributions in binary form must reproduce the above copyright
+*       notice, this list of conditions and the following disclaimer in the
+*       documentation and/or other materials provided with the distribution.
+*     * Neither the name of the OpenSim Project nor the
+*       names of its contributors may be used to endorse or promote products
+*       derived from this software without specific prior written permission.
+*
+* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS AND ANY
+* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
+* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+* 
+*/
 using System;
 using System.Collections.Generic;
 using System.Text;
diff --git a/prebuild.xml b/prebuild.xml
index b380815c61..0fec29f17f 100644
--- a/prebuild.xml
+++ b/prebuild.xml
@@ -629,7 +629,11 @@
       
       
       
-	
+	    
+      
+      
+      
+