[Startup]
gridmode = false

; ##
; ## STORAGE
; ##

; *** Prim Storage - only leave one storage_plugin uncommented ***
; --- The NullStorage stores nothing - effectively disabling persistence:
storage_plugin = "OpenSim.DataStore.NullStorage.dll"

; --- To use sqlite as region storage:
;storage_plugin = "OpenSim.Framework.Data.SQLite.dll"
storage_connection_string="URI=file:OpenSim.db,version=3";

; --- To use MySQL storage, supply your own connectionstring (this is only an example):
;     note that the supplied account needs create privilegies if you want it to auto-create needed tables.
; storage_plugin="OpenSim.Framework.Data.MySQL.dll"
; storage_connection_string="Data Source=localhost;Database=opensim;User ID=opensim;Password=*****;";

; turn on experimental storage of prim inventories in the region database

; Prim inventory storage is now turned on by default
; However, this option remains in case it needs to be disabled
; More details of the current state of this can be found at
;
; http://opensimulator.org/wiki/OpenSim:Prim_Inventory_Persistence
;
storage_prim_inventories = true

; Avatar appearance persistence
appearance_persist = false
appearance_connection_string = "Data Source=localhost;Database=avatar_appearance;User ID=root;Password=xxxx;pooling=false;"

; Select whether you want to use local or grid asset storage.
;
; If you're running in standalone, you definitely want local, since there is no grid (hence this is redundant, and should
; really be eliminated).  The database itself is defined in asset_plugin below
;
; If you're running a region server connecting to a grid, you probably want grid mode, since this will use the 
; grid asset server.  If you select local in grid mode, then you will use a database as specified in asset_plugin to store assets
; locally.  This will mean you won't be able to take items using your assets to other people's regions.
asset_database = "local"
;asset_database = "grid"

; Should avatars in neighbor sims see objects in this sim?
see_into_this_sim_from_neighbor = True

; ##
; ## PHYSICS
; ##

; Select a mesher here. ZeroMesher is save and fast.
; ZeroMesher also means that the physics engine models the physics of prims
; sticking to the basic shapes the engine does support. Usually this is only a box.
; Meshmerizer gives a better handling of complex prims by using triangle meshes.
; Note, that only ODE physics currently deals with meshed prims in a satisfactoring way
; 
meshing = ZeroMesher
;meshing = Meshmerizer

; Choose one of the physics engines below
physics = basicphysics
;physics = POS
;physics = OpenDynamicsEngine
;physics = modified_BulletX


startup_console_commands_file = "startup_commands.txt"
shutdown_console_commands_file = "shutdown_commands.txt"
serverside_object_permissions = false

; if you would like to allow prims to be physical and move by physics with the physical checkbox in the client set this to true.
physical_prim = true

; To run a script every few minutes, set the script filename here
; timer_Script = "filename"

; ##
; ## ScriptEngine
; ##
; These are region modules loaded into each region to provide script support
; Scripts may be everything from LSL or C# scripts put in prims to whole game systems that controls the whole grid.
; You can load multiple modules by separating them with a coma.
;
; Example:
;script_engine = OpenSim.Region.ScriptEngine.DotNetEngine.dll,OpenSim.Region.ScriptEngine.RemoteServer.dll
;
; This is the current and most stable ScriptEngine:
script_engine = OpenSim.Region.ScriptEngine.DotNetEngine.dll

;Experimental remote ScriptServer plugin (does not currently work):
;script_engine = OpenSim.Region.ScriptEngine.RemoteServer.dll


[StandAlone]
accounts_authenticate = true
welcome_message = "Welcome to OpenSim"

; Asset database provider
asset_plugin = "OpenSim.Framework.Data.SQLite.dll"
; asset_plugin = "OpenSim.Framework.Data.MySQL.dll"

; Inventory database provider
inventory_plugin = "OpenSim.Framework.Data.SQLite.dll"
; inventory_plugin = "OpenSim.Framework.Data.MySQL.dll"

; User Data Database provider
userDatabase_plugin = "OpenSim.Framework.Data.SQLite.dll"
; userDatabase_plugin = "OpenSim.Framework.Data.MySQL.dll"

default_location_x = 1000
default_location_y = 1000
dump_assets_to_file = false

[Network]
http_listener_port = 9000
remoting_listener_port = 8895

; Uncomment below to enable llRemoteData/remote channels
; remoteDataPort = 20800

grid_server_url = "http://127.0.0.1:8001"
grid_send_key = "null"
grid_recv_key = "null"

user_server_url = "http://127.0.0.1:8002"
user_send_key = "null"
user_recv_key = "null"

asset_server_url = "http://127.0.0.1:8003"

inventory_server_url = "http://127.0.0.1:8004"

[Chat]
whisper_distance = 10
say_distance = 30
shout_distance = 100

; Uncomment the following for IRC bridge
; experimental, so if it breaks... keep both parts... yada yada
; also, not good error detection when it fails
;[IRC]
;server  = name.of.irc.server.on.the.net
;nick    = OpenSimBotNameProbablyMakeThisShorter
;channel = #the_irc_channel_you_want_to_connect_to
;port = 6667
;MSGformat fields : 0=botnick, 1=user, 2=region, 3=message
; must start with "PRIVMSG {0} : " or irc server will get upset
;for <bot>:<user in region> :<message>
;msgformat = "PRIVMSG {0} :<{1} in {2}>: {3}"
;for <bot>:<message> - <user of region> :
msgformat = "PRIVMSG {0} : {3} - {1} of {2}"
;for <bot>:<message> - from <user> :
;msgformat = "PRIVMSG {0} : {3} - from {1}"

; Uncomment the following to control the progression of daytime
; in the Sim.  The defaults are what is shown below
;[Sun]
; number of wall clock hours for an opensim day.  24.0 would mean realtime
;day_length = 0.5

; send a Sun update ever frame_rate # of frames.  A lower number will
; make for smoother sun transition at the cost of network
;frame_rate = 100


[ScriptEngine.DotNetEngine]
;
; 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 <MaxEventExecutionTimeMs> 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


; 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
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=true

; 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

; 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
CleanUpOldScriptsOnStartup=true

[LL-Functions]
; Set the following to true to allow administrator owned scripts to execute console commands
AllowosConsoleCommand=false
