; This file shows initialization defaults for OpenSimulator. If you want to override these ; please copy/rename this file from .ini.example file to .ini. For example ; ; chat.ini.example => chat.ini ; ; or you can copy and paste the settings from this file directly to bin/OpenSim.ini ; [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