1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
|
[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 the type of database to use for asset storage
;asset_database = "db4o"
asset_database = "sqlite"
;asset_database = "grid"
;asset_database = "mssql"
; ##
; ## 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
verbose = true
startup_console_commands_file = "startup_commands.txt"
shutdown_console_commands_file = "shutdown_commands.txt"
serverside_object_permissions = false
; if you would like to allow prim 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"
inventory_plugin = "OpenSim.Framework.Data.SQLite.dll"
; User Data Database provider
; userDatabase_plugin = "OpenSim.Framework.Data.DB4o.dll"
; userDatabase_plugin = "OpenSim.Framework.Data.MySQL.dll"
userDatabase_plugin = "OpenSim.Framework.Data.SQLite.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 editing this file.
; For example to increase or decrease number of threads.
; 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
; Should the script threads be private for each region?
; true: Each region will get <NumberOfScriptThreads> dedicated to scripts within that region
; Number of threads will be <NumberOfScriptThreads>*<NumberOfRegions>
; false: All regions share <NumberOfScriptThreads> for all their scripts
; Note! If you run multiple script engines based on "OpenSim.Region.ScriptEngine.Common" then all of them will share the same threads.
; *** This setting will not work until you restart OpenSim
PrivateRegionThreads=false
; 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
; Script loading / unloading sleep
; 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
ScriptLoadUnloadLoopms=30
; Loading and unloading of scripts is queued and processed by a separate thread.
; This thread can either be shared among all regions, or private (one thread per region)
PrivateScriptLoadUnloadThread=false
; 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
|