aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/bin/config-include
diff options
context:
space:
mode:
authoronefang2020-09-08 21:23:58 +1000
committeronefang2020-09-08 21:23:58 +1000
commite9e078a8b58be7bc7f04799f17d3858e7470ac67 (patch)
treef443f9693e34f7b5b0a9ab7599f22664b4b1a2e7 /bin/config-include
parentBetter ROBUST and sim startup console notification. (diff)
downloadopensim-SC-e9e078a8b58be7bc7f04799f17d3858e7470ac67.zip
opensim-SC-e9e078a8b58be7bc7f04799f17d3858e7470ac67.tar.gz
opensim-SC-e9e078a8b58be7bc7f04799f17d3858e7470ac67.tar.bz2
opensim-SC-e9e078a8b58be7bc7f04799f17d3858e7470ac67.tar.xz
Major clean up of config and ini files.
Diffstat (limited to 'bin/config-include')
-rw-r--r--bin/config-include/GridCommon.ini.example28
-rw-r--r--bin/config-include/SimBalanced.ini889
-rw-r--r--bin/config-include/SimDefault.ini884
-rw-r--r--bin/config-include/SimFast.ini884
-rw-r--r--bin/config-include/SimLean.ini884
-rw-r--r--bin/config-include/config_localhost.ini49
6 files changed, 3604 insertions, 14 deletions
diff --git a/bin/config-include/GridCommon.ini.example b/bin/config-include/GridCommon.ini.example
index 3550ed9..dc70b81 100644
--- a/bin/config-include/GridCommon.ini.example
+++ b/bin/config-include/GridCommon.ini.example
@@ -76,13 +76,13 @@
76 ; 76 ;
77 ; Change this to your grid-wide asset server. Do not add a slash to the end of any of these addresses. 77 ; Change this to your grid-wide asset server. Do not add a slash to the end of any of these addresses.
78 ; 78 ;
79 AssetServerURI = "${Const|PrivURL}:${Const|PrivatePort}" 79 AssetServerURI = "${Const|BaseURL}:${Const|PrivatePort}"
80 80
81[InventoryService] 81[InventoryService]
82 ; 82 ;
83 ; Change this to your grid-wide inventory server 83 ; Change this to your grid-wide inventory server
84 ; 84 ;
85 InventoryServerURI = "${Const|PrivURL}:${Const|PrivatePort}" 85 InventoryServerURI = "${Const|BaseURL}:${Const|PrivatePort}"
86 ;MaxRetries = 0 86 ;MaxRetries = 0
87 87
88[GridInfo] 88[GridInfo]
@@ -95,7 +95,7 @@
95 ; 95 ;
96 ; Change this to your grid-wide grid server 96 ; Change this to your grid-wide grid server
97 ; 97 ;
98 GridServerURI = "${Const|PrivURL}:${Const|PrivatePort}" 98 GridServerURI = "${Const|BaseURL}:${Const|PrivatePort}"
99 ;AllowHypergridMapSearch = true 99 ;AllowHypergridMapSearch = true
100 100
101 ;; Directory for map tile images of linked regions 101 ;; Directory for map tile images of linked regions
@@ -105,7 +105,7 @@
105 ;; Change this to the address of your Gatekeeper service 105 ;; Change this to the address of your Gatekeeper service
106 ;; (usually bundled with the rest of the services in one 106 ;; (usually bundled with the rest of the services in one
107 ;; Robust server in port ${Const|PublicPort}, but not always) 107 ;; Robust server in port ${Const|PublicPort}, but not always)
108 Gatekeeper="${Const|BaseURL}:${Const|PublicPort}" 108 GatekeeperURI="${Const|BaseURL}:${Const|PublicPort}"
109 109
110[EstateDataStore] 110[EstateDataStore]
111 ; 111 ;
@@ -115,7 +115,7 @@
115 ;LocalServiceModule = "OpenSim.Services.Connectors.dll:EstateDataRemoteConnector" 115 ;LocalServiceModule = "OpenSim.Services.Connectors.dll:EstateDataRemoteConnector"
116 116
117[EstateService] 117[EstateService]
118 EstateServerURI = "${Const|PrivURL}:${Const|PrivatePort}" 118 EstateServerURI = "${Const|BaseURL}:${Const|PrivatePort}"
119 119
120[Messaging] 120[Messaging]
121 ; === HG ONLY === 121 ; === HG ONLY ===
@@ -128,43 +128,43 @@
128 ; 128 ;
129 ; Change this to your grid-wide grid server 129 ; Change this to your grid-wide grid server
130 ; 130 ;
131 AvatarServerURI = "${Const|PrivURL}:${Const|PrivatePort}" 131 AvatarServerURI = "${Const|BaseURL}:${Const|PrivatePort}"
132 132
133[AgentPreferencesService] 133[AgentPreferencesService]
134 ; 134 ;
135 ; Change this to your grid-wide avatar prefs server 135 ; Change this to your grid-wide avatar prefs server
136 ; 136 ;
137 AgentPreferencesServerURI = "${Const|PrivURL}:${Const|PrivatePort}" 137 AgentPreferencesServerURI = "${Const|BaseURL}:${Const|PrivatePort}"
138 138
139[PresenceService] 139[PresenceService]
140 ; 140 ;
141 ; Change this to your grid-wide presence server 141 ; Change this to your grid-wide presence server
142 ; 142 ;
143 PresenceServerURI = "${Const|PrivURL}:${Const|PrivatePort}" 143 PresenceServerURI = "${Const|BaseURL}:${Const|PrivatePort}"
144 144
145[UserAccountService] 145[UserAccountService]
146 ; 146 ;
147 ; Change this to your grid-wide user accounts server 147 ; Change this to your grid-wide user accounts server
148 ; 148 ;
149 UserAccountServerURI = "${Const|PrivURL}:${Const|PrivatePort}" 149 UserAccountServerURI = "${Const|BaseURL}:${Const|PrivatePort}"
150 150
151[GridUserService] 151[GridUserService]
152 ; 152 ;
153 ; Change this to your grid-wide user accounts server 153 ; Change this to your grid-wide user accounts server
154 ; 154 ;
155 GridUserServerURI = "${Const|PrivURL}:${Const|PrivatePort}" 155 GridUserServerURI = "${Const|BaseURL}:${Const|PrivatePort}"
156 156
157[AuthenticationService] 157[AuthenticationService]
158 ; 158 ;
159 ; Change this to your grid-wide authentication server 159 ; Change this to your grid-wide authentication server
160 ; 160 ;
161 AuthenticationServerURI = "${Const|PrivURL}:${Const|PrivatePort}" 161 AuthenticationServerURI = "${Const|BaseURL}:${Const|PrivatePort}"
162 162
163[FriendsService] 163[FriendsService]
164 ; 164 ;
165 ; Change this to your grid-wide friends server 165 ; Change this to your grid-wide friends server
166 ; 166 ;
167 FriendsServerURI = "${Const|PrivURL}:${Const|PrivatePort}" 167 FriendsServerURI = "${Const|BaseURL}:${Const|PrivatePort}"
168 168
169[HGInventoryAccessModule] 169[HGInventoryAccessModule]
170 ; 170 ;
@@ -223,7 +223,7 @@
223 UserAgentServerURI = "${Const|BaseURL}:${Const|PublicPort}" 223 UserAgentServerURI = "${Const|BaseURL}:${Const|PublicPort}"
224 224
225[MapImageService] 225[MapImageService]
226 MapImageServerURI = "${Const|PrivURL}:${Const|PrivatePort}" 226 MapImageServerURI = "${Const|BaseURL}:${Const|PrivatePort}"
227 227
228[AuthorizationService] 228[AuthorizationService]
229 ; If you have regions with access restrictions 229 ; If you have regions with access restrictions
@@ -244,4 +244,4 @@
244 ;; SimulatorCapability = "00000000-0000-0000-0000-000000000000" 244 ;; SimulatorCapability = "00000000-0000-0000-0000-000000000000"
245 245
246[MuteListService] 246[MuteListService]
247 MuteListServerURI = "${Const|PrivURL}:${Const|PrivatePort}" 247 MuteListServerURI = "${Const|BaseURL}:${Const|PrivatePort}"
diff --git a/bin/config-include/SimBalanced.ini b/bin/config-include/SimBalanced.ini
new file mode 100644
index 0000000..fbf778f
--- /dev/null
+++ b/bin/config-include/SimBalanced.ini
@@ -0,0 +1,889 @@
1;; hopefully a well balanced configuration that works well for everything.
2
3
4[Startup]
5 ; ##
6 ; ## SYSTEM
7 ; ##
8
9 ; Sets the method that OpenSim will use to fire asynchronous
10 ; events. Valid values are UnsafeQueueUserWorkItem,
11 ; QueueUserWorkItem, BeginInvoke, SmartThreadPool, and Thread.
12 ;
13 ; SmartThreadPool is reported to work well on Mono/Linux, but
14 ; UnsafeQueueUserWorkItem has been benchmarked with better
15 ; performance on .NET/Windows
16 ;
17 ; UnsafeQueueUserWorkItem refers to the fact that the code creating the event could elevate its security
18 ; privileges. However, as calling code is trusted anyway this is safe (if you set
19 ; TrustedBinaries = true in the [XEngine] section then you already have to trust that incoming code for other reasons).
20 async_call_method = SmartThreadPool
21
22 ; Max threads to allocate on the FireAndForget thread pool
23 ; when running with the SmartThreadPool option above
24 MaxPoolThreads = 300
25
26 ; Allow certain jobs to be run consecutively in a job engine rather than always concurrently.
27 ; This improves performance in regions with large numbers of connections (in the hundreds).
28 JobEngineEnabled = true
29
30 ; Maximum number of position, rotation and scale changes for each prim that the simulator will store for later undos
31 ; Increasing this number will increase memory usage.
32 MaxPrimUndos = 42
33
34 ; If a viewer attempts to rez a prim larger than the non-physical or physical prim max, clamp the dimensions to the appropriate maximum
35 ; This can be overridden in the region config file.
36 ClampPrimSize = true
37
38 ; If a prim is loaded from an external source, clamp it to Z = 0 if Z is negative.
39 ClampNegativeZ = true
40
41 ; Allow scripts to keep running when they cross region boundaries, rather than being restarted. State is reloaded on the destination region.
42 ; This only applies when crossing to a region running in a different simulator.
43 ; For crossings where the regions are on the same simulator the script is always kept running.
44 AllowScriptCrossing = true
45
46 ; Main Frame time
47 ; This defines the rate of several simulation events.
48 ; Default value should meet most needs.
49 ; It can be reduced to improve the simulation of moving objects, with possible increase of cpu and network loads.
50 ; It should not be less than the physics engine step time.
51 ; Being a integer multiple of it may reduce some jitter in reported physics FPS.
52 ; changing this value, you need to change some of the following *EveryNFrames so their actions timing remains the same
53 FrameTime = 0.0909
54
55 ; Send scheduled updates to objects in the scene
56 ; This must be a whole number
57 UpdateObjectsEveryNFrames = 1
58
59 ; Send position/velocity, etc. updates to agents in the scene
60 ; This must be a whole number
61 UpdateAgentsEveryNFrames = 1
62
63 ; Apply pending forces from physics calculations to an entity.
64 ; This must be a whole number
65 UpdateEntityMovementEveryNFrames = 1
66
67 ; Send coarse location updates to viewers. In a classic viewer, this updates the minimap.
68 ; This must be a whole number
69 UpdateCoarseLocationsEveryNFrames = 50
70
71 ; Physics simulation execution or syncronization, acording to engine. Should be 1
72 ; This must be a whole number
73 UpdatePhysicsEveryNFrames = 1
74
75 ; Send out the on frame event to modules and other listeners. This should probably never deviate from 1.
76 ; This must be a whole number
77 UpdateEventsEveryNFrames = 1
78
79 ; Send terrain updates to viewers
80 ; This must be a whole number
81 UpdateTerrainEveryNFrames = 50
82
83 ; Persitently store any objects which meet the PRIM STORAGE criteria
84 ; This must be a whole number
85 UpdateStorageEveryNFrames = 200
86
87 ; Clean up temp on rez objects.
88 ; This must be a whole number
89 UpdateTempCleaningEveryNSeconds = 180
90
91 ; ##
92 ; ## PRIM STORAGE
93 ; ##
94
95 ; Persistence of changed objects happens during regular sweeps. The following control that behaviour to
96 ; prevent frequently changing objects from heavily loading the region data store.
97 ; If both of these values are set to zero then persistence of all changed objects will happen on every sweep.
98 ;
99 ; Objects will be considered for persistance in the next sweep when they have not changed for this number of seconds
100 MinimumTimeBeforePersistenceConsidered = 60
101 ; Objects will always be considered for persistance in the next sweep if the first change occurred this number of seconds ago
102 MaximumTimeBeforePersistenceConsidered = 600
103
104 ; ##
105 ; ## PHYSICS
106 ; ##
107
108 ; Select a mesher here.
109 ;
110 ; Meshmerizer properly handles complex prims by using triangle meshes.
111 ; Note that only the ODE physics engine currently deals with meshed prims in a satisfactory way
112 ;
113 ; ZeroMesher is faster but leaves the physics engine to model the mesh using the basic shapes that it supports
114 ; Usually this is only a box
115
116 ;meshing = Meshmerizer
117 ;meshing = ZeroMesher
118 ;; select ubODEMeshmerizer only with ubOde physics engine
119 meshing = ubODEMeshmerizer
120
121 ; ubODE and OpenDynamicsEngine does allocate a lot of memory on stack. On linux you may need to increase its limit
122 ; script opensim-ode-sh starts opensim setting that limit. You may need to increase it even more on large regions
123 ; edit the line ulimit -s 262144, and change this last value
124
125 ; if you use Meshmerizer and want sculpt map collisions, setting this to
126 ; to true will store decoded sculpt maps in a special folder in your bin
127 ; folder, which can reduce startup times by reducing asset requests. Some
128 ; versions of mono dont work well when reading the cache files, so set this
129 ; to false if you have compatibility problems.
130 CacheSculptMaps = true
131
132 ;; BulletSim is the default physics engine. It provides the best performance and most functionality.
133 ;; BulletSim supports varregions.
134 ;; OpenDynamicsEngine was the previous default physics engine in OpenSimulator 0.7.6.1 and before.
135 ;; It continues to provide a workable physics implementation. It does not currently support varregions.
136 ;; basicphysics effectively does not model physics at all, making all objects phantom.
137 ;; Default is BulletSim
138 ;physics = BulletSim
139 ;physics = modified_BulletX
140 ;physics = OpenDynamicsEngine
141 ;physics = basicphysics
142 ;physics = POS
143 ;; alternative OpenDynamicsEngine engine. ubODEMeshmerizer meshing above MUST be selected also
144 physics = ubODE
145
146 ; ##
147 ; ## SCRIPT ENGINE
148 ; ##
149
150 ;; Default script engine to use. Currently, we only have XEngine
151 DefaultScriptEngine = "XEngine"
152
153 ; Image decoding. Use CSJ2K for layer boundary decoding if true,
154 ; OpenJPEG if false
155 ; UseCSJ2K = true
156
157
158[Map]
159 ; Map tile options.
160 ; If true, then maptiles are generated using the MapImageModule below.
161 ; If false then the texture referenced by MaptileStaticUUID is used instead, which can also be overridden
162 ; in individual region config file(s). If you do not want to upload map tiles at all, then you will need
163 ; both to set this to false and comment out the [Modules] MapImageServiceModule setting in config-include/
164 GenerateMaptiles = true
165
166 ;WorldMapModule = "WorldMap"
167
168 ; The module to use in order to generate map images.
169 ; MapImageModule is the default. Warp3DImageModule is an alternative experimental module that can
170 ; generate better images.
171 MapImageModule = "Warp3DImageModule"
172
173 ; World map blacklist timeout in seconds
174 ;BlacklistTimeout = 600
175
176 ; Refresh (in seconds) the map tile periodically
177 MaptileRefresh = 0
178
179 ; If not generating maptiles, use this static texture asset ID
180 ;MaptileStaticUUID = "00000000-0000-0000-0000-000000000000"
181
182 ; Draw objects on maptile. This step might take a long time if you've got a large number of
183 ; objects, so you can turn it off here if you'd like.
184 DrawPrimOnMapTile = true
185
186 ; Use terrain texture for maptiles if true, use shaded green if false
187 TextureOnMapTile = true
188
189 ; Texture prims
190 TexturePrims = true
191
192 ; Only texture prims that have a diagonal size greater than this number
193 TexturePrimSize = 5
194
195 ; Attempt to render meshes and sculpties on the map
196 RenderMeshes = true
197
198 UseAntiAliasing = true
199
200
201[Network]
202 ; OpenSim can send multiple simultaneous requests for services such as asset
203 ; retrieval. However, some versions of mono appear to hang when there are too
204 ; many simultaneous requests, default is 30 and is currently applied only to assets
205 ;MaxRequestConcurrency = 30
206
207
208[ClientStack.LindenUDP]
209 ; The client socket receive buffer size determines how many
210 ; incoming requests we can process; the default on .NET is 8192
211 ; which is about 2 4k-sized UDP datagrams. On mono this is
212 ; whatever the underlying operating system has as default; for
213 ; example, ubuntu 8.04 or SLES11 have about 111k, which is about
214 ; 27 4k-sized UDP datagrams (on linux platforms you can [as root]
215 ; do "sysctl net.core.rmem_default" to find out what your system
216 ; uses a default socket receive buffer size.
217 ;
218 ; client_socket_rcvbuf_size allows you to specify the receive
219 ; buffer size LLUDPServer should use. NOTE: this will be limited
220 ; by the system's settings for the maximum client receive buffer
221 ; size (on linux systems you can set that with "sysctl -w
222 ; net.core.rmem_max=X")
223 ;
224 ;client_socket_rcvbuf_size = 8388608
225
226 ; Maximum outbound bytes per second for a single scene. This can be used to
227 ; throttle total outbound UDP traffic for a simulator. The default value is
228 ; 0, meaning no throttling at the scene level. The example given here is
229 ; 20 megabits
230 ;
231 ;scene_throttle_max_bps = 2500000
232
233 ; Maximum bytes per second to send to any single client. This will override
234 ; the user's viewer preference settings. The default value is 0, meaning no
235 ; aggregate throttling on clients (only per-category throttling). The
236 ; example given here is 1.5 megabits
237 ;
238 ;client_throttle_max_bps = 187500
239
240 ; Minimum bytes per second to send to any single client as a result of
241 ; adaptive throttling. Viewer preferences set to a lower number will
242 ; override the settin. The example given here ensures that adaptive
243 ; throttling will never decrease per client bandwidth below 256 kbps.
244 ;
245 ;adaptive_throttle_min_bps = 32000
246
247 ; Adaptive throttling attempts to limit network overload when multiple
248 ; clients login by starting each connection more slowly. Disabled by
249 ; default
250 ;
251 enable_adaptive_throttles = true
252
253 ; Per-client bytes per second rates for the various throttle categories.
254 ; These are default values that will be overridden by clients. These
255 ; defaults are approximately equivalent to the throttles set by the Imprudence
256 ; viewer when maximum bandwidth is set to 350kbps
257
258 ;resend_default = 6625
259 ;land_default = 9125
260 ;wind_default = 1750
261 ;cloud_default = 1750
262 ;task_default = 18500
263 ;texture_default = 18500
264 ;asset_default = 10500
265
266 ; Configures how ObjectUpdates are aggregated. These numbers
267 ; do not literally mean how many updates will be put in each
268 ; packet that goes over the wire, as packets are
269 ; automatically split on a 1400 byte boundary. These control
270 ; the balance between responsiveness of interest list updates
271 ; and total throughput. Higher numbers will ensure more full-
272 ; sized packets and faster sending of data, but more delay in
273 ; updating interest lists
274 ;
275 ;PrimUpdatesPerCallback = 100
276
277 ; TextureSendLimit determines how many packets will be put on
278 ; the outgoing queue each cycle. Like the settings above, this
279 ; is a balance between responsiveness to priority updates and
280 ; total throughput. Higher numbers will give a better
281 ; throughput at the cost of reduced responsiveness to client
282 ; priority changes or transfer aborts
283 ;
284 ;TextureSendLimit = 20
285
286 ; CannibalizeTextureRate allows bandwidth to be moved from the
287 ; UDP texture throttle to the task throttle. Since most viewers
288 ; use HTTP textures, this provides a means of using what is largely
289 ; unused bandwidth in the total throttle. The value is the proportion
290 ; of the texture rate to move to the task queue. It must be between
291 ; 0.0 (none of the bandwidth is cannibalized) and 0.9 (90% of the
292 ; bandwidth is grabbed)
293 ;
294 ; CannibalizeTextureRate = 0.5
295
296 ; The time to wait before disconecting an unresponsive client.
297 ; The time is in seconds. The default is one minute
298 ;
299 ;AckTimeout = 60
300
301 ; The time to wait before disconecting an unresponsive paused client.
302 ; A client can be paused when the file selection dialog is open during file upload.
303 ; This gives extra time to find files via the dialog but will still disconnect if
304 ; the client crashes or loses its network connection
305 ; The time is in seconds. The default is five minutes.
306 ;
307 ;PausedAckTimeout = 300
308
309
310[Appearance]
311 ; Persist avatar baked textures
312 ; Persisting baked textures can speed up login and region border
313 ; crossings especially with large numbers of users, though it
314 ; will store potentially large numbers of textures in your asset
315 ; database
316 PersistBakedTextures = true
317
318 ; Control the delay before appearance is sent to other avatars and
319 ; saved in the avatar service. Attempts to limit the impact caused
320 ; by the very chatty dialog that sets appearance when an avatar
321 ; logs in or teleports into a region; values are in seconds
322 DelayBeforeAppearanceSave = 5
323 DelayBeforeAppearanceSend = 2
324
325 ; If true, avatar appearance information is resent to other avatars in the simulator every 60 seconds.
326 ; This may help with some situations where avatars are persistently grey, though it will not help
327 ; in other situations (e.g. appearance baking failures where the avatar only appears as a cloud to others).
328 ResendAppearanceUpdates = true
329
330 ; Turning this on responds to CachedTexture packets to possibly avoid rebaking the avatar
331 ; on every login
332 ReuseTextures = true
333
334
335[Attachments]
336 ; Controls the number of milliseconds that are slept per 100 prims rezzed in attachments
337 ; Experimental setting to control CPU spiking when avatars with many attachments login/change outfit
338 ; or when multiple avatars with medium level attachments login/change outfit simultaneously.
339 ; If 0 then no throttling is performed.
340 ThrottlePer100PrimsRezzed = 0
341
342
343[Textures]
344 ; If true, textures generated dynamically (i.e. through osSetDynamicTextureData() and similar OSSL functions) are reused where possible
345 ; Chiefly, reuse occurs if a texture has already been generated with identical data and settings, and that texture contains no dynamic components
346 ; (e.g. images pulled from an external HTTP address).
347 ; Reusing previously generated textures results in a much faster update on the viewer but may cause issues if the viewer didn't receive all resolutions of the texture.
348 ; Currently, it will also increase asset cache use since temporary dynamic textures are no longer deleted.
349 ; Hence, currently considered experimental.
350 ; Default is false.
351 ReuseDynamicTextures = true
352
353 ; If true, then textures generated dynamically that have a low data size relative to their pixel size are not reused
354 ; This is to workaround an apparent LL 3.3.4 and earlier viewer bug where such textures are not redisplayed properly when pulled from the viewer cache.
355 ; Only set this to true if you are sure that all the viewers using your simulator will not suffer from this problem.
356 ; This setting only has an affect is ReuseDynamicTextures = true
357 ; Default is false
358 ReuseDynamicLowDataTextures = true
359
360
361[ODEPhysicsSettings]
362 ; ##
363 ; ## Physics stats settings ( most ignored by ubOde )
364 ;
365
366 ; If collect_stats is enabled, then extra stat information is collected which is accessible via the MonitorModule
367 ; (see http://opensimulator.org/wiki/Monitoring_Module for more details).
368 collect_stats = true
369
370 ; ##
371 ; ## Physics logging settings - logfiles are saved to *.DIF files
372 ; ##
373
374 ; default is false
375 ;physics_logging = true
376 ;; every n simulation iterations, the physics snapshot file is updated
377 ;physics_logging_interval = 50
378 ;; append to existing physics logfile, or overwrite existing logfiles?
379 ;physics_logging_append_existing_logfile = true
380
381 ;##
382 ;## World Settings
383 ;##
384
385 ; World Step size.
386 ; with legacy ODE this value needs to be close to 0.02s
387 ; with ubOde this value can be reduced to improve simulation quality with the cost of higher cpu load
388 ; you will need to test acording to you needs
389 ; choosing a value that is a integer sub multiple of FrameRate reduces some jitter on reported physics FPS
390 world_stepsize = 0.01818
391 ; number of iterations of constrains solver, higher should improve results
392 ; up to a point where acumulated math errors eliminate the improvement
393 ; more steps may increase CPU load. No real gain in changing
394 world_solver_iterations = 10
395
396 ;Spaces level settings. Affects memory consumption vs Collider CPU time for avatar and physical prim
397 ; defines spaces partition cells min and max sizes == 2^value
398 world_hashspace_level_low = -5
399 world_hashSpace_level_high = 12
400
401 meters_in_small_space = 29.9
402
403
404 ; ##
405 ; ## Contact properties. (the stuff that happens when things come in contact with each other)
406 ; ##
407
408 ; surface layer around geometries other geometries can sink into before generating a contact
409 world_contact_surface_layer = 0.001
410
411 ; Filtering collisions helps keep things stable physics wise, but sometimes
412 ; it can be overzealous. If you notice bouncing, chances are it's that.
413 filter_collisions = true
414
415 ; Non Moving Terrain Contact (avatar isn't moving)
416 nm_terraincontact_friction = 255.0
417 nm_terraincontact_bounce = 0.1
418 nm_terraincontact_erp = 0.1025
419
420 ; Moving Terrain Contact (avatar is moving)
421 m_terraincontact_friction = 75.0
422 m_terraincontact_bounce = 0.05
423 m_terrainContact_erp = 0.05025
424
425 ; Moving Avatar to object Contact
426 m_avatarobjectcontact_friction = 75.0
427 m_avatarobjectcontact_bounce = 0.1
428
429 ; Object to Object Contact and Non-Moving Avatar to object
430 objectcontact_friction = 250.0
431 objectcontact_bounce = 0.2
432
433 ; ##
434 ; ## Avatar Control
435 ; ##
436
437 ; PID Controller Settings. These affect the math that causes the avatar to reach the
438 ; desired velocity
439 ; See http://en.wikipedia.org/wiki/PID_controller
440
441 av_pid_derivative = 2200.0
442 av_pid_proportional = 900.0
443
444 ; specifies if the capsule should be tilted (=true; old compatibility mode)
445 ; or straight up-and-down (=false; better and more consistent physics behavior)
446 av_capsule_tilted = false
447
448 ; Movement. Smaller is faster.
449
450 ; speed of movement with Always Run off
451 av_movement_divisor_walk = 1.3
452
453 ; speed of movement with Always Run on
454 av_movement_divisor_run = 0.8
455
456 ; When the avatar flies, it will be moved up by this amount off the ground (in meters)
457 minimum_ground_flight_offset = 3.0
458
459 ; Plant avatar. This reduces the effect of physical contacts with the avatar.
460 ; If you have a group of unruly and rude visitors that bump each other, turn this on to make that less attractive.
461 ; The avatar still allows a small movement based on the PID settings above. Stronger PID settings AND this active
462 ; will lock the avatar in place
463 av_planted = false
464
465 ; No Avatar Avatar Collissions. This causes avatar to be able to walk through each other as if they're ghosts but still interact with the environment
466 av_av_collisions_off = false
467
468 ; ##
469 ; ## Object options
470 ; ##
471
472 ; amount of ODE steps where object is non moving for ODE to automatically put it to sleep
473 body_frames_auto_disable = 20
474
475 ; used to control llMove2Target
476 body_pid_derivative = 35
477 body_pid_gain = 25
478
479 ; maximum number of contact points to generate per collision
480 contacts_per_collision = 80
481
482 ; start throttling the object updates if object comes in contact with 3 or more other objects
483 geom_contactpoints_start_throttling = 3
484
485 ; send 1 update for every x updates below when throttled
486 geom_updates_before_throttled_update = 15
487
488 ; ##
489 ; ## Sculpted Prim settings
490 ; ##
491
492 ; Do we want to mesh sculpted prim to collide like they look?
493 ; If you are seeing sculpt texture decode problems
494 ; (messages such as "Decoded image with unhandled number of components: 0 shortly followed by a physcs exception")
495 ; then you might want to try setting this to false.
496 mesh_sculpted_prim = true
497
498 ; number^2 non-physical level of detail of the sculpt texture. 32x32 - 1024 verticies
499 mesh_lod = 32
500
501 ; number^2 physical level of detail of the sculpt texture. 16x16 - 256 verticies
502 mesh_physical_lod = 16
503
504 ; ##
505 ; ## additional meshing options
506 ; ##
507
508 ; Physics needs to create internal meshs (or convert the object meshs or scultps)
509 ; for all prims except simple boxes and spheres.
510
511 ; collisions of small objects againts larger ones can have a increased CPU load cost
512 ; so this are represented by a simple BOX
513 ; if all their scale dimensions are lower or equal to this option. Default is 0.1m
514 ; (ubOde only)
515 ; MinSizeToMeshmerize = 0.1
516
517
518[BulletSim]
519 ; There are two bullet physics libraries, bulletunmanaged is the default and is a
520 ; native c++ dll bulletxna is a managed C# dll. They have comparible functionality
521 ; but the c++ one is much faster.
522 ;BulletEngine = "bulletunmanaged"
523 BulletEngine = "bulletxna"
524
525 ; BulletSim can run on its own thread independent of the simulator's heartbeat
526 ; thread. Enabling this will not let the physics engine slow down avatar movement, etc.
527 UseSeparatePhysicsThread = true
528
529 ; Terrain implementation can use either Bullet's heightField or BulletSim can build
530 ; a mesh. 0=heightField, 1=mesh
531 TerrainImplementation = 0
532 ; For mesh terrain, the detail of the created mesh. '1' gives 256x256 (heightfield
533 ; resolution). '2' gives 512x512. Etc. Cannot be larger than '4'. Higher
534 ; magnifications use lots of memory.
535 TerrainMeshMagnification = 1
536
537 ; Should avatars collide with each other?
538 AvatarToAvatarCollisionsByDefault = true
539
540 ; Default linkset implmentation
541 ; 'Constraint' uses physics constraints to hold linkset together. 'Compound'
542 ; builds a compound shape from the children shapes to create a single physical
543 ; shape. 'Compound' uses a lot less CPU time.
544 LinkImplementation = 1 ; 0=constraint, 1=compound
545
546 ; If 'true', offset a linkset's origin based on mass of linkset parts.
547 LinksetOffsetCenterOfMass = false
548
549 ; If 'true', turn scuplties into meshes
550 MeshSculptedPrim = true
551
552 ; If 'true', force simple prims (box and sphere) to be meshed
553 ; If 'false', the Bullet native special case shape is used for square rectangles
554 ; and even dimensioned spheres.
555 ForceSimplePrimMeshing = true
556
557 ; If 'true', when creating meshes, remove all triangles that have two equal vertexes.
558 ; Happens often in sculpties. If turned off, there will be some doorways
559 ; that cannot be walked through.
560 ShouldRemoveZeroWidthTriangles = true
561
562 ; If 'true', use convex hull definition in mesh asset if present.
563 ShouldUseAssetHulls = true
564
565 ; If there are thousands of physical objects, these maximums should be increased.
566 MaxCollisionsPerFrame = 2048
567 MaxUpdatesPerFrame = 8192
568
569 ; Detailed physics debug logging. Very verbose.
570 PhysicsLoggingEnabled = False
571 PhysicsLoggingDir = "."
572 VehicleLoggingEnabled = False
573
574
575[Sun]
576 ; send a Sun update every update_interval # of frames. A lower number will
577 ; make for smoother sun transition at the cost of network
578 ;update_interval = 100
579
580
581[Wind]
582 ; How often should wind be updated, as a function of world frames. Approximately 50 frames a second
583 wind_update_rate = 150
584
585 ; The Default Wind Plugin to load
586 wind_plugin = SimpleRandomWind
587
588
589[Cloud]
590 ; update interval for the cloud cover data returned by llCloud().
591 ; default is 1000
592 cloud_update_rate = 1000
593
594
595[Trees]
596 ; active_trees allows module to change its trees in time.
597 ; some will be deleted, others created and rest may grow
598 ; default is false. You can change it with console command tree active true | false later
599 active_trees = false
600 ; the trees change execution time rate (in ms)
601 update_rate = 1000
602
603 ; allow the trees to grow.
604 ; DANGER
605 ; this option causes high network use on the order of
606 ; NumberOfTrees * NumberAvatars * 1000 / update_rate udp packets per second
607 allowGrow = false
608
609
610[LL-Functions]
611 ; Maximum number of llListen events we allow over the entire region.
612 ; Set this to 0 to have no limit imposed
613 max_listens_per_region = 0
614
615 ; Maximum number of llListen events we allow per script
616 ; Set this to 0 to have no limit imposed.
617 max_listens_per_script = 0
618
619 ; Maximum number of external urls that scripts can set up in this simulator (e.g. via llRequestURL())
620 max_external_urls_per_simulator = 256
621
622 ; Use size boxes instead of meshed prims, sculpts and mesh when calculating bounding boxes.
623 ; Speeds up calculations but can make them inaccurate, in some cases very inaccurate.
624 UseSimpleBoxesInGetBoundingBox = false
625
626 ; Use llCastRay V3 if true.
627 ; Implements llCastRay similar but not identical to Second Life.
628 ; See http://wiki.secondlife.com/wiki/LlCastRay .
629 ; NEW
630 ; Meshes prims for good accuracy in ray hit detection,
631 ; handling basic and tortured prims, sculpts and meshes.
632 ; Uses ellipsoid, correctly sized avatar capsules.
633 ; Handles complex terrain, multi-prim objects and seated avatars.
634 ; Implements throttling and the status codes
635 ; RCERR_UNKNOWN and RCERR_CAST_TIME_EXCEEDED,
636 ; so LSL scripts need to handle these responses and RCERR_SIM_PERF_LOW.
637 ; WARNING
638 ; Can be faster on some servers and scenes, but slower on others,
639 ; compared to previous version of llCastRay in OpenSimulator.
640 ; Is in most cases considerably slower than llCastRay in Second Life.
641 ; Generates geometry meshes and can therefore use much system resources.
642 UseLlCastRayV3 = true
643
644 ; Accepted calculation precision error in calculations in llCastRay V3
645 FloatToleranceInLlCastRay = 0.00001
646
647 ; Accepted distance difference between duplicate hits in llCastRay V3
648 FloatTolerance2InLlCastRay = 0.001
649
650 ; Detail level when rendering prims in llCastRay V3
651 ; 0 = Low, 1 = Medium, 2 = High, 3 = Highest, higer level gives better accuracy but slower call
652 PrimDetailLevelInLlCastRay = 1
653
654 ; Detail level when rendering sculpts in llCastRay V3
655 ; 0 = Low, 1 = Medium, 2 = High, 3 = Highest, higer level gives better accuracy but slower call
656 SculptDetailLevelInLlCastRay = 1
657
658 ; Detail level when rendering meshes in llCastRay V3
659 ; 0 = Low, 1 = Medium, 2 = High, 3 = Highest, higer level gives better accuracy but slower call
660 MeshDetailLevelInLlCastRay = 3
661
662 ; Detail level when rendering avatar capsules in llCastRay V3
663 ; 0 = Low, 1 = Medium, 2 = High, 3 = Highest, higer level gives better accuracy but slower call
664 AvatarDetailLevelInLlCastRay = 1
665
666 ; Maximum number of returned hits from llCastRay V3
667 MaxHitsInLlCastRay = 16
668
669 ; Maximum number of returned hits per prim from llCastRay V3
670 MaxHitsPerPrimInLlCastRay = 16
671
672 ; Maximum number of returned hits per object from llCastRay V3
673 MaxHitsPerObjectInLlCastRay = 16
674
675 ; Report ray intersections with surfaces on exits from a prim as hits in llCastRay V3 if true
676 DetectExitHitsInLlCastRay = false
677
678 ; Detect attachments in llCastRay V3 if true
679 DoAttachmentsInLlCastRay = false
680
681 ; Throttle period length in ms before which all old llCastRay use is discarded in llCastRay V3
682 ; The sum of AvailableTimeInMsPerRegionInLlCastRay and all AvailableTimeInMsPerAvatarInLlCastRay should not exceed this
683 ThrottleTimeInMsInLlCastRay = 200
684
685 ; Available time in ms for llCastRay per throttle period and 65536 m2 land area in llCastRay V3
686 AvailableTimeInMsPerRegionInLlCastRay = 40
687
688 ; Available time in ms for llCastRay per throttle period and avatar when script in attachment or vehicle in llCastRay V3
689 AvailableTimeInMsPerAvatarInLlCastRay = 10
690
691 ; Required available time in ms left to perform a new llCastRay in llCastRay V3
692 RequiredAvailableTimeInMsInLlCastRay = 2
693
694 ; Maximum available time in ms possible in llCastRay V3, not to get too high values with varregions
695 MaximumAvailableTimeInMsInLlCastRay = 40
696
697 ; Use cached meshes in llCastRay V3 if true
698 ; Improves performance but uses more memory
699 UseMeshCacheInLlCastRay = true
700
701
702[XEngine]
703 ; How many threads to keep alive even if nothing is happening
704 MinThreads = 2
705
706 ; How many threads to start at maximum load
707 MaxThreads = 100
708
709 ; Time a thread must be idle (in seconds) before it dies
710 IdleTimeout = 60
711
712 ; Thread priority ("Lowest", "BelowNormal", "Normal", "AboveNormal", "Highest")
713 Priority = "Normal"
714
715 ; Maximum number of events to queue for a script (excluding timers)
716 MaxScriptEventQueue = 3000
717
718 ; Stack size per thread created
719 ThreadStackSize = 262144
720
721 ; Set this to true to load each script into a separate
722 ; AppDomain. Setting this to false will load all script assemblies into the
723 ; current AppDomain, which will reduce the initial per-script memory overhead,
724 ; but deleted scripts stay inactive using memory.
725 ; Significantly improving script loading times.
726 ; However, setting this to false will also prevent script DLLs from being unloaded from memory if the script is deleted.
727 ; This may cause an OutOfMemory problem over time when avatars with scripted attachments move in and out of the region.
728 ; This may only be a problem if regions stay alive for a long time with lots of scripts added or edited.
729 ; At this time some mono versions seem to have problems with the true option,
730 ; so default is now false until a fix is found, to simply life of less technical skilled users.
731 ;
732 ; At least on my desktop, this seems to be what soaks up 4 - 5 times the memory.
733 AppDomainLoading = false
734
735 ; Controls whether previously compiled scripts DLLs are deleted on sim restart.
736 ; If you set this to false then startup will be considerably faster since scripts won't need to be recompiled.
737 ; It should be true on first run after updating opensim binary version
738 ; after first run you can change to false.
739 ; You can also set it to false and delete the script DLLs by hand
740 ; This does not delete cached scripts state.
741 DeleteScriptsOnStartup = true
742
743 ; CompactMemOnLoad
744 ; forces calls to memory garbage collector before loading each script DLL during region startup.
745 ; Peak memory usage is reduced and region starts with a more compacted memory allocation.
746 ; But this costs a lot of time, so region load will take a lot longer.
747 ; it is more usefull if there are no previously compiled scripts DLLs (or DeleteScriptsOnStartup = true)
748 CompactMemOnLoad = true
749
750 ; Controls whether scripts are stopped by aborting their threads externally (abort)
751 ; or by co-operative checks inserted by OpenSimulator into compiled script (co-op).
752 ; co-op will be more stable as aborting threads can cause instability.
753 ; abort was the default option in OpenSimulator 0.8 and before.
754 ; If this setting is changed between co-op and abort, then existing scripts will automatically be recompiled if necessary.
755 ; However, the setting change will not take affect until the next time you restart the simulator.
756 ; Setting changes will not affect state information stored for scripts.
757 ScriptStopStrategy = co-op
758
759 ; Rate to poll for asynchronous command replies (ms)
760 ; currently unused
761 ;AsyncLLCommandLoopms = 50
762
763 ; Compile debug info (line numbers) into the script assemblies
764 CompileWithDebugInformation = true
765
766 ; Interval (s) between background save of script states
767 SaveInterval = 120
768
769 ; Interval (s) between maintenance runs (0 = disable)
770 MaintenanceInterval = 10
771
772 ; Amount of time in milliseconds we will wait for an event to completely normally when a script stop is requested
773 ; before aborting the thread (such as when an object containing scripts is taken into inventory).
774 WaitForEventCompletionOnScriptStop = 1000
775
776 ; Minimum settable timer interval. Any timer setting less than this is
777 ; rounded up to this minimum interval.
778 MinTimerInterval = 0.1
779
780 ; Sensor settings
781 SensorMaxRange = 1024.0
782 SensorMaxResults = 64
783
784
785[Groups]
786 ; Groups data is cached for this number of seconds before another request is made to the groups service
787 ; Set to 0 to disable the cache.
788 ; Default is 30 seconds
789 GroupsCacheTimeout = 30
790
791
792[PacketPool]
793 ;RecyclePackets = true
794 ;RecycleDataBlocks = true
795
796 ; If true, then the basic packet objects used to receive data are also recycled, not just the LLUDP packets.
797 ; This reduces data churn
798 RecycleBaseUDPPackets = true
799
800
801[InterestManagement]
802 ; This section controls how state updates are prioritized for each client
803 ; Valid values are BestAvatarResponsiveness, Time, Distance,
804 ; SimpleAngularDistance, and FrontBack
805 UpdatePrioritizationScheme = BestAvatarResponsiveness
806 ReprioritizationEnabled = true
807 ReprioritizationInterval = 2000.0
808 RootReprioritizationDistance = 10.0
809 ChildReprioritizationDistance = 20.0
810
811 ; TEST OPTION KEEP AS FALSE
812 ; if true, don't send object updates if outside view range
813 ObjectsCullingByDistance = false
814
815 ; If n > 1, only every n UDP terse updates will be sent to observers of an avatar that are in the same region
816 ; Updates will always be sent to the avatar that the update addresses and if av velocity is effectively zero (to prevent drift due to missing updates).
817 ; n > 1 will reduce UDP traffic but will lead to laggier movement observed in other avatars.
818 RootTerseUpdatePeriod = 0
819
820 ; If n > 1, only every n UDP terse updates will be sent to observers of an avatar that are in another region
821 ; n > 1 will reduce UDP traffic but may lead to laggier movement observed in other avatars, though values up to 4 may not generate a noticeable effect.
822 ChildTerseUpdatePeriod = 0
823
824 ; Send an update to clients if the difference from the last sent avatar position is greater than this tolerance
825 RootPositionUpdateTolerance = 0.05
826
827 ; Send an update to clients if the euclidian difference from the last sent avatar rotation is greater than this tolerance
828 RootRotationUpdateTolerance = 0.1
829
830 ; Send an update to clients if the difference from the last sent avatar velocity is greater than this tolerance
831 RootVelocityUpdateTolerance = 0.001
832
833
834[Statistics]
835 ; NumberOfFrames is used in a moving average calculation, where NumberOfFrames is the number of frames
836 ; to include in the averaging calculations
837 NumberOfFrames=10
838
839
840[Terrain]
841 ; If 'true' each avatar is only sent terrain patches within their view distance
842 ; This also changes the region terrain loading from 'lawn mower' to ordered around
843 ; the avatar outward.
844 SendTerrainUpdatesByViewDistance = True
845
846
847[LandManagement]
848 ; When editing terrain or objects, parcel layer info is updated in the viewer.
849 ; This can be expensive for large regions. If this variable is 'true', only the
850 ; parcel layer data around the area of interest is sent. The parcel layer info
851 ; is sent for 'ParcelLayerViewDistance' around the interest point.
852 ; If 'ParcelLayerViewDistance' is >= 128, the operation for legacy sized regions
853 ; will be what it has always been (send the whole region's parcel layer info).
854 ; Other parcel updates (login, changing parcel ownership, ...) will still send
855 ; whole region.
856 LimitParcelLayerUpdateDistance = true
857 ParcelLayerViewDistance = 1024
858
859
860;; If you are using a simian grid frontend you can enable
861;; this module to upload tile images for the mapping fn
862;;
863[SimianGridMaptiles]
864 RefreshTime = 3600
865
866
867;;
868;; These are defaults that are overwritten below in [Architecture].
869;; These defaults allow OpenSim to work out of the box with
870;; zero configuration
871;;
872[AssetService]
873 ; Disable this to prevent the default asset set from being inserted into the
874 ; asset store each time the region starts
875 AssetLoaderEnabled = false
876
877
878[AutoBackupModule]
879 ;; default is module is disabled at the top level
880 AutoBackupModuleEnabled = false
881
882
883[ServiceThrottle]
884 ;; Default time interval (in ms) for the throttle service thread to wake up
885 Interval = 5000
886
887
888[Materials]
889 MaxMaterialsPerTransaction = 50
diff --git a/bin/config-include/SimDefault.ini b/bin/config-include/SimDefault.ini
new file mode 100644
index 0000000..3f2e713
--- /dev/null
+++ b/bin/config-include/SimDefault.ini
@@ -0,0 +1,884 @@
1[Startup]
2 ; ##
3 ; ## SYSTEM
4 ; ##
5
6 ; Sets the method that OpenSim will use to fire asynchronous
7 ; events. Valid values are UnsafeQueueUserWorkItem,
8 ; QueueUserWorkItem, BeginInvoke, SmartThreadPool, and Thread.
9 ;
10 ; SmartThreadPool is reported to work well on Mono/Linux, but
11 ; UnsafeQueueUserWorkItem has been benchmarked with better
12 ; performance on .NET/Windows
13 ;
14 ; UnsafeQueueUserWorkItem refers to the fact that the code creating the event could elevate its security
15 ; privileges. However, as calling code is trusted anyway this is safe (if you set
16 ; TrustedBinaries = true in the [XEngine] section then you already have to trust that incoming code for other reasons).
17 async_call_method = SmartThreadPool
18
19 ; Max threads to allocate on the FireAndForget thread pool
20 ; when running with the SmartThreadPool option above
21 MaxPoolThreads = 300
22
23 ; Allow certain jobs to be run consecutively in a job engine rather than always concurrently.
24 ; This improves performance in regions with large numbers of connections (in the hundreds).
25 JobEngineEnabled = true
26
27 ; Maximum number of position, rotation and scale changes for each prim that the simulator will store for later undos
28 ; Increasing this number will increase memory usage.
29 MaxPrimUndos = 20
30
31 ; If a viewer attempts to rez a prim larger than the non-physical or physical prim max, clamp the dimensions to the appropriate maximum
32 ; This can be overridden in the region config file.
33 ClampPrimSize = false
34
35 ; If a prim is loaded from an external source, clamp it to Z = 0 if Z is negative.
36 ClampNegativeZ = false
37
38 ; Allow scripts to keep running when they cross region boundaries, rather than being restarted. State is reloaded on the destination region.
39 ; This only applies when crossing to a region running in a different simulator.
40 ; For crossings where the regions are on the same simulator the script is always kept running.
41 AllowScriptCrossing = true
42
43 ; Main Frame time
44 ; This defines the rate of several simulation events.
45 ; Default value should meet most needs.
46 ; It can be reduced to improve the simulation of moving objects, with possible increase of cpu and network loads.
47 ; It should not be less than the physics engine step time.
48 ; Being a integer multiple of it may reduce some jitter in reported physics FPS.
49 ; changing this value, you need to change some of the following *EveryNFrames so their actions timing remains the same
50 FrameTime = 0.0909
51
52 ; Send scheduled updates to objects in the scene
53 ; This must be a whole number
54 UpdateObjectsEveryNFrames = 1
55
56 ; Send position/velocity, etc. updates to agents in the scene
57 ; This must be a whole number
58 UpdateAgentsEveryNFrames = 1
59
60 ; Apply pending forces from physics calculations to an entity.
61 ; This must be a whole number
62 UpdateEntityMovementEveryNFrames = 1
63
64 ; Send coarse location updates to viewers. In a classic viewer, this updates the minimap.
65 ; This must be a whole number
66 UpdateCoarseLocationsEveryNFrames = 50
67
68 ; Physics simulation execution or syncronization, acording to engine. Should be 1
69 ; This must be a whole number
70 UpdatePhysicsEveryNFrames = 1
71
72 ; Send out the on frame event to modules and other listeners. This should probably never deviate from 1.
73 ; This must be a whole number
74 UpdateEventsEveryNFrames = 1
75
76 ; Send terrain updates to viewers
77 ; This must be a whole number
78 UpdateTerrainEveryNFrames = 50
79
80 ; Persitently store any objects which meet the PRIM STORAGE criteria
81 ; This must be a whole number
82 UpdateStorageEveryNFrames = 200
83
84 ; Clean up temp on rez objects.
85 ; This must be a whole number
86 UpdateTempCleaningEveryNSeconds = 180
87
88 ; ##
89 ; ## PRIM STORAGE
90 ; ##
91
92 ; Persistence of changed objects happens during regular sweeps. The following control that behaviour to
93 ; prevent frequently changing objects from heavily loading the region data store.
94 ; If both of these values are set to zero then persistence of all changed objects will happen on every sweep.
95 ;
96 ; Objects will be considered for persistance in the next sweep when they have not changed for this number of seconds
97 MinimumTimeBeforePersistenceConsidered = 60
98 ; Objects will always be considered for persistance in the next sweep if the first change occurred this number of seconds ago
99 MaximumTimeBeforePersistenceConsidered = 600
100
101 ; ##
102 ; ## PHYSICS
103 ; ##
104
105 ; Select a mesher here.
106 ;
107 ; Meshmerizer properly handles complex prims by using triangle meshes.
108 ; Note that only the ODE physics engine currently deals with meshed prims in a satisfactory way
109 ;
110 ; ZeroMesher is faster but leaves the physics engine to model the mesh using the basic shapes that it supports
111 ; Usually this is only a box
112
113 ;meshing = Meshmerizer
114 ;meshing = ZeroMesher
115 ;; select ubODEMeshmerizer only with ubOde physics engine
116 meshing = ubODEMeshmerizer
117
118 ; ubODE and OpenDynamicsEngine does allocate a lot of memory on stack. On linux you may need to increase its limit
119 ; script opensim-ode-sh starts opensim setting that limit. You may need to increase it even more on large regions
120 ; edit the line ulimit -s 262144, and change this last value
121
122 ; if you use Meshmerizer and want sculpt map collisions, setting this to
123 ; to true will store decoded sculpt maps in a special folder in your bin
124 ; folder, which can reduce startup times by reducing asset requests. Some
125 ; versions of mono dont work well when reading the cache files, so set this
126 ; to false if you have compatibility problems.
127 CacheSculptMaps = true
128
129 ;; BulletSim is the default physics engine. It provides the best performance and most functionality.
130 ;; BulletSim supports varregions.
131 ;; OpenDynamicsEngine was the previous default physics engine in OpenSimulator 0.7.6.1 and before.
132 ;; It continues to provide a workable physics implementation. It does not currently support varregions.
133 ;; basicphysics effectively does not model physics at all, making all objects phantom.
134 ;; Default is BulletSim
135 ;physics = BulletSim
136 ;physics = modified_BulletX
137 ;physics = OpenDynamicsEngine
138 ;physics = basicphysics
139 ;physics = POS
140 ;; alternative OpenDynamicsEngine engine. ubODEMeshmerizer meshing above MUST be selected also
141 physics = ubODE
142
143 ; ##
144 ; ## SCRIPT ENGINE
145 ; ##
146
147 ;; Default script engine to use. Currently, we only have XEngine
148 DefaultScriptEngine = "XEngine"
149
150 ; Image decoding. Use CSJ2K for layer boundary decoding if true,
151 ; OpenJPEG if false
152 ; UseCSJ2K = true
153
154
155[Map]
156 ; Map tile options.
157 ; If true, then maptiles are generated using the MapImageModule below.
158 ; If false then the texture referenced by MaptileStaticUUID is used instead, which can also be overridden
159 ; in individual region config file(s). If you do not want to upload map tiles at all, then you will need
160 ; both to set this to false and comment out the [Modules] MapImageServiceModule setting in config-include/
161 GenerateMaptiles = true
162
163 ;WorldMapModule = "WorldMap"
164
165 ; The module to use in order to generate map images.
166 ; MapImageModule is the default. Warp3DImageModule is an alternative experimental module that can
167 ; generate better images.
168 MapImageModule = "MapImageModule"
169
170 ; World map blacklist timeout in seconds
171 ;BlacklistTimeout = 600
172
173 ; Refresh (in seconds) the map tile periodically
174 MaptileRefresh = 0
175
176 ; If not generating maptiles, use this static texture asset ID
177 ;MaptileStaticUUID = "00000000-0000-0000-0000-000000000000"
178
179 ; Draw objects on maptile. This step might take a long time if you've got a large number of
180 ; objects, so you can turn it off here if you'd like.
181 DrawPrimOnMapTile = true
182
183 ; Use terrain texture for maptiles if true, use shaded green if false
184 TextureOnMapTile = true
185
186 ; Texture prims
187 TexturePrims = true
188
189 ; Only texture prims that have a diagonal size greater than this number
190 TexturePrimSize = 48
191
192 ; Attempt to render meshes and sculpties on the map
193 RenderMeshes = false
194
195 ;UseAntiAliasing = true
196
197
198[Network]
199 ; OpenSim can send multiple simultaneous requests for services such as asset
200 ; retrieval. However, some versions of mono appear to hang when there are too
201 ; many simultaneous requests, default is 30 and is currently applied only to assets
202 ;MaxRequestConcurrency = 30
203
204
205[ClientStack.LindenUDP]
206 ; The client socket receive buffer size determines how many
207 ; incoming requests we can process; the default on .NET is 8192
208 ; which is about 2 4k-sized UDP datagrams. On mono this is
209 ; whatever the underlying operating system has as default; for
210 ; example, ubuntu 8.04 or SLES11 have about 111k, which is about
211 ; 27 4k-sized UDP datagrams (on linux platforms you can [as root]
212 ; do "sysctl net.core.rmem_default" to find out what your system
213 ; uses a default socket receive buffer size.
214 ;
215 ; client_socket_rcvbuf_size allows you to specify the receive
216 ; buffer size LLUDPServer should use. NOTE: this will be limited
217 ; by the system's settings for the maximum client receive buffer
218 ; size (on linux systems you can set that with "sysctl -w
219 ; net.core.rmem_max=X")
220 ;
221 ;client_socket_rcvbuf_size = 8388608
222
223 ; Maximum outbound bytes per second for a single scene. This can be used to
224 ; throttle total outbound UDP traffic for a simulator. The default value is
225 ; 0, meaning no throttling at the scene level. The example given here is
226 ; 20 megabits
227 ;
228 ;scene_throttle_max_bps = 2500000
229
230 ; Maximum bytes per second to send to any single client. This will override
231 ; the user's viewer preference settings. The default value is 0, meaning no
232 ; aggregate throttling on clients (only per-category throttling). The
233 ; example given here is 1.5 megabits
234 ;
235 ;client_throttle_max_bps = 187500
236
237 ; Minimum bytes per second to send to any single client as a result of
238 ; adaptive throttling. Viewer preferences set to a lower number will
239 ; override the settin. The example given here ensures that adaptive
240 ; throttling will never decrease per client bandwidth below 256 kbps.
241 ;
242 ;adaptive_throttle_min_bps = 32000
243
244 ; Adaptive throttling attempts to limit network overload when multiple
245 ; clients login by starting each connection more slowly. Disabled by
246 ; default
247 ;
248 enable_adaptive_throttles = false
249
250 ; Per-client bytes per second rates for the various throttle categories.
251 ; These are default values that will be overridden by clients. These
252 ; defaults are approximately equivalent to the throttles set by the Imprudence
253 ; viewer when maximum bandwidth is set to 350kbps
254
255 ;resend_default = 6625
256 ;land_default = 9125
257 ;wind_default = 1750
258 ;cloud_default = 1750
259 ;task_default = 18500
260 ;texture_default = 18500
261 ;asset_default = 10500
262
263 ; Configures how ObjectUpdates are aggregated. These numbers
264 ; do not literally mean how many updates will be put in each
265 ; packet that goes over the wire, as packets are
266 ; automatically split on a 1400 byte boundary. These control
267 ; the balance between responsiveness of interest list updates
268 ; and total throughput. Higher numbers will ensure more full-
269 ; sized packets and faster sending of data, but more delay in
270 ; updating interest lists
271 ;
272 ;PrimUpdatesPerCallback = 100
273
274 ; TextureSendLimit determines how many packets will be put on
275 ; the outgoing queue each cycle. Like the settings above, this
276 ; is a balance between responsiveness to priority updates and
277 ; total throughput. Higher numbers will give a better
278 ; throughput at the cost of reduced responsiveness to client
279 ; priority changes or transfer aborts
280 ;
281 ;TextureSendLimit = 20
282
283 ; CannibalizeTextureRate allows bandwidth to be moved from the
284 ; UDP texture throttle to the task throttle. Since most viewers
285 ; use HTTP textures, this provides a means of using what is largely
286 ; unused bandwidth in the total throttle. The value is the proportion
287 ; of the texture rate to move to the task queue. It must be between
288 ; 0.0 (none of the bandwidth is cannibalized) and 0.9 (90% of the
289 ; bandwidth is grabbed)
290 ;
291 ; CannibalizeTextureRate = 0.5
292
293 ; The time to wait before disconecting an unresponsive client.
294 ; The time is in seconds. The default is one minute
295 ;
296 ;AckTimeout = 60
297
298 ; The time to wait before disconecting an unresponsive paused client.
299 ; A client can be paused when the file selection dialog is open during file upload.
300 ; This gives extra time to find files via the dialog but will still disconnect if
301 ; the client crashes or loses its network connection
302 ; The time is in seconds. The default is five minutes.
303 ;
304 ;PausedAckTimeout = 300
305
306
307[Appearance]
308 ; Persist avatar baked textures
309 ; Persisting baked textures can speed up login and region border
310 ; crossings especially with large numbers of users, though it
311 ; will store potentially large numbers of textures in your asset
312 ; database
313 PersistBakedTextures = false
314
315 ; Control the delay before appearance is sent to other avatars and
316 ; saved in the avatar service. Attempts to limit the impact caused
317 ; by the very chatty dialog that sets appearance when an avatar
318 ; logs in or teleports into a region; values are in seconds
319 DelayBeforeAppearanceSave = 5
320 DelayBeforeAppearanceSend = 2
321
322 ; If true, avatar appearance information is resent to other avatars in the simulator every 60 seconds.
323 ; This may help with some situations where avatars are persistently grey, though it will not help
324 ; in other situations (e.g. appearance baking failures where the avatar only appears as a cloud to others).
325 ResendAppearanceUpdates = false
326
327 ; Turning this on responds to CachedTexture packets to possibly avoid rebaking the avatar
328 ; on every login
329 ReuseTextures = false
330
331
332[Attachments]
333 ; Controls the number of milliseconds that are slept per 100 prims rezzed in attachments
334 ; Experimental setting to control CPU spiking when avatars with many attachments login/change outfit
335 ; or when multiple avatars with medium level attachments login/change outfit simultaneously.
336 ; If 0 then no throttling is performed.
337 ThrottlePer100PrimsRezzed = 0
338
339
340[Textures]
341 ; If true, textures generated dynamically (i.e. through osSetDynamicTextureData() and similar OSSL functions) are reused where possible
342 ; Chiefly, reuse occurs if a texture has already been generated with identical data and settings, and that texture contains no dynamic components
343 ; (e.g. images pulled from an external HTTP address).
344 ; Reusing previously generated textures results in a much faster update on the viewer but may cause issues if the viewer didn't receive all resolutions of the texture.
345 ; Currently, it will also increase asset cache use since temporary dynamic textures are no longer deleted.
346 ; Hence, currently considered experimental.
347 ; Default is false.
348 ReuseDynamicTextures = false
349
350 ; If true, then textures generated dynamically that have a low data size relative to their pixel size are not reused
351 ; This is to workaround an apparent LL 3.3.4 and earlier viewer bug where such textures are not redisplayed properly when pulled from the viewer cache.
352 ; Only set this to true if you are sure that all the viewers using your simulator will not suffer from this problem.
353 ; This setting only has an affect is ReuseDynamicTextures = true
354 ; Default is false
355 ReuseDynamicLowDataTextures = false
356
357
358[ODEPhysicsSettings]
359 ; ##
360 ; ## Physics stats settings ( most ignored by ubOde )
361 ;
362
363 ; If collect_stats is enabled, then extra stat information is collected which is accessible via the MonitorModule
364 ; (see http://opensimulator.org/wiki/Monitoring_Module for more details).
365 collect_stats = false
366
367 ; ##
368 ; ## Physics logging settings - logfiles are saved to *.DIF files
369 ; ##
370
371 ; default is false
372 ;physics_logging = true
373 ;; every n simulation iterations, the physics snapshot file is updated
374 ;physics_logging_interval = 50
375 ;; append to existing physics logfile, or overwrite existing logfiles?
376 ;physics_logging_append_existing_logfile = true
377
378 ;##
379 ;## World Settings
380 ;##
381
382 ; World Step size.
383 ; with legacy ODE this value needs to be close to 0.02s
384 ; with ubOde this value can be reduced to improve simulation quality with the cost of higher cpu load
385 ; you will need to test acording to you needs
386 ; choosing a value that is a integer sub multiple of FrameRate reduces some jitter on reported physics FPS
387 world_stepsize = 0.01818
388 ; number of iterations of constrains solver, higher should improve results
389 ; up to a point where acumulated math errors eliminate the improvement
390 ; more steps may increase CPU load. No real gain in changing
391 world_solver_iterations = 10
392
393 ;Spaces level settings. Affects memory consumption vs Collider CPU time for avatar and physical prim
394 ; defines spaces partition cells min and max sizes == 2^value
395 world_hashspace_level_low = -5
396 world_hashSpace_level_high = 12
397
398 meters_in_small_space = 29.9
399
400
401 ; ##
402 ; ## Contact properties. (the stuff that happens when things come in contact with each other)
403 ; ##
404
405 ; surface layer around geometries other geometries can sink into before generating a contact
406 world_contact_surface_layer = 0.001
407
408 ; Filtering collisions helps keep things stable physics wise, but sometimes
409 ; it can be overzealous. If you notice bouncing, chances are it's that.
410 filter_collisions = false
411
412 ; Non Moving Terrain Contact (avatar isn't moving)
413 nm_terraincontact_friction = 255.0
414 nm_terraincontact_bounce = 0.1
415 nm_terraincontact_erp = 0.1025
416
417 ; Moving Terrain Contact (avatar is moving)
418 m_terraincontact_friction = 75.0
419 m_terraincontact_bounce = 0.1
420 m_terrainContact_erp = 0.05025
421
422 ; Moving Avatar to object Contact
423 m_avatarobjectcontact_friction = 75.0
424 m_avatarobjectcontact_bounce = 0.1
425
426 ; Object to Object Contact and Non-Moving Avatar to object
427 objectcontact_friction = 250.0
428 objectcontact_bounce = 0.2
429
430 ; ##
431 ; ## Avatar Control
432 ; ##
433
434 ; PID Controller Settings. These affect the math that causes the avatar to reach the
435 ; desired velocity
436 ; See http://en.wikipedia.org/wiki/PID_controller
437
438 av_pid_derivative = 2200.0
439 av_pid_proportional = 900.0
440
441 ; specifies if the capsule should be tilted (=true; old compatibility mode)
442 ; or straight up-and-down (=false; better and more consistent physics behavior)
443 av_capsule_tilted = false
444
445 ; Movement. Smaller is faster.
446
447 ; speed of movement with Always Run off
448 av_movement_divisor_walk = 1.3
449
450 ; speed of movement with Always Run on
451 av_movement_divisor_run = 0.8
452
453 ; When the avatar flies, it will be moved up by this amount off the ground (in meters)
454 minimum_ground_flight_offset = 3.0
455
456 ; Plant avatar. This reduces the effect of physical contacts with the avatar.
457 ; If you have a group of unruly and rude visitors that bump each other, turn this on to make that less attractive.
458 ; The avatar still allows a small movement based on the PID settings above. Stronger PID settings AND this active
459 ; will lock the avatar in place
460 av_planted = false
461
462 ; No Avatar Avatar Collissions. This causes avatar to be able to walk through each other as if they're ghosts but still interact with the environment
463 av_av_collisions_off = false
464
465 ; ##
466 ; ## Object options
467 ; ##
468
469 ; amount of ODE steps where object is non moving for ODE to automatically put it to sleep
470 body_frames_auto_disable = 20
471
472 ; used to control llMove2Target
473 body_pid_derivative = 35
474 body_pid_gain = 25
475
476 ; maximum number of contact points to generate per collision
477 contacts_per_collision = 80
478
479 ; start throttling the object updates if object comes in contact with 3 or more other objects
480 geom_contactpoints_start_throttling = 3
481
482 ; send 1 update for every x updates below when throttled
483 geom_updates_before_throttled_update = 15
484
485 ; ##
486 ; ## Sculpted Prim settings
487 ; ##
488
489 ; Do we want to mesh sculpted prim to collide like they look?
490 ; If you are seeing sculpt texture decode problems
491 ; (messages such as "Decoded image with unhandled number of components: 0 shortly followed by a physcs exception")
492 ; then you might want to try setting this to false.
493 mesh_sculpted_prim = true
494
495 ; number^2 non-physical level of detail of the sculpt texture. 32x32 - 1024 verticies
496 mesh_lod = 32
497
498 ; number^2 physical level of detail of the sculpt texture. 16x16 - 256 verticies
499 mesh_physical_lod = 16
500
501 ; ##
502 ; ## additional meshing options
503 ; ##
504
505 ; Physics needs to create internal meshs (or convert the object meshs or scultps)
506 ; for all prims except simple boxes and spheres.
507
508 ; collisions of small objects againts larger ones can have a increased CPU load cost
509 ; so this are represented by a simple BOX
510 ; if all their scale dimensions are lower or equal to this option. Default is 0.1m
511 ; (ubOde only)
512 ; MinSizeToMeshmerize = 0.1
513
514
515[BulletSim]
516 ; There are two bullet physics libraries, bulletunmanaged is the default and is a
517 ; native c++ dll bulletxna is a managed C# dll. They have comparible functionality
518 ; but the c++ one is much faster.
519 BulletEngine = "bulletunmanaged"
520 ; BulletEngine = "bulletxna"
521
522 ; BulletSim can run on its own thread independent of the simulator's heartbeat
523 ; thread. Enabling this will not let the physics engine slow down avatar movement, etc.
524 UseSeparatePhysicsThread = false
525
526 ; Terrain implementation can use either Bullet's heightField or BulletSim can build
527 ; a mesh. 0=heightField, 1=mesh
528 TerrainImplementation = 0
529 ; For mesh terrain, the detail of the created mesh. '1' gives 256x256 (heightfield
530 ; resolution). '2' gives 512x512. Etc. Cannot be larger than '4'. Higher
531 ; magnifications use lots of memory.
532 TerrainMeshMagnification = 2
533
534 ; Should avatars collide with each other?
535 AvatarToAvatarCollisionsByDefault = true
536
537 ; Default linkset implmentation
538 ; 'Constraint' uses physics constraints to hold linkset together. 'Compound'
539 ; builds a compound shape from the children shapes to create a single physical
540 ; shape. 'Compound' uses a lot less CPU time.
541 LinkImplementation = 1 ; 0=constraint, 1=compound
542
543 ; If 'true', offset a linkset's origin based on mass of linkset parts.
544 LinksetOffsetCenterOfMass = false
545
546 ; If 'true', turn scuplties into meshes
547 MeshSculptedPrim = true
548
549 ; If 'true', force simple prims (box and sphere) to be meshed
550 ; If 'false', the Bullet native special case shape is used for square rectangles
551 ; and even dimensioned spheres.
552 ForceSimplePrimMeshing = false
553
554 ; If 'true', when creating meshes, remove all triangles that have two equal vertexes.
555 ; Happens often in sculpties. If turned off, there will be some doorways
556 ; that cannot be walked through.
557 ShouldRemoveZeroWidthTriangles = true
558
559 ; If 'true', use convex hull definition in mesh asset if present.
560 ShouldUseAssetHulls = true
561
562 ; If there are thousands of physical objects, these maximums should be increased.
563 MaxCollisionsPerFrame = 2048
564 MaxUpdatesPerFrame = 8192
565
566 ; Detailed physics debug logging. Very verbose.
567 PhysicsLoggingEnabled = False
568 PhysicsLoggingDir = "."
569 VehicleLoggingEnabled = False
570
571
572[Sun]
573 ; send a Sun update every update_interval # of frames. A lower number will
574 ; make for smoother sun transition at the cost of network
575 ;update_interval = 100
576
577
578[Wind]
579 ; How often should wind be updated, as a function of world frames. Approximately 50 frames a second
580 wind_update_rate = 150
581
582 ; The Default Wind Plugin to load
583 wind_plugin = SimpleRandomWind
584
585
586[Cloud]
587 ; update interval for the cloud cover data returned by llCloud().
588 ; default is 1000
589 cloud_update_rate = 1000
590
591
592[Trees]
593 ; active_trees allows module to change its trees in time.
594 ; some will be deleted, others created and rest may grow
595 ; default is false. You can change it with console command tree active true | false later
596 active_trees = false
597 ; the trees change execution time rate (in ms)
598 update_rate = 1000
599
600 ; allow the trees to grow.
601 ; DANGER
602 ; this option causes high network use on the order of
603 ; NumberOfTrees * NumberAvatars * 1000 / update_rate udp packets per second
604 allowGrow = false
605
606
607[LL-Functions]
608 ; Maximum number of llListen events we allow over the entire region.
609 ; Set this to 0 to have no limit imposed
610 max_listens_per_region = 1000
611
612 ; Maximum number of llListen events we allow per script
613 ; Set this to 0 to have no limit imposed.
614 max_listens_per_script = 64
615
616 ; Maximum number of external urls that scripts can set up in this simulator (e.g. via llRequestURL())
617 max_external_urls_per_simulator = 100
618
619 ; Use size boxes instead of meshed prims, sculpts and mesh when calculating bounding boxes.
620 ; Speeds up calculations but can make them inaccurate, in some cases very inaccurate.
621 UseSimpleBoxesInGetBoundingBox = false
622
623 ; Use llCastRay V3 if true.
624 ; Implements llCastRay similar but not identical to Second Life.
625 ; See http://wiki.secondlife.com/wiki/LlCastRay .
626 ; NEW
627 ; Meshes prims for good accuracy in ray hit detection,
628 ; handling basic and tortured prims, sculpts and meshes.
629 ; Uses ellipsoid, correctly sized avatar capsules.
630 ; Handles complex terrain, multi-prim objects and seated avatars.
631 ; Implements throttling and the status codes
632 ; RCERR_UNKNOWN and RCERR_CAST_TIME_EXCEEDED,
633 ; so LSL scripts need to handle these responses and RCERR_SIM_PERF_LOW.
634 ; WARNING
635 ; Can be faster on some servers and scenes, but slower on others,
636 ; compared to previous version of llCastRay in OpenSimulator.
637 ; Is in most cases considerably slower than llCastRay in Second Life.
638 ; Generates geometry meshes and can therefore use much system resources.
639 UseLlCastRayV3 = false
640
641 ; Accepted calculation precision error in calculations in llCastRay V3
642 FloatToleranceInLlCastRay = 0.00001
643
644 ; Accepted distance difference between duplicate hits in llCastRay V3
645 FloatTolerance2InLlCastRay = 0.001
646
647 ; Detail level when rendering prims in llCastRay V3
648 ; 0 = Low, 1 = Medium, 2 = High, 3 = Highest, higer level gives better accuracy but slower call
649 PrimDetailLevelInLlCastRay = 1
650
651 ; Detail level when rendering sculpts in llCastRay V3
652 ; 0 = Low, 1 = Medium, 2 = High, 3 = Highest, higer level gives better accuracy but slower call
653 SculptDetailLevelInLlCastRay = 1
654
655 ; Detail level when rendering meshes in llCastRay V3
656 ; 0 = Low, 1 = Medium, 2 = High, 3 = Highest, higer level gives better accuracy but slower call
657 MeshDetailLevelInLlCastRay = 3
658
659 ; Detail level when rendering avatar capsules in llCastRay V3
660 ; 0 = Low, 1 = Medium, 2 = High, 3 = Highest, higer level gives better accuracy but slower call
661 AvatarDetailLevelInLlCastRay = 1
662
663 ; Maximum number of returned hits from llCastRay V3
664 MaxHitsInLlCastRay = 16
665
666 ; Maximum number of returned hits per prim from llCastRay V3
667 MaxHitsPerPrimInLlCastRay = 16
668
669 ; Maximum number of returned hits per object from llCastRay V3
670 MaxHitsPerObjectInLlCastRay = 16
671
672 ; Report ray intersections with surfaces on exits from a prim as hits in llCastRay V3 if true
673 DetectExitHitsInLlCastRay = false
674
675 ; Detect attachments in llCastRay V3 if true
676 DoAttachmentsInLlCastRay = false
677
678 ; Throttle period length in ms before which all old llCastRay use is discarded in llCastRay V3
679 ; The sum of AvailableTimeInMsPerRegionInLlCastRay and all AvailableTimeInMsPerAvatarInLlCastRay should not exceed this
680 ThrottleTimeInMsInLlCastRay = 200
681
682 ; Available time in ms for llCastRay per throttle period and 65536 m2 land area in llCastRay V3
683 AvailableTimeInMsPerRegionInLlCastRay = 40
684
685 ; Available time in ms for llCastRay per throttle period and avatar when script in attachment or vehicle in llCastRay V3
686 AvailableTimeInMsPerAvatarInLlCastRay = 10
687
688 ; Required available time in ms left to perform a new llCastRay in llCastRay V3
689 RequiredAvailableTimeInMsInLlCastRay = 2
690
691 ; Maximum available time in ms possible in llCastRay V3, not to get too high values with varregions
692 MaximumAvailableTimeInMsInLlCastRay = 40
693
694 ; Use cached meshes in llCastRay V3 if true
695 ; Improves performance but uses more memory
696 UseMeshCacheInLlCastRay = true
697
698
699[XEngine]
700 ; How many threads to keep alive even if nothing is happening
701 MinThreads = 2
702
703 ; How many threads to start at maximum load
704 MaxThreads = 100
705
706 ; Time a thread must be idle (in seconds) before it dies
707 IdleTimeout = 60
708
709 ; Thread priority ("Lowest", "BelowNormal", "Normal", "AboveNormal", "Highest")
710 Priority = "BelowNormal"
711
712 ; Maximum number of events to queue for a script (excluding timers)
713 MaxScriptEventQueue = 300
714
715 ; Stack size per thread created
716 ThreadStackSize = 262144
717
718 ; Set this to true to load each script into a separate
719 ; AppDomain. Setting this to false will load all script assemblies into the
720 ; current AppDomain, which will reduce the initial per-script memory overhead,
721 ; but deleted scripts stay inactive using memory.
722 ; Significantly improving script loading times.
723 ; However, setting this to false will also prevent script DLLs from being unloaded from memory if the script is deleted.
724 ; This may cause an OutOfMemory problem over time when avatars with scripted attachments move in and out of the region.
725 ; This may only be a problem if regions stay alive for a long time with lots of scripts added or edited.
726 ; At this time some mono versions seem to have problems with the true option,
727 ; so default is now false until a fix is found, to simply life of less technical skilled users.
728 AppDomainLoading = false
729
730 ; Controls whether previously compiled scripts DLLs are deleted on sim restart.
731 ; If you set this to false then startup will be considerably faster since scripts won't need to be recompiled.
732 ; It should be true on first run after updating opensim binary version
733 ; after first run you can change to false.
734 ; You can also set it to false and delete the script DLLs by hand
735 ; This does not delete cached scripts state.
736 DeleteScriptsOnStartup = true
737
738 ; CompactMemOnLoad
739 ; forces calls to memory garbage collector before loading each script DLL during region startup.
740 ; Peak memory usage is reduced and region starts with a more compacted memory allocation.
741 ; But this costs a lot of time, so region load will take a lot longer.
742 ; it is more usefull if there are no previously compiled scripts DLLs (or DeleteScriptsOnStartup = true)
743 ; CompactMemOnLoad = false
744
745 ; Controls whether scripts are stopped by aborting their threads externally (abort)
746 ; or by co-operative checks inserted by OpenSimulator into compiled script (co-op).
747 ; co-op will be more stable as aborting threads can cause instability.
748 ; abort was the default option in OpenSimulator 0.8 and before.
749 ; If this setting is changed between co-op and abort, then existing scripts will automatically be recompiled if necessary.
750 ; However, the setting change will not take affect until the next time you restart the simulator.
751 ; Setting changes will not affect state information stored for scripts.
752 ScriptStopStrategy = co-op
753
754 ; Rate to poll for asynchronous command replies (ms)
755 ; currently unused
756 ;AsyncLLCommandLoopms = 50
757
758 ; Compile debug info (line numbers) into the script assemblies
759 CompileWithDebugInformation = true
760
761 ; Interval (s) between background save of script states
762 SaveInterval = 120
763
764 ; Interval (s) between maintenance runs (0 = disable)
765 MaintenanceInterval = 10
766
767 ; Amount of time in milliseconds we will wait for an event to completely normally when a script stop is requested
768 ; before aborting the thread (such as when an object containing scripts is taken into inventory).
769 WaitForEventCompletionOnScriptStop = 1000
770
771 ; Minimum settable timer interval. Any timer setting less than this is
772 ; rounded up to this minimum interval.
773 MinTimerInterval = 0.5
774
775 ; Sensor settings
776 SensorMaxRange = 96.0
777 SensorMaxResults = 16
778
779
780[Groups]
781 ; Groups data is cached for this number of seconds before another request is made to the groups service
782 ; Set to 0 to disable the cache.
783 ; Default is 30 seconds
784 GroupsCacheTimeout = 30
785
786
787[PacketPool]
788 ;RecyclePackets = true
789 ;RecycleDataBlocks = true
790
791 ; If true, then the basic packet objects used to receive data are also recycled, not just the LLUDP packets.
792 ; This reduces data churn
793 RecycleBaseUDPPackets = true
794
795
796[InterestManagement]
797 ; This section controls how state updates are prioritized for each client
798 ; Valid values are BestAvatarResponsiveness, Time, Distance,
799 ; SimpleAngularDistance, and FrontBack
800 UpdatePrioritizationScheme = BestAvatarResponsiveness
801 ReprioritizationEnabled = true
802 ReprioritizationInterval = 2000.0
803 RootReprioritizationDistance = 10.0
804 ChildReprioritizationDistance = 20.0
805
806 ; TEST OPTION KEEP AS FALSE
807 ; if true, don't send object updates if outside view range
808 ObjectsCullingByDistance = false
809
810 ; If n > 1, only every n UDP terse updates will be sent to observers of an avatar that are in the same region
811 ; Updates will always be sent to the avatar that the update addresses and if av velocity is effectively zero (to prevent drift due to missing updates).
812 ; n > 1 will reduce UDP traffic but will lead to laggier movement observed in other avatars.
813 RootTerseUpdatePeriod = 0
814
815 ; If n > 1, only every n UDP terse updates will be sent to observers of an avatar that are in another region
816 ; n > 1 will reduce UDP traffic but may lead to laggier movement observed in other avatars, though values up to 4 may not generate a noticeable effect.
817 ChildTerseUpdatePeriod = 0
818
819 ; Send an update to clients if the difference from the last sent avatar position is greater than this tolerance
820 RootPositionUpdateTolerance = 0.05
821
822 ; Send an update to clients if the euclidian difference from the last sent avatar rotation is greater than this tolerance
823 RootRotationUpdateTolerance = 0.1
824
825 ; Send an update to clients if the difference from the last sent avatar velocity is greater than this tolerance
826 RootVelocityUpdateTolerance = 0.001
827
828
829[Statistics]
830 ; NumberOfFrames is used in a moving average calculation, where NumberOfFrames is the number of frames
831 ; to include in the averaging calculations
832 NumberOfFrames=10
833
834
835[Terrain]
836 ; If 'true' each avatar is only sent terrain patches within their view distance
837 ; This also changes the region terrain loading from 'lawn mower' to ordered around
838 ; the avatar outward.
839 SendTerrainUpdatesByViewDistance = True
840
841
842[LandManagement]
843 ; When editing terrain or objects, parcel layer info is updated in the viewer.
844 ; This can be expensive for large regions. If this variable is 'true', only the
845 ; parcel layer data around the area of interest is sent. The parcel layer info
846 ; is sent for 'ParcelLayerViewDistance' around the interest point.
847 ; If 'ParcelLayerViewDistance' is >= 128, the operation for legacy sized regions
848 ; will be what it has always been (send the whole region's parcel layer info).
849 ; Other parcel updates (login, changing parcel ownership, ...) will still send
850 ; whole region.
851 LimitParcelLayerUpdateDistance = true
852 ParcelLayerViewDistance = 128
853
854
855;; If you are using a simian grid frontend you can enable
856;; this module to upload tile images for the mapping fn
857;;
858[SimianGridMaptiles]
859 RefreshTime = 3600
860
861
862;;
863;; These are defaults that are overwritten below in [Architecture].
864;; These defaults allow OpenSim to work out of the box with
865;; zero configuration
866;;
867[AssetService]
868 ; Disable this to prevent the default asset set from being inserted into the
869 ; asset store each time the region starts
870 AssetLoaderEnabled = true
871
872
873[AutoBackupModule]
874 ;; default is module is disabled at the top level
875 AutoBackupModuleEnabled = false
876
877
878[ServiceThrottle]
879 ;; Default time interval (in ms) for the throttle service thread to wake up
880 Interval = 5000
881
882
883[Materials]
884 MaxMaterialsPerTransaction = 50
diff --git a/bin/config-include/SimFast.ini b/bin/config-include/SimFast.ini
new file mode 100644
index 0000000..40d3cc1
--- /dev/null
+++ b/bin/config-include/SimFast.ini
@@ -0,0 +1,884 @@
1[Startup]
2 ; ##
3 ; ## SYSTEM
4 ; ##
5
6 ; Sets the method that OpenSim will use to fire asynchronous
7 ; events. Valid values are UnsafeQueueUserWorkItem,
8 ; QueueUserWorkItem, BeginInvoke, SmartThreadPool, and Thread.
9 ;
10 ; SmartThreadPool is reported to work well on Mono/Linux, but
11 ; UnsafeQueueUserWorkItem has been benchmarked with better
12 ; performance on .NET/Windows
13 ;
14 ; UnsafeQueueUserWorkItem refers to the fact that the code creating the event could elevate its security
15 ; privileges. However, as calling code is trusted anyway this is safe (if you set
16 ; TrustedBinaries = true in the [XEngine] section then you already have to trust that incoming code for other reasons).
17 async_call_method = SmartThreadPool
18
19 ; Max threads to allocate on the FireAndForget thread pool
20 ; when running with the SmartThreadPool option above
21 MaxPoolThreads = 300
22
23 ; Allow certain jobs to be run consecutively in a job engine rather than always concurrently.
24 ; This improves performance in regions with large numbers of connections (in the hundreds).
25 JobEngineEnabled = true
26
27 ; Maximum number of position, rotation and scale changes for each prim that the simulator will store for later undos
28 ; Increasing this number will increase memory usage.
29 MaxPrimUndos = 42
30
31 ; If a viewer attempts to rez a prim larger than the non-physical or physical prim max, clamp the dimensions to the appropriate maximum
32 ; This can be overridden in the region config file.
33 ClampPrimSize = true
34
35 ; If a prim is loaded from an external source, clamp it to Z = 0 if Z is negative.
36 ClampNegativeZ = true
37
38 ; Allow scripts to keep running when they cross region boundaries, rather than being restarted. State is reloaded on the destination region.
39 ; This only applies when crossing to a region running in a different simulator.
40 ; For crossings where the regions are on the same simulator the script is always kept running.
41 AllowScriptCrossing = true
42
43 ; Main Frame time
44 ; This defines the rate of several simulation events.
45 ; Default value should meet most needs.
46 ; It can be reduced to improve the simulation of moving objects, with possible increase of cpu and network loads.
47 ; It should not be less than the physics engine step time.
48 ; Being a integer multiple of it may reduce some jitter in reported physics FPS.
49 ; changing this value, you need to change some of the following *EveryNFrames so their actions timing remains the same
50 FrameTime = 0.0909
51
52 ; Send scheduled updates to objects in the scene
53 ; This must be a whole number
54 UpdateObjectsEveryNFrames = 1
55
56 ; Send position/velocity, etc. updates to agents in the scene
57 ; This must be a whole number
58 UpdateAgentsEveryNFrames = 1
59
60 ; Apply pending forces from physics calculations to an entity.
61 ; This must be a whole number
62 UpdateEntityMovementEveryNFrames = 1
63
64 ; Send coarse location updates to viewers. In a classic viewer, this updates the minimap.
65 ; This must be a whole number
66 UpdateCoarseLocationsEveryNFrames = 50
67
68 ; Physics simulation execution or syncronization, acording to engine. Should be 1
69 ; This must be a whole number
70 UpdatePhysicsEveryNFrames = 1
71
72 ; Send out the on frame event to modules and other listeners. This should probably never deviate from 1.
73 ; This must be a whole number
74 UpdateEventsEveryNFrames = 1
75
76 ; Send terrain updates to viewers
77 ; This must be a whole number
78 UpdateTerrainEveryNFrames = 50
79
80 ; Persitently store any objects which meet the PRIM STORAGE criteria
81 ; This must be a whole number
82 UpdateStorageEveryNFrames = 200
83
84 ; Clean up temp on rez objects.
85 ; This must be a whole number
86 UpdateTempCleaningEveryNSeconds = 180
87
88 ; ##
89 ; ## PRIM STORAGE
90 ; ##
91
92 ; Persistence of changed objects happens during regular sweeps. The following control that behaviour to
93 ; prevent frequently changing objects from heavily loading the region data store.
94 ; If both of these values are set to zero then persistence of all changed objects will happen on every sweep.
95 ;
96 ; Objects will be considered for persistance in the next sweep when they have not changed for this number of seconds
97 MinimumTimeBeforePersistenceConsidered = 60
98 ; Objects will always be considered for persistance in the next sweep if the first change occurred this number of seconds ago
99 MaximumTimeBeforePersistenceConsidered = 600
100
101 ; ##
102 ; ## PHYSICS
103 ; ##
104
105 ; Select a mesher here.
106 ;
107 ; Meshmerizer properly handles complex prims by using triangle meshes.
108 ; Note that only the ODE physics engine currently deals with meshed prims in a satisfactory way
109 ;
110 ; ZeroMesher is faster but leaves the physics engine to model the mesh using the basic shapes that it supports
111 ; Usually this is only a box
112
113 ;meshing = Meshmerizer
114 ;meshing = ZeroMesher
115 ;; select ubODEMeshmerizer only with ubOde physics engine
116 meshing = ubODEMeshmerizer
117
118 ; ubODE and OpenDynamicsEngine does allocate a lot of memory on stack. On linux you may need to increase its limit
119 ; script opensim-ode-sh starts opensim setting that limit. You may need to increase it even more on large regions
120 ; edit the line ulimit -s 262144, and change this last value
121
122 ; if you use Meshmerizer and want sculpt map collisions, setting this to
123 ; to true will store decoded sculpt maps in a special folder in your bin
124 ; folder, which can reduce startup times by reducing asset requests. Some
125 ; versions of mono dont work well when reading the cache files, so set this
126 ; to false if you have compatibility problems.
127 CacheSculptMaps = true
128
129 ;; BulletSim is the default physics engine. It provides the best performance and most functionality.
130 ;; BulletSim supports varregions.
131 ;; OpenDynamicsEngine was the previous default physics engine in OpenSimulator 0.7.6.1 and before.
132 ;; It continues to provide a workable physics implementation. It does not currently support varregions.
133 ;; basicphysics effectively does not model physics at all, making all objects phantom.
134 ;; Default is BulletSim
135 ;physics = BulletSim
136 ;physics = modified_BulletX
137 ;physics = OpenDynamicsEngine
138 ;physics = basicphysics
139 ;physics = POS
140 ;; alternative OpenDynamicsEngine engine. ubODEMeshmerizer meshing above MUST be selected also
141 physics = ubODE
142
143 ; ##
144 ; ## SCRIPT ENGINE
145 ; ##
146
147 ;; Default script engine to use. Currently, we only have XEngine
148 DefaultScriptEngine = "XEngine"
149
150 ; Image decoding. Use CSJ2K for layer boundary decoding if true,
151 ; OpenJPEG if false
152 ; UseCSJ2K = true
153
154
155[Map]
156 ; Map tile options.
157 ; If true, then maptiles are generated using the MapImageModule below.
158 ; If false then the texture referenced by MaptileStaticUUID is used instead, which can also be overridden
159 ; in individual region config file(s). If you do not want to upload map tiles at all, then you will need
160 ; both to set this to false and comment out the [Modules] MapImageServiceModule setting in config-include/
161 GenerateMaptiles = false
162
163 ;WorldMapModule = "WorldMap"
164
165 ; The module to use in order to generate map images.
166 ; MapImageModule is the default. Warp3DImageModule is an alternative experimental module that can
167 ; generate better images.
168 MapImageModule = "Map3DImageModule"
169
170 ; World map blacklist timeout in seconds
171 ;BlacklistTimeout = 600
172
173 ; Refresh (in seconds) the map tile periodically
174 MaptileRefresh = 0
175
176 ; If not generating maptiles, use this static texture asset ID
177 MaptileStaticUUID = "00000000-0000-0000-0000-000000000000"
178
179 ; Draw objects on maptile. This step might take a long time if you've got a large number of
180 ; objects, so you can turn it off here if you'd like.
181 DrawPrimOnMapTile = false
182
183 ; Use terrain texture for maptiles if true, use shaded green if false
184 TextureOnMapTile = false
185
186 ; Texture prims
187 TexturePrims = false
188
189 ; Only texture prims that have a diagonal size greater than this number
190 TexturePrimSize = 64
191
192 ; Attempt to render meshes and sculpties on the map
193 RenderMeshes = false
194
195 UseAntiAliasing = false
196
197
198[Network]
199 ; OpenSim can send multiple simultaneous requests for services such as asset
200 ; retrieval. However, some versions of mono appear to hang when there are too
201 ; many simultaneous requests, default is 30 and is currently applied only to assets
202 ;MaxRequestConcurrency = 30
203
204
205[ClientStack.LindenUDP]
206 ; The client socket receive buffer size determines how many
207 ; incoming requests we can process; the default on .NET is 8192
208 ; which is about 2 4k-sized UDP datagrams. On mono this is
209 ; whatever the underlying operating system has as default; for
210 ; example, ubuntu 8.04 or SLES11 have about 111k, which is about
211 ; 27 4k-sized UDP datagrams (on linux platforms you can [as root]
212 ; do "sysctl net.core.rmem_default" to find out what your system
213 ; uses a default socket receive buffer size.
214 ;
215 ; client_socket_rcvbuf_size allows you to specify the receive
216 ; buffer size LLUDPServer should use. NOTE: this will be limited
217 ; by the system's settings for the maximum client receive buffer
218 ; size (on linux systems you can set that with "sysctl -w
219 ; net.core.rmem_max=X")
220 ;
221 ;client_socket_rcvbuf_size = 8388608
222
223 ; Maximum outbound bytes per second for a single scene. This can be used to
224 ; throttle total outbound UDP traffic for a simulator. The default value is
225 ; 0, meaning no throttling at the scene level. The example given here is
226 ; 20 megabits
227 ;
228 ;scene_throttle_max_bps = 2500000
229
230 ; Maximum bytes per second to send to any single client. This will override
231 ; the user's viewer preference settings. The default value is 0, meaning no
232 ; aggregate throttling on clients (only per-category throttling). The
233 ; example given here is 1.5 megabits
234 ;
235 ;client_throttle_max_bps = 187500
236
237 ; Minimum bytes per second to send to any single client as a result of
238 ; adaptive throttling. Viewer preferences set to a lower number will
239 ; override the settin. The example given here ensures that adaptive
240 ; throttling will never decrease per client bandwidth below 256 kbps.
241 ;
242 ;adaptive_throttle_min_bps = 32000
243
244 ; Adaptive throttling attempts to limit network overload when multiple
245 ; clients login by starting each connection more slowly. Disabled by
246 ; default
247 ;
248 enable_adaptive_throttles = false
249
250 ; Per-client bytes per second rates for the various throttle categories.
251 ; These are default values that will be overridden by clients. These
252 ; defaults are approximately equivalent to the throttles set by the Imprudence
253 ; viewer when maximum bandwidth is set to 350kbps
254
255 ;resend_default = 6625
256 ;land_default = 9125
257 ;wind_default = 1750
258 ;cloud_default = 1750
259 ;task_default = 18500
260 ;texture_default = 18500
261 ;asset_default = 10500
262
263 ; Configures how ObjectUpdates are aggregated. These numbers
264 ; do not literally mean how many updates will be put in each
265 ; packet that goes over the wire, as packets are
266 ; automatically split on a 1400 byte boundary. These control
267 ; the balance between responsiveness of interest list updates
268 ; and total throughput. Higher numbers will ensure more full-
269 ; sized packets and faster sending of data, but more delay in
270 ; updating interest lists
271 ;
272 ;PrimUpdatesPerCallback = 100
273
274 ; TextureSendLimit determines how many packets will be put on
275 ; the outgoing queue each cycle. Like the settings above, this
276 ; is a balance between responsiveness to priority updates and
277 ; total throughput. Higher numbers will give a better
278 ; throughput at the cost of reduced responsiveness to client
279 ; priority changes or transfer aborts
280 ;
281 ;TextureSendLimit = 20
282
283 ; CannibalizeTextureRate allows bandwidth to be moved from the
284 ; UDP texture throttle to the task throttle. Since most viewers
285 ; use HTTP textures, this provides a means of using what is largely
286 ; unused bandwidth in the total throttle. The value is the proportion
287 ; of the texture rate to move to the task queue. It must be between
288 ; 0.0 (none of the bandwidth is cannibalized) and 0.9 (90% of the
289 ; bandwidth is grabbed)
290 ;
291 ; CannibalizeTextureRate = 0.5
292
293 ; The time to wait before disconecting an unresponsive client.
294 ; The time is in seconds. The default is one minute
295 ;
296 ;AckTimeout = 60
297
298 ; The time to wait before disconecting an unresponsive paused client.
299 ; A client can be paused when the file selection dialog is open during file upload.
300 ; This gives extra time to find files via the dialog but will still disconnect if
301 ; the client crashes or loses its network connection
302 ; The time is in seconds. The default is five minutes.
303 ;
304 ;PausedAckTimeout = 300
305
306
307[Appearance]
308 ; Persist avatar baked textures
309 ; Persisting baked textures can speed up login and region border
310 ; crossings especially with large numbers of users, though it
311 ; will store potentially large numbers of textures in your asset
312 ; database
313 PersistBakedTextures = false
314
315 ; Control the delay before appearance is sent to other avatars and
316 ; saved in the avatar service. Attempts to limit the impact caused
317 ; by the very chatty dialog that sets appearance when an avatar
318 ; logs in or teleports into a region; values are in seconds
319 DelayBeforeAppearanceSave = 5
320 DelayBeforeAppearanceSend = 2
321
322 ; If true, avatar appearance information is resent to other avatars in the simulator every 60 seconds.
323 ; This may help with some situations where avatars are persistently grey, though it will not help
324 ; in other situations (e.g. appearance baking failures where the avatar only appears as a cloud to others).
325 ResendAppearanceUpdates = false
326
327 ; Turning this on responds to CachedTexture packets to possibly avoid rebaking the avatar
328 ; on every login
329 ReuseTextures = true
330
331
332[Attachments]
333 ; Controls the number of milliseconds that are slept per 100 prims rezzed in attachments
334 ; Experimental setting to control CPU spiking when avatars with many attachments login/change outfit
335 ; or when multiple avatars with medium level attachments login/change outfit simultaneously.
336 ; If 0 then no throttling is performed.
337 ThrottlePer100PrimsRezzed = 0
338
339
340[Textures]
341 ; If true, textures generated dynamically (i.e. through osSetDynamicTextureData() and similar OSSL functions) are reused where possible
342 ; Chiefly, reuse occurs if a texture has already been generated with identical data and settings, and that texture contains no dynamic components
343 ; (e.g. images pulled from an external HTTP address).
344 ; Reusing previously generated textures results in a much faster update on the viewer but may cause issues if the viewer didn't receive all resolutions of the texture.
345 ; Currently, it will also increase asset cache use since temporary dynamic textures are no longer deleted.
346 ; Hence, currently considered experimental.
347 ; Default is false.
348 ReuseDynamicTextures = true
349
350 ; If true, then textures generated dynamically that have a low data size relative to their pixel size are not reused
351 ; This is to workaround an apparent LL 3.3.4 and earlier viewer bug where such textures are not redisplayed properly when pulled from the viewer cache.
352 ; Only set this to true if you are sure that all the viewers using your simulator will not suffer from this problem.
353 ; This setting only has an affect is ReuseDynamicTextures = true
354 ; Default is false
355 ReuseDynamicLowDataTextures = true
356
357
358[ODEPhysicsSettings]
359 ; ##
360 ; ## Physics stats settings ( most ignored by ubOde )
361 ;
362
363 ; If collect_stats is enabled, then extra stat information is collected which is accessible via the MonitorModule
364 ; (see http://opensimulator.org/wiki/Monitoring_Module for more details).
365 collect_stats = false
366
367 ; ##
368 ; ## Physics logging settings - logfiles are saved to *.DIF files
369 ; ##
370
371 ; default is false
372 ;physics_logging = true
373 ;; every n simulation iterations, the physics snapshot file is updated
374 ;physics_logging_interval = 50
375 ;; append to existing physics logfile, or overwrite existing logfiles?
376 ;physics_logging_append_existing_logfile = true
377
378 ;##
379 ;## World Settings
380 ;##
381
382 ; World Step size.
383 ; with legacy ODE this value needs to be close to 0.02s
384 ; with ubOde this value can be reduced to improve simulation quality with the cost of higher cpu load
385 ; you will need to test acording to you needs
386 ; choosing a value that is a integer sub multiple of FrameRate reduces some jitter on reported physics FPS
387 world_stepsize = 0.015
388 ; number of iterations of constrains solver, higher should improve results
389 ; up to a point where acumulated math errors eliminate the improvement
390 ; more steps may increase CPU load. No real gain in changing
391 world_solver_iterations = 10
392
393 ;Spaces level settings. Affects memory consumption vs Collider CPU time for avatar and physical prim
394 ; defines spaces partition cells min and max sizes == 2^value
395 world_hashspace_level_low = -5
396 world_hashSpace_level_high = 12
397
398 meters_in_small_space = 29.9
399
400
401 ; ##
402 ; ## Contact properties. (the stuff that happens when things come in contact with each other)
403 ; ##
404
405 ; surface layer around geometries other geometries can sink into before generating a contact
406 world_contact_surface_layer = 0.001
407
408 ; Filtering collisions helps keep things stable physics wise, but sometimes
409 ; it can be overzealous. If you notice bouncing, chances are it's that.
410 filter_collisions = false
411
412 ; Non Moving Terrain Contact (avatar isn't moving)
413 nm_terraincontact_friction = 255.0
414 nm_terraincontact_bounce = 0.1
415 nm_terraincontact_erp = 0.1025
416
417 ; Moving Terrain Contact (avatar is moving)
418 m_terraincontact_friction = 75.0
419 m_terraincontact_bounce = 0.05
420 m_terrainContact_erp = 0.05025
421
422 ; Moving Avatar to object Contact
423 m_avatarobjectcontact_friction = 75.0
424 m_avatarobjectcontact_bounce = 0.1
425
426 ; Object to Object Contact and Non-Moving Avatar to object
427 objectcontact_friction = 250.0
428 objectcontact_bounce = 0.2
429
430 ; ##
431 ; ## Avatar Control
432 ; ##
433
434 ; PID Controller Settings. These affect the math that causes the avatar to reach the
435 ; desired velocity
436 ; See http://en.wikipedia.org/wiki/PID_controller
437
438 av_pid_derivative = 2200.0
439 av_pid_proportional = 900.0
440
441 ; specifies if the capsule should be tilted (=true; old compatibility mode)
442 ; or straight up-and-down (=false; better and more consistent physics behavior)
443 av_capsule_tilted = false
444
445 ; Movement. Smaller is faster.
446
447 ; speed of movement with Always Run off
448 av_movement_divisor_walk = 1.4
449
450 ; speed of movement with Always Run on
451 av_movement_divisor_run = 0.9
452
453 ; When the avatar flies, it will be moved up by this amount off the ground (in meters)
454 minimum_ground_flight_offset = 3.0
455
456 ; Plant avatar. This reduces the effect of physical contacts with the avatar.
457 ; If you have a group of unruly and rude visitors that bump each other, turn this on to make that less attractive.
458 ; The avatar still allows a small movement based on the PID settings above. Stronger PID settings AND this active
459 ; will lock the avatar in place
460 av_planted = true
461
462 ; No Avatar Avatar Collissions. This causes avatar to be able to walk through each other as if they're ghosts but still interact with the environment
463 av_av_collisions_off = true
464
465 ; ##
466 ; ## Object options
467 ; ##
468
469 ; amount of ODE steps where object is non moving for ODE to automatically put it to sleep
470 body_frames_auto_disable = 20
471
472 ; used to control llMove2Target
473 body_pid_derivative = 35
474 body_pid_gain = 25
475
476 ; maximum number of contact points to generate per collision
477 contacts_per_collision = 80
478
479 ; start throttling the object updates if object comes in contact with 3 or more other objects
480 geom_contactpoints_start_throttling = 3
481
482 ; send 1 update for every x updates below when throttled
483 geom_updates_before_throttled_update = 15
484
485 ; ##
486 ; ## Sculpted Prim settings
487 ; ##
488
489 ; Do we want to mesh sculpted prim to collide like they look?
490 ; If you are seeing sculpt texture decode problems
491 ; (messages such as "Decoded image with unhandled number of components: 0 shortly followed by a physcs exception")
492 ; then you might want to try setting this to false.
493 mesh_sculpted_prim = false
494
495 ; number^2 non-physical level of detail of the sculpt texture. 32x32 - 1024 verticies
496 mesh_lod = 32
497
498 ; number^2 physical level of detail of the sculpt texture. 16x16 - 256 verticies
499 mesh_physical_lod = 16
500
501 ; ##
502 ; ## additional meshing options
503 ; ##
504
505 ; Physics needs to create internal meshs (or convert the object meshs or scultps)
506 ; for all prims except simple boxes and spheres.
507
508 ; collisions of small objects againts larger ones can have a increased CPU load cost
509 ; so this are represented by a simple BOX
510 ; if all their scale dimensions are lower or equal to this option. Default is 0.1m
511 ; (ubOde only)
512 ; MinSizeToMeshmerize = 0.1
513
514
515[BulletSim]
516 ; There are two bullet physics libraries, bulletunmanaged is the default and is a
517 ; native c++ dll bulletxna is a managed C# dll. They have comparible functionality
518 ; but the c++ one is much faster.
519 ;BulletEngine = "bulletunmanaged"
520 BulletEngine = "bulletxna"
521
522 ; BulletSim can run on its own thread independent of the simulator's heartbeat
523 ; thread. Enabling this will not let the physics engine slow down avatar movement, etc.
524 UseSeparatePhysicsThread = true
525
526 ; Terrain implementation can use either Bullet's heightField or BulletSim can build
527 ; a mesh. 0=heightField, 1=mesh
528 TerrainImplementation = 0
529 ; For mesh terrain, the detail of the created mesh. '1' gives 256x256 (heightfield
530 ; resolution). '2' gives 512x512. Etc. Cannot be larger than '4'. Higher
531 ; magnifications use lots of memory.
532 TerrainMeshMagnification = 1
533
534 ; Should avatars collide with each other?
535 AvatarToAvatarCollisionsByDefault = false
536
537 ; Default linkset implmentation
538 ; 'Constraint' uses physics constraints to hold linkset together. 'Compound'
539 ; builds a compound shape from the children shapes to create a single physical
540 ; shape. 'Compound' uses a lot less CPU time.
541 LinkImplementation = 1 ; 0=constraint, 1=compound
542
543 ; If 'true', offset a linkset's origin based on mass of linkset parts.
544 LinksetOffsetCenterOfMass = false
545
546 ; If 'true', turn scuplties into meshes
547 MeshSculptedPrim = false
548
549 ; If 'true', force simple prims (box and sphere) to be meshed
550 ; If 'false', the Bullet native special case shape is used for square rectangles
551 ; and even dimensioned spheres.
552 ForceSimplePrimMeshing = true
553
554 ; If 'true', when creating meshes, remove all triangles that have two equal vertexes.
555 ; Happens often in sculpties. If turned off, there will be some doorways
556 ; that cannot be walked through.
557 ShouldRemoveZeroWidthTriangles = true
558
559 ; If 'true', use convex hull definition in mesh asset if present.
560 ShouldUseAssetHulls = true
561
562 ; If there are thousands of physical objects, these maximums should be increased.
563 MaxCollisionsPerFrame = 2048
564 MaxUpdatesPerFrame = 8192
565
566 ; Detailed physics debug logging. Very verbose.
567 PhysicsLoggingEnabled = False
568 PhysicsLoggingDir = "."
569 VehicleLoggingEnabled = False
570
571
572[Sun]
573 ; send a Sun update every update_interval # of frames. A lower number will
574 ; make for smoother sun transition at the cost of network
575 ;update_interval = 100
576
577
578[Wind]
579 ; How often should wind be updated, as a function of world frames. Approximately 50 frames a second
580 wind_update_rate = 150
581
582 ; The Default Wind Plugin to load
583 wind_plugin = SimpleRandomWind
584
585
586[Cloud]
587 ; update interval for the cloud cover data returned by llCloud().
588 ; default is 1000
589 cloud_update_rate = 1000
590
591
592[Trees]
593 ; active_trees allows module to change its trees in time.
594 ; some will be deleted, others created and rest may grow
595 ; default is false. You can change it with console command tree active true | false later
596 active_trees = false
597 ; the trees change execution time rate (in ms)
598 update_rate = 1000
599
600 ; allow the trees to grow.
601 ; DANGER
602 ; this option causes high network use on the order of
603 ; NumberOfTrees * NumberAvatars * 1000 / update_rate udp packets per second
604 allowGrow = false
605
606
607[LL-Functions]
608 ; Maximum number of llListen events we allow over the entire region.
609 ; Set this to 0 to have no limit imposed
610 max_listens_per_region = 0
611
612 ; Maximum number of llListen events we allow per script
613 ; Set this to 0 to have no limit imposed.
614 max_listens_per_script = 0
615
616 ; Maximum number of external urls that scripts can set up in this simulator (e.g. via llRequestURL())
617 max_external_urls_per_simulator = 256
618
619 ; Use size boxes instead of meshed prims, sculpts and mesh when calculating bounding boxes.
620 ; Speeds up calculations but can make them inaccurate, in some cases very inaccurate.
621 UseSimpleBoxesInGetBoundingBox = true
622
623 ; Use llCastRay V3 if true.
624 ; Implements llCastRay similar but not identical to Second Life.
625 ; See http://wiki.secondlife.com/wiki/LlCastRay .
626 ; NEW
627 ; Meshes prims for good accuracy in ray hit detection,
628 ; handling basic and tortured prims, sculpts and meshes.
629 ; Uses ellipsoid, correctly sized avatar capsules.
630 ; Handles complex terrain, multi-prim objects and seated avatars.
631 ; Implements throttling and the status codes
632 ; RCERR_UNKNOWN and RCERR_CAST_TIME_EXCEEDED,
633 ; so LSL scripts need to handle these responses and RCERR_SIM_PERF_LOW.
634 ; WARNING
635 ; Can be faster on some servers and scenes, but slower on others,
636 ; compared to previous version of llCastRay in OpenSimulator.
637 ; Is in most cases considerably slower than llCastRay in Second Life.
638 ; Generates geometry meshes and can therefore use much system resources.
639 UseLlCastRayV3 = true
640
641 ; Accepted calculation precision error in calculations in llCastRay V3
642 FloatToleranceInLlCastRay = 0.00001
643
644 ; Accepted distance difference between duplicate hits in llCastRay V3
645 FloatTolerance2InLlCastRay = 0.001
646
647 ; Detail level when rendering prims in llCastRay V3
648 ; 0 = Low, 1 = Medium, 2 = High, 3 = Highest, higer level gives better accuracy but slower call
649 PrimDetailLevelInLlCastRay = 1
650
651 ; Detail level when rendering sculpts in llCastRay V3
652 ; 0 = Low, 1 = Medium, 2 = High, 3 = Highest, higer level gives better accuracy but slower call
653 SculptDetailLevelInLlCastRay = 1
654
655 ; Detail level when rendering meshes in llCastRay V3
656 ; 0 = Low, 1 = Medium, 2 = High, 3 = Highest, higer level gives better accuracy but slower call
657 MeshDetailLevelInLlCastRay = 3
658
659 ; Detail level when rendering avatar capsules in llCastRay V3
660 ; 0 = Low, 1 = Medium, 2 = High, 3 = Highest, higer level gives better accuracy but slower call
661 AvatarDetailLevelInLlCastRay = 1
662
663 ; Maximum number of returned hits from llCastRay V3
664 MaxHitsInLlCastRay = 16
665
666 ; Maximum number of returned hits per prim from llCastRay V3
667 MaxHitsPerPrimInLlCastRay = 16
668
669 ; Maximum number of returned hits per object from llCastRay V3
670 MaxHitsPerObjectInLlCastRay = 16
671
672 ; Report ray intersections with surfaces on exits from a prim as hits in llCastRay V3 if true
673 DetectExitHitsInLlCastRay = false
674
675 ; Detect attachments in llCastRay V3 if true
676 DoAttachmentsInLlCastRay = false
677
678 ; Throttle period length in ms before which all old llCastRay use is discarded in llCastRay V3
679 ; The sum of AvailableTimeInMsPerRegionInLlCastRay and all AvailableTimeInMsPerAvatarInLlCastRay should not exceed this
680 ThrottleTimeInMsInLlCastRay = 200
681
682 ; Available time in ms for llCastRay per throttle period and 65536 m2 land area in llCastRay V3
683 AvailableTimeInMsPerRegionInLlCastRay = 40
684
685 ; Available time in ms for llCastRay per throttle period and avatar when script in attachment or vehicle in llCastRay V3
686 AvailableTimeInMsPerAvatarInLlCastRay = 10
687
688 ; Required available time in ms left to perform a new llCastRay in llCastRay V3
689 RequiredAvailableTimeInMsInLlCastRay = 2
690
691 ; Maximum available time in ms possible in llCastRay V3, not to get too high values with varregions
692 MaximumAvailableTimeInMsInLlCastRay = 40
693
694 ; Use cached meshes in llCastRay V3 if true
695 ; Improves performance but uses more memory
696 UseMeshCacheInLlCastRay = true
697
698
699[XEngine]
700 ; How many threads to keep alive even if nothing is happening
701 MinThreads = 2
702
703 ; How many threads to start at maximum load
704 MaxThreads = 100
705
706 ; Time a thread must be idle (in seconds) before it dies
707 IdleTimeout = 60
708
709 ; Thread priority ("Lowest", "BelowNormal", "Normal", "AboveNormal", "Highest")
710 Priority = "Normal"
711
712 ; Maximum number of events to queue for a script (excluding timers)
713 MaxScriptEventQueue = 3000
714
715 ; Stack size per thread created
716 ThreadStackSize = 262144
717
718 ; Set this to true to load each script into a separate
719 ; AppDomain. Setting this to false will load all script assemblies into the
720 ; current AppDomain, which will reduce the initial per-script memory overhead,
721 ; but deleted scripts stay inactive using memory.
722 ; Significantly improving script loading times.
723 ; However, setting this to false will also prevent script DLLs from being unloaded from memory if the script is deleted.
724 ; This may cause an OutOfMemory problem over time when avatars with scripted attachments move in and out of the region.
725 ; This may only be a problem if regions stay alive for a long time with lots of scripts added or edited.
726 ; At this time some mono versions seem to have problems with the true option,
727 ; so default is now false until a fix is found, to simply life of less technical skilled users.
728 AppDomainLoading = false
729
730 ; Controls whether previously compiled scripts DLLs are deleted on sim restart.
731 ; If you set this to false then startup will be considerably faster since scripts won't need to be recompiled.
732 ; It should be true on first run after updating opensim binary version
733 ; after first run you can change to false.
734 ; You can also set it to false and delete the script DLLs by hand
735 ; This does not delete cached scripts state.
736 DeleteScriptsOnStartup = false
737
738 ; CompactMemOnLoad
739 ; forces calls to memory garbage collector before loading each script DLL during region startup.
740 ; Peak memory usage is reduced and region starts with a more compacted memory allocation.
741 ; But this costs a lot of time, so region load will take a lot longer.
742 ; it is more usefull if there are no previously compiled scripts DLLs (or DeleteScriptsOnStartup = true)
743 CompactMemOnLoad = true
744
745 ; Controls whether scripts are stopped by aborting their threads externally (abort)
746 ; or by co-operative checks inserted by OpenSimulator into compiled script (co-op).
747 ; co-op will be more stable as aborting threads can cause instability.
748 ; abort was the default option in OpenSimulator 0.8 and before.
749 ; If this setting is changed between co-op and abort, then existing scripts will automatically be recompiled if necessary.
750 ; However, the setting change will not take affect until the next time you restart the simulator.
751 ; Setting changes will not affect state information stored for scripts.
752 ScriptStopStrategy = abort
753
754 ; Rate to poll for asynchronous command replies (ms)
755 ; currently unused
756 ;AsyncLLCommandLoopms = 50
757
758 ; Compile debug info (line numbers) into the script assemblies
759 CompileWithDebugInformation = false
760
761 ; Interval (s) between background save of script states
762 SaveInterval = 120
763
764 ; Interval (s) between maintenance runs (0 = disable)
765 MaintenanceInterval = 10
766
767 ; Amount of time in milliseconds we will wait for an event to completely normally when a script stop is requested
768 ; before aborting the thread (such as when an object containing scripts is taken into inventory).
769 WaitForEventCompletionOnScriptStop = 1000
770
771 ; Minimum settable timer interval. Any timer setting less than this is
772 ; rounded up to this minimum interval.
773 MinTimerInterval = 0.1
774
775 ; Sensor settings
776 SensorMaxRange = 96.0
777 SensorMaxResults = 64
778
779
780[Groups]
781 ; Groups data is cached for this number of seconds before another request is made to the groups service
782 ; Set to 0 to disable the cache.
783 ; Default is 30 seconds
784 GroupsCacheTimeout = 30
785
786
787[PacketPool]
788 ;RecyclePackets = true
789 ;RecycleDataBlocks = true
790
791 ; If true, then the basic packet objects used to receive data are also recycled, not just the LLUDP packets.
792 ; This reduces data churn
793 RecycleBaseUDPPackets = true
794
795
796[InterestManagement]
797 ; This section controls how state updates are prioritized for each client
798 ; Valid values are BestAvatarResponsiveness, Time, Distance,
799 ; SimpleAngularDistance, and FrontBack
800 UpdatePrioritizationScheme = BestAvatarResponsiveness
801 ReprioritizationEnabled = true
802 ReprioritizationInterval = 2000.0
803 RootReprioritizationDistance = 10.0
804 ChildReprioritizationDistance = 20.0
805
806 ; TEST OPTION KEEP AS FALSE
807 ; if true, don't send object updates if outside view range
808 ObjectsCullingByDistance = false
809
810 ; If n > 1, only every n UDP terse updates will be sent to observers of an avatar that are in the same region
811 ; Updates will always be sent to the avatar that the update addresses and if av velocity is effectively zero (to prevent drift due to missing updates).
812 ; n > 1 will reduce UDP traffic but will lead to laggier movement observed in other avatars.
813 RootTerseUpdatePeriod = 0
814
815 ; If n > 1, only every n UDP terse updates will be sent to observers of an avatar that are in another region
816 ; n > 1 will reduce UDP traffic but may lead to laggier movement observed in other avatars, though values up to 4 may not generate a noticeable effect.
817 ChildTerseUpdatePeriod = 0
818
819 ; Send an update to clients if the difference from the last sent avatar position is greater than this tolerance
820 RootPositionUpdateTolerance = 0.05
821
822 ; Send an update to clients if the euclidian difference from the last sent avatar rotation is greater than this tolerance
823 RootRotationUpdateTolerance = 0.1
824
825 ; Send an update to clients if the difference from the last sent avatar velocity is greater than this tolerance
826 RootVelocityUpdateTolerance = 0.001
827
828
829[Statistics]
830 ; NumberOfFrames is used in a moving average calculation, where NumberOfFrames is the number of frames
831 ; to include in the averaging calculations
832 NumberOfFrames=10
833
834
835[Terrain]
836 ; If 'true' each avatar is only sent terrain patches within their view distance
837 ; This also changes the region terrain loading from 'lawn mower' to ordered around
838 ; the avatar outward.
839 SendTerrainUpdatesByViewDistance = True
840
841
842[LandManagement]
843 ; When editing terrain or objects, parcel layer info is updated in the viewer.
844 ; This can be expensive for large regions. If this variable is 'true', only the
845 ; parcel layer data around the area of interest is sent. The parcel layer info
846 ; is sent for 'ParcelLayerViewDistance' around the interest point.
847 ; If 'ParcelLayerViewDistance' is >= 128, the operation for legacy sized regions
848 ; will be what it has always been (send the whole region's parcel layer info).
849 ; Other parcel updates (login, changing parcel ownership, ...) will still send
850 ; whole region.
851 LimitParcelLayerUpdateDistance = true
852 ParcelLayerViewDistance = 128
853
854
855;; If you are using a simian grid frontend you can enable
856;; this module to upload tile images for the mapping fn
857;;
858[SimianGridMaptiles]
859 RefreshTime = 3600
860
861
862;;
863;; These are defaults that are overwritten below in [Architecture].
864;; These defaults allow OpenSim to work out of the box with
865;; zero configuration
866;;
867[AssetService]
868 ; Disable this to prevent the default asset set from being inserted into the
869 ; asset store each time the region starts
870 AssetLoaderEnabled = false
871
872
873[AutoBackupModule]
874 ;; default is module is disabled at the top level
875 AutoBackupModuleEnabled = false
876
877
878[ServiceThrottle]
879 ;; Default time interval (in ms) for the throttle service thread to wake up
880 Interval = 5000
881
882
883[Materials]
884 MaxMaterialsPerTransaction = 50
diff --git a/bin/config-include/SimLean.ini b/bin/config-include/SimLean.ini
new file mode 100644
index 0000000..0e80320
--- /dev/null
+++ b/bin/config-include/SimLean.ini
@@ -0,0 +1,884 @@
1[Startup]
2 ; ##
3 ; ## SYSTEM
4 ; ##
5
6 ; Sets the method that OpenSim will use to fire asynchronous
7 ; events. Valid values are UnsafeQueueUserWorkItem,
8 ; QueueUserWorkItem, BeginInvoke, SmartThreadPool, and Thread.
9 ;
10 ; SmartThreadPool is reported to work well on Mono/Linux, but
11 ; UnsafeQueueUserWorkItem has been benchmarked with better
12 ; performance on .NET/Windows
13 ;
14 ; UnsafeQueueUserWorkItem refers to the fact that the code creating the event could elevate its security
15 ; privileges. However, as calling code is trusted anyway this is safe (if you set
16 ; TrustedBinaries = true in the [XEngine] section then you already have to trust that incoming code for other reasons).
17 async_call_method = SmartThreadPool
18
19 ; Max threads to allocate on the FireAndForget thread pool
20 ; when running with the SmartThreadPool option above
21 MaxPoolThreads = 300
22
23 ; Allow certain jobs to be run consecutively in a job engine rather than always concurrently.
24 ; This improves performance in regions with large numbers of connections (in the hundreds).
25 JobEngineEnabled = false
26
27 ; Maximum number of position, rotation and scale changes for each prim that the simulator will store for later undos
28 ; Increasing this number will increase memory usage.
29 MaxPrimUndos = 10
30
31 ; If a viewer attempts to rez a prim larger than the non-physical or physical prim max, clamp the dimensions to the appropriate maximum
32 ; This can be overridden in the region config file.
33 ClampPrimSize = false
34
35 ; If a prim is loaded from an external source, clamp it to Z = 0 if Z is negative.
36 ClampNegativeZ = false
37
38 ; Allow scripts to keep running when they cross region boundaries, rather than being restarted. State is reloaded on the destination region.
39 ; This only applies when crossing to a region running in a different simulator.
40 ; For crossings where the regions are on the same simulator the script is always kept running.
41 AllowScriptCrossing = true
42
43 ; Main Frame time
44 ; This defines the rate of several simulation events.
45 ; Default value should meet most needs.
46 ; It can be reduced to improve the simulation of moving objects, with possible increase of cpu and network loads.
47 ; It should not be less than the physics engine step time.
48 ; Being a integer multiple of it may reduce some jitter in reported physics FPS.
49 ; changing this value, you need to change some of the following *EveryNFrames so their actions timing remains the same
50 FrameTime = 0.0909
51
52 ; Send scheduled updates to objects in the scene
53 ; This must be a whole number
54 UpdateObjectsEveryNFrames = 1
55
56 ; Send position/velocity, etc. updates to agents in the scene
57 ; This must be a whole number
58 UpdateAgentsEveryNFrames = 1
59
60 ; Apply pending forces from physics calculations to an entity.
61 ; This must be a whole number
62 UpdateEntityMovementEveryNFrames = 1
63
64 ; Send coarse location updates to viewers. In a classic viewer, this updates the minimap.
65 ; This must be a whole number
66 UpdateCoarseLocationsEveryNFrames = 50
67
68 ; Physics simulation execution or syncronization, acording to engine. Should be 1
69 ; This must be a whole number
70 UpdatePhysicsEveryNFrames = 1
71
72 ; Send out the on frame event to modules and other listeners. This should probably never deviate from 1.
73 ; This must be a whole number
74 UpdateEventsEveryNFrames = 1
75
76 ; Send terrain updates to viewers
77 ; This must be a whole number
78 UpdateTerrainEveryNFrames = 50
79
80 ; Persitently store any objects which meet the PRIM STORAGE criteria
81 ; This must be a whole number
82 UpdateStorageEveryNFrames = 200
83
84 ; Clean up temp on rez objects.
85 ; This must be a whole number
86 UpdateTempCleaningEveryNSeconds = 180
87
88 ; ##
89 ; ## PRIM STORAGE
90 ; ##
91
92 ; Persistence of changed objects happens during regular sweeps. The following control that behaviour to
93 ; prevent frequently changing objects from heavily loading the region data store.
94 ; If both of these values are set to zero then persistence of all changed objects will happen on every sweep.
95 ;
96 ; Objects will be considered for persistance in the next sweep when they have not changed for this number of seconds
97 MinimumTimeBeforePersistenceConsidered = 60
98 ; Objects will always be considered for persistance in the next sweep if the first change occurred this number of seconds ago
99 MaximumTimeBeforePersistenceConsidered = 600
100
101 ; ##
102 ; ## PHYSICS
103 ; ##
104
105 ; Select a mesher here.
106 ;
107 ; Meshmerizer properly handles complex prims by using triangle meshes.
108 ; Note that only the ODE physics engine currently deals with meshed prims in a satisfactory way
109 ;
110 ; ZeroMesher is faster but leaves the physics engine to model the mesh using the basic shapes that it supports
111 ; Usually this is only a box
112
113 ;meshing = Meshmerizer
114 ;meshing = ZeroMesher
115 ;; select ubODEMeshmerizer only with ubOde physics engine
116 meshing = ubODEMeshmerizer
117
118 ; ubODE and OpenDynamicsEngine does allocate a lot of memory on stack. On linux you may need to increase its limit
119 ; script opensim-ode-sh starts opensim setting that limit. You may need to increase it even more on large regions
120 ; edit the line ulimit -s 262144, and change this last value
121
122 ; if you use Meshmerizer and want sculpt map collisions, setting this to
123 ; to true will store decoded sculpt maps in a special folder in your bin
124 ; folder, which can reduce startup times by reducing asset requests. Some
125 ; versions of mono dont work well when reading the cache files, so set this
126 ; to false if you have compatibility problems.
127 CacheSculptMaps = false
128
129 ;; BulletSim is the default physics engine. It provides the best performance and most functionality.
130 ;; BulletSim supports varregions.
131 ;; OpenDynamicsEngine was the previous default physics engine in OpenSimulator 0.7.6.1 and before.
132 ;; It continues to provide a workable physics implementation. It does not currently support varregions.
133 ;; basicphysics effectively does not model physics at all, making all objects phantom.
134 ;; Default is BulletSim
135 ;physics = BulletSim
136 ;physics = modified_BulletX
137 ;physics = OpenDynamicsEngine
138 ;physics = basicphysics
139 ;physics = POS
140 ;; alternative OpenDynamicsEngine engine. ubODEMeshmerizer meshing above MUST be selected also
141 physics = ubODE
142
143 ; ##
144 ; ## SCRIPT ENGINE
145 ; ##
146
147 ;; Default script engine to use. Currently, we only have XEngine
148 DefaultScriptEngine = "XEngine"
149
150 ; Image decoding. Use CSJ2K for layer boundary decoding if true,
151 ; OpenJPEG if false
152 ; UseCSJ2K = true
153
154
155[Map]
156 ; Map tile options.
157 ; If true, then maptiles are generated using the MapImageModule below.
158 ; If false then the texture referenced by MaptileStaticUUID is used instead, which can also be overridden
159 ; in individual region config file(s). If you do not want to upload map tiles at all, then you will need
160 ; both to set this to false and comment out the [Modules] MapImageServiceModule setting in config-include/
161 GenerateMaptiles = false
162
163 ;WorldMapModule = "WorldMap"
164
165 ; The module to use in order to generate map images.
166 ; MapImageModule is the default. Warp3DImageModule is an alternative experimental module that can
167 ; generate better images.
168 MapImageModule = "Map3DImageModule"
169
170 ; World map blacklist timeout in seconds
171 ;BlacklistTimeout = 600
172
173 ; Refresh (in seconds) the map tile periodically
174 MaptileRefresh = 0
175
176 ; If not generating maptiles, use this static texture asset ID
177 ;MaptileStaticUUID = "00000000-0000-0000-0000-000000000000"
178
179 ; Draw objects on maptile. This step might take a long time if you've got a large number of
180 ; objects, so you can turn it off here if you'd like.
181 DrawPrimOnMapTile = false
182
183 ; Use terrain texture for maptiles if true, use shaded green if false
184 TextureOnMapTile = false
185
186 ; Texture prims
187 TexturePrims = false
188
189 ; Only texture prims that have a diagonal size greater than this number
190 TexturePrimSize = 48
191
192 ; Attempt to render meshes and sculpties on the map
193 RenderMeshes = false
194
195 UseAntiAliasing = false
196
197
198[Network]
199 ; OpenSim can send multiple simultaneous requests for services such as asset
200 ; retrieval. However, some versions of mono appear to hang when there are too
201 ; many simultaneous requests, default is 30 and is currently applied only to assets
202 ;MaxRequestConcurrency = 30
203
204
205[ClientStack.LindenUDP]
206 ; The client socket receive buffer size determines how many
207 ; incoming requests we can process; the default on .NET is 8192
208 ; which is about 2 4k-sized UDP datagrams. On mono this is
209 ; whatever the underlying operating system has as default; for
210 ; example, ubuntu 8.04 or SLES11 have about 111k, which is about
211 ; 27 4k-sized UDP datagrams (on linux platforms you can [as root]
212 ; do "sysctl net.core.rmem_default" to find out what your system
213 ; uses a default socket receive buffer size.
214 ;
215 ; client_socket_rcvbuf_size allows you to specify the receive
216 ; buffer size LLUDPServer should use. NOTE: this will be limited
217 ; by the system's settings for the maximum client receive buffer
218 ; size (on linux systems you can set that with "sysctl -w
219 ; net.core.rmem_max=X")
220 ;
221 ;client_socket_rcvbuf_size = 8388608
222
223 ; Maximum outbound bytes per second for a single scene. This can be used to
224 ; throttle total outbound UDP traffic for a simulator. The default value is
225 ; 0, meaning no throttling at the scene level. The example given here is
226 ; 20 megabits
227 ;
228 ;scene_throttle_max_bps = 2500000
229
230 ; Maximum bytes per second to send to any single client. This will override
231 ; the user's viewer preference settings. The default value is 0, meaning no
232 ; aggregate throttling on clients (only per-category throttling). The
233 ; example given here is 1.5 megabits
234 ;
235 ;client_throttle_max_bps = 187500
236
237 ; Minimum bytes per second to send to any single client as a result of
238 ; adaptive throttling. Viewer preferences set to a lower number will
239 ; override the settin. The example given here ensures that adaptive
240 ; throttling will never decrease per client bandwidth below 256 kbps.
241 ;
242 ;adaptive_throttle_min_bps = 32000
243
244 ; Adaptive throttling attempts to limit network overload when multiple
245 ; clients login by starting each connection more slowly. Disabled by
246 ; default
247 ;
248 enable_adaptive_throttles = false
249
250 ; Per-client bytes per second rates for the various throttle categories.
251 ; These are default values that will be overridden by clients. These
252 ; defaults are approximately equivalent to the throttles set by the Imprudence
253 ; viewer when maximum bandwidth is set to 350kbps
254
255 ;resend_default = 6625
256 ;land_default = 9125
257 ;wind_default = 1750
258 ;cloud_default = 1750
259 ;task_default = 18500
260 ;texture_default = 18500
261 ;asset_default = 10500
262
263 ; Configures how ObjectUpdates are aggregated. These numbers
264 ; do not literally mean how many updates will be put in each
265 ; packet that goes over the wire, as packets are
266 ; automatically split on a 1400 byte boundary. These control
267 ; the balance between responsiveness of interest list updates
268 ; and total throughput. Higher numbers will ensure more full-
269 ; sized packets and faster sending of data, but more delay in
270 ; updating interest lists
271 ;
272 ;PrimUpdatesPerCallback = 100
273
274 ; TextureSendLimit determines how many packets will be put on
275 ; the outgoing queue each cycle. Like the settings above, this
276 ; is a balance between responsiveness to priority updates and
277 ; total throughput. Higher numbers will give a better
278 ; throughput at the cost of reduced responsiveness to client
279 ; priority changes or transfer aborts
280 ;
281 ;TextureSendLimit = 20
282
283 ; CannibalizeTextureRate allows bandwidth to be moved from the
284 ; UDP texture throttle to the task throttle. Since most viewers
285 ; use HTTP textures, this provides a means of using what is largely
286 ; unused bandwidth in the total throttle. The value is the proportion
287 ; of the texture rate to move to the task queue. It must be between
288 ; 0.0 (none of the bandwidth is cannibalized) and 0.9 (90% of the
289 ; bandwidth is grabbed)
290 ;
291 ; CannibalizeTextureRate = 0.5
292
293 ; The time to wait before disconecting an unresponsive client.
294 ; The time is in seconds. The default is one minute
295 ;
296 ;AckTimeout = 60
297
298 ; The time to wait before disconecting an unresponsive paused client.
299 ; A client can be paused when the file selection dialog is open during file upload.
300 ; This gives extra time to find files via the dialog but will still disconnect if
301 ; the client crashes or loses its network connection
302 ; The time is in seconds. The default is five minutes.
303 ;
304 ;PausedAckTimeout = 300
305
306
307[Appearance]
308 ; Persist avatar baked textures
309 ; Persisting baked textures can speed up login and region border
310 ; crossings especially with large numbers of users, though it
311 ; will store potentially large numbers of textures in your asset
312 ; database
313 PersistBakedTextures = false
314
315 ; Control the delay before appearance is sent to other avatars and
316 ; saved in the avatar service. Attempts to limit the impact caused
317 ; by the very chatty dialog that sets appearance when an avatar
318 ; logs in or teleports into a region; values are in seconds
319 DelayBeforeAppearanceSave = 5
320 DelayBeforeAppearanceSend = 2
321
322 ; If true, avatar appearance information is resent to other avatars in the simulator every 60 seconds.
323 ; This may help with some situations where avatars are persistently grey, though it will not help
324 ; in other situations (e.g. appearance baking failures where the avatar only appears as a cloud to others).
325 ResendAppearanceUpdates = false
326
327 ; Turning this on responds to CachedTexture packets to possibly avoid rebaking the avatar
328 ; on every login
329 ReuseTextures = true
330
331
332[Attachments]
333 ; Controls the number of milliseconds that are slept per 100 prims rezzed in attachments
334 ; Experimental setting to control CPU spiking when avatars with many attachments login/change outfit
335 ; or when multiple avatars with medium level attachments login/change outfit simultaneously.
336 ; If 0 then no throttling is performed.
337 ThrottlePer100PrimsRezzed = 0
338
339
340[Textures]
341 ; If true, textures generated dynamically (i.e. through osSetDynamicTextureData() and similar OSSL functions) are reused where possible
342 ; Chiefly, reuse occurs if a texture has already been generated with identical data and settings, and that texture contains no dynamic components
343 ; (e.g. images pulled from an external HTTP address).
344 ; Reusing previously generated textures results in a much faster update on the viewer but may cause issues if the viewer didn't receive all resolutions of the texture.
345 ; Currently, it will also increase asset cache use since temporary dynamic textures are no longer deleted.
346 ; Hence, currently considered experimental.
347 ; Default is false.
348 ReuseDynamicTextures = false
349
350 ; If true, then textures generated dynamically that have a low data size relative to their pixel size are not reused
351 ; This is to workaround an apparent LL 3.3.4 and earlier viewer bug where such textures are not redisplayed properly when pulled from the viewer cache.
352 ; Only set this to true if you are sure that all the viewers using your simulator will not suffer from this problem.
353 ; This setting only has an affect is ReuseDynamicTextures = true
354 ; Default is false
355 ReuseDynamicLowDataTextures = false
356
357
358[ODEPhysicsSettings]
359 ; ##
360 ; ## Physics stats settings ( most ignored by ubOde )
361 ;
362
363 ; If collect_stats is enabled, then extra stat information is collected which is accessible via the MonitorModule
364 ; (see http://opensimulator.org/wiki/Monitoring_Module for more details).
365 collect_stats = false
366
367 ; ##
368 ; ## Physics logging settings - logfiles are saved to *.DIF files
369 ; ##
370
371 ; default is false
372 ;physics_logging = true
373 ;; every n simulation iterations, the physics snapshot file is updated
374 ;physics_logging_interval = 50
375 ;; append to existing physics logfile, or overwrite existing logfiles?
376 ;physics_logging_append_existing_logfile = true
377
378 ;##
379 ;## World Settings
380 ;##
381
382 ; World Step size.
383 ; with legacy ODE this value needs to be close to 0.02s
384 ; with ubOde this value can be reduced to improve simulation quality with the cost of higher cpu load
385 ; you will need to test acording to you needs
386 ; choosing a value that is a integer sub multiple of FrameRate reduces some jitter on reported physics FPS
387 world_stepsize = 0.01818
388 ; number of iterations of constrains solver, higher should improve results
389 ; up to a point where acumulated math errors eliminate the improvement
390 ; more steps may increase CPU load. No real gain in changing
391 world_solver_iterations = 10
392
393 ;Spaces level settings. Affects memory consumption vs Collider CPU time for avatar and physical prim
394 ; defines spaces partition cells min and max sizes == 2^value
395 world_hashspace_level_low = -5
396 world_hashSpace_level_high = 12
397
398 meters_in_small_space = 29.9
399
400
401 ; ##
402 ; ## Contact properties. (the stuff that happens when things come in contact with each other)
403 ; ##
404
405 ; surface layer around geometries other geometries can sink into before generating a contact
406 world_contact_surface_layer = 0.001
407
408 ; Filtering collisions helps keep things stable physics wise, but sometimes
409 ; it can be overzealous. If you notice bouncing, chances are it's that.
410 filter_collisions = false
411
412 ; Non Moving Terrain Contact (avatar isn't moving)
413 nm_terraincontact_friction = 255.0
414 nm_terraincontact_bounce = 0.1
415 nm_terraincontact_erp = 0.1025
416
417 ; Moving Terrain Contact (avatar is moving)
418 m_terraincontact_friction = 75.0
419 m_terraincontact_bounce = 0.05
420 m_terrainContact_erp = 0.05025
421
422 ; Moving Avatar to object Contact
423 m_avatarobjectcontact_friction = 75.0
424 m_avatarobjectcontact_bounce = 0.1
425
426 ; Object to Object Contact and Non-Moving Avatar to object
427 objectcontact_friction = 250.0
428 objectcontact_bounce = 0.2
429
430 ; ##
431 ; ## Avatar Control
432 ; ##
433
434 ; PID Controller Settings. These affect the math that causes the avatar to reach the
435 ; desired velocity
436 ; See http://en.wikipedia.org/wiki/PID_controller
437
438 av_pid_derivative = 2200.0
439 av_pid_proportional = 900.0
440
441 ; specifies if the capsule should be tilted (=true; old compatibility mode)
442 ; or straight up-and-down (=false; better and more consistent physics behavior)
443 av_capsule_tilted = false
444
445 ; Movement. Smaller is faster.
446
447 ; speed of movement with Always Run off
448 av_movement_divisor_walk = 1.3
449
450 ; speed of movement with Always Run on
451 av_movement_divisor_run = 0.8
452
453 ; When the avatar flies, it will be moved up by this amount off the ground (in meters)
454 minimum_ground_flight_offset = 3.0
455
456 ; Plant avatar. This reduces the effect of physical contacts with the avatar.
457 ; If you have a group of unruly and rude visitors that bump each other, turn this on to make that less attractive.
458 ; The avatar still allows a small movement based on the PID settings above. Stronger PID settings AND this active
459 ; will lock the avatar in place
460 av_planted = false
461
462 ; No Avatar Avatar Collissions. This causes avatar to be able to walk through each other as if they're ghosts but still interact with the environment
463 av_av_collisions_off = false
464
465 ; ##
466 ; ## Object options
467 ; ##
468
469 ; amount of ODE steps where object is non moving for ODE to automatically put it to sleep
470 body_frames_auto_disable = 20
471
472 ; used to control llMove2Target
473 body_pid_derivative = 35
474 body_pid_gain = 25
475
476 ; maximum number of contact points to generate per collision
477 contacts_per_collision = 80
478
479 ; start throttling the object updates if object comes in contact with 3 or more other objects
480 geom_contactpoints_start_throttling = 3
481
482 ; send 1 update for every x updates below when throttled
483 geom_updates_before_throttled_update = 15
484
485 ; ##
486 ; ## Sculpted Prim settings
487 ; ##
488
489 ; Do we want to mesh sculpted prim to collide like they look?
490 ; If you are seeing sculpt texture decode problems
491 ; (messages such as "Decoded image with unhandled number of components: 0 shortly followed by a physcs exception")
492 ; then you might want to try setting this to false.
493 mesh_sculpted_prim = true
494
495 ; number^2 non-physical level of detail of the sculpt texture. 32x32 - 1024 verticies
496 mesh_lod = 32
497
498 ; number^2 physical level of detail of the sculpt texture. 16x16 - 256 verticies
499 mesh_physical_lod = 16
500
501 ; ##
502 ; ## additional meshing options
503 ; ##
504
505 ; Physics needs to create internal meshs (or convert the object meshs or scultps)
506 ; for all prims except simple boxes and spheres.
507
508 ; collisions of small objects againts larger ones can have a increased CPU load cost
509 ; so this are represented by a simple BOX
510 ; if all their scale dimensions are lower or equal to this option. Default is 0.1m
511 ; (ubOde only)
512 ; MinSizeToMeshmerize = 0.1
513
514
515[BulletSim]
516 ; There are two bullet physics libraries, bulletunmanaged is the default and is a
517 ; native c++ dll bulletxna is a managed C# dll. They have comparible functionality
518 ; but the c++ one is much faster.
519 BulletEngine = "bulletunmanaged"
520 ; BulletEngine = "bulletxna"
521
522 ; BulletSim can run on its own thread independent of the simulator's heartbeat
523 ; thread. Enabling this will not let the physics engine slow down avatar movement, etc.
524 UseSeparatePhysicsThread = false
525
526 ; Terrain implementation can use either Bullet's heightField or BulletSim can build
527 ; a mesh. 0=heightField, 1=mesh
528 TerrainImplementation = 0
529 ; For mesh terrain, the detail of the created mesh. '1' gives 256x256 (heightfield
530 ; resolution). '2' gives 512x512. Etc. Cannot be larger than '4'. Higher
531 ; magnifications use lots of memory.
532 TerrainMeshMagnification = 1
533
534 ; Should avatars collide with each other?
535 AvatarToAvatarCollisionsByDefault = false
536
537 ; Default linkset implmentation
538 ; 'Constraint' uses physics constraints to hold linkset together. 'Compound'
539 ; builds a compound shape from the children shapes to create a single physical
540 ; shape. 'Compound' uses a lot less CPU time.
541 LinkImplementation = 1 ; 0=constraint, 1=compound
542
543 ; If 'true', offset a linkset's origin based on mass of linkset parts.
544 LinksetOffsetCenterOfMass = false
545
546 ; If 'true', turn scuplties into meshes
547 MeshSculptedPrim = false
548
549 ; If 'true', force simple prims (box and sphere) to be meshed
550 ; If 'false', the Bullet native special case shape is used for square rectangles
551 ; and even dimensioned spheres.
552 ForceSimplePrimMeshing = false
553
554 ; If 'true', when creating meshes, remove all triangles that have two equal vertexes.
555 ; Happens often in sculpties. If turned off, there will be some doorways
556 ; that cannot be walked through.
557 ShouldRemoveZeroWidthTriangles = true
558
559 ; If 'true', use convex hull definition in mesh asset if present.
560 ShouldUseAssetHulls = true
561
562 ; If there are thousands of physical objects, these maximums should be increased.
563 MaxCollisionsPerFrame = 2048
564 MaxUpdatesPerFrame = 8192
565
566 ; Detailed physics debug logging. Very verbose.
567 PhysicsLoggingEnabled = False
568 PhysicsLoggingDir = "."
569 VehicleLoggingEnabled = False
570
571
572[Sun]
573 ; send a Sun update every update_interval # of frames. A lower number will
574 ; make for smoother sun transition at the cost of network
575 ;update_interval = 100
576
577
578[Wind]
579 ; How often should wind be updated, as a function of world frames. Approximately 50 frames a second
580 wind_update_rate = 150
581
582 ; The Default Wind Plugin to load
583 wind_plugin = SimpleRandomWind
584
585
586[Cloud]
587 ; update interval for the cloud cover data returned by llCloud().
588 ; default is 1000
589 cloud_update_rate = 1000
590
591
592[Trees]
593 ; active_trees allows module to change its trees in time.
594 ; some will be deleted, others created and rest may grow
595 ; default is false. You can change it with console command tree active true | false later
596 active_trees = false
597 ; the trees change execution time rate (in ms)
598 update_rate = 1000
599
600 ; allow the trees to grow.
601 ; DANGER
602 ; this option causes high network use on the order of
603 ; NumberOfTrees * NumberAvatars * 1000 / update_rate udp packets per second
604 allowGrow = false
605
606
607[LL-Functions]
608 ; Maximum number of llListen events we allow over the entire region.
609 ; Set this to 0 to have no limit imposed
610 max_listens_per_region = 1000
611
612 ; Maximum number of llListen events we allow per script
613 ; Set this to 0 to have no limit imposed.
614 max_listens_per_script = 64
615
616 ; Maximum number of external urls that scripts can set up in this simulator (e.g. via llRequestURL())
617 max_external_urls_per_simulator = 100
618
619 ; Use size boxes instead of meshed prims, sculpts and mesh when calculating bounding boxes.
620 ; Speeds up calculations but can make them inaccurate, in some cases very inaccurate.
621 UseSimpleBoxesInGetBoundingBox = true
622
623 ; Use llCastRay V3 if true.
624 ; Implements llCastRay similar but not identical to Second Life.
625 ; See http://wiki.secondlife.com/wiki/LlCastRay .
626 ; NEW
627 ; Meshes prims for good accuracy in ray hit detection,
628 ; handling basic and tortured prims, sculpts and meshes.
629 ; Uses ellipsoid, correctly sized avatar capsules.
630 ; Handles complex terrain, multi-prim objects and seated avatars.
631 ; Implements throttling and the status codes
632 ; RCERR_UNKNOWN and RCERR_CAST_TIME_EXCEEDED,
633 ; so LSL scripts need to handle these responses and RCERR_SIM_PERF_LOW.
634 ; WARNING
635 ; Can be faster on some servers and scenes, but slower on others,
636 ; compared to previous version of llCastRay in OpenSimulator.
637 ; Is in most cases considerably slower than llCastRay in Second Life.
638 ; Generates geometry meshes and can therefore use much system resources.
639 UseLlCastRayV3 = false
640
641 ; Accepted calculation precision error in calculations in llCastRay V3
642 FloatToleranceInLlCastRay = 0.00001
643
644 ; Accepted distance difference between duplicate hits in llCastRay V3
645 FloatTolerance2InLlCastRay = 0.001
646
647 ; Detail level when rendering prims in llCastRay V3
648 ; 0 = Low, 1 = Medium, 2 = High, 3 = Highest, higer level gives better accuracy but slower call
649 PrimDetailLevelInLlCastRay = 1
650
651 ; Detail level when rendering sculpts in llCastRay V3
652 ; 0 = Low, 1 = Medium, 2 = High, 3 = Highest, higer level gives better accuracy but slower call
653 SculptDetailLevelInLlCastRay = 1
654
655 ; Detail level when rendering meshes in llCastRay V3
656 ; 0 = Low, 1 = Medium, 2 = High, 3 = Highest, higer level gives better accuracy but slower call
657 MeshDetailLevelInLlCastRay = 3
658
659 ; Detail level when rendering avatar capsules in llCastRay V3
660 ; 0 = Low, 1 = Medium, 2 = High, 3 = Highest, higer level gives better accuracy but slower call
661 AvatarDetailLevelInLlCastRay = 1
662
663 ; Maximum number of returned hits from llCastRay V3
664 MaxHitsInLlCastRay = 16
665
666 ; Maximum number of returned hits per prim from llCastRay V3
667 MaxHitsPerPrimInLlCastRay = 16
668
669 ; Maximum number of returned hits per object from llCastRay V3
670 MaxHitsPerObjectInLlCastRay = 16
671
672 ; Report ray intersections with surfaces on exits from a prim as hits in llCastRay V3 if true
673 DetectExitHitsInLlCastRay = false
674
675 ; Detect attachments in llCastRay V3 if true
676 DoAttachmentsInLlCastRay = false
677
678 ; Throttle period length in ms before which all old llCastRay use is discarded in llCastRay V3
679 ; The sum of AvailableTimeInMsPerRegionInLlCastRay and all AvailableTimeInMsPerAvatarInLlCastRay should not exceed this
680 ThrottleTimeInMsInLlCastRay = 200
681
682 ; Available time in ms for llCastRay per throttle period and 65536 m2 land area in llCastRay V3
683 AvailableTimeInMsPerRegionInLlCastRay = 40
684
685 ; Available time in ms for llCastRay per throttle period and avatar when script in attachment or vehicle in llCastRay V3
686 AvailableTimeInMsPerAvatarInLlCastRay = 10
687
688 ; Required available time in ms left to perform a new llCastRay in llCastRay V3
689 RequiredAvailableTimeInMsInLlCastRay = 2
690
691 ; Maximum available time in ms possible in llCastRay V3, not to get too high values with varregions
692 MaximumAvailableTimeInMsInLlCastRay = 40
693
694 ; Use cached meshes in llCastRay V3 if true
695 ; Improves performance but uses more memory
696 UseMeshCacheInLlCastRay = true
697
698
699[XEngine]
700 ; How many threads to keep alive even if nothing is happening
701 MinThreads = 2
702
703 ; How many threads to start at maximum load
704 MaxThreads = 100
705
706 ; Time a thread must be idle (in seconds) before it dies
707 IdleTimeout = 60
708
709 ; Thread priority ("Lowest", "BelowNormal", "Normal", "AboveNormal", "Highest")
710 Priority = "BelowNormal"
711
712 ; Maximum number of events to queue for a script (excluding timers)
713 MaxScriptEventQueue = 3000
714
715 ; Stack size per thread created
716 ThreadStackSize = 132144
717
718 ; Set this to true to load each script into a separate
719 ; AppDomain. Setting this to false will load all script assemblies into the
720 ; current AppDomain, which will reduce the initial per-script memory overhead,
721 ; but deleted scripts stay inactive using memory.
722 ; Significantly improving script loading times.
723 ; However, setting this to false will also prevent script DLLs from being unloaded from memory if the script is deleted.
724 ; This may cause an OutOfMemory problem over time when avatars with scripted attachments move in and out of the region.
725 ; This may only be a problem if regions stay alive for a long time with lots of scripts added or edited.
726 ; At this time some mono versions seem to have problems with the true option,
727 ; so default is now false until a fix is found, to simply life of less technical skilled users.
728 AppDomainLoading = false
729
730 ; Controls whether previously compiled scripts DLLs are deleted on sim restart.
731 ; If you set this to false then startup will be considerably faster since scripts won't need to be recompiled.
732 ; It should be true on first run after updating opensim binary version
733 ; after first run you can change to false.
734 ; You can also set it to false and delete the script DLLs by hand
735 ; This does not delete cached scripts state.
736 DeleteScriptsOnStartup = true
737
738 ; CompactMemOnLoad
739 ; forces calls to memory garbage collector before loading each script DLL during region startup.
740 ; Peak memory usage is reduced and region starts with a more compacted memory allocation.
741 ; But this costs a lot of time, so region load will take a lot longer.
742 ; it is more usefull if there are no previously compiled scripts DLLs (or DeleteScriptsOnStartup = true)
743 CompactMemOnLoad = true
744
745 ; Controls whether scripts are stopped by aborting their threads externally (abort)
746 ; or by co-operative checks inserted by OpenSimulator into compiled script (co-op).
747 ; co-op will be more stable as aborting threads can cause instability.
748 ; abort was the default option in OpenSimulator 0.8 and before.
749 ; If this setting is changed between co-op and abort, then existing scripts will automatically be recompiled if necessary.
750 ; However, the setting change will not take affect until the next time you restart the simulator.
751 ; Setting changes will not affect state information stored for scripts.
752 ScriptStopStrategy = abort
753
754 ; Rate to poll for asynchronous command replies (ms)
755 ; currently unused
756 ;AsyncLLCommandLoopms = 50
757
758 ; Compile debug info (line numbers) into the script assemblies
759 CompileWithDebugInformation = false
760
761 ; Interval (s) between background save of script states
762 SaveInterval = 120
763
764 ; Interval (s) between maintenance runs (0 = disable)
765 MaintenanceInterval = 10
766
767 ; Amount of time in milliseconds we will wait for an event to completely normally when a script stop is requested
768 ; before aborting the thread (such as when an object containing scripts is taken into inventory).
769 WaitForEventCompletionOnScriptStop = 1000
770
771 ; Minimum settable timer interval. Any timer setting less than this is
772 ; rounded up to this minimum interval.
773 MinTimerInterval = 0.1
774
775 ; Sensor settings
776 SensorMaxRange = 96.0
777 SensorMaxResults = 16
778
779
780[Groups]
781 ; Groups data is cached for this number of seconds before another request is made to the groups service
782 ; Set to 0 to disable the cache.
783 ; Default is 30 seconds
784 GroupsCacheTimeout = 30
785
786
787[PacketPool]
788 ;RecyclePackets = true
789 ;RecycleDataBlocks = true
790
791 ; If true, then the basic packet objects used to receive data are also recycled, not just the LLUDP packets.
792 ; This reduces data churn
793 RecycleBaseUDPPackets = true
794
795
796[InterestManagement]
797 ; This section controls how state updates are prioritized for each client
798 ; Valid values are BestAvatarResponsiveness, Time, Distance,
799 ; SimpleAngularDistance, and FrontBack
800 UpdatePrioritizationScheme = BestAvatarResponsiveness
801 ReprioritizationEnabled = true
802 ReprioritizationInterval = 2000.0
803 RootReprioritizationDistance = 10.0
804 ChildReprioritizationDistance = 20.0
805
806 ; TEST OPTION KEEP AS FALSE
807 ; if true, don't send object updates if outside view range
808 ObjectsCullingByDistance = false
809
810 ; If n > 1, only every n UDP terse updates will be sent to observers of an avatar that are in the same region
811 ; Updates will always be sent to the avatar that the update addresses and if av velocity is effectively zero (to prevent drift due to missing updates).
812 ; n > 1 will reduce UDP traffic but will lead to laggier movement observed in other avatars.
813 RootTerseUpdatePeriod = 0
814
815 ; If n > 1, only every n UDP terse updates will be sent to observers of an avatar that are in another region
816 ; n > 1 will reduce UDP traffic but may lead to laggier movement observed in other avatars, though values up to 4 may not generate a noticeable effect.
817 ChildTerseUpdatePeriod = 0
818
819 ; Send an update to clients if the difference from the last sent avatar position is greater than this tolerance
820 RootPositionUpdateTolerance = 0.05
821
822 ; Send an update to clients if the euclidian difference from the last sent avatar rotation is greater than this tolerance
823 RootRotationUpdateTolerance = 0.1
824
825 ; Send an update to clients if the difference from the last sent avatar velocity is greater than this tolerance
826 RootVelocityUpdateTolerance = 0.001
827
828
829[Statistics]
830 ; NumberOfFrames is used in a moving average calculation, where NumberOfFrames is the number of frames
831 ; to include in the averaging calculations
832 NumberOfFrames=10
833
834
835[Terrain]
836 ; If 'true' each avatar is only sent terrain patches within their view distance
837 ; This also changes the region terrain loading from 'lawn mower' to ordered around
838 ; the avatar outward.
839 SendTerrainUpdatesByViewDistance = True
840
841
842[LandManagement]
843 ; When editing terrain or objects, parcel layer info is updated in the viewer.
844 ; This can be expensive for large regions. If this variable is 'true', only the
845 ; parcel layer data around the area of interest is sent. The parcel layer info
846 ; is sent for 'ParcelLayerViewDistance' around the interest point.
847 ; If 'ParcelLayerViewDistance' is >= 128, the operation for legacy sized regions
848 ; will be what it has always been (send the whole region's parcel layer info).
849 ; Other parcel updates (login, changing parcel ownership, ...) will still send
850 ; whole region.
851 LimitParcelLayerUpdateDistance = true
852 ParcelLayerViewDistance = 128
853
854
855;; If you are using a simian grid frontend you can enable
856;; this module to upload tile images for the mapping fn
857;;
858[SimianGridMaptiles]
859 RefreshTime = 3600
860
861
862;;
863;; These are defaults that are overwritten below in [Architecture].
864;; These defaults allow OpenSim to work out of the box with
865;; zero configuration
866;;
867[AssetService]
868 ; Disable this to prevent the default asset set from being inserted into the
869 ; asset store each time the region starts
870 AssetLoaderEnabled = true
871
872
873[AutoBackupModule]
874 ;; default is module is disabled at the top level
875 AutoBackupModuleEnabled = false
876
877
878[ServiceThrottle]
879 ;; Default time interval (in ms) for the throttle service thread to wake up
880 Interval = 5000
881
882
883[Materials]
884 MaxMaterialsPerTransaction = 50
diff --git a/bin/config-include/config_localhost.ini b/bin/config-include/config_localhost.ini
new file mode 100644
index 0000000..501a1f4
--- /dev/null
+++ b/bin/config-include/config_localhost.ini
@@ -0,0 +1,49 @@
1; The Const section allows us to define some basic information that we
2; will use throughout our configuration. We will provide examples for
3; setting the base url of the ROBUST server and the public and private ports
4; it uses. Changing the values of the constants will set the operating
5; parameters thoughout the configuration. Other constants that may prove
6; to be useful may be added to the followin section. They may be
7; referenced anywhere in the configuration by using ${Const|Name}. One
8; such use is providing a base path for setting locations that ROBUST
9; uses to write data.
10
11; Also put grid specific stuff here.
12
13
14[Paths]
15 AssetsPath = "../../AssetFiles"
16 BackupPath = "../../backups"
17 CachePath = "../../caches"
18 ConfigPath = "../../config"
19 DbPath = "../../db"
20 LogPath = "../../logs"
21 WebPath = "../../web"
22
23[Const]
24 MOTD = "Welcome to your local grid."
25
26 GridName = "localhost Grid"
27 ShortGridName = "lg"
28
29 ; For a grid these will usually be the externally accessible IP/DNS
30 ; name and use default public port 8002 and default private port 8003
31 ; For a standalone this will usually be the externally accessible IP/DNS
32 ; name and use default public port 9000. The private port is not used
33 ; in the configuration for a standalone.
34 BaseHostname = "http://127.0.0.1"
35 HostName = "localhost"
36 BaseURL = ${Const|BaseHostname}
37 GridURL = ${Const|BaseHostname}
38 SSLURL = "https://${Const|HostName}"
39
40 PublicPort = "8002"
41 PrivatePort = "8003"
42 PublicSSLPort = "8443"
43
44 ; The public port of the ROBUST asset server, which might be different.
45 AssetServerPort = "8003"
46
47 ; Database credentials.
48 DataProvider = "OpenSim.Data.MySQL.dll"
49 ConnectionString = "Data Source=MYSQL_HOST;Database=MYSQL_DB;User ID=MYSQL_USER;Password=MYSQL_PASSWORD;Old Guids=true;"