; Script engine settings [XEngine] ; Enable this engine in this OpenSim instance Enabled = true ; How many threads to keep alive even if nothing is happening MinThreads = 2 ; How many threads to start at maximum load MaxThreads = 100 ; Time a thread must be idle (in seconds) before it dies IdleTimeout = 60 ; Thread priority ("Lowest", "BelowNormal", "Normal", "AboveNormal", "Highest") Priority = "BelowNormal" ; Maximum number of events to queue for a script (excluding timers) MaxScriptEventQueue = 300 ; Stack size per thread created ThreadStackSize = 262144 ; Rate to poll for asynchronous command replies (ms) ; currently unused ;AsyncLLCommandLoopms = 50 ; Save the source of all compiled scripts WriteScriptSourceToDebugFile = false ; Default language for scripts DefaultCompileLanguage = lsl ; List of allowed languages (lsl,vb,js,cs) ; AllowedCompilers=lsl,cs,js,vb. ; *warning*, non lsl languages have access to static methods such as System.IO.File. Enable at your own risk. AllowedCompilers=lsl ; Compile debug info (line numbers) into the script assemblies CompileWithDebugInformation = true ; Allow the use of os* functions (some are dangerous) AllowOSFunctions = false ; Threat level to allow, one of None, VeryLow, Low, Moderate, High, VeryHigh, Severe OSFunctionThreatLevel = VeryLow ; Interval (s) between background save of script states SaveInterval = 120 ; Interval (s) between maintenance runs (0 = disable) MaintenanceInterval = 10 ; Time a script can spend in an event handler before it is interrupted EventLimit = 30 ; If a script overruns it's event limit, kill the script? KillTimedOutScripts = false ; Sets the multiplier for the scripting delays ScriptDelayFactor = 1.0 ; The factor the 10 m distances llimits are multiplied by ScriptDistanceLimitFactor = 1.0 ; OS Functions enable/disable ; For each function, you can add one line, as shown ; The default for all functions allows them if below threat level ; true allows the use of the function unconditionally ; Allow_osSetRegionWaterHeight = true ; false disables the function completely ; Allow_osSetRegionWaterHeight = false ; Comma separated list of UUIDS allows the function for that list of UUIDS ; Allow_osSetRegionWaterHeight = 888760cb-a3cf-43ac-8ea4-8732fd3ee2bb ; Allow for llCreateLink and llBreakLink to work without asking for permission ; only enable this in a trusted environment otherwise you may be subject to hijacking ; AutomaticLinkPermission = false [ScriptEngine.DotNetEngine] Enabled = true ScriptDelayFactor = 1.0 ScriptDistanceLimitFactor = 1.0 ; ; These settings are specific to DotNetEngine script engine ; Other script engines based on OpenSim.Region.ScriptEngine.Common.dll will have almost identical settings, but in another section of this config file. ; ; When a script receives an event the event is queued. ; Any free thread will start executing this event. One script can only have one event executed simultaneously. ; If you have only one thread, and one script has a loop or does a lot of work, then no other scripts can run at the same time. ; Same if you have 10 threads, then only 10 scripts can be run simultaneously. ; But because most scripts exit after their task, the threads are free to go on to the next script. ; Refresh ScriptEngine config options (these settings) every xx seconds ; 0 = Do not refresh ; Set it to number of seconds between refresh, for example 30. ; Will allow you to change ScriptEngine settings while server is running just by using "CONFIG SET" on console ; For example to increase or decrease number of threads: CONFIG SET NumberOfScriptThreads 10 ; NOTE! Disabled for now. Feature does not work. RefreshConfig=0 ; Number of threads to use for script event execution ; Threads are shared across all regions NumberOfScriptThreads=2 ; Script event execution thread priority inside application. ; Valid values: Lowest, BelowNormal, Normal, AboveNormal, Highest ScriptThreadPriority=BelowNormal ; How long MAX should a script event be allowed to run (per event execution)? ; Do not set this too low (like 50ms) as there are some time wasted in simply executing a function ; There is also a small speed penalty for every kill that is made MaxEventExecutionTimeMs=5000 ; Should we enable the max script event execution thread to look for scripts that exceed their timeslice? EnforceMaxEventExecutionTime=true ; Should we stop the script completely when time exceeds? ; This is useful if you have a high and want to deactivate scripts that go wrong ; Note that for example physics engine can slow down the system and make scripts spend more time DeactivateScriptOnTimeout=false ; If no scripts have executed in this pass how long should we sleep before checking again ; Impact: ; Too low and you will waste lots of CPU ; Too high and people touching object or similar will have to wait up to this amount of time before script responding SleepTimeIfNoScriptExecutionMs=50 ; AppDomains are used for two things: ; * Security: Scripts inside AppDomains are limited in permissions. ; * Script unloading: When a script is deactivated it can not be unloaded. Only whole AppDomains can be unloaded. ; AppDomains are therefore only unloaded once ALL active scripts inside it has been deactivated (removed from prims). ; Each AppDomain has some memory overhead. But leaving dead scripts in memory also has memory overhead. ScriptsPerAppDomain=1 ; MaintenanceLoop ; How often to run maintenance loop ; Maintenance loop is doing: script compile/load, script unload, reload config, adjust running config and enforce max execution time MaintenanceLoopms=50 ; How many maintenanceloops between each of these. ; (if 2 then function will be executed every MaintenanceLoopms*2 ms) ; Script loading/unloading ; How long load/unload thread should sleep if there is nothing to do ; Higher value makes it respond slower when scripts are added/removed from prims ; But once active it will process all in queue before sleeping again MaintenanceLoopTicks_ScriptLoadUnload=1 ; Other tasks ; check if we need to reload config, adjust running config and enforce max execution time MaintenanceLoopTicks_Other=10 ; Allow the use of os* functions (some are dangerous) ; Default is false AllowOSFunctions = false ; Threat level to allow if os functions are enabled ; One of None, VeryLow, Low, Moderate, High, VeryHigh, Severe ; Default is VeryLow OSFunctionThreatLevel = VeryLow ; Maximum number of items in load/unload queue before we start rejecting loads ; Note that we will only be rejecting load. Unloads will still be able to queue. LoadUnloadMaxQueueSize=100 ; Maximum number of (LSL) events that can be queued before new events are ignored. EventExecutionMaxQueueSize=300 ; Async LL command sleep ; If no async LL commands are waiting, how long should thread sleep before checking again ; Async LL commands are LSL-commands that causes an event to be fired back with result ; currently unused ; AsyncLLCommandLoopms=50 ; When script is converted from LSL to C#, or just plain compiled, a copy of the script source will be put in the ScriptEngine folder WriteScriptSourceToDebugFile=false ; Specify default script compiler ; If you do not specify //cs, //vb, //js or //lsl tag as the first characters of your script then the default compiler will be chosen ; Valid languages are: lsl, cs, js and vb DefaultCompileLanguage=lsl ; Specify what compilers are allowed to be used ; Note vb only works on Windows for now (Mono lacks VB compile support) ; Valid languages are: lsl, cs, js and vb ; AllowedCompilers=lsl,cs,js,vb. *warning*, non lsl languages have access to static methods such as System.IO.File. Enable at your own risk. AllowedCompilers=lsl ; Compile scripts with debugging ; Probably a thousand times slower, but gives you a line number when something goes wrong. CompileWithDebugInformation=true ; Remove old scripts on next startup ; currently unused ;CleanUpOldScriptsOnStartup=true [MRM] ; Enables the Mini Region Modules Script Engine. WARNING: SECURITY RISK. ; default is false Enabled = false