From e9e078a8b58be7bc7f04799f17d3858e7470ac67 Mon Sep 17 00:00:00 2001
From: onefang
Date: Tue, 8 Sep 2020 21:23:58 +1000
Subject: Major clean up of config and ini files.
---
.nant/local.include | 4 +-
bin/OpenSim.exe.config | 13 +-
bin/OpenSimDefaults.ini | 318 ++++++-----
bin/Robust.exe.config | 10 +-
bin/config-include/GridCommon.ini.example | 28 +-
bin/config-include/SimBalanced.ini | 889 ++++++++++++++++++++++++++++++
bin/config-include/SimDefault.ini | 884 +++++++++++++++++++++++++++++
bin/config-include/SimFast.ini | 884 +++++++++++++++++++++++++++++
bin/config-include/SimLean.ini | 884 +++++++++++++++++++++++++++++
bin/config-include/config_localhost.ini | 49 ++
10 files changed, 3787 insertions(+), 176 deletions(-)
create mode 100644 bin/config-include/SimBalanced.ini
create mode 100644 bin/config-include/SimDefault.ini
create mode 100644 bin/config-include/SimFast.ini
create mode 100644 bin/config-include/SimLean.ini
create mode 100644 bin/config-include/config_localhost.ini
diff --git a/.nant/local.include b/.nant/local.include
index 07421c8..7b7aaf5 100644
--- a/.nant/local.include
+++ b/.nant/local.include
@@ -55,8 +55,8 @@
-
-
+
+
diff --git a/bin/OpenSim.exe.config b/bin/OpenSim.exe.config
index 690f808..ed250b3 100755
--- a/bin/OpenSim.exe.config
+++ b/bin/OpenSim.exe.config
@@ -11,36 +11,28 @@
+
-
-
-
-
-
-
-
-
+
@@ -53,7 +45,6 @@
-
diff --git a/bin/OpenSimDefaults.ini b/bin/OpenSimDefaults.ini
index 2e680df..1852438 100644
--- a/bin/OpenSimDefaults.ini
+++ b/bin/OpenSimDefaults.ini
@@ -116,14 +116,14 @@
allow_regionless = false
;; Allow child agents to see into the region even if their root counterpart isn't allowed in here
- see_into_region = true
+ see_into_region = false
- ;; use legacy math for sittarget offset "correction"
- ;; set this option to false to use improved math more compatibility with SL.
- ;; keep it true if you have many old objects with sits set by scripts.
- ;; the offset in question is added to the SitTarget to find the sitting avatar position.
- ;; acording to its size, etc.
- ; LegacySitOffsets = true
+ ;; use legacy math for sittarget offset "correction"
+ ;; set this option to false to use improved math more compatibility with SL.
+ ;; keep it true if you have many old objects with sits set by scripts.
+ ;; the offset in question is added to the SitTarget to find the sitting avatar position.
+ ;; acording to its size, etc.
+ LegacySitOffsets = false
; Maximum number of position, rotation and scale changes for each prim that the simulator will store for later undos
; Increasing this number will increase memory usage.
@@ -134,13 +134,13 @@
; NonPhysicalPrimMin = 0.001
; Maximum size of non physical prims. Affects resizing of existing prims. This can be overridden in the region config file (as NonPhysicalPrimMax!).
- NonPhysicalPrimMax = 256
+ NonPhysicalPrimMax = 2560
; Minimum size where a prim can be physical. This can be overridden in the region config file.
; PhysicalPrimMin = 0.01
; Maximum size of physical prims. Affects resizing of existing prims. This can be overridden in the region config file.
- PhysicalPrimMax = 64
+ PhysicalPrimMax = 640
; If a viewer attempts to rez a prim larger than the non-physical or physical prim max, clamp the dimensions to the appropriate maximum
; This can be overridden in the region config file.
@@ -165,15 +165,15 @@
TrustBinaries = false
; the default view range. Viewers override this ( no major effect still )
- ;DefaultDrawDistance = 255.0
+ DefaultDrawDistance = 1024.0
- ; limit the maximum view range ( no effect still (does limit MaxRegionsViewDistance) )
- ;MaxDrawDistance = 512
+ ; limit the maximum view range ( no effect still (does limit MaxRegionsViewDistance) )
+ MaxDrawDistance = 1024
; Other regions visibility depends on avatar position and view range
; the view range considered is limited the maximum and minimum distances:
- ;MaxRegionsViewDistance = 255
- ;MinRegionsViewDistance = 96
+ MaxRegionsViewDistance = 512
+ MinRegionsViewDistance = 96
; If you have only one region in an instance, or to avoid the many bugs
; that you can trigger in modules by restarting a region, set this to
@@ -181,25 +181,25 @@
; This is meant to be used on systems where some external system like
; Monit will restart any instance that exits, thereby making the shutdown
; into a restart.
- InworldRestartShutsDown = false
+ InworldRestartShutsDown = true
; Use of normalized 55FPS statistics
- ; Opensim does not have a frame rate control like other simulators.
- ; Most parameters that control timing can be configurable region by region.
- ; To achieve closer compatibility with values expected by viewers, scripts and users
- ; some parameters are converted to a equivalent per frame value.
- ; Additionally, they are scaled to values they would have on a system running at a nominal 55 frames per second rate.
- ; The scale factor it 55 * FrameTime, corresponding to 5 with default configuration
- ; You can choose to show the true physics FPS to viewers by setting Normalized55FPS to false.
- ; Normalized55FPS = true
+ ; Opensim does not have a frame rate control like other simulators.
+ ; Most parameters that control timing can be configurable region by region.
+ ; To achieve closer compatibility with values expected by viewers, scripts and users
+ ; some parameters are converted to a equivalent per frame value.
+ ; Additionally, they are scaled to values they would have on a system running at a nominal 55 frames per second rate.
+ ; The scale factor it 55 * FrameTime, corresponding to 5 with default configuration
+ ; You can choose to show the true physics FPS to viewers by setting Normalized55FPS to false.
+ ; Normalized55FPS = true
; Main Frame time
- ; This defines the rate of several simulation events.
- ; Default value should meet most needs.
- ; It can be reduced to improve the simulation of moving objects, with possible increase of cpu and network loads.
- ; It should not be less than the physics engine step time.
- ; Being a integer multiple of it may reduce some jitter in reported physics FPS.
- ; changing this value, you need to change some of the following *EveryNFrames so their actions timing remains the same
+ ; This defines the rate of several simulation events.
+ ; Default value should meet most needs.
+ ; It can be reduced to improve the simulation of moving objects, with possible increase of cpu and network loads.
+ ; It should not be less than the physics engine step time.
+ ; Being a integer multiple of it may reduce some jitter in reported physics FPS.
+ ; changing this value, you need to change some of the following *EveryNFrames so their actions timing remains the same
FrameTime = 0.0909
; The values below represent the percentage of the target frame time that,
@@ -292,7 +292,7 @@
; folder, which can reduce startup times by reducing asset requests. Some
; versions of mono dont work well when reading the cache files, so set this
; to false if you have compatibility problems.
- ;CacheSculptMaps = true
+ CacheSculptMaps = true
;; BulletSim is the default physics engine. It provides the best performance and most functionality.
;; BulletSim supports varregions.
@@ -349,7 +349,7 @@
; Simulator statistics are output to the console periodically at debug level INFO.
; Setting this to zero disables this output.
- ; LogShowStatsSeconds = 3600
+ LogShowStatsSeconds = 0
; Simulator Stats URI
; Enable JSON simulator data by setting a URI name (case sensitive)
@@ -364,7 +364,7 @@
; Make OpenSim start all regions with logins disabled. They will need
; to be enabled from the console if this is set
- ; StartDisabled = false
+ StartDisabled = false
; Image decoding. Use CSJ2K for layer boundary decoding if true,
; OpenJPEG if false
@@ -394,12 +394,19 @@
; available spot to the destination (typically map click/landmark).
; "random" will place the avatar on a randomly selected spawnpoint;
; "sequence" will place the avatar on the next sequential SpawnPoint
- ; SpawnPointRouting = closest
+ SpawnPointRouting = random
; TelehubAllowLandmark allows users with landmarks to override telehub
; routing and land at the landmark coordinates when set to true
; default is false
- ; TelehubAllowLandmark = false
+ TelehubAllowLandmark = true
+
+
+; Normally this section goes in the ThisSim.ini file, but this is common for all.
+[Region]
+ InternalAddress = "0.0.0.0"
+ ExternalHostName = "${Const|HostName}"
+
; #
; # SSL certificates validation options
@@ -419,20 +426,20 @@
; If false then the texture referenced by MaptileStaticUUID is used instead, which can also be overridden
; in individual region config file(s). If you do not want to upload map tiles at all, then you will need
; both to set this to false and comment out the [Modules] MapImageServiceModule setting in config-include/
- ;GenerateMaptiles = true
+ GenerateMaptiles = true
;WorldMapModule = "WorldMap"
; The module to use in order to generate map images.
; MapImageModule is the default. Warp3DImageModule is an alternative experimental module that can
; generate better images.
- ;MapImageModule = "MapImageModule"
+ MapImageModule = "Warp3DImageModule"
; World map blacklist timeout in seconds
;BlacklistTimeout = 600
; Refresh (in seconds) the map tile periodically
- ;MaptileRefresh = 0
+ MaptileRefresh = 0
; If not generating maptiles, use this static texture asset ID
;MaptileStaticUUID = "00000000-0000-0000-0000-000000000000"
@@ -448,7 +455,7 @@
TexturePrims = true
; Only texture prims that have a diagonal size greater than this number
- TexturePrimSize = 48
+ TexturePrimSize = 1
; Attempt to render meshes and sculpties on the map
RenderMeshes = false
@@ -468,6 +475,28 @@
; where to store cached map tiles.
CacheDirectory = "${Paths|CachePath}/MapImageCache"
+ ; Draw map position at bottom right.
+ enablePosition = true
+
+ ; Refresh the cached map tile once a month.
+ ;RefreshEveryMonth = true
+
+ ;# {MapColorWater} {} {Water color for textured and shaded maps} {"#1D475F"}
+ ; MapColorWater = "#3399FF"
+
+ ;# {MapColor1} {} {Terrain color 1 for textured maps} {"#A58976"}
+ ; MapColor1 = "#A58976"
+
+ ;# {MapColor2} {} {Terrain color 2 for textured maps} {"#455931"}
+ ; MapColor2 = "#455931"
+
+ ;# {MapColor3} {} {Terrain color 3 for textured maps} {"#A29A8D"}
+ ; MapColor3 = "#A29A8D"
+
+ ;# {MapColor4} {} {Terrain color 4 for textured maps} {"#C8C8C8"}
+ ; MapColor4 = "#C8C8C8"
+
+
[Permissions]
; ##
; ## PERMISSIONS
@@ -475,7 +504,7 @@
; Permission modules to use, separated by comma.
; Possible modules are DefaultPermissionsModule, PrimLimitsModule
- ;permissionmodules = "DefaultPermissionsModule"
+ permissionmodules = "DefaultPermissionsModule"
; If set to false, then, in theory, the server never carries out permission checks (allowing anybody to copy
; any item, etc. This may not yet be implemented uniformally.
@@ -547,11 +576,11 @@
; - the second field is a number indicating whether the OAR file loaded ok (1 == ok, 0 == error)
; - the third field is a number indicating how many scripts failed to compile
; - "oar error" if supplied, provides the error message from the OAR load
- channel_notify = -800
+ channel_notify = 0
; - disallow logins while scripts are loading
; Instability can occur on regions with 100+ scripts if users enter before they have finished loading
- login_disable = true
+ login_disable = false
; - send an alert as json to a service
; alert_uri = "http://myappserver.net/my_handler/"
@@ -567,12 +596,12 @@
;# {ProfileURL} {} {Set url to UserProfilesService} {}
;; Set the value of the url to your UserProfilesService
;; If un-set / "" the module is disabled
- ;; If the ProfileURL is not set, then very BASIC
- ;; profile support will be configured. If the ProfileURL is set to a
+ ;; If the ProfileServiceURL is not set, then very BASIC
+ ;; profile support will be configured. If the ProfileServiceURL is set to a
;; valid URL, then full profile support will be configured. The URL
;; points to your grid's Robust user profiles service
;;
- ; ProfileURL = http://127.0.0.1:9000
+ ProfileServiceURL = ${Const|GridURL}:${Const|PublicPort}
;; set this to false to prevent your users to be sent to unknown
;; web sites by other users on their profiles
@@ -592,10 +621,10 @@
[Network]
- ConsoleUser = "Test"
- ConsolePass = "secret"
- http_listener_port = 9000
- console_port = 0
+ ;ConsoleUser = "Test"
+ ;ConsolePass = "secret"
+ ;http_listener_port = 9000
+ ;console_port = 0
; ssl config: Experimental!
http_listener_ssl = false ; if set to true main server is replaced by a ssl one
@@ -631,6 +660,7 @@
; must be a valid hostname for the ssl cert.
; if not defined - llRequestURL/llRequestSecureURL are disabled
; ExternalHostNameForLSL=127.0.0.1
+ ExternalHostNameForLSL = "${Const|HostName}"
; Disallow the following address ranges for user scripting calls (e.g. llHttpRequest())
; This is based on http://en.wikipedia.org/wiki/Reserved_IP_addresses
@@ -721,8 +751,8 @@
; Adaptive throttling attempts to limit network overload when multiple
; clients login by starting each connection more slowly. Disabled by
; default
- ; currently disabled
- ;enable_adaptive_throttles = false
+ ;
+ enable_adaptive_throttles = true
; TextureSendLimit determines how many packets will be put on
@@ -739,7 +769,7 @@
; silly vanity "Facelights" dead. Sorry, head mounted miner's lamps
; will also be affected.
;
- ;DisableFacelights = false
+ DisableFacelights = true
; The time to wait before disconecting an unresponsive client.
; The time is in seconds. The default is one minute
@@ -788,7 +818,7 @@
Cap_GetObjectCost = ""
Cap_GetObjectPhysicsData = ""
Cap_GroupProposalBallot = ""
- Cap_GroupMemberData = "localhost"
+ Cap_GroupMemberData = "localhost"
Cap_HomeLocation = "localhost"
Cap_LandResources = ""
Cap_MapLayer = "localhost"
@@ -845,13 +875,14 @@
enabled = true
; Distance in meters that whispers should travel. Default is 10m
- whisper_distance = 10
+ whisper_distance = 15
; Distance in meters that ordinary chat should travel. Default is 20m
- say_distance = 20
+ say_distance = 40
; Distance in meters that shouts should travel. Default is 100m
- shout_distance = 100
+ shout_distance = 256
+
[EntityTransfer]
; The maximum distance in regions that an agent is allowed to teleport
@@ -864,9 +895,9 @@
; Allow avatars to cross into and out of the region.
AllowAvatarCrossing = true
- ; This disables border transfers for objects. When true, objects can be placed outside
- ; the region's border without being transferred to another simulator.
- DisableObjectTransfer = false
+ ; This disables border transfers for objects. When true, objects can be placed outside
+ ; the region's border without being transferred to another simulator.
+ DisableObjectTransfer = false
; Minimum user level required for HyperGrid teleports
LevelHGTeleport = 0
@@ -876,10 +907,10 @@
; Disabling cancellation can be okay in small closed grids where all teleports are highly likely to suceed.
DisableInterRegionTeleportCancellation = false
- ;; This option exists to control the behavior of teleporting gods into places that have landing points
- ;; and telehubs. Historically, there has been a difference: OpenSim (OS) has honored landing points and telehubs even for
- ;; avatars with god permissions; SL lets gods land wherever they want.
- LandingPointBehavior = LandingPointBehavior_OS
+ ;; This option exists to control the behavior of teleporting gods into places that have landing points
+ ;; and telehubs. Historically, there has been a difference: OpenSim (OS) has honored landing points and telehubs even for
+ ;; avatars with god permissions; SL lets gods land wherever they want.
+ LandingPointBehavior = LandingPointBehavior_SL
[Messaging]
@@ -909,7 +940,7 @@
; crossings especially with large numbers of users, though it
; will store potentially large numbers of textures in your asset
; database
- PersistBakedTextures = false
+ PersistBakedTextures = true
; Control the delay before appearance is sent to other avatars and
; saved in the avatar service. Attempts to limit the impact caused
@@ -921,11 +952,11 @@
; If true, avatar appearance information is resent to other avatars in the simulator every 60 seconds.
; This may help with some situations where avatars are persistently grey, though it will not help
; in other situations (e.g. appearance baking failures where the avatar only appears as a cloud to others).
- ResendAppearanceUpdates = false
+ ResendAppearanceUpdates = true
; Turning this on responds to CachedTexture packets to possibly avoid rebaking the avatar
; on every login
- ReuseTextures = false
+ ReuseTextures = true
[Attachments]
@@ -949,7 +980,7 @@
;LevelUpload = 0
; support meshes on physics
- ;UseMeshiesPhysicsMesh = true
+ UseMeshiesPhysicsMesh = true
;support convex shape type on normal prims
; (ubOde only)
@@ -1023,18 +1054,18 @@
avatar_terminal_velocity = 54
; World Step size.
- ; with legacy ODE this value needs to be close to 0.02s
- ; with ubOde this value can be reduced to improve simulation quality with the cost of higher cpu load
- ; you will need to test acording to you needs
- ; choosing a value that is a integer sub multiple of FrameRate reduces some jitter on reported physics FPS
+ ; with legacy ODE this value needs to be close to 0.02s
+ ; with ubOde this value can be reduced to improve simulation quality with the cost of higher cpu load
+ ; you will need to test acording to you needs
+ ; choosing a value that is a integer sub multiple of FrameRate reduces some jitter on reported physics FPS
world_stepsize = 0.01818
- ; number of iterations of constrains solver, higher should improve results
- ; up to a point where acumulated math errors eliminate the improvement
- ; more steps may increase CPU load. No real gain in changing
+ ; number of iterations of constrains solver, higher should improve results
+ ; up to a point where acumulated math errors eliminate the improvement
+ ; more steps may increase CPU load. No real gain in changing
world_solver_iterations = 10
;Spaces level settings. Affects memory consumption vs Collider CPU time for avatar and physical prim
- ; defines spaces partition cells min and max sizes == 2^value
+ ; defines spaces partition cells min and max sizes == 2^value
world_hashspace_level_low = -5
world_hashSpace_level_high = 12
@@ -1186,15 +1217,15 @@
; BulletSim can run on its own thread independent of the simulator's heartbeat
; thread. Enabling this will not let the physics engine slow down avatar movement, etc.
- UseSeparatePhysicsThread = false
+ UseSeparatePhysicsThread = true
; Terrain implementation can use either Bullet's heightField or BulletSim can build
; a mesh. 0=heightField, 1=mesh
- TerrainImplementation = 0
+ TerrainImplementation = 1
; For mesh terrain, the detail of the created mesh. '1' gives 256x256 (heightfield
; resolution). '2' gives 512x512. Etc. Cannot be larger than '4'. Higher
; magnifications use lots of memory.
- TerrainMeshMagnification = 2
+ TerrainMeshMagnification = 3
; Should avatars collide with each other?
AvatarToAvatarCollisionsByDefault = true
@@ -1208,13 +1239,14 @@
; Avatar walk-up-stairs parameters
; If an avatar collides with an object 'close to its feet', the avatar will be
; moved/pushed up do simulate stepping up.
- ;AvatarStepHeight = 0.6 ; The height, below which is considered a step collision.
- ;AvatarStepAngle = 0.3 ; The angle from vertical (in radians) to consider a surface a step
- ;AvatarStepApproachFactor = 2 ; Approach angle factor. O=straight on, .6=~45 degrees.
- ;AvatarStepGroundFudge = 0.1 ; Fudge added to bottom of avatar below which step collisions happen
- ;AvatarStepForceFactor = 0 ; Avatar is pushed up by its mass times this factor
- ;AvatarStepUpCorrectionFactor = 0.8 ; Avatar is displaced up the collision height times this factor
- ;AvatarStepSmoothingSteps = 1 ; Number of frames after a step collision that up correction is applied
+;;;; Has trouble with the lighthouse stairs, but all others work fine, can even climb over some fences. Which is odd.
+ AvatarStepHeight = 0.6 ; The height, below which is considered a step collision.
+ AvatarStepAngle = 0.3 ; The angle from vertical (in radians) to consider a surface a step
+ AvatarStepApproachFactor = 2 ; Approach angle factor. O=straight on, .6=~45 degrees.
+ AvatarStepGroundFudge = 0.1 ; Fudge added to bottom of avatar below which step collisions happen
+ AvatarStepForceFactor = 0 ; Avatar is pushed up by its mass times this factor
+ AvatarStepUpCorrectionFactor = 1.1 ; Avatar is displaced up the collision height times this factor
+ AvatarStepSmoothingSteps = 3 ; Number of frames after a step collision that up correction is applied
; Terminal velocity of a falling avatar
; This is the same http://en.wikipedia.org/wiki/Terminal_velocity#Examples
@@ -1346,9 +1378,9 @@
; flush-on-error = true
-; IRC bridge is experimental, so if it breaks... keep both parts... yada yada
-; also, not good error detection when it fails
[IRC]
+ ; IRC bridge is experimental, so if it breaks... keep both parts... yada yada
+ ; also, not good error detection when it fails
enabled = false; you need to set this to true otherwise it won't connect
;server = name.of.irc.server.on.the.net
;; user password - only use this if the server requires one
@@ -1417,15 +1449,15 @@
;alert_msg_post = "Everything you say in public chat can be listened."
-; The following settings control the progression of daytime
-; in the Sim. The defaults are the same as the commented out settings
[Sun]
+ ; The following settings control the progression of daytime
+ ; in the Sim. The defaults are the same as the commented out settings
; number of wall clock hours for an opensim day. 24.0 would mean realtime
- ;day_length = 4
+ day_length = 24
; Year length in days
- ;year_length = 60
+ year_length = 365
; Day to Night Ratio
- ;day_night_offset = 0.45
+ day_night_offset = 1.0
; send a Sun update every update_interval # of frames. A lower number will
; make for smoother sun transition at the cost of network
;update_interval = 100
@@ -1457,7 +1489,7 @@
[Cloud]
; Enable this to generate classic particle clouds above the sim.
; default is disabled - turn it on here
- enabled = false
+ enabled = true
; Density of cloud cover 0.0 to 1.0 Defult 0.5
density = 0.5
@@ -1470,7 +1502,7 @@
[LightShare]
; This enables the transmission of Windlight scenes to supporting clients, such as the Meta7 viewer.
; It has no ill effect on viewers which do not support server-side windlight settings.
- enable_windlight = false
+ enable_windlight = true
[Trees]
@@ -1502,7 +1534,7 @@
; Are god functions such as llSetObjectPermMask() allowed? If true then gods and only gods have access to these functions.
; If false then gods cannot execute these functions either.
- AllowGodFunctions = false
+ AllowGodFunctions = true
; Restrict the email address used by llEmail to the address associated with the avatars user account?
; If true then llEmail will only send email to the address in the user account of the avatar who owns the object containing the script.
@@ -1511,11 +1543,11 @@
; Maximum number of llListen events we allow over the entire region.
; Set this to 0 to have no limit imposed
- max_listens_per_region = 1000
+ max_listens_per_region = 0
; Maximum number of llListen events we allow per script
; Set this to 0 to have no limit imposed.
- max_listens_per_script = 64
+ max_listens_per_script = 0
; Maximum number of external urls that scripts can set up in this simulator (e.g. via llRequestURL())
max_external_urls_per_simulator = 100
@@ -1628,7 +1660,7 @@
; compared to previous version of llCastRay in OpenSimulator.
; Is in most cases considerably slower than llCastRay in Second Life.
; Generates geometry meshes and can therefore use much system resources.
- UseLlCastRayV3 = false
+ UseLlCastRayV3 = true
; Accepted calculation precision error in calculations in llCastRay V3
FloatToleranceInLlCastRay = 0.00001
@@ -1701,7 +1733,7 @@
data_exposure = minimum
; If search is on, change this to your grid name; will be ignored for standalones
- gridname = "OSGrid"
+ gridname = "${Const|GridName}"
; Period between data snapshots, in seconds. 20 minutes, for starters, so that you see the initial changes fast.
; Later, you may want to increase this to 3600 (1 hour) or more
@@ -1726,13 +1758,13 @@
; Economy values get used in the BetaGridLikeMoneyModule.
;; Enables selling things for $0. Default is true.
- ; SellEnabled = true
+ SellEnabled = true
;; Money Unit fee to upload textures, animations etc. Default is 0.
- ;PriceUpload = 0
+ PriceUpload = 0
;; Money Unit fee to create groups. Default is 0.
- ;PriceGroupCreate = 0
+ PriceGroupCreate = 0
; We don't really know what the rest of these values do. These get sent to the client
; These taken from Agni at a Public Telehub. Change at your own risk.
@@ -1804,7 +1836,7 @@
Priority = "BelowNormal"
; Maximum number of events to queue for a script (excluding timers)
- MaxScriptEventQueue = 300
+ MaxScriptEventQueue = 3000
; Stack size per thread created
ThreadStackSize = 262144
@@ -1815,7 +1847,7 @@
; this may only be a problem if regions stay alive for a long time with lots of scripts added or edited.
; at this time some mono versions seem to have problems with the true option
; so default is now false until a fix is found
- ; AppDomainLoading = false
+ AppDomainLoading = false
; Controls whether previously compiled scripts DLLs are deleted on sim restart.
; If you set this to false then startup will be considerably faster since scripts won't need to be recompiled.
@@ -1823,7 +1855,7 @@
; after first run you can change to false.
; You can also set it to false and delete the script DLLs by hand
; This does not delete cached scripts state.
- ; DeleteScriptsOnStartup = true
+ DeleteScriptsOnStartup = false
; CompactMemOnLoad
; forces calls to memory garbage collector before loading each script DLL during region startup.
@@ -1851,19 +1883,23 @@
; Compile debug info (line numbers) into the script assemblies
CompileWithDebugInformation = true
+ ; Don't include stack traces in silly threat level errors, and don't bother with "OSSL Runtime Error: " either.
+ ; On the other hand, having this true stops the official OpenSim OhSilly detection script from working.
+ DebuggerSafe = true
+
; Allow the user of mod* functions. This allows a script to pass messages
; to a region module via the modSendCommand() function
; Default is false
- AllowMODFunctions = false
+ AllowMODFunctions = true
; Allow the use of os* functions (some are dangerous)
- AllowOSFunctions = false
+ AllowOSFunctions = true
; Allow the user of LightShare functions
- AllowLightShareFunctions = false
+ AllowLightShareFunctions = true
; Threat level to allow, one of None, VeryLow, Low, Moderate, High, VeryHigh, Severe
- OSFunctionThreatLevel = VeryLow
+ OSFunctionThreatLevel = Moderate
; OS Functions enable/disable
; For each function, you can add one line, as shown
@@ -1898,10 +1934,10 @@
MaintenanceInterval = 10
; Time a script can spend in an event handler before it is interrupted
- EventLimit = 30
+ EventLimit = 60
; If a script overruns it's event limit, kill the script?
- KillTimedOutScripts = false
+ KillTimedOutScripts = true
; Amount of time in milliseconds we will wait for an event to completely normally when a script stop is requested
; before aborting the thread (such as when an object containing scripts is taken into inventory).
@@ -1915,25 +1951,25 @@
; Maximum length of notecard line read
; Increasing this to large values potentially opens
- ; up the system to malicious scripters
- ; NotecardLineReadCharsMax = 255
+ ; up the system to malicious scripters. Pfffft.
+ NotecardLineReadCharsMax = 1024
; Minimum settable timer interval. Any timer setting less than this is
; rounded up to this minimum interval.
- ; MinTimerInterval = 0.5
+ MinTimerInterval = 0.1
; Sensor settings
- SensorMaxRange = 96.0
- SensorMaxResults = 16
+ SensorMaxRange = 1024.0
+ SensorMaxResults = 64
; Allow for llCreateLink and llBreakLink to work without asking for permission
; only enable this in a trusted environment otherwise you may be subject to hijacking
- ; AutomaticLinkPermission = false
+ AutomaticLinkPermission = true
; Disable underground movement of prims (default true); set to
; false to allow script controlled underground positioning of
; prims
- ; DisableUndergroundMovement = true
+ DisableUndergroundMovement = false
;; Path to script assemblies
; ScriptEnginesPath = "${Paths|CachePath}/ScriptEngines"
@@ -2036,7 +2072,7 @@
[Groups]
- Enabled = false
+ Enabled = true
; This is the current groups stub in Region.CoreModules.Avatar.Groups. All the other settings below only really
; apply to the Flotsam/SimianGrid GroupsModule
@@ -2047,7 +2083,7 @@
;Module = GroupsModule
; Enable Group Notices
- ;NoticesEnabled = true
+ NoticesEnabled = true
; This makes the Group module very chatty on the console.
DebugEnabled = false
@@ -2067,7 +2103,7 @@
; Experimental option to only message cached online users rather than all users
; Should make large group with few online members messaging faster, at the expense of more calls to ROBUST presence service
; (Flotsam groups only; in V2 this is always on)
- MessageOnlineUsersOnly = false
+ MessageOnlineUsersOnly = true
; Service connectors to the Groups Service. Select one depending on whether you're using a Flotsam XmlRpc backend or a SimianGrid backend
@@ -2084,11 +2120,11 @@
;XmlRpcServiceWriteKey = 1234
; Disables HTTP Keep-Alive for XmlRpcGroupsServicesConnector HTTP Requests,
- ; only set to false it if you absolute sure regions and groups server support it.
+ ; only set to false it if you absolute sure regions and groups server support it.
; XmlRpcDisableKeepAlive = true
; Minimum user level required to create groups
- ;LevelGroupCreate = 0
+ LevelGroupCreate = 0
[PacketPool]
@@ -2163,20 +2199,20 @@
[NPC]
;; Enable Non Player Character (NPC) facilities
- Enabled = false
- ;; several options to control NPCs creation
+ Enabled = true
+ ;; several options to control NPCs creation
- ;; allow NPCs to be created not Owned {true false} default: true
- ; AllowNotOwned = true
+ ;; allow NPCs to be created not Owned {true false} default: true
+ AllowNotOwned = true
- ;; allow NPCs to set to be sensed as Avatars {true false} default: true
- ; AllowSenseAsAvatar = true
+ ;; allow NPCs to set to be sensed as Avatars {true false} default: true
+ AllowSenseAsAvatar = true
- ;; allow NPCs to created cloning any avatar in region {true false} default: true
- ; AllowCloneOtherAvatars = true
+ ;; allow NPCs to created cloning any avatar in region {true false} default: true
+ AllowCloneOtherAvatars = true
- ;; if true NPCs will have no group title, if false display "- NPC -" for easy identification {true false} default: true
- ; NoNPCGroup = true
+ ;; if true NPCs will have no group title, if false display "- NPC -" for easy identification {true false} default: true
+ NoNPCGroup = false
[Terrain]
; Values can be "pinhead-island" or "flat"
@@ -2195,15 +2231,15 @@
; will be what it has always been (send the whole region's parcel layer info).
; Other parcel updates (login, changing parcel ownership, ...) will still send
; whole region.
- LimitParcelLayerUpdateDistance = true
- ParcelLayerViewDistance = 128
+ LimitParcelLayerUpdateDistance = false
+ ParcelLayerViewDistance = 1024
- ; set this to false to not display parcel ban lines
- ShowParcelBansLines = true
+ ; set this to false to not display parcel ban lines
+ ShowParcelBansLines = true
- ; Parcel Bans max height above ground. Default 100m
- ; range 20m to 5000m
- ; BanLineSafeHeight = 100
+ ; Parcel Bans max height above ground. Default 100m
+ ; range 20m to 5000m
+ BanLineSafeHeight = 5000
; setting the parcel to admin content, It works as setting the land to Linden content in SL.
; To use it, activate god mode in the viewer, select the parcel and go to: Admin -> Parcel -> Set to Linden Content ( CTRL+ALT+SHIFT+C)
@@ -2225,10 +2261,10 @@
;; JsonStore module provides structured store for scripts
;;
[JsonStore]
- Enabled = False
+ Enabled = true
;; Enable direct access to the SOP dynamic attributes
- EnableObjectStore = False
+ EnableObjectStore = true
MaxStringSpace = 0
diff --git a/bin/Robust.exe.config b/bin/Robust.exe.config
index 62ffcc6..f5379ff 100644
--- a/bin/Robust.exe.config
+++ b/bin/Robust.exe.config
@@ -11,6 +11,7 @@
+
@@ -20,24 +21,18 @@
-
-
-
-
-
+
@@ -50,7 +45,6 @@
-
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 @@
;
; Change this to your grid-wide asset server. Do not add a slash to the end of any of these addresses.
;
- AssetServerURI = "${Const|PrivURL}:${Const|PrivatePort}"
+ AssetServerURI = "${Const|BaseURL}:${Const|PrivatePort}"
[InventoryService]
;
; Change this to your grid-wide inventory server
;
- InventoryServerURI = "${Const|PrivURL}:${Const|PrivatePort}"
+ InventoryServerURI = "${Const|BaseURL}:${Const|PrivatePort}"
;MaxRetries = 0
[GridInfo]
@@ -95,7 +95,7 @@
;
; Change this to your grid-wide grid server
;
- GridServerURI = "${Const|PrivURL}:${Const|PrivatePort}"
+ GridServerURI = "${Const|BaseURL}:${Const|PrivatePort}"
;AllowHypergridMapSearch = true
;; Directory for map tile images of linked regions
@@ -105,7 +105,7 @@
;; Change this to the address of your Gatekeeper service
;; (usually bundled with the rest of the services in one
;; Robust server in port ${Const|PublicPort}, but not always)
- Gatekeeper="${Const|BaseURL}:${Const|PublicPort}"
+ GatekeeperURI="${Const|BaseURL}:${Const|PublicPort}"
[EstateDataStore]
;
@@ -115,7 +115,7 @@
;LocalServiceModule = "OpenSim.Services.Connectors.dll:EstateDataRemoteConnector"
[EstateService]
- EstateServerURI = "${Const|PrivURL}:${Const|PrivatePort}"
+ EstateServerURI = "${Const|BaseURL}:${Const|PrivatePort}"
[Messaging]
; === HG ONLY ===
@@ -128,43 +128,43 @@
;
; Change this to your grid-wide grid server
;
- AvatarServerURI = "${Const|PrivURL}:${Const|PrivatePort}"
+ AvatarServerURI = "${Const|BaseURL}:${Const|PrivatePort}"
[AgentPreferencesService]
;
; Change this to your grid-wide avatar prefs server
;
- AgentPreferencesServerURI = "${Const|PrivURL}:${Const|PrivatePort}"
+ AgentPreferencesServerURI = "${Const|BaseURL}:${Const|PrivatePort}"
[PresenceService]
;
; Change this to your grid-wide presence server
;
- PresenceServerURI = "${Const|PrivURL}:${Const|PrivatePort}"
+ PresenceServerURI = "${Const|BaseURL}:${Const|PrivatePort}"
[UserAccountService]
;
; Change this to your grid-wide user accounts server
;
- UserAccountServerURI = "${Const|PrivURL}:${Const|PrivatePort}"
+ UserAccountServerURI = "${Const|BaseURL}:${Const|PrivatePort}"
[GridUserService]
;
; Change this to your grid-wide user accounts server
;
- GridUserServerURI = "${Const|PrivURL}:${Const|PrivatePort}"
+ GridUserServerURI = "${Const|BaseURL}:${Const|PrivatePort}"
[AuthenticationService]
;
; Change this to your grid-wide authentication server
;
- AuthenticationServerURI = "${Const|PrivURL}:${Const|PrivatePort}"
+ AuthenticationServerURI = "${Const|BaseURL}:${Const|PrivatePort}"
[FriendsService]
;
; Change this to your grid-wide friends server
;
- FriendsServerURI = "${Const|PrivURL}:${Const|PrivatePort}"
+ FriendsServerURI = "${Const|BaseURL}:${Const|PrivatePort}"
[HGInventoryAccessModule]
;
@@ -223,7 +223,7 @@
UserAgentServerURI = "${Const|BaseURL}:${Const|PublicPort}"
[MapImageService]
- MapImageServerURI = "${Const|PrivURL}:${Const|PrivatePort}"
+ MapImageServerURI = "${Const|BaseURL}:${Const|PrivatePort}"
[AuthorizationService]
; If you have regions with access restrictions
@@ -244,4 +244,4 @@
;; SimulatorCapability = "00000000-0000-0000-0000-000000000000"
[MuteListService]
- MuteListServerURI = "${Const|PrivURL}:${Const|PrivatePort}"
+ 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 @@
+;; hopefully a well balanced configuration that works well for everything.
+
+
+[Startup]
+ ; ##
+ ; ## SYSTEM
+ ; ##
+
+ ; Sets the method that OpenSim will use to fire asynchronous
+ ; events. Valid values are UnsafeQueueUserWorkItem,
+ ; QueueUserWorkItem, BeginInvoke, SmartThreadPool, and Thread.
+ ;
+ ; SmartThreadPool is reported to work well on Mono/Linux, but
+ ; UnsafeQueueUserWorkItem has been benchmarked with better
+ ; performance on .NET/Windows
+ ;
+ ; UnsafeQueueUserWorkItem refers to the fact that the code creating the event could elevate its security
+ ; privileges. However, as calling code is trusted anyway this is safe (if you set
+ ; TrustedBinaries = true in the [XEngine] section then you already have to trust that incoming code for other reasons).
+ async_call_method = SmartThreadPool
+
+ ; Max threads to allocate on the FireAndForget thread pool
+ ; when running with the SmartThreadPool option above
+ MaxPoolThreads = 300
+
+ ; Allow certain jobs to be run consecutively in a job engine rather than always concurrently.
+ ; This improves performance in regions with large numbers of connections (in the hundreds).
+ JobEngineEnabled = true
+
+ ; Maximum number of position, rotation and scale changes for each prim that the simulator will store for later undos
+ ; Increasing this number will increase memory usage.
+ MaxPrimUndos = 42
+
+ ; If a viewer attempts to rez a prim larger than the non-physical or physical prim max, clamp the dimensions to the appropriate maximum
+ ; This can be overridden in the region config file.
+ ClampPrimSize = true
+
+ ; If a prim is loaded from an external source, clamp it to Z = 0 if Z is negative.
+ ClampNegativeZ = true
+
+ ; Allow scripts to keep running when they cross region boundaries, rather than being restarted. State is reloaded on the destination region.
+ ; This only applies when crossing to a region running in a different simulator.
+ ; For crossings where the regions are on the same simulator the script is always kept running.
+ AllowScriptCrossing = true
+
+ ; Main Frame time
+ ; This defines the rate of several simulation events.
+ ; Default value should meet most needs.
+ ; It can be reduced to improve the simulation of moving objects, with possible increase of cpu and network loads.
+ ; It should not be less than the physics engine step time.
+ ; Being a integer multiple of it may reduce some jitter in reported physics FPS.
+ ; changing this value, you need to change some of the following *EveryNFrames so their actions timing remains the same
+ FrameTime = 0.0909
+
+ ; Send scheduled updates to objects in the scene
+ ; This must be a whole number
+ UpdateObjectsEveryNFrames = 1
+
+ ; Send position/velocity, etc. updates to agents in the scene
+ ; This must be a whole number
+ UpdateAgentsEveryNFrames = 1
+
+ ; Apply pending forces from physics calculations to an entity.
+ ; This must be a whole number
+ UpdateEntityMovementEveryNFrames = 1
+
+ ; Send coarse location updates to viewers. In a classic viewer, this updates the minimap.
+ ; This must be a whole number
+ UpdateCoarseLocationsEveryNFrames = 50
+
+ ; Physics simulation execution or syncronization, acording to engine. Should be 1
+ ; This must be a whole number
+ UpdatePhysicsEveryNFrames = 1
+
+ ; Send out the on frame event to modules and other listeners. This should probably never deviate from 1.
+ ; This must be a whole number
+ UpdateEventsEveryNFrames = 1
+
+ ; Send terrain updates to viewers
+ ; This must be a whole number
+ UpdateTerrainEveryNFrames = 50
+
+ ; Persitently store any objects which meet the PRIM STORAGE criteria
+ ; This must be a whole number
+ UpdateStorageEveryNFrames = 200
+
+ ; Clean up temp on rez objects.
+ ; This must be a whole number
+ UpdateTempCleaningEveryNSeconds = 180
+
+ ; ##
+ ; ## PRIM STORAGE
+ ; ##
+
+ ; Persistence of changed objects happens during regular sweeps. The following control that behaviour to
+ ; prevent frequently changing objects from heavily loading the region data store.
+ ; If both of these values are set to zero then persistence of all changed objects will happen on every sweep.
+ ;
+ ; Objects will be considered for persistance in the next sweep when they have not changed for this number of seconds
+ MinimumTimeBeforePersistenceConsidered = 60
+ ; Objects will always be considered for persistance in the next sweep if the first change occurred this number of seconds ago
+ MaximumTimeBeforePersistenceConsidered = 600
+
+ ; ##
+ ; ## PHYSICS
+ ; ##
+
+ ; Select a mesher here.
+ ;
+ ; Meshmerizer properly handles complex prims by using triangle meshes.
+ ; Note that only the ODE physics engine currently deals with meshed prims in a satisfactory way
+ ;
+ ; ZeroMesher is faster but leaves the physics engine to model the mesh using the basic shapes that it supports
+ ; Usually this is only a box
+
+ ;meshing = Meshmerizer
+ ;meshing = ZeroMesher
+ ;; select ubODEMeshmerizer only with ubOde physics engine
+ meshing = ubODEMeshmerizer
+
+ ; ubODE and OpenDynamicsEngine does allocate a lot of memory on stack. On linux you may need to increase its limit
+ ; script opensim-ode-sh starts opensim setting that limit. You may need to increase it even more on large regions
+ ; edit the line ulimit -s 262144, and change this last value
+
+ ; if you use Meshmerizer and want sculpt map collisions, setting this to
+ ; to true will store decoded sculpt maps in a special folder in your bin
+ ; folder, which can reduce startup times by reducing asset requests. Some
+ ; versions of mono dont work well when reading the cache files, so set this
+ ; to false if you have compatibility problems.
+ CacheSculptMaps = true
+
+ ;; BulletSim is the default physics engine. It provides the best performance and most functionality.
+ ;; BulletSim supports varregions.
+ ;; OpenDynamicsEngine was the previous default physics engine in OpenSimulator 0.7.6.1 and before.
+ ;; It continues to provide a workable physics implementation. It does not currently support varregions.
+ ;; basicphysics effectively does not model physics at all, making all objects phantom.
+ ;; Default is BulletSim
+ ;physics = BulletSim
+ ;physics = modified_BulletX
+ ;physics = OpenDynamicsEngine
+ ;physics = basicphysics
+ ;physics = POS
+ ;; alternative OpenDynamicsEngine engine. ubODEMeshmerizer meshing above MUST be selected also
+ physics = ubODE
+
+ ; ##
+ ; ## SCRIPT ENGINE
+ ; ##
+
+ ;; Default script engine to use. Currently, we only have XEngine
+ DefaultScriptEngine = "XEngine"
+
+ ; Image decoding. Use CSJ2K for layer boundary decoding if true,
+ ; OpenJPEG if false
+ ; UseCSJ2K = true
+
+
+[Map]
+ ; Map tile options.
+ ; If true, then maptiles are generated using the MapImageModule below.
+ ; If false then the texture referenced by MaptileStaticUUID is used instead, which can also be overridden
+ ; in individual region config file(s). If you do not want to upload map tiles at all, then you will need
+ ; both to set this to false and comment out the [Modules] MapImageServiceModule setting in config-include/
+ GenerateMaptiles = true
+
+ ;WorldMapModule = "WorldMap"
+
+ ; The module to use in order to generate map images.
+ ; MapImageModule is the default. Warp3DImageModule is an alternative experimental module that can
+ ; generate better images.
+ MapImageModule = "Warp3DImageModule"
+
+ ; World map blacklist timeout in seconds
+ ;BlacklistTimeout = 600
+
+ ; Refresh (in seconds) the map tile periodically
+ MaptileRefresh = 0
+
+ ; If not generating maptiles, use this static texture asset ID
+ ;MaptileStaticUUID = "00000000-0000-0000-0000-000000000000"
+
+ ; Draw objects on maptile. This step might take a long time if you've got a large number of
+ ; objects, so you can turn it off here if you'd like.
+ DrawPrimOnMapTile = true
+
+ ; Use terrain texture for maptiles if true, use shaded green if false
+ TextureOnMapTile = true
+
+ ; Texture prims
+ TexturePrims = true
+
+ ; Only texture prims that have a diagonal size greater than this number
+ TexturePrimSize = 5
+
+ ; Attempt to render meshes and sculpties on the map
+ RenderMeshes = true
+
+ UseAntiAliasing = true
+
+
+[Network]
+ ; OpenSim can send multiple simultaneous requests for services such as asset
+ ; retrieval. However, some versions of mono appear to hang when there are too
+ ; many simultaneous requests, default is 30 and is currently applied only to assets
+ ;MaxRequestConcurrency = 30
+
+
+[ClientStack.LindenUDP]
+ ; The client socket receive buffer size determines how many
+ ; incoming requests we can process; the default on .NET is 8192
+ ; which is about 2 4k-sized UDP datagrams. On mono this is
+ ; whatever the underlying operating system has as default; for
+ ; example, ubuntu 8.04 or SLES11 have about 111k, which is about
+ ; 27 4k-sized UDP datagrams (on linux platforms you can [as root]
+ ; do "sysctl net.core.rmem_default" to find out what your system
+ ; uses a default socket receive buffer size.
+ ;
+ ; client_socket_rcvbuf_size allows you to specify the receive
+ ; buffer size LLUDPServer should use. NOTE: this will be limited
+ ; by the system's settings for the maximum client receive buffer
+ ; size (on linux systems you can set that with "sysctl -w
+ ; net.core.rmem_max=X")
+ ;
+ ;client_socket_rcvbuf_size = 8388608
+
+ ; Maximum outbound bytes per second for a single scene. This can be used to
+ ; throttle total outbound UDP traffic for a simulator. The default value is
+ ; 0, meaning no throttling at the scene level. The example given here is
+ ; 20 megabits
+ ;
+ ;scene_throttle_max_bps = 2500000
+
+ ; Maximum bytes per second to send to any single client. This will override
+ ; the user's viewer preference settings. The default value is 0, meaning no
+ ; aggregate throttling on clients (only per-category throttling). The
+ ; example given here is 1.5 megabits
+ ;
+ ;client_throttle_max_bps = 187500
+
+ ; Minimum bytes per second to send to any single client as a result of
+ ; adaptive throttling. Viewer preferences set to a lower number will
+ ; override the settin. The example given here ensures that adaptive
+ ; throttling will never decrease per client bandwidth below 256 kbps.
+ ;
+ ;adaptive_throttle_min_bps = 32000
+
+ ; Adaptive throttling attempts to limit network overload when multiple
+ ; clients login by starting each connection more slowly. Disabled by
+ ; default
+ ;
+ enable_adaptive_throttles = true
+
+ ; Per-client bytes per second rates for the various throttle categories.
+ ; These are default values that will be overridden by clients. These
+ ; defaults are approximately equivalent to the throttles set by the Imprudence
+ ; viewer when maximum bandwidth is set to 350kbps
+
+ ;resend_default = 6625
+ ;land_default = 9125
+ ;wind_default = 1750
+ ;cloud_default = 1750
+ ;task_default = 18500
+ ;texture_default = 18500
+ ;asset_default = 10500
+
+ ; Configures how ObjectUpdates are aggregated. These numbers
+ ; do not literally mean how many updates will be put in each
+ ; packet that goes over the wire, as packets are
+ ; automatically split on a 1400 byte boundary. These control
+ ; the balance between responsiveness of interest list updates
+ ; and total throughput. Higher numbers will ensure more full-
+ ; sized packets and faster sending of data, but more delay in
+ ; updating interest lists
+ ;
+ ;PrimUpdatesPerCallback = 100
+
+ ; TextureSendLimit determines how many packets will be put on
+ ; the outgoing queue each cycle. Like the settings above, this
+ ; is a balance between responsiveness to priority updates and
+ ; total throughput. Higher numbers will give a better
+ ; throughput at the cost of reduced responsiveness to client
+ ; priority changes or transfer aborts
+ ;
+ ;TextureSendLimit = 20
+
+ ; CannibalizeTextureRate allows bandwidth to be moved from the
+ ; UDP texture throttle to the task throttle. Since most viewers
+ ; use HTTP textures, this provides a means of using what is largely
+ ; unused bandwidth in the total throttle. The value is the proportion
+ ; of the texture rate to move to the task queue. It must be between
+ ; 0.0 (none of the bandwidth is cannibalized) and 0.9 (90% of the
+ ; bandwidth is grabbed)
+ ;
+ ; CannibalizeTextureRate = 0.5
+
+ ; The time to wait before disconecting an unresponsive client.
+ ; The time is in seconds. The default is one minute
+ ;
+ ;AckTimeout = 60
+
+ ; The time to wait before disconecting an unresponsive paused client.
+ ; A client can be paused when the file selection dialog is open during file upload.
+ ; This gives extra time to find files via the dialog but will still disconnect if
+ ; the client crashes or loses its network connection
+ ; The time is in seconds. The default is five minutes.
+ ;
+ ;PausedAckTimeout = 300
+
+
+[Appearance]
+ ; Persist avatar baked textures
+ ; Persisting baked textures can speed up login and region border
+ ; crossings especially with large numbers of users, though it
+ ; will store potentially large numbers of textures in your asset
+ ; database
+ PersistBakedTextures = true
+
+ ; Control the delay before appearance is sent to other avatars and
+ ; saved in the avatar service. Attempts to limit the impact caused
+ ; by the very chatty dialog that sets appearance when an avatar
+ ; logs in or teleports into a region; values are in seconds
+ DelayBeforeAppearanceSave = 5
+ DelayBeforeAppearanceSend = 2
+
+ ; If true, avatar appearance information is resent to other avatars in the simulator every 60 seconds.
+ ; This may help with some situations where avatars are persistently grey, though it will not help
+ ; in other situations (e.g. appearance baking failures where the avatar only appears as a cloud to others).
+ ResendAppearanceUpdates = true
+
+ ; Turning this on responds to CachedTexture packets to possibly avoid rebaking the avatar
+ ; on every login
+ ReuseTextures = true
+
+
+[Attachments]
+ ; Controls the number of milliseconds that are slept per 100 prims rezzed in attachments
+ ; Experimental setting to control CPU spiking when avatars with many attachments login/change outfit
+ ; or when multiple avatars with medium level attachments login/change outfit simultaneously.
+ ; If 0 then no throttling is performed.
+ ThrottlePer100PrimsRezzed = 0
+
+
+[Textures]
+ ; If true, textures generated dynamically (i.e. through osSetDynamicTextureData() and similar OSSL functions) are reused where possible
+ ; Chiefly, reuse occurs if a texture has already been generated with identical data and settings, and that texture contains no dynamic components
+ ; (e.g. images pulled from an external HTTP address).
+ ; 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.
+ ; Currently, it will also increase asset cache use since temporary dynamic textures are no longer deleted.
+ ; Hence, currently considered experimental.
+ ; Default is false.
+ ReuseDynamicTextures = true
+
+ ; If true, then textures generated dynamically that have a low data size relative to their pixel size are not reused
+ ; 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.
+ ; Only set this to true if you are sure that all the viewers using your simulator will not suffer from this problem.
+ ; This setting only has an affect is ReuseDynamicTextures = true
+ ; Default is false
+ ReuseDynamicLowDataTextures = true
+
+
+[ODEPhysicsSettings]
+ ; ##
+ ; ## Physics stats settings ( most ignored by ubOde )
+ ;
+
+ ; If collect_stats is enabled, then extra stat information is collected which is accessible via the MonitorModule
+ ; (see http://opensimulator.org/wiki/Monitoring_Module for more details).
+ collect_stats = true
+
+ ; ##
+ ; ## Physics logging settings - logfiles are saved to *.DIF files
+ ; ##
+
+ ; default is false
+ ;physics_logging = true
+ ;; every n simulation iterations, the physics snapshot file is updated
+ ;physics_logging_interval = 50
+ ;; append to existing physics logfile, or overwrite existing logfiles?
+ ;physics_logging_append_existing_logfile = true
+
+ ;##
+ ;## World Settings
+ ;##
+
+ ; World Step size.
+ ; with legacy ODE this value needs to be close to 0.02s
+ ; with ubOde this value can be reduced to improve simulation quality with the cost of higher cpu load
+ ; you will need to test acording to you needs
+ ; choosing a value that is a integer sub multiple of FrameRate reduces some jitter on reported physics FPS
+ world_stepsize = 0.01818
+ ; number of iterations of constrains solver, higher should improve results
+ ; up to a point where acumulated math errors eliminate the improvement
+ ; more steps may increase CPU load. No real gain in changing
+ world_solver_iterations = 10
+
+ ;Spaces level settings. Affects memory consumption vs Collider CPU time for avatar and physical prim
+ ; defines spaces partition cells min and max sizes == 2^value
+ world_hashspace_level_low = -5
+ world_hashSpace_level_high = 12
+
+ meters_in_small_space = 29.9
+
+
+ ; ##
+ ; ## Contact properties. (the stuff that happens when things come in contact with each other)
+ ; ##
+
+ ; surface layer around geometries other geometries can sink into before generating a contact
+ world_contact_surface_layer = 0.001
+
+ ; Filtering collisions helps keep things stable physics wise, but sometimes
+ ; it can be overzealous. If you notice bouncing, chances are it's that.
+ filter_collisions = true
+
+ ; Non Moving Terrain Contact (avatar isn't moving)
+ nm_terraincontact_friction = 255.0
+ nm_terraincontact_bounce = 0.1
+ nm_terraincontact_erp = 0.1025
+
+ ; Moving Terrain Contact (avatar is moving)
+ m_terraincontact_friction = 75.0
+ m_terraincontact_bounce = 0.05
+ m_terrainContact_erp = 0.05025
+
+ ; Moving Avatar to object Contact
+ m_avatarobjectcontact_friction = 75.0
+ m_avatarobjectcontact_bounce = 0.1
+
+ ; Object to Object Contact and Non-Moving Avatar to object
+ objectcontact_friction = 250.0
+ objectcontact_bounce = 0.2
+
+ ; ##
+ ; ## Avatar Control
+ ; ##
+
+ ; PID Controller Settings. These affect the math that causes the avatar to reach the
+ ; desired velocity
+ ; See http://en.wikipedia.org/wiki/PID_controller
+
+ av_pid_derivative = 2200.0
+ av_pid_proportional = 900.0
+
+ ; specifies if the capsule should be tilted (=true; old compatibility mode)
+ ; or straight up-and-down (=false; better and more consistent physics behavior)
+ av_capsule_tilted = false
+
+ ; Movement. Smaller is faster.
+
+ ; speed of movement with Always Run off
+ av_movement_divisor_walk = 1.3
+
+ ; speed of movement with Always Run on
+ av_movement_divisor_run = 0.8
+
+ ; When the avatar flies, it will be moved up by this amount off the ground (in meters)
+ minimum_ground_flight_offset = 3.0
+
+ ; Plant avatar. This reduces the effect of physical contacts with the avatar.
+ ; If you have a group of unruly and rude visitors that bump each other, turn this on to make that less attractive.
+ ; The avatar still allows a small movement based on the PID settings above. Stronger PID settings AND this active
+ ; will lock the avatar in place
+ av_planted = false
+
+ ; 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
+ av_av_collisions_off = false
+
+ ; ##
+ ; ## Object options
+ ; ##
+
+ ; amount of ODE steps where object is non moving for ODE to automatically put it to sleep
+ body_frames_auto_disable = 20
+
+ ; used to control llMove2Target
+ body_pid_derivative = 35
+ body_pid_gain = 25
+
+ ; maximum number of contact points to generate per collision
+ contacts_per_collision = 80
+
+ ; start throttling the object updates if object comes in contact with 3 or more other objects
+ geom_contactpoints_start_throttling = 3
+
+ ; send 1 update for every x updates below when throttled
+ geom_updates_before_throttled_update = 15
+
+ ; ##
+ ; ## Sculpted Prim settings
+ ; ##
+
+ ; Do we want to mesh sculpted prim to collide like they look?
+ ; If you are seeing sculpt texture decode problems
+ ; (messages such as "Decoded image with unhandled number of components: 0 shortly followed by a physcs exception")
+ ; then you might want to try setting this to false.
+ mesh_sculpted_prim = true
+
+ ; number^2 non-physical level of detail of the sculpt texture. 32x32 - 1024 verticies
+ mesh_lod = 32
+
+ ; number^2 physical level of detail of the sculpt texture. 16x16 - 256 verticies
+ mesh_physical_lod = 16
+
+ ; ##
+ ; ## additional meshing options
+ ; ##
+
+ ; Physics needs to create internal meshs (or convert the object meshs or scultps)
+ ; for all prims except simple boxes and spheres.
+
+ ; collisions of small objects againts larger ones can have a increased CPU load cost
+ ; so this are represented by a simple BOX
+ ; if all their scale dimensions are lower or equal to this option. Default is 0.1m
+ ; (ubOde only)
+ ; MinSizeToMeshmerize = 0.1
+
+
+[BulletSim]
+ ; There are two bullet physics libraries, bulletunmanaged is the default and is a
+ ; native c++ dll bulletxna is a managed C# dll. They have comparible functionality
+ ; but the c++ one is much faster.
+ ;BulletEngine = "bulletunmanaged"
+ BulletEngine = "bulletxna"
+
+ ; BulletSim can run on its own thread independent of the simulator's heartbeat
+ ; thread. Enabling this will not let the physics engine slow down avatar movement, etc.
+ UseSeparatePhysicsThread = true
+
+ ; Terrain implementation can use either Bullet's heightField or BulletSim can build
+ ; a mesh. 0=heightField, 1=mesh
+ TerrainImplementation = 0
+ ; For mesh terrain, the detail of the created mesh. '1' gives 256x256 (heightfield
+ ; resolution). '2' gives 512x512. Etc. Cannot be larger than '4'. Higher
+ ; magnifications use lots of memory.
+ TerrainMeshMagnification = 1
+
+ ; Should avatars collide with each other?
+ AvatarToAvatarCollisionsByDefault = true
+
+ ; Default linkset implmentation
+ ; 'Constraint' uses physics constraints to hold linkset together. 'Compound'
+ ; builds a compound shape from the children shapes to create a single physical
+ ; shape. 'Compound' uses a lot less CPU time.
+ LinkImplementation = 1 ; 0=constraint, 1=compound
+
+ ; If 'true', offset a linkset's origin based on mass of linkset parts.
+ LinksetOffsetCenterOfMass = false
+
+ ; If 'true', turn scuplties into meshes
+ MeshSculptedPrim = true
+
+ ; If 'true', force simple prims (box and sphere) to be meshed
+ ; If 'false', the Bullet native special case shape is used for square rectangles
+ ; and even dimensioned spheres.
+ ForceSimplePrimMeshing = true
+
+ ; If 'true', when creating meshes, remove all triangles that have two equal vertexes.
+ ; Happens often in sculpties. If turned off, there will be some doorways
+ ; that cannot be walked through.
+ ShouldRemoveZeroWidthTriangles = true
+
+ ; If 'true', use convex hull definition in mesh asset if present.
+ ShouldUseAssetHulls = true
+
+ ; If there are thousands of physical objects, these maximums should be increased.
+ MaxCollisionsPerFrame = 2048
+ MaxUpdatesPerFrame = 8192
+
+ ; Detailed physics debug logging. Very verbose.
+ PhysicsLoggingEnabled = False
+ PhysicsLoggingDir = "."
+ VehicleLoggingEnabled = False
+
+
+[Sun]
+ ; send a Sun update every update_interval # of frames. A lower number will
+ ; make for smoother sun transition at the cost of network
+ ;update_interval = 100
+
+
+[Wind]
+ ; How often should wind be updated, as a function of world frames. Approximately 50 frames a second
+ wind_update_rate = 150
+
+ ; The Default Wind Plugin to load
+ wind_plugin = SimpleRandomWind
+
+
+[Cloud]
+ ; update interval for the cloud cover data returned by llCloud().
+ ; default is 1000
+ cloud_update_rate = 1000
+
+
+[Trees]
+ ; active_trees allows module to change its trees in time.
+ ; some will be deleted, others created and rest may grow
+ ; default is false. You can change it with console command tree active true | false later
+ active_trees = false
+ ; the trees change execution time rate (in ms)
+ update_rate = 1000
+
+ ; allow the trees to grow.
+ ; DANGER
+ ; this option causes high network use on the order of
+ ; NumberOfTrees * NumberAvatars * 1000 / update_rate udp packets per second
+ allowGrow = false
+
+
+[LL-Functions]
+ ; Maximum number of llListen events we allow over the entire region.
+ ; Set this to 0 to have no limit imposed
+ max_listens_per_region = 0
+
+ ; Maximum number of llListen events we allow per script
+ ; Set this to 0 to have no limit imposed.
+ max_listens_per_script = 0
+
+ ; Maximum number of external urls that scripts can set up in this simulator (e.g. via llRequestURL())
+ max_external_urls_per_simulator = 256
+
+ ; Use size boxes instead of meshed prims, sculpts and mesh when calculating bounding boxes.
+ ; Speeds up calculations but can make them inaccurate, in some cases very inaccurate.
+ UseSimpleBoxesInGetBoundingBox = false
+
+ ; Use llCastRay V3 if true.
+ ; Implements llCastRay similar but not identical to Second Life.
+ ; See http://wiki.secondlife.com/wiki/LlCastRay .
+ ; NEW
+ ; Meshes prims for good accuracy in ray hit detection,
+ ; handling basic and tortured prims, sculpts and meshes.
+ ; Uses ellipsoid, correctly sized avatar capsules.
+ ; Handles complex terrain, multi-prim objects and seated avatars.
+ ; Implements throttling and the status codes
+ ; RCERR_UNKNOWN and RCERR_CAST_TIME_EXCEEDED,
+ ; so LSL scripts need to handle these responses and RCERR_SIM_PERF_LOW.
+ ; WARNING
+ ; Can be faster on some servers and scenes, but slower on others,
+ ; compared to previous version of llCastRay in OpenSimulator.
+ ; Is in most cases considerably slower than llCastRay in Second Life.
+ ; Generates geometry meshes and can therefore use much system resources.
+ UseLlCastRayV3 = true
+
+ ; Accepted calculation precision error in calculations in llCastRay V3
+ FloatToleranceInLlCastRay = 0.00001
+
+ ; Accepted distance difference between duplicate hits in llCastRay V3
+ FloatTolerance2InLlCastRay = 0.001
+
+ ; Detail level when rendering prims in llCastRay V3
+ ; 0 = Low, 1 = Medium, 2 = High, 3 = Highest, higer level gives better accuracy but slower call
+ PrimDetailLevelInLlCastRay = 1
+
+ ; Detail level when rendering sculpts in llCastRay V3
+ ; 0 = Low, 1 = Medium, 2 = High, 3 = Highest, higer level gives better accuracy but slower call
+ SculptDetailLevelInLlCastRay = 1
+
+ ; Detail level when rendering meshes in llCastRay V3
+ ; 0 = Low, 1 = Medium, 2 = High, 3 = Highest, higer level gives better accuracy but slower call
+ MeshDetailLevelInLlCastRay = 3
+
+ ; Detail level when rendering avatar capsules in llCastRay V3
+ ; 0 = Low, 1 = Medium, 2 = High, 3 = Highest, higer level gives better accuracy but slower call
+ AvatarDetailLevelInLlCastRay = 1
+
+ ; Maximum number of returned hits from llCastRay V3
+ MaxHitsInLlCastRay = 16
+
+ ; Maximum number of returned hits per prim from llCastRay V3
+ MaxHitsPerPrimInLlCastRay = 16
+
+ ; Maximum number of returned hits per object from llCastRay V3
+ MaxHitsPerObjectInLlCastRay = 16
+
+ ; Report ray intersections with surfaces on exits from a prim as hits in llCastRay V3 if true
+ DetectExitHitsInLlCastRay = false
+
+ ; Detect attachments in llCastRay V3 if true
+ DoAttachmentsInLlCastRay = false
+
+ ; Throttle period length in ms before which all old llCastRay use is discarded in llCastRay V3
+ ; The sum of AvailableTimeInMsPerRegionInLlCastRay and all AvailableTimeInMsPerAvatarInLlCastRay should not exceed this
+ ThrottleTimeInMsInLlCastRay = 200
+
+ ; Available time in ms for llCastRay per throttle period and 65536 m2 land area in llCastRay V3
+ AvailableTimeInMsPerRegionInLlCastRay = 40
+
+ ; Available time in ms for llCastRay per throttle period and avatar when script in attachment or vehicle in llCastRay V3
+ AvailableTimeInMsPerAvatarInLlCastRay = 10
+
+ ; Required available time in ms left to perform a new llCastRay in llCastRay V3
+ RequiredAvailableTimeInMsInLlCastRay = 2
+
+ ; Maximum available time in ms possible in llCastRay V3, not to get too high values with varregions
+ MaximumAvailableTimeInMsInLlCastRay = 40
+
+ ; Use cached meshes in llCastRay V3 if true
+ ; Improves performance but uses more memory
+ UseMeshCacheInLlCastRay = true
+
+
+[XEngine]
+ ; How many threads to keep alive even if nothing is happening
+ MinThreads = 2
+
+ ; How many threads to start at maximum load
+ MaxThreads = 100
+
+ ; Time a thread must be idle (in seconds) before it dies
+ IdleTimeout = 60
+
+ ; Thread priority ("Lowest", "BelowNormal", "Normal", "AboveNormal", "Highest")
+ Priority = "Normal"
+
+ ; Maximum number of events to queue for a script (excluding timers)
+ MaxScriptEventQueue = 3000
+
+ ; Stack size per thread created
+ ThreadStackSize = 262144
+
+ ; Set this to true to load each script into a separate
+ ; AppDomain. Setting this to false will load all script assemblies into the
+ ; current AppDomain, which will reduce the initial per-script memory overhead,
+ ; but deleted scripts stay inactive using memory.
+ ; Significantly improving script loading times.
+ ; However, setting this to false will also prevent script DLLs from being unloaded from memory if the script is deleted.
+ ; This may cause an OutOfMemory problem over time when avatars with scripted attachments move in and out of the region.
+ ; This may only be a problem if regions stay alive for a long time with lots of scripts added or edited.
+ ; At this time some mono versions seem to have problems with the true option,
+ ; so default is now false until a fix is found, to simply life of less technical skilled users.
+ ;
+ ; At least on my desktop, this seems to be what soaks up 4 - 5 times the memory.
+ AppDomainLoading = false
+
+ ; Controls whether previously compiled scripts DLLs are deleted on sim restart.
+ ; If you set this to false then startup will be considerably faster since scripts won't need to be recompiled.
+ ; It should be true on first run after updating opensim binary version
+ ; after first run you can change to false.
+ ; You can also set it to false and delete the script DLLs by hand
+ ; This does not delete cached scripts state.
+ DeleteScriptsOnStartup = true
+
+ ; CompactMemOnLoad
+ ; forces calls to memory garbage collector before loading each script DLL during region startup.
+ ; Peak memory usage is reduced and region starts with a more compacted memory allocation.
+ ; But this costs a lot of time, so region load will take a lot longer.
+ ; it is more usefull if there are no previously compiled scripts DLLs (or DeleteScriptsOnStartup = true)
+ CompactMemOnLoad = true
+
+ ; Controls whether scripts are stopped by aborting their threads externally (abort)
+ ; or by co-operative checks inserted by OpenSimulator into compiled script (co-op).
+ ; co-op will be more stable as aborting threads can cause instability.
+ ; abort was the default option in OpenSimulator 0.8 and before.
+ ; If this setting is changed between co-op and abort, then existing scripts will automatically be recompiled if necessary.
+ ; However, the setting change will not take affect until the next time you restart the simulator.
+ ; Setting changes will not affect state information stored for scripts.
+ ScriptStopStrategy = co-op
+
+ ; Rate to poll for asynchronous command replies (ms)
+ ; currently unused
+ ;AsyncLLCommandLoopms = 50
+
+ ; Compile debug info (line numbers) into the script assemblies
+ CompileWithDebugInformation = true
+
+ ; Interval (s) between background save of script states
+ SaveInterval = 120
+
+ ; Interval (s) between maintenance runs (0 = disable)
+ MaintenanceInterval = 10
+
+ ; Amount of time in milliseconds we will wait for an event to completely normally when a script stop is requested
+ ; before aborting the thread (such as when an object containing scripts is taken into inventory).
+ WaitForEventCompletionOnScriptStop = 1000
+
+ ; Minimum settable timer interval. Any timer setting less than this is
+ ; rounded up to this minimum interval.
+ MinTimerInterval = 0.1
+
+ ; Sensor settings
+ SensorMaxRange = 1024.0
+ SensorMaxResults = 64
+
+
+[Groups]
+ ; Groups data is cached for this number of seconds before another request is made to the groups service
+ ; Set to 0 to disable the cache.
+ ; Default is 30 seconds
+ GroupsCacheTimeout = 30
+
+
+[PacketPool]
+ ;RecyclePackets = true
+ ;RecycleDataBlocks = true
+
+ ; If true, then the basic packet objects used to receive data are also recycled, not just the LLUDP packets.
+ ; This reduces data churn
+ RecycleBaseUDPPackets = true
+
+
+[InterestManagement]
+ ; This section controls how state updates are prioritized for each client
+ ; Valid values are BestAvatarResponsiveness, Time, Distance,
+ ; SimpleAngularDistance, and FrontBack
+ UpdatePrioritizationScheme = BestAvatarResponsiveness
+ ReprioritizationEnabled = true
+ ReprioritizationInterval = 2000.0
+ RootReprioritizationDistance = 10.0
+ ChildReprioritizationDistance = 20.0
+
+ ; TEST OPTION KEEP AS FALSE
+ ; if true, don't send object updates if outside view range
+ ObjectsCullingByDistance = false
+
+ ; If n > 1, only every n UDP terse updates will be sent to observers of an avatar that are in the same region
+ ; 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).
+ ; n > 1 will reduce UDP traffic but will lead to laggier movement observed in other avatars.
+ RootTerseUpdatePeriod = 0
+
+ ; If n > 1, only every n UDP terse updates will be sent to observers of an avatar that are in another region
+ ; 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.
+ ChildTerseUpdatePeriod = 0
+
+ ; Send an update to clients if the difference from the last sent avatar position is greater than this tolerance
+ RootPositionUpdateTolerance = 0.05
+
+ ; Send an update to clients if the euclidian difference from the last sent avatar rotation is greater than this tolerance
+ RootRotationUpdateTolerance = 0.1
+
+ ; Send an update to clients if the difference from the last sent avatar velocity is greater than this tolerance
+ RootVelocityUpdateTolerance = 0.001
+
+
+[Statistics]
+ ; NumberOfFrames is used in a moving average calculation, where NumberOfFrames is the number of frames
+ ; to include in the averaging calculations
+ NumberOfFrames=10
+
+
+[Terrain]
+ ; If 'true' each avatar is only sent terrain patches within their view distance
+ ; This also changes the region terrain loading from 'lawn mower' to ordered around
+ ; the avatar outward.
+ SendTerrainUpdatesByViewDistance = True
+
+
+[LandManagement]
+ ; When editing terrain or objects, parcel layer info is updated in the viewer.
+ ; This can be expensive for large regions. If this variable is 'true', only the
+ ; parcel layer data around the area of interest is sent. The parcel layer info
+ ; is sent for 'ParcelLayerViewDistance' around the interest point.
+ ; If 'ParcelLayerViewDistance' is >= 128, the operation for legacy sized regions
+ ; will be what it has always been (send the whole region's parcel layer info).
+ ; Other parcel updates (login, changing parcel ownership, ...) will still send
+ ; whole region.
+ LimitParcelLayerUpdateDistance = true
+ ParcelLayerViewDistance = 1024
+
+
+;; If you are using a simian grid frontend you can enable
+;; this module to upload tile images for the mapping fn
+;;
+[SimianGridMaptiles]
+ RefreshTime = 3600
+
+
+;;
+;; These are defaults that are overwritten below in [Architecture].
+;; These defaults allow OpenSim to work out of the box with
+;; zero configuration
+;;
+[AssetService]
+ ; Disable this to prevent the default asset set from being inserted into the
+ ; asset store each time the region starts
+ AssetLoaderEnabled = false
+
+
+[AutoBackupModule]
+ ;; default is module is disabled at the top level
+ AutoBackupModuleEnabled = false
+
+
+[ServiceThrottle]
+ ;; Default time interval (in ms) for the throttle service thread to wake up
+ Interval = 5000
+
+
+[Materials]
+ 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 @@
+[Startup]
+ ; ##
+ ; ## SYSTEM
+ ; ##
+
+ ; Sets the method that OpenSim will use to fire asynchronous
+ ; events. Valid values are UnsafeQueueUserWorkItem,
+ ; QueueUserWorkItem, BeginInvoke, SmartThreadPool, and Thread.
+ ;
+ ; SmartThreadPool is reported to work well on Mono/Linux, but
+ ; UnsafeQueueUserWorkItem has been benchmarked with better
+ ; performance on .NET/Windows
+ ;
+ ; UnsafeQueueUserWorkItem refers to the fact that the code creating the event could elevate its security
+ ; privileges. However, as calling code is trusted anyway this is safe (if you set
+ ; TrustedBinaries = true in the [XEngine] section then you already have to trust that incoming code for other reasons).
+ async_call_method = SmartThreadPool
+
+ ; Max threads to allocate on the FireAndForget thread pool
+ ; when running with the SmartThreadPool option above
+ MaxPoolThreads = 300
+
+ ; Allow certain jobs to be run consecutively in a job engine rather than always concurrently.
+ ; This improves performance in regions with large numbers of connections (in the hundreds).
+ JobEngineEnabled = true
+
+ ; Maximum number of position, rotation and scale changes for each prim that the simulator will store for later undos
+ ; Increasing this number will increase memory usage.
+ MaxPrimUndos = 20
+
+ ; If a viewer attempts to rez a prim larger than the non-physical or physical prim max, clamp the dimensions to the appropriate maximum
+ ; This can be overridden in the region config file.
+ ClampPrimSize = false
+
+ ; If a prim is loaded from an external source, clamp it to Z = 0 if Z is negative.
+ ClampNegativeZ = false
+
+ ; Allow scripts to keep running when they cross region boundaries, rather than being restarted. State is reloaded on the destination region.
+ ; This only applies when crossing to a region running in a different simulator.
+ ; For crossings where the regions are on the same simulator the script is always kept running.
+ AllowScriptCrossing = true
+
+ ; Main Frame time
+ ; This defines the rate of several simulation events.
+ ; Default value should meet most needs.
+ ; It can be reduced to improve the simulation of moving objects, with possible increase of cpu and network loads.
+ ; It should not be less than the physics engine step time.
+ ; Being a integer multiple of it may reduce some jitter in reported physics FPS.
+ ; changing this value, you need to change some of the following *EveryNFrames so their actions timing remains the same
+ FrameTime = 0.0909
+
+ ; Send scheduled updates to objects in the scene
+ ; This must be a whole number
+ UpdateObjectsEveryNFrames = 1
+
+ ; Send position/velocity, etc. updates to agents in the scene
+ ; This must be a whole number
+ UpdateAgentsEveryNFrames = 1
+
+ ; Apply pending forces from physics calculations to an entity.
+ ; This must be a whole number
+ UpdateEntityMovementEveryNFrames = 1
+
+ ; Send coarse location updates to viewers. In a classic viewer, this updates the minimap.
+ ; This must be a whole number
+ UpdateCoarseLocationsEveryNFrames = 50
+
+ ; Physics simulation execution or syncronization, acording to engine. Should be 1
+ ; This must be a whole number
+ UpdatePhysicsEveryNFrames = 1
+
+ ; Send out the on frame event to modules and other listeners. This should probably never deviate from 1.
+ ; This must be a whole number
+ UpdateEventsEveryNFrames = 1
+
+ ; Send terrain updates to viewers
+ ; This must be a whole number
+ UpdateTerrainEveryNFrames = 50
+
+ ; Persitently store any objects which meet the PRIM STORAGE criteria
+ ; This must be a whole number
+ UpdateStorageEveryNFrames = 200
+
+ ; Clean up temp on rez objects.
+ ; This must be a whole number
+ UpdateTempCleaningEveryNSeconds = 180
+
+ ; ##
+ ; ## PRIM STORAGE
+ ; ##
+
+ ; Persistence of changed objects happens during regular sweeps. The following control that behaviour to
+ ; prevent frequently changing objects from heavily loading the region data store.
+ ; If both of these values are set to zero then persistence of all changed objects will happen on every sweep.
+ ;
+ ; Objects will be considered for persistance in the next sweep when they have not changed for this number of seconds
+ MinimumTimeBeforePersistenceConsidered = 60
+ ; Objects will always be considered for persistance in the next sweep if the first change occurred this number of seconds ago
+ MaximumTimeBeforePersistenceConsidered = 600
+
+ ; ##
+ ; ## PHYSICS
+ ; ##
+
+ ; Select a mesher here.
+ ;
+ ; Meshmerizer properly handles complex prims by using triangle meshes.
+ ; Note that only the ODE physics engine currently deals with meshed prims in a satisfactory way
+ ;
+ ; ZeroMesher is faster but leaves the physics engine to model the mesh using the basic shapes that it supports
+ ; Usually this is only a box
+
+ ;meshing = Meshmerizer
+ ;meshing = ZeroMesher
+ ;; select ubODEMeshmerizer only with ubOde physics engine
+ meshing = ubODEMeshmerizer
+
+ ; ubODE and OpenDynamicsEngine does allocate a lot of memory on stack. On linux you may need to increase its limit
+ ; script opensim-ode-sh starts opensim setting that limit. You may need to increase it even more on large regions
+ ; edit the line ulimit -s 262144, and change this last value
+
+ ; if you use Meshmerizer and want sculpt map collisions, setting this to
+ ; to true will store decoded sculpt maps in a special folder in your bin
+ ; folder, which can reduce startup times by reducing asset requests. Some
+ ; versions of mono dont work well when reading the cache files, so set this
+ ; to false if you have compatibility problems.
+ CacheSculptMaps = true
+
+ ;; BulletSim is the default physics engine. It provides the best performance and most functionality.
+ ;; BulletSim supports varregions.
+ ;; OpenDynamicsEngine was the previous default physics engine in OpenSimulator 0.7.6.1 and before.
+ ;; It continues to provide a workable physics implementation. It does not currently support varregions.
+ ;; basicphysics effectively does not model physics at all, making all objects phantom.
+ ;; Default is BulletSim
+ ;physics = BulletSim
+ ;physics = modified_BulletX
+ ;physics = OpenDynamicsEngine
+ ;physics = basicphysics
+ ;physics = POS
+ ;; alternative OpenDynamicsEngine engine. ubODEMeshmerizer meshing above MUST be selected also
+ physics = ubODE
+
+ ; ##
+ ; ## SCRIPT ENGINE
+ ; ##
+
+ ;; Default script engine to use. Currently, we only have XEngine
+ DefaultScriptEngine = "XEngine"
+
+ ; Image decoding. Use CSJ2K for layer boundary decoding if true,
+ ; OpenJPEG if false
+ ; UseCSJ2K = true
+
+
+[Map]
+ ; Map tile options.
+ ; If true, then maptiles are generated using the MapImageModule below.
+ ; If false then the texture referenced by MaptileStaticUUID is used instead, which can also be overridden
+ ; in individual region config file(s). If you do not want to upload map tiles at all, then you will need
+ ; both to set this to false and comment out the [Modules] MapImageServiceModule setting in config-include/
+ GenerateMaptiles = true
+
+ ;WorldMapModule = "WorldMap"
+
+ ; The module to use in order to generate map images.
+ ; MapImageModule is the default. Warp3DImageModule is an alternative experimental module that can
+ ; generate better images.
+ MapImageModule = "MapImageModule"
+
+ ; World map blacklist timeout in seconds
+ ;BlacklistTimeout = 600
+
+ ; Refresh (in seconds) the map tile periodically
+ MaptileRefresh = 0
+
+ ; If not generating maptiles, use this static texture asset ID
+ ;MaptileStaticUUID = "00000000-0000-0000-0000-000000000000"
+
+ ; Draw objects on maptile. This step might take a long time if you've got a large number of
+ ; objects, so you can turn it off here if you'd like.
+ DrawPrimOnMapTile = true
+
+ ; Use terrain texture for maptiles if true, use shaded green if false
+ TextureOnMapTile = true
+
+ ; Texture prims
+ TexturePrims = true
+
+ ; Only texture prims that have a diagonal size greater than this number
+ TexturePrimSize = 48
+
+ ; Attempt to render meshes and sculpties on the map
+ RenderMeshes = false
+
+ ;UseAntiAliasing = true
+
+
+[Network]
+ ; OpenSim can send multiple simultaneous requests for services such as asset
+ ; retrieval. However, some versions of mono appear to hang when there are too
+ ; many simultaneous requests, default is 30 and is currently applied only to assets
+ ;MaxRequestConcurrency = 30
+
+
+[ClientStack.LindenUDP]
+ ; The client socket receive buffer size determines how many
+ ; incoming requests we can process; the default on .NET is 8192
+ ; which is about 2 4k-sized UDP datagrams. On mono this is
+ ; whatever the underlying operating system has as default; for
+ ; example, ubuntu 8.04 or SLES11 have about 111k, which is about
+ ; 27 4k-sized UDP datagrams (on linux platforms you can [as root]
+ ; do "sysctl net.core.rmem_default" to find out what your system
+ ; uses a default socket receive buffer size.
+ ;
+ ; client_socket_rcvbuf_size allows you to specify the receive
+ ; buffer size LLUDPServer should use. NOTE: this will be limited
+ ; by the system's settings for the maximum client receive buffer
+ ; size (on linux systems you can set that with "sysctl -w
+ ; net.core.rmem_max=X")
+ ;
+ ;client_socket_rcvbuf_size = 8388608
+
+ ; Maximum outbound bytes per second for a single scene. This can be used to
+ ; throttle total outbound UDP traffic for a simulator. The default value is
+ ; 0, meaning no throttling at the scene level. The example given here is
+ ; 20 megabits
+ ;
+ ;scene_throttle_max_bps = 2500000
+
+ ; Maximum bytes per second to send to any single client. This will override
+ ; the user's viewer preference settings. The default value is 0, meaning no
+ ; aggregate throttling on clients (only per-category throttling). The
+ ; example given here is 1.5 megabits
+ ;
+ ;client_throttle_max_bps = 187500
+
+ ; Minimum bytes per second to send to any single client as a result of
+ ; adaptive throttling. Viewer preferences set to a lower number will
+ ; override the settin. The example given here ensures that adaptive
+ ; throttling will never decrease per client bandwidth below 256 kbps.
+ ;
+ ;adaptive_throttle_min_bps = 32000
+
+ ; Adaptive throttling attempts to limit network overload when multiple
+ ; clients login by starting each connection more slowly. Disabled by
+ ; default
+ ;
+ enable_adaptive_throttles = false
+
+ ; Per-client bytes per second rates for the various throttle categories.
+ ; These are default values that will be overridden by clients. These
+ ; defaults are approximately equivalent to the throttles set by the Imprudence
+ ; viewer when maximum bandwidth is set to 350kbps
+
+ ;resend_default = 6625
+ ;land_default = 9125
+ ;wind_default = 1750
+ ;cloud_default = 1750
+ ;task_default = 18500
+ ;texture_default = 18500
+ ;asset_default = 10500
+
+ ; Configures how ObjectUpdates are aggregated. These numbers
+ ; do not literally mean how many updates will be put in each
+ ; packet that goes over the wire, as packets are
+ ; automatically split on a 1400 byte boundary. These control
+ ; the balance between responsiveness of interest list updates
+ ; and total throughput. Higher numbers will ensure more full-
+ ; sized packets and faster sending of data, but more delay in
+ ; updating interest lists
+ ;
+ ;PrimUpdatesPerCallback = 100
+
+ ; TextureSendLimit determines how many packets will be put on
+ ; the outgoing queue each cycle. Like the settings above, this
+ ; is a balance between responsiveness to priority updates and
+ ; total throughput. Higher numbers will give a better
+ ; throughput at the cost of reduced responsiveness to client
+ ; priority changes or transfer aborts
+ ;
+ ;TextureSendLimit = 20
+
+ ; CannibalizeTextureRate allows bandwidth to be moved from the
+ ; UDP texture throttle to the task throttle. Since most viewers
+ ; use HTTP textures, this provides a means of using what is largely
+ ; unused bandwidth in the total throttle. The value is the proportion
+ ; of the texture rate to move to the task queue. It must be between
+ ; 0.0 (none of the bandwidth is cannibalized) and 0.9 (90% of the
+ ; bandwidth is grabbed)
+ ;
+ ; CannibalizeTextureRate = 0.5
+
+ ; The time to wait before disconecting an unresponsive client.
+ ; The time is in seconds. The default is one minute
+ ;
+ ;AckTimeout = 60
+
+ ; The time to wait before disconecting an unresponsive paused client.
+ ; A client can be paused when the file selection dialog is open during file upload.
+ ; This gives extra time to find files via the dialog but will still disconnect if
+ ; the client crashes or loses its network connection
+ ; The time is in seconds. The default is five minutes.
+ ;
+ ;PausedAckTimeout = 300
+
+
+[Appearance]
+ ; Persist avatar baked textures
+ ; Persisting baked textures can speed up login and region border
+ ; crossings especially with large numbers of users, though it
+ ; will store potentially large numbers of textures in your asset
+ ; database
+ PersistBakedTextures = false
+
+ ; Control the delay before appearance is sent to other avatars and
+ ; saved in the avatar service. Attempts to limit the impact caused
+ ; by the very chatty dialog that sets appearance when an avatar
+ ; logs in or teleports into a region; values are in seconds
+ DelayBeforeAppearanceSave = 5
+ DelayBeforeAppearanceSend = 2
+
+ ; If true, avatar appearance information is resent to other avatars in the simulator every 60 seconds.
+ ; This may help with some situations where avatars are persistently grey, though it will not help
+ ; in other situations (e.g. appearance baking failures where the avatar only appears as a cloud to others).
+ ResendAppearanceUpdates = false
+
+ ; Turning this on responds to CachedTexture packets to possibly avoid rebaking the avatar
+ ; on every login
+ ReuseTextures = false
+
+
+[Attachments]
+ ; Controls the number of milliseconds that are slept per 100 prims rezzed in attachments
+ ; Experimental setting to control CPU spiking when avatars with many attachments login/change outfit
+ ; or when multiple avatars with medium level attachments login/change outfit simultaneously.
+ ; If 0 then no throttling is performed.
+ ThrottlePer100PrimsRezzed = 0
+
+
+[Textures]
+ ; If true, textures generated dynamically (i.e. through osSetDynamicTextureData() and similar OSSL functions) are reused where possible
+ ; Chiefly, reuse occurs if a texture has already been generated with identical data and settings, and that texture contains no dynamic components
+ ; (e.g. images pulled from an external HTTP address).
+ ; 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.
+ ; Currently, it will also increase asset cache use since temporary dynamic textures are no longer deleted.
+ ; Hence, currently considered experimental.
+ ; Default is false.
+ ReuseDynamicTextures = false
+
+ ; If true, then textures generated dynamically that have a low data size relative to their pixel size are not reused
+ ; 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.
+ ; Only set this to true if you are sure that all the viewers using your simulator will not suffer from this problem.
+ ; This setting only has an affect is ReuseDynamicTextures = true
+ ; Default is false
+ ReuseDynamicLowDataTextures = false
+
+
+[ODEPhysicsSettings]
+ ; ##
+ ; ## Physics stats settings ( most ignored by ubOde )
+ ;
+
+ ; If collect_stats is enabled, then extra stat information is collected which is accessible via the MonitorModule
+ ; (see http://opensimulator.org/wiki/Monitoring_Module for more details).
+ collect_stats = false
+
+ ; ##
+ ; ## Physics logging settings - logfiles are saved to *.DIF files
+ ; ##
+
+ ; default is false
+ ;physics_logging = true
+ ;; every n simulation iterations, the physics snapshot file is updated
+ ;physics_logging_interval = 50
+ ;; append to existing physics logfile, or overwrite existing logfiles?
+ ;physics_logging_append_existing_logfile = true
+
+ ;##
+ ;## World Settings
+ ;##
+
+ ; World Step size.
+ ; with legacy ODE this value needs to be close to 0.02s
+ ; with ubOde this value can be reduced to improve simulation quality with the cost of higher cpu load
+ ; you will need to test acording to you needs
+ ; choosing a value that is a integer sub multiple of FrameRate reduces some jitter on reported physics FPS
+ world_stepsize = 0.01818
+ ; number of iterations of constrains solver, higher should improve results
+ ; up to a point where acumulated math errors eliminate the improvement
+ ; more steps may increase CPU load. No real gain in changing
+ world_solver_iterations = 10
+
+ ;Spaces level settings. Affects memory consumption vs Collider CPU time for avatar and physical prim
+ ; defines spaces partition cells min and max sizes == 2^value
+ world_hashspace_level_low = -5
+ world_hashSpace_level_high = 12
+
+ meters_in_small_space = 29.9
+
+
+ ; ##
+ ; ## Contact properties. (the stuff that happens when things come in contact with each other)
+ ; ##
+
+ ; surface layer around geometries other geometries can sink into before generating a contact
+ world_contact_surface_layer = 0.001
+
+ ; Filtering collisions helps keep things stable physics wise, but sometimes
+ ; it can be overzealous. If you notice bouncing, chances are it's that.
+ filter_collisions = false
+
+ ; Non Moving Terrain Contact (avatar isn't moving)
+ nm_terraincontact_friction = 255.0
+ nm_terraincontact_bounce = 0.1
+ nm_terraincontact_erp = 0.1025
+
+ ; Moving Terrain Contact (avatar is moving)
+ m_terraincontact_friction = 75.0
+ m_terraincontact_bounce = 0.1
+ m_terrainContact_erp = 0.05025
+
+ ; Moving Avatar to object Contact
+ m_avatarobjectcontact_friction = 75.0
+ m_avatarobjectcontact_bounce = 0.1
+
+ ; Object to Object Contact and Non-Moving Avatar to object
+ objectcontact_friction = 250.0
+ objectcontact_bounce = 0.2
+
+ ; ##
+ ; ## Avatar Control
+ ; ##
+
+ ; PID Controller Settings. These affect the math that causes the avatar to reach the
+ ; desired velocity
+ ; See http://en.wikipedia.org/wiki/PID_controller
+
+ av_pid_derivative = 2200.0
+ av_pid_proportional = 900.0
+
+ ; specifies if the capsule should be tilted (=true; old compatibility mode)
+ ; or straight up-and-down (=false; better and more consistent physics behavior)
+ av_capsule_tilted = false
+
+ ; Movement. Smaller is faster.
+
+ ; speed of movement with Always Run off
+ av_movement_divisor_walk = 1.3
+
+ ; speed of movement with Always Run on
+ av_movement_divisor_run = 0.8
+
+ ; When the avatar flies, it will be moved up by this amount off the ground (in meters)
+ minimum_ground_flight_offset = 3.0
+
+ ; Plant avatar. This reduces the effect of physical contacts with the avatar.
+ ; If you have a group of unruly and rude visitors that bump each other, turn this on to make that less attractive.
+ ; The avatar still allows a small movement based on the PID settings above. Stronger PID settings AND this active
+ ; will lock the avatar in place
+ av_planted = false
+
+ ; 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
+ av_av_collisions_off = false
+
+ ; ##
+ ; ## Object options
+ ; ##
+
+ ; amount of ODE steps where object is non moving for ODE to automatically put it to sleep
+ body_frames_auto_disable = 20
+
+ ; used to control llMove2Target
+ body_pid_derivative = 35
+ body_pid_gain = 25
+
+ ; maximum number of contact points to generate per collision
+ contacts_per_collision = 80
+
+ ; start throttling the object updates if object comes in contact with 3 or more other objects
+ geom_contactpoints_start_throttling = 3
+
+ ; send 1 update for every x updates below when throttled
+ geom_updates_before_throttled_update = 15
+
+ ; ##
+ ; ## Sculpted Prim settings
+ ; ##
+
+ ; Do we want to mesh sculpted prim to collide like they look?
+ ; If you are seeing sculpt texture decode problems
+ ; (messages such as "Decoded image with unhandled number of components: 0 shortly followed by a physcs exception")
+ ; then you might want to try setting this to false.
+ mesh_sculpted_prim = true
+
+ ; number^2 non-physical level of detail of the sculpt texture. 32x32 - 1024 verticies
+ mesh_lod = 32
+
+ ; number^2 physical level of detail of the sculpt texture. 16x16 - 256 verticies
+ mesh_physical_lod = 16
+
+ ; ##
+ ; ## additional meshing options
+ ; ##
+
+ ; Physics needs to create internal meshs (or convert the object meshs or scultps)
+ ; for all prims except simple boxes and spheres.
+
+ ; collisions of small objects againts larger ones can have a increased CPU load cost
+ ; so this are represented by a simple BOX
+ ; if all their scale dimensions are lower or equal to this option. Default is 0.1m
+ ; (ubOde only)
+ ; MinSizeToMeshmerize = 0.1
+
+
+[BulletSim]
+ ; There are two bullet physics libraries, bulletunmanaged is the default and is a
+ ; native c++ dll bulletxna is a managed C# dll. They have comparible functionality
+ ; but the c++ one is much faster.
+ BulletEngine = "bulletunmanaged"
+ ; BulletEngine = "bulletxna"
+
+ ; BulletSim can run on its own thread independent of the simulator's heartbeat
+ ; thread. Enabling this will not let the physics engine slow down avatar movement, etc.
+ UseSeparatePhysicsThread = false
+
+ ; Terrain implementation can use either Bullet's heightField or BulletSim can build
+ ; a mesh. 0=heightField, 1=mesh
+ TerrainImplementation = 0
+ ; For mesh terrain, the detail of the created mesh. '1' gives 256x256 (heightfield
+ ; resolution). '2' gives 512x512. Etc. Cannot be larger than '4'. Higher
+ ; magnifications use lots of memory.
+ TerrainMeshMagnification = 2
+
+ ; Should avatars collide with each other?
+ AvatarToAvatarCollisionsByDefault = true
+
+ ; Default linkset implmentation
+ ; 'Constraint' uses physics constraints to hold linkset together. 'Compound'
+ ; builds a compound shape from the children shapes to create a single physical
+ ; shape. 'Compound' uses a lot less CPU time.
+ LinkImplementation = 1 ; 0=constraint, 1=compound
+
+ ; If 'true', offset a linkset's origin based on mass of linkset parts.
+ LinksetOffsetCenterOfMass = false
+
+ ; If 'true', turn scuplties into meshes
+ MeshSculptedPrim = true
+
+ ; If 'true', force simple prims (box and sphere) to be meshed
+ ; If 'false', the Bullet native special case shape is used for square rectangles
+ ; and even dimensioned spheres.
+ ForceSimplePrimMeshing = false
+
+ ; If 'true', when creating meshes, remove all triangles that have two equal vertexes.
+ ; Happens often in sculpties. If turned off, there will be some doorways
+ ; that cannot be walked through.
+ ShouldRemoveZeroWidthTriangles = true
+
+ ; If 'true', use convex hull definition in mesh asset if present.
+ ShouldUseAssetHulls = true
+
+ ; If there are thousands of physical objects, these maximums should be increased.
+ MaxCollisionsPerFrame = 2048
+ MaxUpdatesPerFrame = 8192
+
+ ; Detailed physics debug logging. Very verbose.
+ PhysicsLoggingEnabled = False
+ PhysicsLoggingDir = "."
+ VehicleLoggingEnabled = False
+
+
+[Sun]
+ ; send a Sun update every update_interval # of frames. A lower number will
+ ; make for smoother sun transition at the cost of network
+ ;update_interval = 100
+
+
+[Wind]
+ ; How often should wind be updated, as a function of world frames. Approximately 50 frames a second
+ wind_update_rate = 150
+
+ ; The Default Wind Plugin to load
+ wind_plugin = SimpleRandomWind
+
+
+[Cloud]
+ ; update interval for the cloud cover data returned by llCloud().
+ ; default is 1000
+ cloud_update_rate = 1000
+
+
+[Trees]
+ ; active_trees allows module to change its trees in time.
+ ; some will be deleted, others created and rest may grow
+ ; default is false. You can change it with console command tree active true | false later
+ active_trees = false
+ ; the trees change execution time rate (in ms)
+ update_rate = 1000
+
+ ; allow the trees to grow.
+ ; DANGER
+ ; this option causes high network use on the order of
+ ; NumberOfTrees * NumberAvatars * 1000 / update_rate udp packets per second
+ allowGrow = false
+
+
+[LL-Functions]
+ ; Maximum number of llListen events we allow over the entire region.
+ ; Set this to 0 to have no limit imposed
+ max_listens_per_region = 1000
+
+ ; Maximum number of llListen events we allow per script
+ ; Set this to 0 to have no limit imposed.
+ max_listens_per_script = 64
+
+ ; Maximum number of external urls that scripts can set up in this simulator (e.g. via llRequestURL())
+ max_external_urls_per_simulator = 100
+
+ ; Use size boxes instead of meshed prims, sculpts and mesh when calculating bounding boxes.
+ ; Speeds up calculations but can make them inaccurate, in some cases very inaccurate.
+ UseSimpleBoxesInGetBoundingBox = false
+
+ ; Use llCastRay V3 if true.
+ ; Implements llCastRay similar but not identical to Second Life.
+ ; See http://wiki.secondlife.com/wiki/LlCastRay .
+ ; NEW
+ ; Meshes prims for good accuracy in ray hit detection,
+ ; handling basic and tortured prims, sculpts and meshes.
+ ; Uses ellipsoid, correctly sized avatar capsules.
+ ; Handles complex terrain, multi-prim objects and seated avatars.
+ ; Implements throttling and the status codes
+ ; RCERR_UNKNOWN and RCERR_CAST_TIME_EXCEEDED,
+ ; so LSL scripts need to handle these responses and RCERR_SIM_PERF_LOW.
+ ; WARNING
+ ; Can be faster on some servers and scenes, but slower on others,
+ ; compared to previous version of llCastRay in OpenSimulator.
+ ; Is in most cases considerably slower than llCastRay in Second Life.
+ ; Generates geometry meshes and can therefore use much system resources.
+ UseLlCastRayV3 = false
+
+ ; Accepted calculation precision error in calculations in llCastRay V3
+ FloatToleranceInLlCastRay = 0.00001
+
+ ; Accepted distance difference between duplicate hits in llCastRay V3
+ FloatTolerance2InLlCastRay = 0.001
+
+ ; Detail level when rendering prims in llCastRay V3
+ ; 0 = Low, 1 = Medium, 2 = High, 3 = Highest, higer level gives better accuracy but slower call
+ PrimDetailLevelInLlCastRay = 1
+
+ ; Detail level when rendering sculpts in llCastRay V3
+ ; 0 = Low, 1 = Medium, 2 = High, 3 = Highest, higer level gives better accuracy but slower call
+ SculptDetailLevelInLlCastRay = 1
+
+ ; Detail level when rendering meshes in llCastRay V3
+ ; 0 = Low, 1 = Medium, 2 = High, 3 = Highest, higer level gives better accuracy but slower call
+ MeshDetailLevelInLlCastRay = 3
+
+ ; Detail level when rendering avatar capsules in llCastRay V3
+ ; 0 = Low, 1 = Medium, 2 = High, 3 = Highest, higer level gives better accuracy but slower call
+ AvatarDetailLevelInLlCastRay = 1
+
+ ; Maximum number of returned hits from llCastRay V3
+ MaxHitsInLlCastRay = 16
+
+ ; Maximum number of returned hits per prim from llCastRay V3
+ MaxHitsPerPrimInLlCastRay = 16
+
+ ; Maximum number of returned hits per object from llCastRay V3
+ MaxHitsPerObjectInLlCastRay = 16
+
+ ; Report ray intersections with surfaces on exits from a prim as hits in llCastRay V3 if true
+ DetectExitHitsInLlCastRay = false
+
+ ; Detect attachments in llCastRay V3 if true
+ DoAttachmentsInLlCastRay = false
+
+ ; Throttle period length in ms before which all old llCastRay use is discarded in llCastRay V3
+ ; The sum of AvailableTimeInMsPerRegionInLlCastRay and all AvailableTimeInMsPerAvatarInLlCastRay should not exceed this
+ ThrottleTimeInMsInLlCastRay = 200
+
+ ; Available time in ms for llCastRay per throttle period and 65536 m2 land area in llCastRay V3
+ AvailableTimeInMsPerRegionInLlCastRay = 40
+
+ ; Available time in ms for llCastRay per throttle period and avatar when script in attachment or vehicle in llCastRay V3
+ AvailableTimeInMsPerAvatarInLlCastRay = 10
+
+ ; Required available time in ms left to perform a new llCastRay in llCastRay V3
+ RequiredAvailableTimeInMsInLlCastRay = 2
+
+ ; Maximum available time in ms possible in llCastRay V3, not to get too high values with varregions
+ MaximumAvailableTimeInMsInLlCastRay = 40
+
+ ; Use cached meshes in llCastRay V3 if true
+ ; Improves performance but uses more memory
+ UseMeshCacheInLlCastRay = true
+
+
+[XEngine]
+ ; How many threads to keep alive even if nothing is happening
+ MinThreads = 2
+
+ ; How many threads to start at maximum load
+ MaxThreads = 100
+
+ ; Time a thread must be idle (in seconds) before it dies
+ IdleTimeout = 60
+
+ ; Thread priority ("Lowest", "BelowNormal", "Normal", "AboveNormal", "Highest")
+ Priority = "BelowNormal"
+
+ ; Maximum number of events to queue for a script (excluding timers)
+ MaxScriptEventQueue = 300
+
+ ; Stack size per thread created
+ ThreadStackSize = 262144
+
+ ; Set this to true to load each script into a separate
+ ; AppDomain. Setting this to false will load all script assemblies into the
+ ; current AppDomain, which will reduce the initial per-script memory overhead,
+ ; but deleted scripts stay inactive using memory.
+ ; Significantly improving script loading times.
+ ; However, setting this to false will also prevent script DLLs from being unloaded from memory if the script is deleted.
+ ; This may cause an OutOfMemory problem over time when avatars with scripted attachments move in and out of the region.
+ ; This may only be a problem if regions stay alive for a long time with lots of scripts added or edited.
+ ; At this time some mono versions seem to have problems with the true option,
+ ; so default is now false until a fix is found, to simply life of less technical skilled users.
+ AppDomainLoading = false
+
+ ; Controls whether previously compiled scripts DLLs are deleted on sim restart.
+ ; If you set this to false then startup will be considerably faster since scripts won't need to be recompiled.
+ ; It should be true on first run after updating opensim binary version
+ ; after first run you can change to false.
+ ; You can also set it to false and delete the script DLLs by hand
+ ; This does not delete cached scripts state.
+ DeleteScriptsOnStartup = true
+
+ ; CompactMemOnLoad
+ ; forces calls to memory garbage collector before loading each script DLL during region startup.
+ ; Peak memory usage is reduced and region starts with a more compacted memory allocation.
+ ; But this costs a lot of time, so region load will take a lot longer.
+ ; it is more usefull if there are no previously compiled scripts DLLs (or DeleteScriptsOnStartup = true)
+ ; CompactMemOnLoad = false
+
+ ; Controls whether scripts are stopped by aborting their threads externally (abort)
+ ; or by co-operative checks inserted by OpenSimulator into compiled script (co-op).
+ ; co-op will be more stable as aborting threads can cause instability.
+ ; abort was the default option in OpenSimulator 0.8 and before.
+ ; If this setting is changed between co-op and abort, then existing scripts will automatically be recompiled if necessary.
+ ; However, the setting change will not take affect until the next time you restart the simulator.
+ ; Setting changes will not affect state information stored for scripts.
+ ScriptStopStrategy = co-op
+
+ ; Rate to poll for asynchronous command replies (ms)
+ ; currently unused
+ ;AsyncLLCommandLoopms = 50
+
+ ; Compile debug info (line numbers) into the script assemblies
+ CompileWithDebugInformation = true
+
+ ; Interval (s) between background save of script states
+ SaveInterval = 120
+
+ ; Interval (s) between maintenance runs (0 = disable)
+ MaintenanceInterval = 10
+
+ ; Amount of time in milliseconds we will wait for an event to completely normally when a script stop is requested
+ ; before aborting the thread (such as when an object containing scripts is taken into inventory).
+ WaitForEventCompletionOnScriptStop = 1000
+
+ ; Minimum settable timer interval. Any timer setting less than this is
+ ; rounded up to this minimum interval.
+ MinTimerInterval = 0.5
+
+ ; Sensor settings
+ SensorMaxRange = 96.0
+ SensorMaxResults = 16
+
+
+[Groups]
+ ; Groups data is cached for this number of seconds before another request is made to the groups service
+ ; Set to 0 to disable the cache.
+ ; Default is 30 seconds
+ GroupsCacheTimeout = 30
+
+
+[PacketPool]
+ ;RecyclePackets = true
+ ;RecycleDataBlocks = true
+
+ ; If true, then the basic packet objects used to receive data are also recycled, not just the LLUDP packets.
+ ; This reduces data churn
+ RecycleBaseUDPPackets = true
+
+
+[InterestManagement]
+ ; This section controls how state updates are prioritized for each client
+ ; Valid values are BestAvatarResponsiveness, Time, Distance,
+ ; SimpleAngularDistance, and FrontBack
+ UpdatePrioritizationScheme = BestAvatarResponsiveness
+ ReprioritizationEnabled = true
+ ReprioritizationInterval = 2000.0
+ RootReprioritizationDistance = 10.0
+ ChildReprioritizationDistance = 20.0
+
+ ; TEST OPTION KEEP AS FALSE
+ ; if true, don't send object updates if outside view range
+ ObjectsCullingByDistance = false
+
+ ; If n > 1, only every n UDP terse updates will be sent to observers of an avatar that are in the same region
+ ; 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).
+ ; n > 1 will reduce UDP traffic but will lead to laggier movement observed in other avatars.
+ RootTerseUpdatePeriod = 0
+
+ ; If n > 1, only every n UDP terse updates will be sent to observers of an avatar that are in another region
+ ; 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.
+ ChildTerseUpdatePeriod = 0
+
+ ; Send an update to clients if the difference from the last sent avatar position is greater than this tolerance
+ RootPositionUpdateTolerance = 0.05
+
+ ; Send an update to clients if the euclidian difference from the last sent avatar rotation is greater than this tolerance
+ RootRotationUpdateTolerance = 0.1
+
+ ; Send an update to clients if the difference from the last sent avatar velocity is greater than this tolerance
+ RootVelocityUpdateTolerance = 0.001
+
+
+[Statistics]
+ ; NumberOfFrames is used in a moving average calculation, where NumberOfFrames is the number of frames
+ ; to include in the averaging calculations
+ NumberOfFrames=10
+
+
+[Terrain]
+ ; If 'true' each avatar is only sent terrain patches within their view distance
+ ; This also changes the region terrain loading from 'lawn mower' to ordered around
+ ; the avatar outward.
+ SendTerrainUpdatesByViewDistance = True
+
+
+[LandManagement]
+ ; When editing terrain or objects, parcel layer info is updated in the viewer.
+ ; This can be expensive for large regions. If this variable is 'true', only the
+ ; parcel layer data around the area of interest is sent. The parcel layer info
+ ; is sent for 'ParcelLayerViewDistance' around the interest point.
+ ; If 'ParcelLayerViewDistance' is >= 128, the operation for legacy sized regions
+ ; will be what it has always been (send the whole region's parcel layer info).
+ ; Other parcel updates (login, changing parcel ownership, ...) will still send
+ ; whole region.
+ LimitParcelLayerUpdateDistance = true
+ ParcelLayerViewDistance = 128
+
+
+;; If you are using a simian grid frontend you can enable
+;; this module to upload tile images for the mapping fn
+;;
+[SimianGridMaptiles]
+ RefreshTime = 3600
+
+
+;;
+;; These are defaults that are overwritten below in [Architecture].
+;; These defaults allow OpenSim to work out of the box with
+;; zero configuration
+;;
+[AssetService]
+ ; Disable this to prevent the default asset set from being inserted into the
+ ; asset store each time the region starts
+ AssetLoaderEnabled = true
+
+
+[AutoBackupModule]
+ ;; default is module is disabled at the top level
+ AutoBackupModuleEnabled = false
+
+
+[ServiceThrottle]
+ ;; Default time interval (in ms) for the throttle service thread to wake up
+ Interval = 5000
+
+
+[Materials]
+ 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 @@
+[Startup]
+ ; ##
+ ; ## SYSTEM
+ ; ##
+
+ ; Sets the method that OpenSim will use to fire asynchronous
+ ; events. Valid values are UnsafeQueueUserWorkItem,
+ ; QueueUserWorkItem, BeginInvoke, SmartThreadPool, and Thread.
+ ;
+ ; SmartThreadPool is reported to work well on Mono/Linux, but
+ ; UnsafeQueueUserWorkItem has been benchmarked with better
+ ; performance on .NET/Windows
+ ;
+ ; UnsafeQueueUserWorkItem refers to the fact that the code creating the event could elevate its security
+ ; privileges. However, as calling code is trusted anyway this is safe (if you set
+ ; TrustedBinaries = true in the [XEngine] section then you already have to trust that incoming code for other reasons).
+ async_call_method = SmartThreadPool
+
+ ; Max threads to allocate on the FireAndForget thread pool
+ ; when running with the SmartThreadPool option above
+ MaxPoolThreads = 300
+
+ ; Allow certain jobs to be run consecutively in a job engine rather than always concurrently.
+ ; This improves performance in regions with large numbers of connections (in the hundreds).
+ JobEngineEnabled = true
+
+ ; Maximum number of position, rotation and scale changes for each prim that the simulator will store for later undos
+ ; Increasing this number will increase memory usage.
+ MaxPrimUndos = 42
+
+ ; If a viewer attempts to rez a prim larger than the non-physical or physical prim max, clamp the dimensions to the appropriate maximum
+ ; This can be overridden in the region config file.
+ ClampPrimSize = true
+
+ ; If a prim is loaded from an external source, clamp it to Z = 0 if Z is negative.
+ ClampNegativeZ = true
+
+ ; Allow scripts to keep running when they cross region boundaries, rather than being restarted. State is reloaded on the destination region.
+ ; This only applies when crossing to a region running in a different simulator.
+ ; For crossings where the regions are on the same simulator the script is always kept running.
+ AllowScriptCrossing = true
+
+ ; Main Frame time
+ ; This defines the rate of several simulation events.
+ ; Default value should meet most needs.
+ ; It can be reduced to improve the simulation of moving objects, with possible increase of cpu and network loads.
+ ; It should not be less than the physics engine step time.
+ ; Being a integer multiple of it may reduce some jitter in reported physics FPS.
+ ; changing this value, you need to change some of the following *EveryNFrames so their actions timing remains the same
+ FrameTime = 0.0909
+
+ ; Send scheduled updates to objects in the scene
+ ; This must be a whole number
+ UpdateObjectsEveryNFrames = 1
+
+ ; Send position/velocity, etc. updates to agents in the scene
+ ; This must be a whole number
+ UpdateAgentsEveryNFrames = 1
+
+ ; Apply pending forces from physics calculations to an entity.
+ ; This must be a whole number
+ UpdateEntityMovementEveryNFrames = 1
+
+ ; Send coarse location updates to viewers. In a classic viewer, this updates the minimap.
+ ; This must be a whole number
+ UpdateCoarseLocationsEveryNFrames = 50
+
+ ; Physics simulation execution or syncronization, acording to engine. Should be 1
+ ; This must be a whole number
+ UpdatePhysicsEveryNFrames = 1
+
+ ; Send out the on frame event to modules and other listeners. This should probably never deviate from 1.
+ ; This must be a whole number
+ UpdateEventsEveryNFrames = 1
+
+ ; Send terrain updates to viewers
+ ; This must be a whole number
+ UpdateTerrainEveryNFrames = 50
+
+ ; Persitently store any objects which meet the PRIM STORAGE criteria
+ ; This must be a whole number
+ UpdateStorageEveryNFrames = 200
+
+ ; Clean up temp on rez objects.
+ ; This must be a whole number
+ UpdateTempCleaningEveryNSeconds = 180
+
+ ; ##
+ ; ## PRIM STORAGE
+ ; ##
+
+ ; Persistence of changed objects happens during regular sweeps. The following control that behaviour to
+ ; prevent frequently changing objects from heavily loading the region data store.
+ ; If both of these values are set to zero then persistence of all changed objects will happen on every sweep.
+ ;
+ ; Objects will be considered for persistance in the next sweep when they have not changed for this number of seconds
+ MinimumTimeBeforePersistenceConsidered = 60
+ ; Objects will always be considered for persistance in the next sweep if the first change occurred this number of seconds ago
+ MaximumTimeBeforePersistenceConsidered = 600
+
+ ; ##
+ ; ## PHYSICS
+ ; ##
+
+ ; Select a mesher here.
+ ;
+ ; Meshmerizer properly handles complex prims by using triangle meshes.
+ ; Note that only the ODE physics engine currently deals with meshed prims in a satisfactory way
+ ;
+ ; ZeroMesher is faster but leaves the physics engine to model the mesh using the basic shapes that it supports
+ ; Usually this is only a box
+
+ ;meshing = Meshmerizer
+ ;meshing = ZeroMesher
+ ;; select ubODEMeshmerizer only with ubOde physics engine
+ meshing = ubODEMeshmerizer
+
+ ; ubODE and OpenDynamicsEngine does allocate a lot of memory on stack. On linux you may need to increase its limit
+ ; script opensim-ode-sh starts opensim setting that limit. You may need to increase it even more on large regions
+ ; edit the line ulimit -s 262144, and change this last value
+
+ ; if you use Meshmerizer and want sculpt map collisions, setting this to
+ ; to true will store decoded sculpt maps in a special folder in your bin
+ ; folder, which can reduce startup times by reducing asset requests. Some
+ ; versions of mono dont work well when reading the cache files, so set this
+ ; to false if you have compatibility problems.
+ CacheSculptMaps = true
+
+ ;; BulletSim is the default physics engine. It provides the best performance and most functionality.
+ ;; BulletSim supports varregions.
+ ;; OpenDynamicsEngine was the previous default physics engine in OpenSimulator 0.7.6.1 and before.
+ ;; It continues to provide a workable physics implementation. It does not currently support varregions.
+ ;; basicphysics effectively does not model physics at all, making all objects phantom.
+ ;; Default is BulletSim
+ ;physics = BulletSim
+ ;physics = modified_BulletX
+ ;physics = OpenDynamicsEngine
+ ;physics = basicphysics
+ ;physics = POS
+ ;; alternative OpenDynamicsEngine engine. ubODEMeshmerizer meshing above MUST be selected also
+ physics = ubODE
+
+ ; ##
+ ; ## SCRIPT ENGINE
+ ; ##
+
+ ;; Default script engine to use. Currently, we only have XEngine
+ DefaultScriptEngine = "XEngine"
+
+ ; Image decoding. Use CSJ2K for layer boundary decoding if true,
+ ; OpenJPEG if false
+ ; UseCSJ2K = true
+
+
+[Map]
+ ; Map tile options.
+ ; If true, then maptiles are generated using the MapImageModule below.
+ ; If false then the texture referenced by MaptileStaticUUID is used instead, which can also be overridden
+ ; in individual region config file(s). If you do not want to upload map tiles at all, then you will need
+ ; both to set this to false and comment out the [Modules] MapImageServiceModule setting in config-include/
+ GenerateMaptiles = false
+
+ ;WorldMapModule = "WorldMap"
+
+ ; The module to use in order to generate map images.
+ ; MapImageModule is the default. Warp3DImageModule is an alternative experimental module that can
+ ; generate better images.
+ MapImageModule = "Map3DImageModule"
+
+ ; World map blacklist timeout in seconds
+ ;BlacklistTimeout = 600
+
+ ; Refresh (in seconds) the map tile periodically
+ MaptileRefresh = 0
+
+ ; If not generating maptiles, use this static texture asset ID
+ MaptileStaticUUID = "00000000-0000-0000-0000-000000000000"
+
+ ; Draw objects on maptile. This step might take a long time if you've got a large number of
+ ; objects, so you can turn it off here if you'd like.
+ DrawPrimOnMapTile = false
+
+ ; Use terrain texture for maptiles if true, use shaded green if false
+ TextureOnMapTile = false
+
+ ; Texture prims
+ TexturePrims = false
+
+ ; Only texture prims that have a diagonal size greater than this number
+ TexturePrimSize = 64
+
+ ; Attempt to render meshes and sculpties on the map
+ RenderMeshes = false
+
+ UseAntiAliasing = false
+
+
+[Network]
+ ; OpenSim can send multiple simultaneous requests for services such as asset
+ ; retrieval. However, some versions of mono appear to hang when there are too
+ ; many simultaneous requests, default is 30 and is currently applied only to assets
+ ;MaxRequestConcurrency = 30
+
+
+[ClientStack.LindenUDP]
+ ; The client socket receive buffer size determines how many
+ ; incoming requests we can process; the default on .NET is 8192
+ ; which is about 2 4k-sized UDP datagrams. On mono this is
+ ; whatever the underlying operating system has as default; for
+ ; example, ubuntu 8.04 or SLES11 have about 111k, which is about
+ ; 27 4k-sized UDP datagrams (on linux platforms you can [as root]
+ ; do "sysctl net.core.rmem_default" to find out what your system
+ ; uses a default socket receive buffer size.
+ ;
+ ; client_socket_rcvbuf_size allows you to specify the receive
+ ; buffer size LLUDPServer should use. NOTE: this will be limited
+ ; by the system's settings for the maximum client receive buffer
+ ; size (on linux systems you can set that with "sysctl -w
+ ; net.core.rmem_max=X")
+ ;
+ ;client_socket_rcvbuf_size = 8388608
+
+ ; Maximum outbound bytes per second for a single scene. This can be used to
+ ; throttle total outbound UDP traffic for a simulator. The default value is
+ ; 0, meaning no throttling at the scene level. The example given here is
+ ; 20 megabits
+ ;
+ ;scene_throttle_max_bps = 2500000
+
+ ; Maximum bytes per second to send to any single client. This will override
+ ; the user's viewer preference settings. The default value is 0, meaning no
+ ; aggregate throttling on clients (only per-category throttling). The
+ ; example given here is 1.5 megabits
+ ;
+ ;client_throttle_max_bps = 187500
+
+ ; Minimum bytes per second to send to any single client as a result of
+ ; adaptive throttling. Viewer preferences set to a lower number will
+ ; override the settin. The example given here ensures that adaptive
+ ; throttling will never decrease per client bandwidth below 256 kbps.
+ ;
+ ;adaptive_throttle_min_bps = 32000
+
+ ; Adaptive throttling attempts to limit network overload when multiple
+ ; clients login by starting each connection more slowly. Disabled by
+ ; default
+ ;
+ enable_adaptive_throttles = false
+
+ ; Per-client bytes per second rates for the various throttle categories.
+ ; These are default values that will be overridden by clients. These
+ ; defaults are approximately equivalent to the throttles set by the Imprudence
+ ; viewer when maximum bandwidth is set to 350kbps
+
+ ;resend_default = 6625
+ ;land_default = 9125
+ ;wind_default = 1750
+ ;cloud_default = 1750
+ ;task_default = 18500
+ ;texture_default = 18500
+ ;asset_default = 10500
+
+ ; Configures how ObjectUpdates are aggregated. These numbers
+ ; do not literally mean how many updates will be put in each
+ ; packet that goes over the wire, as packets are
+ ; automatically split on a 1400 byte boundary. These control
+ ; the balance between responsiveness of interest list updates
+ ; and total throughput. Higher numbers will ensure more full-
+ ; sized packets and faster sending of data, but more delay in
+ ; updating interest lists
+ ;
+ ;PrimUpdatesPerCallback = 100
+
+ ; TextureSendLimit determines how many packets will be put on
+ ; the outgoing queue each cycle. Like the settings above, this
+ ; is a balance between responsiveness to priority updates and
+ ; total throughput. Higher numbers will give a better
+ ; throughput at the cost of reduced responsiveness to client
+ ; priority changes or transfer aborts
+ ;
+ ;TextureSendLimit = 20
+
+ ; CannibalizeTextureRate allows bandwidth to be moved from the
+ ; UDP texture throttle to the task throttle. Since most viewers
+ ; use HTTP textures, this provides a means of using what is largely
+ ; unused bandwidth in the total throttle. The value is the proportion
+ ; of the texture rate to move to the task queue. It must be between
+ ; 0.0 (none of the bandwidth is cannibalized) and 0.9 (90% of the
+ ; bandwidth is grabbed)
+ ;
+ ; CannibalizeTextureRate = 0.5
+
+ ; The time to wait before disconecting an unresponsive client.
+ ; The time is in seconds. The default is one minute
+ ;
+ ;AckTimeout = 60
+
+ ; The time to wait before disconecting an unresponsive paused client.
+ ; A client can be paused when the file selection dialog is open during file upload.
+ ; This gives extra time to find files via the dialog but will still disconnect if
+ ; the client crashes or loses its network connection
+ ; The time is in seconds. The default is five minutes.
+ ;
+ ;PausedAckTimeout = 300
+
+
+[Appearance]
+ ; Persist avatar baked textures
+ ; Persisting baked textures can speed up login and region border
+ ; crossings especially with large numbers of users, though it
+ ; will store potentially large numbers of textures in your asset
+ ; database
+ PersistBakedTextures = false
+
+ ; Control the delay before appearance is sent to other avatars and
+ ; saved in the avatar service. Attempts to limit the impact caused
+ ; by the very chatty dialog that sets appearance when an avatar
+ ; logs in or teleports into a region; values are in seconds
+ DelayBeforeAppearanceSave = 5
+ DelayBeforeAppearanceSend = 2
+
+ ; If true, avatar appearance information is resent to other avatars in the simulator every 60 seconds.
+ ; This may help with some situations where avatars are persistently grey, though it will not help
+ ; in other situations (e.g. appearance baking failures where the avatar only appears as a cloud to others).
+ ResendAppearanceUpdates = false
+
+ ; Turning this on responds to CachedTexture packets to possibly avoid rebaking the avatar
+ ; on every login
+ ReuseTextures = true
+
+
+[Attachments]
+ ; Controls the number of milliseconds that are slept per 100 prims rezzed in attachments
+ ; Experimental setting to control CPU spiking when avatars with many attachments login/change outfit
+ ; or when multiple avatars with medium level attachments login/change outfit simultaneously.
+ ; If 0 then no throttling is performed.
+ ThrottlePer100PrimsRezzed = 0
+
+
+[Textures]
+ ; If true, textures generated dynamically (i.e. through osSetDynamicTextureData() and similar OSSL functions) are reused where possible
+ ; Chiefly, reuse occurs if a texture has already been generated with identical data and settings, and that texture contains no dynamic components
+ ; (e.g. images pulled from an external HTTP address).
+ ; 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.
+ ; Currently, it will also increase asset cache use since temporary dynamic textures are no longer deleted.
+ ; Hence, currently considered experimental.
+ ; Default is false.
+ ReuseDynamicTextures = true
+
+ ; If true, then textures generated dynamically that have a low data size relative to their pixel size are not reused
+ ; 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.
+ ; Only set this to true if you are sure that all the viewers using your simulator will not suffer from this problem.
+ ; This setting only has an affect is ReuseDynamicTextures = true
+ ; Default is false
+ ReuseDynamicLowDataTextures = true
+
+
+[ODEPhysicsSettings]
+ ; ##
+ ; ## Physics stats settings ( most ignored by ubOde )
+ ;
+
+ ; If collect_stats is enabled, then extra stat information is collected which is accessible via the MonitorModule
+ ; (see http://opensimulator.org/wiki/Monitoring_Module for more details).
+ collect_stats = false
+
+ ; ##
+ ; ## Physics logging settings - logfiles are saved to *.DIF files
+ ; ##
+
+ ; default is false
+ ;physics_logging = true
+ ;; every n simulation iterations, the physics snapshot file is updated
+ ;physics_logging_interval = 50
+ ;; append to existing physics logfile, or overwrite existing logfiles?
+ ;physics_logging_append_existing_logfile = true
+
+ ;##
+ ;## World Settings
+ ;##
+
+ ; World Step size.
+ ; with legacy ODE this value needs to be close to 0.02s
+ ; with ubOde this value can be reduced to improve simulation quality with the cost of higher cpu load
+ ; you will need to test acording to you needs
+ ; choosing a value that is a integer sub multiple of FrameRate reduces some jitter on reported physics FPS
+ world_stepsize = 0.015
+ ; number of iterations of constrains solver, higher should improve results
+ ; up to a point where acumulated math errors eliminate the improvement
+ ; more steps may increase CPU load. No real gain in changing
+ world_solver_iterations = 10
+
+ ;Spaces level settings. Affects memory consumption vs Collider CPU time for avatar and physical prim
+ ; defines spaces partition cells min and max sizes == 2^value
+ world_hashspace_level_low = -5
+ world_hashSpace_level_high = 12
+
+ meters_in_small_space = 29.9
+
+
+ ; ##
+ ; ## Contact properties. (the stuff that happens when things come in contact with each other)
+ ; ##
+
+ ; surface layer around geometries other geometries can sink into before generating a contact
+ world_contact_surface_layer = 0.001
+
+ ; Filtering collisions helps keep things stable physics wise, but sometimes
+ ; it can be overzealous. If you notice bouncing, chances are it's that.
+ filter_collisions = false
+
+ ; Non Moving Terrain Contact (avatar isn't moving)
+ nm_terraincontact_friction = 255.0
+ nm_terraincontact_bounce = 0.1
+ nm_terraincontact_erp = 0.1025
+
+ ; Moving Terrain Contact (avatar is moving)
+ m_terraincontact_friction = 75.0
+ m_terraincontact_bounce = 0.05
+ m_terrainContact_erp = 0.05025
+
+ ; Moving Avatar to object Contact
+ m_avatarobjectcontact_friction = 75.0
+ m_avatarobjectcontact_bounce = 0.1
+
+ ; Object to Object Contact and Non-Moving Avatar to object
+ objectcontact_friction = 250.0
+ objectcontact_bounce = 0.2
+
+ ; ##
+ ; ## Avatar Control
+ ; ##
+
+ ; PID Controller Settings. These affect the math that causes the avatar to reach the
+ ; desired velocity
+ ; See http://en.wikipedia.org/wiki/PID_controller
+
+ av_pid_derivative = 2200.0
+ av_pid_proportional = 900.0
+
+ ; specifies if the capsule should be tilted (=true; old compatibility mode)
+ ; or straight up-and-down (=false; better and more consistent physics behavior)
+ av_capsule_tilted = false
+
+ ; Movement. Smaller is faster.
+
+ ; speed of movement with Always Run off
+ av_movement_divisor_walk = 1.4
+
+ ; speed of movement with Always Run on
+ av_movement_divisor_run = 0.9
+
+ ; When the avatar flies, it will be moved up by this amount off the ground (in meters)
+ minimum_ground_flight_offset = 3.0
+
+ ; Plant avatar. This reduces the effect of physical contacts with the avatar.
+ ; If you have a group of unruly and rude visitors that bump each other, turn this on to make that less attractive.
+ ; The avatar still allows a small movement based on the PID settings above. Stronger PID settings AND this active
+ ; will lock the avatar in place
+ av_planted = true
+
+ ; 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
+ av_av_collisions_off = true
+
+ ; ##
+ ; ## Object options
+ ; ##
+
+ ; amount of ODE steps where object is non moving for ODE to automatically put it to sleep
+ body_frames_auto_disable = 20
+
+ ; used to control llMove2Target
+ body_pid_derivative = 35
+ body_pid_gain = 25
+
+ ; maximum number of contact points to generate per collision
+ contacts_per_collision = 80
+
+ ; start throttling the object updates if object comes in contact with 3 or more other objects
+ geom_contactpoints_start_throttling = 3
+
+ ; send 1 update for every x updates below when throttled
+ geom_updates_before_throttled_update = 15
+
+ ; ##
+ ; ## Sculpted Prim settings
+ ; ##
+
+ ; Do we want to mesh sculpted prim to collide like they look?
+ ; If you are seeing sculpt texture decode problems
+ ; (messages such as "Decoded image with unhandled number of components: 0 shortly followed by a physcs exception")
+ ; then you might want to try setting this to false.
+ mesh_sculpted_prim = false
+
+ ; number^2 non-physical level of detail of the sculpt texture. 32x32 - 1024 verticies
+ mesh_lod = 32
+
+ ; number^2 physical level of detail of the sculpt texture. 16x16 - 256 verticies
+ mesh_physical_lod = 16
+
+ ; ##
+ ; ## additional meshing options
+ ; ##
+
+ ; Physics needs to create internal meshs (or convert the object meshs or scultps)
+ ; for all prims except simple boxes and spheres.
+
+ ; collisions of small objects againts larger ones can have a increased CPU load cost
+ ; so this are represented by a simple BOX
+ ; if all their scale dimensions are lower or equal to this option. Default is 0.1m
+ ; (ubOde only)
+ ; MinSizeToMeshmerize = 0.1
+
+
+[BulletSim]
+ ; There are two bullet physics libraries, bulletunmanaged is the default and is a
+ ; native c++ dll bulletxna is a managed C# dll. They have comparible functionality
+ ; but the c++ one is much faster.
+ ;BulletEngine = "bulletunmanaged"
+ BulletEngine = "bulletxna"
+
+ ; BulletSim can run on its own thread independent of the simulator's heartbeat
+ ; thread. Enabling this will not let the physics engine slow down avatar movement, etc.
+ UseSeparatePhysicsThread = true
+
+ ; Terrain implementation can use either Bullet's heightField or BulletSim can build
+ ; a mesh. 0=heightField, 1=mesh
+ TerrainImplementation = 0
+ ; For mesh terrain, the detail of the created mesh. '1' gives 256x256 (heightfield
+ ; resolution). '2' gives 512x512. Etc. Cannot be larger than '4'. Higher
+ ; magnifications use lots of memory.
+ TerrainMeshMagnification = 1
+
+ ; Should avatars collide with each other?
+ AvatarToAvatarCollisionsByDefault = false
+
+ ; Default linkset implmentation
+ ; 'Constraint' uses physics constraints to hold linkset together. 'Compound'
+ ; builds a compound shape from the children shapes to create a single physical
+ ; shape. 'Compound' uses a lot less CPU time.
+ LinkImplementation = 1 ; 0=constraint, 1=compound
+
+ ; If 'true', offset a linkset's origin based on mass of linkset parts.
+ LinksetOffsetCenterOfMass = false
+
+ ; If 'true', turn scuplties into meshes
+ MeshSculptedPrim = false
+
+ ; If 'true', force simple prims (box and sphere) to be meshed
+ ; If 'false', the Bullet native special case shape is used for square rectangles
+ ; and even dimensioned spheres.
+ ForceSimplePrimMeshing = true
+
+ ; If 'true', when creating meshes, remove all triangles that have two equal vertexes.
+ ; Happens often in sculpties. If turned off, there will be some doorways
+ ; that cannot be walked through.
+ ShouldRemoveZeroWidthTriangles = true
+
+ ; If 'true', use convex hull definition in mesh asset if present.
+ ShouldUseAssetHulls = true
+
+ ; If there are thousands of physical objects, these maximums should be increased.
+ MaxCollisionsPerFrame = 2048
+ MaxUpdatesPerFrame = 8192
+
+ ; Detailed physics debug logging. Very verbose.
+ PhysicsLoggingEnabled = False
+ PhysicsLoggingDir = "."
+ VehicleLoggingEnabled = False
+
+
+[Sun]
+ ; send a Sun update every update_interval # of frames. A lower number will
+ ; make for smoother sun transition at the cost of network
+ ;update_interval = 100
+
+
+[Wind]
+ ; How often should wind be updated, as a function of world frames. Approximately 50 frames a second
+ wind_update_rate = 150
+
+ ; The Default Wind Plugin to load
+ wind_plugin = SimpleRandomWind
+
+
+[Cloud]
+ ; update interval for the cloud cover data returned by llCloud().
+ ; default is 1000
+ cloud_update_rate = 1000
+
+
+[Trees]
+ ; active_trees allows module to change its trees in time.
+ ; some will be deleted, others created and rest may grow
+ ; default is false. You can change it with console command tree active true | false later
+ active_trees = false
+ ; the trees change execution time rate (in ms)
+ update_rate = 1000
+
+ ; allow the trees to grow.
+ ; DANGER
+ ; this option causes high network use on the order of
+ ; NumberOfTrees * NumberAvatars * 1000 / update_rate udp packets per second
+ allowGrow = false
+
+
+[LL-Functions]
+ ; Maximum number of llListen events we allow over the entire region.
+ ; Set this to 0 to have no limit imposed
+ max_listens_per_region = 0
+
+ ; Maximum number of llListen events we allow per script
+ ; Set this to 0 to have no limit imposed.
+ max_listens_per_script = 0
+
+ ; Maximum number of external urls that scripts can set up in this simulator (e.g. via llRequestURL())
+ max_external_urls_per_simulator = 256
+
+ ; Use size boxes instead of meshed prims, sculpts and mesh when calculating bounding boxes.
+ ; Speeds up calculations but can make them inaccurate, in some cases very inaccurate.
+ UseSimpleBoxesInGetBoundingBox = true
+
+ ; Use llCastRay V3 if true.
+ ; Implements llCastRay similar but not identical to Second Life.
+ ; See http://wiki.secondlife.com/wiki/LlCastRay .
+ ; NEW
+ ; Meshes prims for good accuracy in ray hit detection,
+ ; handling basic and tortured prims, sculpts and meshes.
+ ; Uses ellipsoid, correctly sized avatar capsules.
+ ; Handles complex terrain, multi-prim objects and seated avatars.
+ ; Implements throttling and the status codes
+ ; RCERR_UNKNOWN and RCERR_CAST_TIME_EXCEEDED,
+ ; so LSL scripts need to handle these responses and RCERR_SIM_PERF_LOW.
+ ; WARNING
+ ; Can be faster on some servers and scenes, but slower on others,
+ ; compared to previous version of llCastRay in OpenSimulator.
+ ; Is in most cases considerably slower than llCastRay in Second Life.
+ ; Generates geometry meshes and can therefore use much system resources.
+ UseLlCastRayV3 = true
+
+ ; Accepted calculation precision error in calculations in llCastRay V3
+ FloatToleranceInLlCastRay = 0.00001
+
+ ; Accepted distance difference between duplicate hits in llCastRay V3
+ FloatTolerance2InLlCastRay = 0.001
+
+ ; Detail level when rendering prims in llCastRay V3
+ ; 0 = Low, 1 = Medium, 2 = High, 3 = Highest, higer level gives better accuracy but slower call
+ PrimDetailLevelInLlCastRay = 1
+
+ ; Detail level when rendering sculpts in llCastRay V3
+ ; 0 = Low, 1 = Medium, 2 = High, 3 = Highest, higer level gives better accuracy but slower call
+ SculptDetailLevelInLlCastRay = 1
+
+ ; Detail level when rendering meshes in llCastRay V3
+ ; 0 = Low, 1 = Medium, 2 = High, 3 = Highest, higer level gives better accuracy but slower call
+ MeshDetailLevelInLlCastRay = 3
+
+ ; Detail level when rendering avatar capsules in llCastRay V3
+ ; 0 = Low, 1 = Medium, 2 = High, 3 = Highest, higer level gives better accuracy but slower call
+ AvatarDetailLevelInLlCastRay = 1
+
+ ; Maximum number of returned hits from llCastRay V3
+ MaxHitsInLlCastRay = 16
+
+ ; Maximum number of returned hits per prim from llCastRay V3
+ MaxHitsPerPrimInLlCastRay = 16
+
+ ; Maximum number of returned hits per object from llCastRay V3
+ MaxHitsPerObjectInLlCastRay = 16
+
+ ; Report ray intersections with surfaces on exits from a prim as hits in llCastRay V3 if true
+ DetectExitHitsInLlCastRay = false
+
+ ; Detect attachments in llCastRay V3 if true
+ DoAttachmentsInLlCastRay = false
+
+ ; Throttle period length in ms before which all old llCastRay use is discarded in llCastRay V3
+ ; The sum of AvailableTimeInMsPerRegionInLlCastRay and all AvailableTimeInMsPerAvatarInLlCastRay should not exceed this
+ ThrottleTimeInMsInLlCastRay = 200
+
+ ; Available time in ms for llCastRay per throttle period and 65536 m2 land area in llCastRay V3
+ AvailableTimeInMsPerRegionInLlCastRay = 40
+
+ ; Available time in ms for llCastRay per throttle period and avatar when script in attachment or vehicle in llCastRay V3
+ AvailableTimeInMsPerAvatarInLlCastRay = 10
+
+ ; Required available time in ms left to perform a new llCastRay in llCastRay V3
+ RequiredAvailableTimeInMsInLlCastRay = 2
+
+ ; Maximum available time in ms possible in llCastRay V3, not to get too high values with varregions
+ MaximumAvailableTimeInMsInLlCastRay = 40
+
+ ; Use cached meshes in llCastRay V3 if true
+ ; Improves performance but uses more memory
+ UseMeshCacheInLlCastRay = true
+
+
+[XEngine]
+ ; How many threads to keep alive even if nothing is happening
+ MinThreads = 2
+
+ ; How many threads to start at maximum load
+ MaxThreads = 100
+
+ ; Time a thread must be idle (in seconds) before it dies
+ IdleTimeout = 60
+
+ ; Thread priority ("Lowest", "BelowNormal", "Normal", "AboveNormal", "Highest")
+ Priority = "Normal"
+
+ ; Maximum number of events to queue for a script (excluding timers)
+ MaxScriptEventQueue = 3000
+
+ ; Stack size per thread created
+ ThreadStackSize = 262144
+
+ ; Set this to true to load each script into a separate
+ ; AppDomain. Setting this to false will load all script assemblies into the
+ ; current AppDomain, which will reduce the initial per-script memory overhead,
+ ; but deleted scripts stay inactive using memory.
+ ; Significantly improving script loading times.
+ ; However, setting this to false will also prevent script DLLs from being unloaded from memory if the script is deleted.
+ ; This may cause an OutOfMemory problem over time when avatars with scripted attachments move in and out of the region.
+ ; This may only be a problem if regions stay alive for a long time with lots of scripts added or edited.
+ ; At this time some mono versions seem to have problems with the true option,
+ ; so default is now false until a fix is found, to simply life of less technical skilled users.
+ AppDomainLoading = false
+
+ ; Controls whether previously compiled scripts DLLs are deleted on sim restart.
+ ; If you set this to false then startup will be considerably faster since scripts won't need to be recompiled.
+ ; It should be true on first run after updating opensim binary version
+ ; after first run you can change to false.
+ ; You can also set it to false and delete the script DLLs by hand
+ ; This does not delete cached scripts state.
+ DeleteScriptsOnStartup = false
+
+ ; CompactMemOnLoad
+ ; forces calls to memory garbage collector before loading each script DLL during region startup.
+ ; Peak memory usage is reduced and region starts with a more compacted memory allocation.
+ ; But this costs a lot of time, so region load will take a lot longer.
+ ; it is more usefull if there are no previously compiled scripts DLLs (or DeleteScriptsOnStartup = true)
+ CompactMemOnLoad = true
+
+ ; Controls whether scripts are stopped by aborting their threads externally (abort)
+ ; or by co-operative checks inserted by OpenSimulator into compiled script (co-op).
+ ; co-op will be more stable as aborting threads can cause instability.
+ ; abort was the default option in OpenSimulator 0.8 and before.
+ ; If this setting is changed between co-op and abort, then existing scripts will automatically be recompiled if necessary.
+ ; However, the setting change will not take affect until the next time you restart the simulator.
+ ; Setting changes will not affect state information stored for scripts.
+ ScriptStopStrategy = abort
+
+ ; Rate to poll for asynchronous command replies (ms)
+ ; currently unused
+ ;AsyncLLCommandLoopms = 50
+
+ ; Compile debug info (line numbers) into the script assemblies
+ CompileWithDebugInformation = false
+
+ ; Interval (s) between background save of script states
+ SaveInterval = 120
+
+ ; Interval (s) between maintenance runs (0 = disable)
+ MaintenanceInterval = 10
+
+ ; Amount of time in milliseconds we will wait for an event to completely normally when a script stop is requested
+ ; before aborting the thread (such as when an object containing scripts is taken into inventory).
+ WaitForEventCompletionOnScriptStop = 1000
+
+ ; Minimum settable timer interval. Any timer setting less than this is
+ ; rounded up to this minimum interval.
+ MinTimerInterval = 0.1
+
+ ; Sensor settings
+ SensorMaxRange = 96.0
+ SensorMaxResults = 64
+
+
+[Groups]
+ ; Groups data is cached for this number of seconds before another request is made to the groups service
+ ; Set to 0 to disable the cache.
+ ; Default is 30 seconds
+ GroupsCacheTimeout = 30
+
+
+[PacketPool]
+ ;RecyclePackets = true
+ ;RecycleDataBlocks = true
+
+ ; If true, then the basic packet objects used to receive data are also recycled, not just the LLUDP packets.
+ ; This reduces data churn
+ RecycleBaseUDPPackets = true
+
+
+[InterestManagement]
+ ; This section controls how state updates are prioritized for each client
+ ; Valid values are BestAvatarResponsiveness, Time, Distance,
+ ; SimpleAngularDistance, and FrontBack
+ UpdatePrioritizationScheme = BestAvatarResponsiveness
+ ReprioritizationEnabled = true
+ ReprioritizationInterval = 2000.0
+ RootReprioritizationDistance = 10.0
+ ChildReprioritizationDistance = 20.0
+
+ ; TEST OPTION KEEP AS FALSE
+ ; if true, don't send object updates if outside view range
+ ObjectsCullingByDistance = false
+
+ ; If n > 1, only every n UDP terse updates will be sent to observers of an avatar that are in the same region
+ ; 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).
+ ; n > 1 will reduce UDP traffic but will lead to laggier movement observed in other avatars.
+ RootTerseUpdatePeriod = 0
+
+ ; If n > 1, only every n UDP terse updates will be sent to observers of an avatar that are in another region
+ ; 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.
+ ChildTerseUpdatePeriod = 0
+
+ ; Send an update to clients if the difference from the last sent avatar position is greater than this tolerance
+ RootPositionUpdateTolerance = 0.05
+
+ ; Send an update to clients if the euclidian difference from the last sent avatar rotation is greater than this tolerance
+ RootRotationUpdateTolerance = 0.1
+
+ ; Send an update to clients if the difference from the last sent avatar velocity is greater than this tolerance
+ RootVelocityUpdateTolerance = 0.001
+
+
+[Statistics]
+ ; NumberOfFrames is used in a moving average calculation, where NumberOfFrames is the number of frames
+ ; to include in the averaging calculations
+ NumberOfFrames=10
+
+
+[Terrain]
+ ; If 'true' each avatar is only sent terrain patches within their view distance
+ ; This also changes the region terrain loading from 'lawn mower' to ordered around
+ ; the avatar outward.
+ SendTerrainUpdatesByViewDistance = True
+
+
+[LandManagement]
+ ; When editing terrain or objects, parcel layer info is updated in the viewer.
+ ; This can be expensive for large regions. If this variable is 'true', only the
+ ; parcel layer data around the area of interest is sent. The parcel layer info
+ ; is sent for 'ParcelLayerViewDistance' around the interest point.
+ ; If 'ParcelLayerViewDistance' is >= 128, the operation for legacy sized regions
+ ; will be what it has always been (send the whole region's parcel layer info).
+ ; Other parcel updates (login, changing parcel ownership, ...) will still send
+ ; whole region.
+ LimitParcelLayerUpdateDistance = true
+ ParcelLayerViewDistance = 128
+
+
+;; If you are using a simian grid frontend you can enable
+;; this module to upload tile images for the mapping fn
+;;
+[SimianGridMaptiles]
+ RefreshTime = 3600
+
+
+;;
+;; These are defaults that are overwritten below in [Architecture].
+;; These defaults allow OpenSim to work out of the box with
+;; zero configuration
+;;
+[AssetService]
+ ; Disable this to prevent the default asset set from being inserted into the
+ ; asset store each time the region starts
+ AssetLoaderEnabled = false
+
+
+[AutoBackupModule]
+ ;; default is module is disabled at the top level
+ AutoBackupModuleEnabled = false
+
+
+[ServiceThrottle]
+ ;; Default time interval (in ms) for the throttle service thread to wake up
+ Interval = 5000
+
+
+[Materials]
+ 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 @@
+[Startup]
+ ; ##
+ ; ## SYSTEM
+ ; ##
+
+ ; Sets the method that OpenSim will use to fire asynchronous
+ ; events. Valid values are UnsafeQueueUserWorkItem,
+ ; QueueUserWorkItem, BeginInvoke, SmartThreadPool, and Thread.
+ ;
+ ; SmartThreadPool is reported to work well on Mono/Linux, but
+ ; UnsafeQueueUserWorkItem has been benchmarked with better
+ ; performance on .NET/Windows
+ ;
+ ; UnsafeQueueUserWorkItem refers to the fact that the code creating the event could elevate its security
+ ; privileges. However, as calling code is trusted anyway this is safe (if you set
+ ; TrustedBinaries = true in the [XEngine] section then you already have to trust that incoming code for other reasons).
+ async_call_method = SmartThreadPool
+
+ ; Max threads to allocate on the FireAndForget thread pool
+ ; when running with the SmartThreadPool option above
+ MaxPoolThreads = 300
+
+ ; Allow certain jobs to be run consecutively in a job engine rather than always concurrently.
+ ; This improves performance in regions with large numbers of connections (in the hundreds).
+ JobEngineEnabled = false
+
+ ; Maximum number of position, rotation and scale changes for each prim that the simulator will store for later undos
+ ; Increasing this number will increase memory usage.
+ MaxPrimUndos = 10
+
+ ; If a viewer attempts to rez a prim larger than the non-physical or physical prim max, clamp the dimensions to the appropriate maximum
+ ; This can be overridden in the region config file.
+ ClampPrimSize = false
+
+ ; If a prim is loaded from an external source, clamp it to Z = 0 if Z is negative.
+ ClampNegativeZ = false
+
+ ; Allow scripts to keep running when they cross region boundaries, rather than being restarted. State is reloaded on the destination region.
+ ; This only applies when crossing to a region running in a different simulator.
+ ; For crossings where the regions are on the same simulator the script is always kept running.
+ AllowScriptCrossing = true
+
+ ; Main Frame time
+ ; This defines the rate of several simulation events.
+ ; Default value should meet most needs.
+ ; It can be reduced to improve the simulation of moving objects, with possible increase of cpu and network loads.
+ ; It should not be less than the physics engine step time.
+ ; Being a integer multiple of it may reduce some jitter in reported physics FPS.
+ ; changing this value, you need to change some of the following *EveryNFrames so their actions timing remains the same
+ FrameTime = 0.0909
+
+ ; Send scheduled updates to objects in the scene
+ ; This must be a whole number
+ UpdateObjectsEveryNFrames = 1
+
+ ; Send position/velocity, etc. updates to agents in the scene
+ ; This must be a whole number
+ UpdateAgentsEveryNFrames = 1
+
+ ; Apply pending forces from physics calculations to an entity.
+ ; This must be a whole number
+ UpdateEntityMovementEveryNFrames = 1
+
+ ; Send coarse location updates to viewers. In a classic viewer, this updates the minimap.
+ ; This must be a whole number
+ UpdateCoarseLocationsEveryNFrames = 50
+
+ ; Physics simulation execution or syncronization, acording to engine. Should be 1
+ ; This must be a whole number
+ UpdatePhysicsEveryNFrames = 1
+
+ ; Send out the on frame event to modules and other listeners. This should probably never deviate from 1.
+ ; This must be a whole number
+ UpdateEventsEveryNFrames = 1
+
+ ; Send terrain updates to viewers
+ ; This must be a whole number
+ UpdateTerrainEveryNFrames = 50
+
+ ; Persitently store any objects which meet the PRIM STORAGE criteria
+ ; This must be a whole number
+ UpdateStorageEveryNFrames = 200
+
+ ; Clean up temp on rez objects.
+ ; This must be a whole number
+ UpdateTempCleaningEveryNSeconds = 180
+
+ ; ##
+ ; ## PRIM STORAGE
+ ; ##
+
+ ; Persistence of changed objects happens during regular sweeps. The following control that behaviour to
+ ; prevent frequently changing objects from heavily loading the region data store.
+ ; If both of these values are set to zero then persistence of all changed objects will happen on every sweep.
+ ;
+ ; Objects will be considered for persistance in the next sweep when they have not changed for this number of seconds
+ MinimumTimeBeforePersistenceConsidered = 60
+ ; Objects will always be considered for persistance in the next sweep if the first change occurred this number of seconds ago
+ MaximumTimeBeforePersistenceConsidered = 600
+
+ ; ##
+ ; ## PHYSICS
+ ; ##
+
+ ; Select a mesher here.
+ ;
+ ; Meshmerizer properly handles complex prims by using triangle meshes.
+ ; Note that only the ODE physics engine currently deals with meshed prims in a satisfactory way
+ ;
+ ; ZeroMesher is faster but leaves the physics engine to model the mesh using the basic shapes that it supports
+ ; Usually this is only a box
+
+ ;meshing = Meshmerizer
+ ;meshing = ZeroMesher
+ ;; select ubODEMeshmerizer only with ubOde physics engine
+ meshing = ubODEMeshmerizer
+
+ ; ubODE and OpenDynamicsEngine does allocate a lot of memory on stack. On linux you may need to increase its limit
+ ; script opensim-ode-sh starts opensim setting that limit. You may need to increase it even more on large regions
+ ; edit the line ulimit -s 262144, and change this last value
+
+ ; if you use Meshmerizer and want sculpt map collisions, setting this to
+ ; to true will store decoded sculpt maps in a special folder in your bin
+ ; folder, which can reduce startup times by reducing asset requests. Some
+ ; versions of mono dont work well when reading the cache files, so set this
+ ; to false if you have compatibility problems.
+ CacheSculptMaps = false
+
+ ;; BulletSim is the default physics engine. It provides the best performance and most functionality.
+ ;; BulletSim supports varregions.
+ ;; OpenDynamicsEngine was the previous default physics engine in OpenSimulator 0.7.6.1 and before.
+ ;; It continues to provide a workable physics implementation. It does not currently support varregions.
+ ;; basicphysics effectively does not model physics at all, making all objects phantom.
+ ;; Default is BulletSim
+ ;physics = BulletSim
+ ;physics = modified_BulletX
+ ;physics = OpenDynamicsEngine
+ ;physics = basicphysics
+ ;physics = POS
+ ;; alternative OpenDynamicsEngine engine. ubODEMeshmerizer meshing above MUST be selected also
+ physics = ubODE
+
+ ; ##
+ ; ## SCRIPT ENGINE
+ ; ##
+
+ ;; Default script engine to use. Currently, we only have XEngine
+ DefaultScriptEngine = "XEngine"
+
+ ; Image decoding. Use CSJ2K for layer boundary decoding if true,
+ ; OpenJPEG if false
+ ; UseCSJ2K = true
+
+
+[Map]
+ ; Map tile options.
+ ; If true, then maptiles are generated using the MapImageModule below.
+ ; If false then the texture referenced by MaptileStaticUUID is used instead, which can also be overridden
+ ; in individual region config file(s). If you do not want to upload map tiles at all, then you will need
+ ; both to set this to false and comment out the [Modules] MapImageServiceModule setting in config-include/
+ GenerateMaptiles = false
+
+ ;WorldMapModule = "WorldMap"
+
+ ; The module to use in order to generate map images.
+ ; MapImageModule is the default. Warp3DImageModule is an alternative experimental module that can
+ ; generate better images.
+ MapImageModule = "Map3DImageModule"
+
+ ; World map blacklist timeout in seconds
+ ;BlacklistTimeout = 600
+
+ ; Refresh (in seconds) the map tile periodically
+ MaptileRefresh = 0
+
+ ; If not generating maptiles, use this static texture asset ID
+ ;MaptileStaticUUID = "00000000-0000-0000-0000-000000000000"
+
+ ; Draw objects on maptile. This step might take a long time if you've got a large number of
+ ; objects, so you can turn it off here if you'd like.
+ DrawPrimOnMapTile = false
+
+ ; Use terrain texture for maptiles if true, use shaded green if false
+ TextureOnMapTile = false
+
+ ; Texture prims
+ TexturePrims = false
+
+ ; Only texture prims that have a diagonal size greater than this number
+ TexturePrimSize = 48
+
+ ; Attempt to render meshes and sculpties on the map
+ RenderMeshes = false
+
+ UseAntiAliasing = false
+
+
+[Network]
+ ; OpenSim can send multiple simultaneous requests for services such as asset
+ ; retrieval. However, some versions of mono appear to hang when there are too
+ ; many simultaneous requests, default is 30 and is currently applied only to assets
+ ;MaxRequestConcurrency = 30
+
+
+[ClientStack.LindenUDP]
+ ; The client socket receive buffer size determines how many
+ ; incoming requests we can process; the default on .NET is 8192
+ ; which is about 2 4k-sized UDP datagrams. On mono this is
+ ; whatever the underlying operating system has as default; for
+ ; example, ubuntu 8.04 or SLES11 have about 111k, which is about
+ ; 27 4k-sized UDP datagrams (on linux platforms you can [as root]
+ ; do "sysctl net.core.rmem_default" to find out what your system
+ ; uses a default socket receive buffer size.
+ ;
+ ; client_socket_rcvbuf_size allows you to specify the receive
+ ; buffer size LLUDPServer should use. NOTE: this will be limited
+ ; by the system's settings for the maximum client receive buffer
+ ; size (on linux systems you can set that with "sysctl -w
+ ; net.core.rmem_max=X")
+ ;
+ ;client_socket_rcvbuf_size = 8388608
+
+ ; Maximum outbound bytes per second for a single scene. This can be used to
+ ; throttle total outbound UDP traffic for a simulator. The default value is
+ ; 0, meaning no throttling at the scene level. The example given here is
+ ; 20 megabits
+ ;
+ ;scene_throttle_max_bps = 2500000
+
+ ; Maximum bytes per second to send to any single client. This will override
+ ; the user's viewer preference settings. The default value is 0, meaning no
+ ; aggregate throttling on clients (only per-category throttling). The
+ ; example given here is 1.5 megabits
+ ;
+ ;client_throttle_max_bps = 187500
+
+ ; Minimum bytes per second to send to any single client as a result of
+ ; adaptive throttling. Viewer preferences set to a lower number will
+ ; override the settin. The example given here ensures that adaptive
+ ; throttling will never decrease per client bandwidth below 256 kbps.
+ ;
+ ;adaptive_throttle_min_bps = 32000
+
+ ; Adaptive throttling attempts to limit network overload when multiple
+ ; clients login by starting each connection more slowly. Disabled by
+ ; default
+ ;
+ enable_adaptive_throttles = false
+
+ ; Per-client bytes per second rates for the various throttle categories.
+ ; These are default values that will be overridden by clients. These
+ ; defaults are approximately equivalent to the throttles set by the Imprudence
+ ; viewer when maximum bandwidth is set to 350kbps
+
+ ;resend_default = 6625
+ ;land_default = 9125
+ ;wind_default = 1750
+ ;cloud_default = 1750
+ ;task_default = 18500
+ ;texture_default = 18500
+ ;asset_default = 10500
+
+ ; Configures how ObjectUpdates are aggregated. These numbers
+ ; do not literally mean how many updates will be put in each
+ ; packet that goes over the wire, as packets are
+ ; automatically split on a 1400 byte boundary. These control
+ ; the balance between responsiveness of interest list updates
+ ; and total throughput. Higher numbers will ensure more full-
+ ; sized packets and faster sending of data, but more delay in
+ ; updating interest lists
+ ;
+ ;PrimUpdatesPerCallback = 100
+
+ ; TextureSendLimit determines how many packets will be put on
+ ; the outgoing queue each cycle. Like the settings above, this
+ ; is a balance between responsiveness to priority updates and
+ ; total throughput. Higher numbers will give a better
+ ; throughput at the cost of reduced responsiveness to client
+ ; priority changes or transfer aborts
+ ;
+ ;TextureSendLimit = 20
+
+ ; CannibalizeTextureRate allows bandwidth to be moved from the
+ ; UDP texture throttle to the task throttle. Since most viewers
+ ; use HTTP textures, this provides a means of using what is largely
+ ; unused bandwidth in the total throttle. The value is the proportion
+ ; of the texture rate to move to the task queue. It must be between
+ ; 0.0 (none of the bandwidth is cannibalized) and 0.9 (90% of the
+ ; bandwidth is grabbed)
+ ;
+ ; CannibalizeTextureRate = 0.5
+
+ ; The time to wait before disconecting an unresponsive client.
+ ; The time is in seconds. The default is one minute
+ ;
+ ;AckTimeout = 60
+
+ ; The time to wait before disconecting an unresponsive paused client.
+ ; A client can be paused when the file selection dialog is open during file upload.
+ ; This gives extra time to find files via the dialog but will still disconnect if
+ ; the client crashes or loses its network connection
+ ; The time is in seconds. The default is five minutes.
+ ;
+ ;PausedAckTimeout = 300
+
+
+[Appearance]
+ ; Persist avatar baked textures
+ ; Persisting baked textures can speed up login and region border
+ ; crossings especially with large numbers of users, though it
+ ; will store potentially large numbers of textures in your asset
+ ; database
+ PersistBakedTextures = false
+
+ ; Control the delay before appearance is sent to other avatars and
+ ; saved in the avatar service. Attempts to limit the impact caused
+ ; by the very chatty dialog that sets appearance when an avatar
+ ; logs in or teleports into a region; values are in seconds
+ DelayBeforeAppearanceSave = 5
+ DelayBeforeAppearanceSend = 2
+
+ ; If true, avatar appearance information is resent to other avatars in the simulator every 60 seconds.
+ ; This may help with some situations where avatars are persistently grey, though it will not help
+ ; in other situations (e.g. appearance baking failures where the avatar only appears as a cloud to others).
+ ResendAppearanceUpdates = false
+
+ ; Turning this on responds to CachedTexture packets to possibly avoid rebaking the avatar
+ ; on every login
+ ReuseTextures = true
+
+
+[Attachments]
+ ; Controls the number of milliseconds that are slept per 100 prims rezzed in attachments
+ ; Experimental setting to control CPU spiking when avatars with many attachments login/change outfit
+ ; or when multiple avatars with medium level attachments login/change outfit simultaneously.
+ ; If 0 then no throttling is performed.
+ ThrottlePer100PrimsRezzed = 0
+
+
+[Textures]
+ ; If true, textures generated dynamically (i.e. through osSetDynamicTextureData() and similar OSSL functions) are reused where possible
+ ; Chiefly, reuse occurs if a texture has already been generated with identical data and settings, and that texture contains no dynamic components
+ ; (e.g. images pulled from an external HTTP address).
+ ; 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.
+ ; Currently, it will also increase asset cache use since temporary dynamic textures are no longer deleted.
+ ; Hence, currently considered experimental.
+ ; Default is false.
+ ReuseDynamicTextures = false
+
+ ; If true, then textures generated dynamically that have a low data size relative to their pixel size are not reused
+ ; 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.
+ ; Only set this to true if you are sure that all the viewers using your simulator will not suffer from this problem.
+ ; This setting only has an affect is ReuseDynamicTextures = true
+ ; Default is false
+ ReuseDynamicLowDataTextures = false
+
+
+[ODEPhysicsSettings]
+ ; ##
+ ; ## Physics stats settings ( most ignored by ubOde )
+ ;
+
+ ; If collect_stats is enabled, then extra stat information is collected which is accessible via the MonitorModule
+ ; (see http://opensimulator.org/wiki/Monitoring_Module for more details).
+ collect_stats = false
+
+ ; ##
+ ; ## Physics logging settings - logfiles are saved to *.DIF files
+ ; ##
+
+ ; default is false
+ ;physics_logging = true
+ ;; every n simulation iterations, the physics snapshot file is updated
+ ;physics_logging_interval = 50
+ ;; append to existing physics logfile, or overwrite existing logfiles?
+ ;physics_logging_append_existing_logfile = true
+
+ ;##
+ ;## World Settings
+ ;##
+
+ ; World Step size.
+ ; with legacy ODE this value needs to be close to 0.02s
+ ; with ubOde this value can be reduced to improve simulation quality with the cost of higher cpu load
+ ; you will need to test acording to you needs
+ ; choosing a value that is a integer sub multiple of FrameRate reduces some jitter on reported physics FPS
+ world_stepsize = 0.01818
+ ; number of iterations of constrains solver, higher should improve results
+ ; up to a point where acumulated math errors eliminate the improvement
+ ; more steps may increase CPU load. No real gain in changing
+ world_solver_iterations = 10
+
+ ;Spaces level settings. Affects memory consumption vs Collider CPU time for avatar and physical prim
+ ; defines spaces partition cells min and max sizes == 2^value
+ world_hashspace_level_low = -5
+ world_hashSpace_level_high = 12
+
+ meters_in_small_space = 29.9
+
+
+ ; ##
+ ; ## Contact properties. (the stuff that happens when things come in contact with each other)
+ ; ##
+
+ ; surface layer around geometries other geometries can sink into before generating a contact
+ world_contact_surface_layer = 0.001
+
+ ; Filtering collisions helps keep things stable physics wise, but sometimes
+ ; it can be overzealous. If you notice bouncing, chances are it's that.
+ filter_collisions = false
+
+ ; Non Moving Terrain Contact (avatar isn't moving)
+ nm_terraincontact_friction = 255.0
+ nm_terraincontact_bounce = 0.1
+ nm_terraincontact_erp = 0.1025
+
+ ; Moving Terrain Contact (avatar is moving)
+ m_terraincontact_friction = 75.0
+ m_terraincontact_bounce = 0.05
+ m_terrainContact_erp = 0.05025
+
+ ; Moving Avatar to object Contact
+ m_avatarobjectcontact_friction = 75.0
+ m_avatarobjectcontact_bounce = 0.1
+
+ ; Object to Object Contact and Non-Moving Avatar to object
+ objectcontact_friction = 250.0
+ objectcontact_bounce = 0.2
+
+ ; ##
+ ; ## Avatar Control
+ ; ##
+
+ ; PID Controller Settings. These affect the math that causes the avatar to reach the
+ ; desired velocity
+ ; See http://en.wikipedia.org/wiki/PID_controller
+
+ av_pid_derivative = 2200.0
+ av_pid_proportional = 900.0
+
+ ; specifies if the capsule should be tilted (=true; old compatibility mode)
+ ; or straight up-and-down (=false; better and more consistent physics behavior)
+ av_capsule_tilted = false
+
+ ; Movement. Smaller is faster.
+
+ ; speed of movement with Always Run off
+ av_movement_divisor_walk = 1.3
+
+ ; speed of movement with Always Run on
+ av_movement_divisor_run = 0.8
+
+ ; When the avatar flies, it will be moved up by this amount off the ground (in meters)
+ minimum_ground_flight_offset = 3.0
+
+ ; Plant avatar. This reduces the effect of physical contacts with the avatar.
+ ; If you have a group of unruly and rude visitors that bump each other, turn this on to make that less attractive.
+ ; The avatar still allows a small movement based on the PID settings above. Stronger PID settings AND this active
+ ; will lock the avatar in place
+ av_planted = false
+
+ ; 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
+ av_av_collisions_off = false
+
+ ; ##
+ ; ## Object options
+ ; ##
+
+ ; amount of ODE steps where object is non moving for ODE to automatically put it to sleep
+ body_frames_auto_disable = 20
+
+ ; used to control llMove2Target
+ body_pid_derivative = 35
+ body_pid_gain = 25
+
+ ; maximum number of contact points to generate per collision
+ contacts_per_collision = 80
+
+ ; start throttling the object updates if object comes in contact with 3 or more other objects
+ geom_contactpoints_start_throttling = 3
+
+ ; send 1 update for every x updates below when throttled
+ geom_updates_before_throttled_update = 15
+
+ ; ##
+ ; ## Sculpted Prim settings
+ ; ##
+
+ ; Do we want to mesh sculpted prim to collide like they look?
+ ; If you are seeing sculpt texture decode problems
+ ; (messages such as "Decoded image with unhandled number of components: 0 shortly followed by a physcs exception")
+ ; then you might want to try setting this to false.
+ mesh_sculpted_prim = true
+
+ ; number^2 non-physical level of detail of the sculpt texture. 32x32 - 1024 verticies
+ mesh_lod = 32
+
+ ; number^2 physical level of detail of the sculpt texture. 16x16 - 256 verticies
+ mesh_physical_lod = 16
+
+ ; ##
+ ; ## additional meshing options
+ ; ##
+
+ ; Physics needs to create internal meshs (or convert the object meshs or scultps)
+ ; for all prims except simple boxes and spheres.
+
+ ; collisions of small objects againts larger ones can have a increased CPU load cost
+ ; so this are represented by a simple BOX
+ ; if all their scale dimensions are lower or equal to this option. Default is 0.1m
+ ; (ubOde only)
+ ; MinSizeToMeshmerize = 0.1
+
+
+[BulletSim]
+ ; There are two bullet physics libraries, bulletunmanaged is the default and is a
+ ; native c++ dll bulletxna is a managed C# dll. They have comparible functionality
+ ; but the c++ one is much faster.
+ BulletEngine = "bulletunmanaged"
+ ; BulletEngine = "bulletxna"
+
+ ; BulletSim can run on its own thread independent of the simulator's heartbeat
+ ; thread. Enabling this will not let the physics engine slow down avatar movement, etc.
+ UseSeparatePhysicsThread = false
+
+ ; Terrain implementation can use either Bullet's heightField or BulletSim can build
+ ; a mesh. 0=heightField, 1=mesh
+ TerrainImplementation = 0
+ ; For mesh terrain, the detail of the created mesh. '1' gives 256x256 (heightfield
+ ; resolution). '2' gives 512x512. Etc. Cannot be larger than '4'. Higher
+ ; magnifications use lots of memory.
+ TerrainMeshMagnification = 1
+
+ ; Should avatars collide with each other?
+ AvatarToAvatarCollisionsByDefault = false
+
+ ; Default linkset implmentation
+ ; 'Constraint' uses physics constraints to hold linkset together. 'Compound'
+ ; builds a compound shape from the children shapes to create a single physical
+ ; shape. 'Compound' uses a lot less CPU time.
+ LinkImplementation = 1 ; 0=constraint, 1=compound
+
+ ; If 'true', offset a linkset's origin based on mass of linkset parts.
+ LinksetOffsetCenterOfMass = false
+
+ ; If 'true', turn scuplties into meshes
+ MeshSculptedPrim = false
+
+ ; If 'true', force simple prims (box and sphere) to be meshed
+ ; If 'false', the Bullet native special case shape is used for square rectangles
+ ; and even dimensioned spheres.
+ ForceSimplePrimMeshing = false
+
+ ; If 'true', when creating meshes, remove all triangles that have two equal vertexes.
+ ; Happens often in sculpties. If turned off, there will be some doorways
+ ; that cannot be walked through.
+ ShouldRemoveZeroWidthTriangles = true
+
+ ; If 'true', use convex hull definition in mesh asset if present.
+ ShouldUseAssetHulls = true
+
+ ; If there are thousands of physical objects, these maximums should be increased.
+ MaxCollisionsPerFrame = 2048
+ MaxUpdatesPerFrame = 8192
+
+ ; Detailed physics debug logging. Very verbose.
+ PhysicsLoggingEnabled = False
+ PhysicsLoggingDir = "."
+ VehicleLoggingEnabled = False
+
+
+[Sun]
+ ; send a Sun update every update_interval # of frames. A lower number will
+ ; make for smoother sun transition at the cost of network
+ ;update_interval = 100
+
+
+[Wind]
+ ; How often should wind be updated, as a function of world frames. Approximately 50 frames a second
+ wind_update_rate = 150
+
+ ; The Default Wind Plugin to load
+ wind_plugin = SimpleRandomWind
+
+
+[Cloud]
+ ; update interval for the cloud cover data returned by llCloud().
+ ; default is 1000
+ cloud_update_rate = 1000
+
+
+[Trees]
+ ; active_trees allows module to change its trees in time.
+ ; some will be deleted, others created and rest may grow
+ ; default is false. You can change it with console command tree active true | false later
+ active_trees = false
+ ; the trees change execution time rate (in ms)
+ update_rate = 1000
+
+ ; allow the trees to grow.
+ ; DANGER
+ ; this option causes high network use on the order of
+ ; NumberOfTrees * NumberAvatars * 1000 / update_rate udp packets per second
+ allowGrow = false
+
+
+[LL-Functions]
+ ; Maximum number of llListen events we allow over the entire region.
+ ; Set this to 0 to have no limit imposed
+ max_listens_per_region = 1000
+
+ ; Maximum number of llListen events we allow per script
+ ; Set this to 0 to have no limit imposed.
+ max_listens_per_script = 64
+
+ ; Maximum number of external urls that scripts can set up in this simulator (e.g. via llRequestURL())
+ max_external_urls_per_simulator = 100
+
+ ; Use size boxes instead of meshed prims, sculpts and mesh when calculating bounding boxes.
+ ; Speeds up calculations but can make them inaccurate, in some cases very inaccurate.
+ UseSimpleBoxesInGetBoundingBox = true
+
+ ; Use llCastRay V3 if true.
+ ; Implements llCastRay similar but not identical to Second Life.
+ ; See http://wiki.secondlife.com/wiki/LlCastRay .
+ ; NEW
+ ; Meshes prims for good accuracy in ray hit detection,
+ ; handling basic and tortured prims, sculpts and meshes.
+ ; Uses ellipsoid, correctly sized avatar capsules.
+ ; Handles complex terrain, multi-prim objects and seated avatars.
+ ; Implements throttling and the status codes
+ ; RCERR_UNKNOWN and RCERR_CAST_TIME_EXCEEDED,
+ ; so LSL scripts need to handle these responses and RCERR_SIM_PERF_LOW.
+ ; WARNING
+ ; Can be faster on some servers and scenes, but slower on others,
+ ; compared to previous version of llCastRay in OpenSimulator.
+ ; Is in most cases considerably slower than llCastRay in Second Life.
+ ; Generates geometry meshes and can therefore use much system resources.
+ UseLlCastRayV3 = false
+
+ ; Accepted calculation precision error in calculations in llCastRay V3
+ FloatToleranceInLlCastRay = 0.00001
+
+ ; Accepted distance difference between duplicate hits in llCastRay V3
+ FloatTolerance2InLlCastRay = 0.001
+
+ ; Detail level when rendering prims in llCastRay V3
+ ; 0 = Low, 1 = Medium, 2 = High, 3 = Highest, higer level gives better accuracy but slower call
+ PrimDetailLevelInLlCastRay = 1
+
+ ; Detail level when rendering sculpts in llCastRay V3
+ ; 0 = Low, 1 = Medium, 2 = High, 3 = Highest, higer level gives better accuracy but slower call
+ SculptDetailLevelInLlCastRay = 1
+
+ ; Detail level when rendering meshes in llCastRay V3
+ ; 0 = Low, 1 = Medium, 2 = High, 3 = Highest, higer level gives better accuracy but slower call
+ MeshDetailLevelInLlCastRay = 3
+
+ ; Detail level when rendering avatar capsules in llCastRay V3
+ ; 0 = Low, 1 = Medium, 2 = High, 3 = Highest, higer level gives better accuracy but slower call
+ AvatarDetailLevelInLlCastRay = 1
+
+ ; Maximum number of returned hits from llCastRay V3
+ MaxHitsInLlCastRay = 16
+
+ ; Maximum number of returned hits per prim from llCastRay V3
+ MaxHitsPerPrimInLlCastRay = 16
+
+ ; Maximum number of returned hits per object from llCastRay V3
+ MaxHitsPerObjectInLlCastRay = 16
+
+ ; Report ray intersections with surfaces on exits from a prim as hits in llCastRay V3 if true
+ DetectExitHitsInLlCastRay = false
+
+ ; Detect attachments in llCastRay V3 if true
+ DoAttachmentsInLlCastRay = false
+
+ ; Throttle period length in ms before which all old llCastRay use is discarded in llCastRay V3
+ ; The sum of AvailableTimeInMsPerRegionInLlCastRay and all AvailableTimeInMsPerAvatarInLlCastRay should not exceed this
+ ThrottleTimeInMsInLlCastRay = 200
+
+ ; Available time in ms for llCastRay per throttle period and 65536 m2 land area in llCastRay V3
+ AvailableTimeInMsPerRegionInLlCastRay = 40
+
+ ; Available time in ms for llCastRay per throttle period and avatar when script in attachment or vehicle in llCastRay V3
+ AvailableTimeInMsPerAvatarInLlCastRay = 10
+
+ ; Required available time in ms left to perform a new llCastRay in llCastRay V3
+ RequiredAvailableTimeInMsInLlCastRay = 2
+
+ ; Maximum available time in ms possible in llCastRay V3, not to get too high values with varregions
+ MaximumAvailableTimeInMsInLlCastRay = 40
+
+ ; Use cached meshes in llCastRay V3 if true
+ ; Improves performance but uses more memory
+ UseMeshCacheInLlCastRay = true
+
+
+[XEngine]
+ ; How many threads to keep alive even if nothing is happening
+ MinThreads = 2
+
+ ; How many threads to start at maximum load
+ MaxThreads = 100
+
+ ; Time a thread must be idle (in seconds) before it dies
+ IdleTimeout = 60
+
+ ; Thread priority ("Lowest", "BelowNormal", "Normal", "AboveNormal", "Highest")
+ Priority = "BelowNormal"
+
+ ; Maximum number of events to queue for a script (excluding timers)
+ MaxScriptEventQueue = 3000
+
+ ; Stack size per thread created
+ ThreadStackSize = 132144
+
+ ; Set this to true to load each script into a separate
+ ; AppDomain. Setting this to false will load all script assemblies into the
+ ; current AppDomain, which will reduce the initial per-script memory overhead,
+ ; but deleted scripts stay inactive using memory.
+ ; Significantly improving script loading times.
+ ; However, setting this to false will also prevent script DLLs from being unloaded from memory if the script is deleted.
+ ; This may cause an OutOfMemory problem over time when avatars with scripted attachments move in and out of the region.
+ ; This may only be a problem if regions stay alive for a long time with lots of scripts added or edited.
+ ; At this time some mono versions seem to have problems with the true option,
+ ; so default is now false until a fix is found, to simply life of less technical skilled users.
+ AppDomainLoading = false
+
+ ; Controls whether previously compiled scripts DLLs are deleted on sim restart.
+ ; If you set this to false then startup will be considerably faster since scripts won't need to be recompiled.
+ ; It should be true on first run after updating opensim binary version
+ ; after first run you can change to false.
+ ; You can also set it to false and delete the script DLLs by hand
+ ; This does not delete cached scripts state.
+ DeleteScriptsOnStartup = true
+
+ ; CompactMemOnLoad
+ ; forces calls to memory garbage collector before loading each script DLL during region startup.
+ ; Peak memory usage is reduced and region starts with a more compacted memory allocation.
+ ; But this costs a lot of time, so region load will take a lot longer.
+ ; it is more usefull if there are no previously compiled scripts DLLs (or DeleteScriptsOnStartup = true)
+ CompactMemOnLoad = true
+
+ ; Controls whether scripts are stopped by aborting their threads externally (abort)
+ ; or by co-operative checks inserted by OpenSimulator into compiled script (co-op).
+ ; co-op will be more stable as aborting threads can cause instability.
+ ; abort was the default option in OpenSimulator 0.8 and before.
+ ; If this setting is changed between co-op and abort, then existing scripts will automatically be recompiled if necessary.
+ ; However, the setting change will not take affect until the next time you restart the simulator.
+ ; Setting changes will not affect state information stored for scripts.
+ ScriptStopStrategy = abort
+
+ ; Rate to poll for asynchronous command replies (ms)
+ ; currently unused
+ ;AsyncLLCommandLoopms = 50
+
+ ; Compile debug info (line numbers) into the script assemblies
+ CompileWithDebugInformation = false
+
+ ; Interval (s) between background save of script states
+ SaveInterval = 120
+
+ ; Interval (s) between maintenance runs (0 = disable)
+ MaintenanceInterval = 10
+
+ ; Amount of time in milliseconds we will wait for an event to completely normally when a script stop is requested
+ ; before aborting the thread (such as when an object containing scripts is taken into inventory).
+ WaitForEventCompletionOnScriptStop = 1000
+
+ ; Minimum settable timer interval. Any timer setting less than this is
+ ; rounded up to this minimum interval.
+ MinTimerInterval = 0.1
+
+ ; Sensor settings
+ SensorMaxRange = 96.0
+ SensorMaxResults = 16
+
+
+[Groups]
+ ; Groups data is cached for this number of seconds before another request is made to the groups service
+ ; Set to 0 to disable the cache.
+ ; Default is 30 seconds
+ GroupsCacheTimeout = 30
+
+
+[PacketPool]
+ ;RecyclePackets = true
+ ;RecycleDataBlocks = true
+
+ ; If true, then the basic packet objects used to receive data are also recycled, not just the LLUDP packets.
+ ; This reduces data churn
+ RecycleBaseUDPPackets = true
+
+
+[InterestManagement]
+ ; This section controls how state updates are prioritized for each client
+ ; Valid values are BestAvatarResponsiveness, Time, Distance,
+ ; SimpleAngularDistance, and FrontBack
+ UpdatePrioritizationScheme = BestAvatarResponsiveness
+ ReprioritizationEnabled = true
+ ReprioritizationInterval = 2000.0
+ RootReprioritizationDistance = 10.0
+ ChildReprioritizationDistance = 20.0
+
+ ; TEST OPTION KEEP AS FALSE
+ ; if true, don't send object updates if outside view range
+ ObjectsCullingByDistance = false
+
+ ; If n > 1, only every n UDP terse updates will be sent to observers of an avatar that are in the same region
+ ; 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).
+ ; n > 1 will reduce UDP traffic but will lead to laggier movement observed in other avatars.
+ RootTerseUpdatePeriod = 0
+
+ ; If n > 1, only every n UDP terse updates will be sent to observers of an avatar that are in another region
+ ; 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.
+ ChildTerseUpdatePeriod = 0
+
+ ; Send an update to clients if the difference from the last sent avatar position is greater than this tolerance
+ RootPositionUpdateTolerance = 0.05
+
+ ; Send an update to clients if the euclidian difference from the last sent avatar rotation is greater than this tolerance
+ RootRotationUpdateTolerance = 0.1
+
+ ; Send an update to clients if the difference from the last sent avatar velocity is greater than this tolerance
+ RootVelocityUpdateTolerance = 0.001
+
+
+[Statistics]
+ ; NumberOfFrames is used in a moving average calculation, where NumberOfFrames is the number of frames
+ ; to include in the averaging calculations
+ NumberOfFrames=10
+
+
+[Terrain]
+ ; If 'true' each avatar is only sent terrain patches within their view distance
+ ; This also changes the region terrain loading from 'lawn mower' to ordered around
+ ; the avatar outward.
+ SendTerrainUpdatesByViewDistance = True
+
+
+[LandManagement]
+ ; When editing terrain or objects, parcel layer info is updated in the viewer.
+ ; This can be expensive for large regions. If this variable is 'true', only the
+ ; parcel layer data around the area of interest is sent. The parcel layer info
+ ; is sent for 'ParcelLayerViewDistance' around the interest point.
+ ; If 'ParcelLayerViewDistance' is >= 128, the operation for legacy sized regions
+ ; will be what it has always been (send the whole region's parcel layer info).
+ ; Other parcel updates (login, changing parcel ownership, ...) will still send
+ ; whole region.
+ LimitParcelLayerUpdateDistance = true
+ ParcelLayerViewDistance = 128
+
+
+;; If you are using a simian grid frontend you can enable
+;; this module to upload tile images for the mapping fn
+;;
+[SimianGridMaptiles]
+ RefreshTime = 3600
+
+
+;;
+;; These are defaults that are overwritten below in [Architecture].
+;; These defaults allow OpenSim to work out of the box with
+;; zero configuration
+;;
+[AssetService]
+ ; Disable this to prevent the default asset set from being inserted into the
+ ; asset store each time the region starts
+ AssetLoaderEnabled = true
+
+
+[AutoBackupModule]
+ ;; default is module is disabled at the top level
+ AutoBackupModuleEnabled = false
+
+
+[ServiceThrottle]
+ ;; Default time interval (in ms) for the throttle service thread to wake up
+ Interval = 5000
+
+
+[Materials]
+ 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 @@
+; The Const section allows us to define some basic information that we
+; will use throughout our configuration. We will provide examples for
+; setting the base url of the ROBUST server and the public and private ports
+; it uses. Changing the values of the constants will set the operating
+; parameters thoughout the configuration. Other constants that may prove
+; to be useful may be added to the followin section. They may be
+; referenced anywhere in the configuration by using ${Const|Name}. One
+; such use is providing a base path for setting locations that ROBUST
+; uses to write data.
+
+; Also put grid specific stuff here.
+
+
+[Paths]
+ AssetsPath = "../../AssetFiles"
+ BackupPath = "../../backups"
+ CachePath = "../../caches"
+ ConfigPath = "../../config"
+ DbPath = "../../db"
+ LogPath = "../../logs"
+ WebPath = "../../web"
+
+[Const]
+ MOTD = "Welcome to your local grid."
+
+ GridName = "localhost Grid"
+ ShortGridName = "lg"
+
+ ; For a grid these will usually be the externally accessible IP/DNS
+ ; name and use default public port 8002 and default private port 8003
+ ; For a standalone this will usually be the externally accessible IP/DNS
+ ; name and use default public port 9000. The private port is not used
+ ; in the configuration for a standalone.
+ BaseHostname = "http://127.0.0.1"
+ HostName = "localhost"
+ BaseURL = ${Const|BaseHostname}
+ GridURL = ${Const|BaseHostname}
+ SSLURL = "https://${Const|HostName}"
+
+ PublicPort = "8002"
+ PrivatePort = "8003"
+ PublicSSLPort = "8443"
+
+ ; The public port of the ROBUST asset server, which might be different.
+ AssetServerPort = "8003"
+
+ ; Database credentials.
+ DataProvider = "OpenSim.Data.MySQL.dll"
+ ConnectionString = "Data Source=MYSQL_HOST;Database=MYSQL_DB;User ID=MYSQL_USER;Password=MYSQL_PASSWORD;Old Guids=true;"
--
cgit v1.1