[Startup] gridmode = false ; ## ; ## STORAGE ; ## ; *** Prim Storage - only leave one storage_plugin uncommented *** ; --- Null stores nothing - effectively disabling persistence: storage_plugin = "OpenSim.Data.Null.dll" ; --- To use sqlite as region storage: ;storage_plugin = "OpenSim.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.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_database = "MySQL" 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.Data.SQLite.dll" ; asset_plugin = "OpenSim.Data.MySQL.dll" ; Inventory database provider inventory_plugin = "OpenSim.Data.SQLite.dll" ; inventory_plugin = "OpenSim.Data.MySQL.dll" ; User Data Database provider userDatabase_plugin = "OpenSim.Data.SQLite.dll" ; userDatabase_plugin = "OpenSim.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 : : ;msgformat = "PRIVMSG {0} :<{1} in {2}>: {3}" ;for : - : msgformat = "PRIVMSG {0} : {3} - {1} of {2}" ;for : - from : ;msgformat = "PRIVMSG {0} : {3} - from {1}" [Voice] ; PLEASE NOTE that we don't have voice support in OpenSim quite yet - these configuration options are stubs enabled = false ; This is not supported by the SLViewer right now and ; hardcoded within the SL Viewer. Maybe it will be ; changed in future. :-) account_management_server = https://www.bhr.vivox.com/api2 ; Global SIP Server for conference calls sip_domain = testserver.com ; 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 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 [DataSnapshot] ; The following set of configs pertains to search. ; Set index_sims to true to enable search engines to index your searchable data ; If false, no data will be exposed, DataSnapshot module will be off, and you can ignore the rest of these search-related configs index_sims = false ; If search is on, change this to your grid name; will be ignored for standalones gridname = "OSGrid" ; Period between data snapshots, in seconds. 20 minutes, for starters, so that you see the initial changes fast. ; Later, you may want to increase this to 3600 (1 hour) or more default_snapshot_period = 1200 ; This will be created in bin, if it doesn't exist already. It will hold the data snapshots. snapshot_cache_directory = "DataSnapshot" ; This semicolon-separated string serves to notify specific data services ; about the existence of this sim. data_services="http://metaverseink.com/cgi-bin/register.py" [Economy] ; These economy values get used in the BetaGridLikeMoneyModule ; 45000 is the highest value that the sim could possibly report because of protocol constraints ObjectCapacity = 45000 ; Money Unit fee to upload textures, animations etc PriceUpload = 0 ; Money Unit fee to create groups PriceGroupCreate = 0 ; This is the account Money goes to for fees. Remember, economy requires that money circulates somewhere... even if it's an upload fee EconomyBaseAccount = 00000000-0000-0000-0000-000000000000 ; This is the type of user that will pay fees. ; Set this to 2 for users, estate managers and Estate Owners ; Set this to 1 for Users and Estate Managers ; Set this to 0 for Users only. ; -1 disables UserLevelPaysFees = -1 ; Amount to give to user as a stipend UserStipend = 1000 ; When a user gets low on money units and logs off, then logs back on, issue a new stipend if they have less money units then this ; amount. Be aware that the account money isn't stored anywhere so users will get a stipend if you restart the simulator IssueStipendWhenClientIsBelowAmount = 10 ; If this is true, the simulator will remember account balances until the simulator is shutdown or restarted. KeepMoneyAcrossLogins = true ; We don't really know what the rest of these values do. These get sent to the client ; These taken from Agni at a Public Telehub. Change at your own risk. ObjectCount = 0 PriceEnergyUnit = 100 PriceObjectClaim = 10 PricePublicObjectDecay = 4 PricePublicObjectDelete = 4 PriceParcelClaim = 1 PriceParcelClaimFactor = 1 PriceRentLight = 5 TeleportMinPrice = 2 TeleportPriceExponent = 2 EnergyEfficiency = 1 PriceObjectRent = 1 PriceObjectScaleFactor = 10 PriceParcelRent = 1