From 6b8e31d0cc4538ea9e7c79299e3815f0c075407c Mon Sep 17 00:00:00 2001
From: onefang
Date: Tue, 6 Jul 2021 13:58:35 +1000
Subject: Various config file merges and fix ups.

Plus some sorting.
---
 bin/OpenSim.ini.example          |  85 +--------
 bin/OpenSimDefaults.ini          | 399 ++++++++++++++++++++++++++++++---------
 bin/config-include/config_DG.ini |   4 +
 bin/config-include/config_IG.ini |   4 +
 bin/config-include/config_MG.ini |   4 +
 5 files changed, 330 insertions(+), 166 deletions(-)

diff --git a/bin/OpenSim.ini.example b/bin/OpenSim.ini.example
index 6129640..05bc433 100644
--- a/bin/OpenSim.ini.example
+++ b/bin/OpenSim.ini.example
@@ -1,76 +1,11 @@
-;; This is the main configuration file for OpenSimulator.
-;; If it's named OpenSim.ini then it will be loaded by OpenSimulator.
-;; If it's named OpenSim.ini.example then you will need to copy it to
-;; OpenSim.ini first (if that file does not already exist)
-;;
-;; Once you have copied OpenSim.ini.example to OpenSim.ini you will at least
-;; need to set the constants in the [Const] section and pick an architecture
-;; in the [Architecture] section at the end of this file. The architecture
-;; will require a suitable .ini file in the config-include directory, either
-;; StandaloneCommon.ini or GridCommon.ini which you can copy and modify from the
-;; available .example files.
-;;
-;; The settings in this file are in the form "<key> = <value>".  For example,
-;; save_crashes = false in the [Startup] section below.
-;;
-;; All settings are initially commented out and the default value used, as
-;; found in OpenSimDefaults.ini.  To change a setting, first uncomment it by
-;; deleting the initial semicolon (;) and then change the value.  This will
-;; override the value in OpenSimDefaults.ini
-;;
-;; If you want to find out what configuration OpenSimulator has finished with
-;; once all the configuration files are loaded then type "config show" on the
-;; region console command line.
-;;
-;;
-;; NOTES FOR DEVELOPERS REGARDING THE FORMAT OF THIS FILE
-;;
-;; All leading white space is ignored, but preserved.
-;;
-;; Double semicolons denote a text comment
-;;
-;; ;# denotes a configuration directive description
-;;    formatted as:
-;;    {option} {depends on} {question to ask} {choices} default value
-;;    Any text comments following the declaration, up to the next blank line.
-;;    will be copied to the generated file (NOTE: generation is not yet
-;;    implemented)
-;;
-;;    A * in the choices list will allow an empty entry.
-;;    An empty question will set the default if the dependencies are
-;;    satisfied.
-;;
-;; ;  denotes a commented out option.
-;;    Any options added to OpenSim.ini.example should be initially commented
-;;    out.
-
-
-[Const]
-    ; this section defines constants for grid services
-    ; to simplify other configuration files default settings
+; This file contains defaults for various settings in OpenSimulator.  These can be overriden
+; by changing the same setting in OpenSim.ini (once OpenSim.ini.example has been copied to OpenSim.ini).
 
-    ;# {BaseHostname} {} {BaseHostname} {"example.com" "127.0.0.1"} "127.0.0.1"
-    BaseHostname = "127.0.0.1"
 
-    ;# {BaseURL} {} {BaseURL} {"http://${Const|BaseHostname}} "http://${Const|BaseHostname}"
-    BaseURL = http://${Const|BaseHostname}
+[Includes]
+    ; Define your server specific constants in this file.
+    Include-Common = ../../config/config.ini
 
-    ; If you run a grid, several services should not be availble to world, access to them should be blocked on firewall
-    ; PrivatePort should closed at the firewall.
-
-    ;# {PublicPort} {} {PublicPort} {8002 9000} "8002"
-    PublicPort = "8002"
-
-    ; you can also have them on a diferent url / IP
-    ;# {PrivURL} {} {PrivURL} {"http://${Const|BaseURL}} "${Const|BaseURL}"
-    PrivURL = ${Const|BaseURL}
-
-    ;grid default private port 8003, not used in standalone
-    ;# {PrivatePort} {} {PrivatePort} {8003} "8003"
-    ; port to access private grid services.
-    ; grids that run all their regions should deny access to this port
-    ; from outside their networks, using firewalls
-    PrivatePort = "8003"
 
 [Startup]
     ;# {ConsolePrompt} {} {ConsolePrompt} {} "Region (\R) "
@@ -753,12 +688,6 @@
     ;; This applies to both core groups module.
     ; ForwardOfflineGroupMessages = true
 
-
-[BulletSim]
-    ;# {AvatarToAvatarCollisionsByDefault} {[Startup]physics:BulletSim} {Should avatars collide with each other?} {true false} true
-    AvatarToAvatarCollisionsByDefault = true
-
-
 [ODEPhysicsSettings]
     ;# {mesh_sculpted_prim} {[Startup]physics:OpenDynamicsEngine} {Mesh sculpties so they collide as they look?} {true false} true
     ;; Do we want to mesh sculpted prim to collide like they look?
@@ -767,6 +696,10 @@
     ;; then you might want to try setting this to false.
     ; mesh_sculpted_prim = true
 
+[BulletSim]
+    ;# {AvatarToAvatarCollisionsByDefault} {[Startup]physics:BulletSim} {Should avatars collide with each other?} {true false} true
+    AvatarToAvatarCollisionsByDefault = true
+
 [RemoteAdmin]
     ;; This is the remote admin module, which uses XMLRPC requests to
     ;; manage regions from a web interface.
diff --git a/bin/OpenSimDefaults.ini b/bin/OpenSimDefaults.ini
index e49fae9..db7d5c0 100644
--- a/bin/OpenSimDefaults.ini
+++ b/bin/OpenSimDefaults.ini
@@ -29,8 +29,8 @@
     ConsoleHistoryFileLines = 100
 
     ; Time stamp commands in history file (default false)
-    ; ConsoleHistoryTimeStamp = false
-	
+     ConsoleHistoryTimeStamp = true
+
     ; Set this to true if you want to log crashes to disk
     ; this can be useful when submitting bug reports.
     ; However, this will only log crashes within OpenSimulator that cause the entire program to exit
@@ -170,10 +170,10 @@
     ; 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 = 512
-	MinRegionsViewDistance = 96
+    ; Other regions visibility depends on avatar position and view range
+    ; the view range considered is limited the maximum and minimum distances:
+    MaxRegionsViewDistance = 1024
+    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
@@ -280,8 +280,14 @@
     ; 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 = 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
 
     ; Path to decoded sculpty maps
     ; Defaults to "j2kDecodeCache
@@ -300,11 +306,13 @@
     ;; 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 = BulletSim
     ;physics = modified_BulletX
     ;physics = OpenDynamicsEngine
     ;physics = basicphysics
     ;physics = POS
+    ;; alternative OpenDynamicsEngine engine. ubODEMeshmerizer meshing above MUST be selected also
+    physics = ubODE
 
     ; ##
     ; ## SCRIPT ENGINE
@@ -312,6 +320,10 @@
 
     ;; Default script engine to use. Currently, we only have XEngine
     DefaultScriptEngine = "XEngine"
+    ;; ***DANGER***DANGER***
+    ;; experimental engine
+    ;; see section [YEngine] below
+    ; DefaultScriptEngine = "YEngine"
 
     ; Http proxy setting for llHTTPRequest and dynamic texture loading, if
     ; required
@@ -401,6 +413,13 @@
     ; default is false
     TelehubAllowLandmark = true
 
+[AccessControl]
+    ; Viewer-based access control. |-separated list of allowed viewers.
+    ; AllowedClients = ""
+
+    ; Viewer-based access control. |-separated list of denied viewers.
+    ; No restrictions by default.
+    ; DeniedClients = ""
 
 ; Normally this section goes in the ThisSim.ini file, but this is common for all.
 [Region]
@@ -411,7 +430,7 @@
     ; #
     ; # SSL certificates validation options
     ; #
-    
+
     ; SSL certificate validation options
     ; you can allow selfsigned certificates or no official CA with next option set to true
     ; NoVerifyCertChain = true
@@ -479,7 +498,7 @@
     enablePosition = true
 
     ; Refresh the cached map tile once a month.
-    RefreshEveryMonth = false
+    RefreshEveryMonth = true
 
     ;# {MapColorWater} {} {Water color for textured and shaded maps} {"#1D475F"}
     ; MapColorWater = "#3399FF"
@@ -518,14 +537,14 @@
 
     ; This allows grid users with a UserLevel of 200 or more to assume god
     ; powers in the regions in this simulator.
-	; if you don't trust grid admins, what are you doing there?
+    ; if you don't trust grid admins, what are you doing there?
     allow_grid_gods = true
 
     ; Allow region owners to assume god powers in their regions
-    ;region_owner_is_god = true
+    region_owner_is_god = false
 
     ; Allow region managers to assume god powers in regions they manage
-    ;region_manager_is_god = false
+    region_manager_is_god = false
 
     ; God mode should be turned on in the viewer whenever
     ; the user has god rights somewhere. They may choose
@@ -566,6 +585,37 @@
     ;LevelUpload = 0
 
 
+[Estates]
+    ; If these values are commented out then the user will be asked for estate details when required (this is the normal case).
+    ; If these values are uncommented then they will be used to create a default estate as necessary.
+    ; New regions will be automatically assigned to that default estate.
+
+    ;# {DefaultEstateName} {} {Default name for estate?} {} My Estate
+    ;; Name for the default estate
+    ; DefaultEstateName = My Estate
+
+    ;# {DefaultEstateOwnerName} {} {Default estate owner name?} {} FirstName LastName
+    ;; Name for default estate owner
+    ; DefaultEstateOwnerName = FirstName LastName
+
+
+    ; ** Standalone Estate Settings **
+    ; The following parameters will only be used on a standalone system to
+    ; create an estate owner that does not already exist
+
+    ;# {DefaultEstateOwnerUUID} {} {Default estate owner UUID?} {} 00000000-0000-0000-0000-000000000000
+    ;; If DefaultEstateOwnerUUID is left at UUID.Zero (as below) then a random
+    ;; UUID will be assigned. This is normally what you want
+    ; DefaultEstateOwnerUUID = 00000000-0000-0000-0000-000000000000
+
+    ;# {DefaultEstateOwnerEMail} {} {Default estate owner email?} {}
+    ;; Email address for the default estate owner
+    ; DefaultEstateOwnerEMail = owner@domain.com
+
+    ;# {DefaultEstateOwnerPassword} {} {Default estate owner password} {}
+    ;; Password for the default estate owner
+    ; DefaultEstateOwnerPassword = password
+
 [RegionReady]
     ; Enable this module to get notified once all items and scripts in the region have been completely loaded and compiled
     enabled = true
@@ -589,7 +639,7 @@
 [EstateManagement]
     ; If false, then block any region restart requests from the client even if they are otherwise valid.
     ; Default is true
-    AllowRegionRestartFromClient = true
+    AllowRegionRestartFromClient = false
 
 
 [UserProfiles]
@@ -621,6 +671,8 @@
 
 
 [Network]
+    ;; Configure the remote console user here. This will not actually be used
+    ;; unless you use -console=rest at startup.
     ;ConsoleUser = "Test"
     ;ConsolePass = "secret"
     ;http_listener_port = 9000
@@ -629,14 +681,14 @@
     ; ssl config: Experimental!
     http_listener_ssl = false ; if set to true main server is replaced by a ssl one
     http_listener_sslport = 9001 ; Use this port for SSL connections
-	; currently if using ssl, regions ExternalHostName must the the same and equal to http_listener_cn
-	; this will change is future
+    ; currently if using ssl, regions ExternalHostName must the the same and equal to http_listener_cn
+    ; this will change is future
     http_listener_cn = "myRegionsExternalHostName"
-	; if the cert doesnt have a oficial CA or is selfsigned viewers option NoVerifySSLCert need to be set true
+    ; if the cert doesnt have a oficial CA or is selfsigned viewers option NoVerifySSLCert need to be set true
     http_listener_cert_path = "mycert.p12" ; path for the cert file that is valid for the ExternalHostName
-	http_listener_cert_pass = "mycertpass" ; the cert passwork
+    http_listener_cert_pass = "mycertpass" ; the cert passwork
 
-    ; addicional HTTPS for "Out of band" management applications such as the remote 
+    ; additional HTTPS for "Out of band" management applications such as the remote
     ; admin module or scripts
     ;
     ; Create https_listener = "True" will create a listener on the port
@@ -657,8 +709,8 @@
     ; HttpBodyMaxLenMAX=16384
 
     ; Hostname to use in llRequestURL/llRequestSecureURL
-	; must be a valid hostname for the ssl cert.
-	; if not defined - llRequestURL/llRequestSecureURL are disabled   
+    ; must be a valid hostname for the ssl cert.
+    ; if not defined - llRequestURL/llRequestSecureURL are disabled
     ; ExternalHostNameForLSL=127.0.0.1
     ExternalHostNameForLSL = "${Const|HostName}"
 
@@ -682,11 +734,43 @@
     ;
     ; OutboundDisallowForUserScripts = ""
 
+    ; You can whitelist individual endpoints by IP or FQDN, e.g.
+    ;
+    ; OutboundDisallowForUserScriptsExcept = 192.168.1.3:8003
+    ;
+    ; You can specify multiple addresses by separating them with a bar.  For example,
+    ;
+    ; OutboundDisallowForUserScriptsExcept = 192.168.1.3:8003|myinternalserver:8000
+    ;
+    ; If an address if given without a port number then port 80 is assumed
+    ;
+    ; You can also specify a network range in CIDR notation to whitelist, e.g.
+    ;
+    ; OutboundDisallowForUserScriptsExcept = 192.168.1.0/24
+    ;
+    ; to whitelist all ports on addresses 192.168.1.0 to 192.168.1.255
+    ; To specify an individual IP address use the /32 netmask
+    ;
+    ; OutboundDisallowForUserScriptsExcept = 192.168.1.2/32
+    ;
+    ; See http://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing#CIDR_notation for more information on CIDR notation
+
+
     ; What is reported as the "X-Secondlife-Shard"
     ; Defaults to the user server url if not set
     ; The old default is "OpenSim", set here for compatibility
     shard = "OpenSim"
 
+    ;; The following 3 variables are for HTTP Basic Authentication for the Robust services.
+    ;; Use this if your central services in port 8003 need to be accessible on the Internet
+    ;; but you want to protect them from unauthorized access. The username and password
+    ;; here need to match the ones in the Robust service configuration.
+    ; AuthType = "BasicHttpAuthentication"
+    ; HttpAuthUsername = "some_username"
+    ; HttpAuthPassword = "some_password"
+    ;;
+    ;; Any of these 3 variables above can be overriden in any of the service sections.
+
     ; What is reported as the "User-Agent" when using llHTTPRequest
     ; Defaults to not sent if not set here. See the notes section in the wiki at
     ; http://wiki.secondlife.com/wiki/LlHTTPRequest for comments on adding
@@ -699,32 +783,43 @@
     ;MaxRequestConcurrency = 30
 
 [ScriptsHttpRequestModule]
-	; options for llHttpRequest
-	
-	; max number of concurrent connections per instance (all scenes), default 8
-	; MaxPoolThreads = 8
-	
+    ; options for llHttpRequest
+
+    ; max number of concurrent connections per instance (all scenes), default 8
+    ; MaxPoolThreads = 8
+
     ; max requests per second for all scripts on a prim, default 1
     ;PrimRequestsPerSec = 1.0
-	; initial unthrottled burst for all scripts on a prim, default 3
+    ; initial unthrottled burst for all scripts on a prim, default 3
     ;PrimRequestsBurst = 3.0
 
     ; max requests per second for the objects owner (per instance), default 25
     ;PrimOwnerRequestsPerSec = 25.0
-	; initial unthrottled burst for the objects owner (per instance), default 5
+    ; initial unthrottled burst for the objects owner (per instance), default 5
     ;PrimOwnerRequestsBurst = 5.0
-	
-	; requests timeout in miliseconds, range 200 to 60000, default 30000
+
+    ; requests timeout in miliseconds, range 200 to 60000, default 30000
     ;RequestsTimeOut = 30000
-	
-[AccessControl]
-	; Viewer-based access control. |-separated list of allowed viewers.
-    ; AllowedClients = ""
 
-	; Viewer-based access control. |-separated list of denied viewers.
-	; No restrictions by default.
-    ; DeniedClients = ""
+[XMLRPC]
+    ;# {XmlRpcRouterModule} {} {Module used to route incoming llRemoteData calls} {XmlRpcRouterModule XmlRpcGridRouterModule} XmlRpcRouterModule
+    ;; If enabled and set to XmlRpcRouterModule, this will post an event,
+    ;; "xmlrpc_uri(string)" to the script concurrently with the first
+    ;; remote_data event. This will contain the fully qualified URI an
+    ;; external site needs to use to send XMLRPC requests to that script
+    ;;
+    ;; If enabled and set to XmlRpcGridRouterModule, newly created channels
+    ;; will be registered with an external service via a configured uri
+    ;XmlRpcRouterModule = "XmlRpcRouterModule"
+
+    ;# {XmlRpcPort} {} {Port for incoming llRemoteData xmlrpc calls} {} 20800
+    ;XmlRpcPort = 20800
 
+    ;# {XmlRpcHubURI} {XmlRpcRouterModule} {URI for external service used to register xmlrpc channels created in the simulator. This depends on XmlRpcRouterModule being set to XmlRpcGridRouterModule} {} http://example.com
+    ;; If XmlRpcRouterModule is set to XmlRpcGridRouterModule, the simulator
+    ;; will use this address to register xmlrpc channels on the external
+    ;; service
+    ; XmlRpcHubURI = http://example.com
 
 [ClientStack.LindenUDP]
     ; Maximum outbound bytes per second for a single scene. This can be used to
@@ -752,7 +847,7 @@
     ; clients login by starting each connection more slowly. Disabled by
     ; default
     ;
-    enable_adaptive_throttles = true
+    enable_adaptive_throttles = false
 
 
     ; TextureSendLimit determines how many packets will be put on
@@ -784,11 +879,11 @@
     ;
     ;PausedAckTimeout = 300
 
-	; Support viewers object cache, default true
-	; users may need to reduce viewer bandwitdh if some prims or terrain parts fail to rez.
-	; change to false if you need to use old viewers that do not support this feature
-	;
-	; SupportViewerObjectsCache = true
+    ; Support viewers object cache, default true
+    ; users may need to reduce viewer bandwitdh if some prims or terrain parts fail to rez.
+    ; change to false if you need to use old viewers that do not support this feature
+    ;
+    ; SupportViewerObjectsCache = true
 
 [ClientStack.LindenCaps]
     ;; Long list of capabilities taken from
@@ -814,7 +909,7 @@
     Cap_GetTexture = "localhost"
     Cap_GetMesh = "localhost"
     Cap_GetMesh2 = "localhost"
-    ; Cap_GetAsset = "localhost"  DO not ucoment this line. Some popular viewers still dont do it right for opensim. Here to easy testing
+    ; Cap_GetAsset = "localhost"  Do not uncoment this line. Some popular viewers still dont do it right for opensim. Here to easy testing
     Cap_GetObjectCost = ""
     Cap_GetObjectPhysicsData = ""
     Cap_GroupProposalBallot = ""
@@ -869,6 +964,19 @@
     ; Capability for searching for people
     Cap_AvatarPickerSearch = "localhost"
 
+[SimulatorFeatures]
+    ;# {SearchServerURI} {} {URL of the search server} {}
+    ;; Optional. If given this serves the same purpose as the grid wide
+    ;; [LoginServices] SearchURL setting and will override that where
+    ;; supported by viewers.
+    ;SearchServerURI = "http://127.0.0.1:9000/"
+
+    ;# {DestinationGuideURI} {} {URL of the destination guide} {}
+    ;; Optional. If given this serves the same purpose as the grid wide
+    ;; [LoginServices] DestinationGuide setting and will override that where
+    ;; supported by viewers.
+    ;DestinationGuideURI = "http://127.0.0.1:9000/guide"
+
 
 [Chat]
     ; Controls whether the chat module is enabled.  Default is true.
@@ -889,8 +997,9 @@
     ; along the x or y axis. This is set to 65535 because current viewers
     ; can't handle teleports that are greater than this distance
     ; Setting to 0 will allow teleports of any distance
+    ; The viewers got fixed long ago.
     ;
-    max_distance = 65535
+    max_distance = 0
 
     ; Allow avatars to cross into and out of the region.
     AllowAvatarCrossing = true
@@ -916,15 +1025,42 @@
 [Messaging]
     ; Control which region module is used for instant messaging.
     ; Default is InstantMessageModule (this is the name of the core IM module as well as the setting)
-    InstantMessageModule = InstantMessageModule
+
+    ; InstantMessageModule = InstantMessageModule
     ; MessageTransferModule = MessageTransferModule
-    ; OfflineMessageModule = OfflineMessageModule
-    ; OfflineMessageURL = http://yourserver/Offline.php
-    ; MuteListModule = MuteListModule
-    ; MuteListURL = http://yourserver/Mute.php
 
-    ; Control whether group messages are forwarded to offline users.  Default is true.
-    ; ForwardOfflineGroupMessages = true
+    ;# {OfflineMessageModule} {} {Module to use for offline message storage} {OfflineMessageModule "Offline Message Module V2" *}
+    ;; Module to handle offline messaging. The core module requires an external
+    ;; web service to do this. See OpenSim wiki.
+    ; OfflineMessageModule = OfflineMessageModule
+    ;; Or, alternatively, use this one, which works for both standalones and grids
+    OfflineMessageModule = "Offline Message Module V2"
+
+    ;# {OfflineMessageURL} {OfflineMessageModule:OfflineMessageModule Offline Message Module V2:Offline Message Module V2} {URL of offline messaging service} {}
+    ;; URL of web service for offline message storage. Leave it commented if your service is local to the sim.
+    ;OfflineMessageURL = ${Const|BaseURL}/Offline.php
+    OfflineMessageURL = ${Const|BaseURL}:${Const|PrivatePort}
+
+    ;# {StorageProvider} {Offline Message Module V2:Offline Message Module V2} {DLL that provides the storage interface} {OpenSim.Data.MySQL.dll}
+    ;; For standalones, this is the storage dll.
+    StorageProvider = "${Const|DataProvider}"
+
+    ; Mute list handler
+    ; the provided MuteListModule is just a Dummy
+    ; you will need a external module for proper suport.
+    ; if you keep both 2 following settings comment, viewers will use mutes in their caches
+    ; if you uncoment both (url is ignored) the mutes will be deleted at login on this instance regions
+    ; WARNING: viewers mutes cache seems to shared by all grids, including SL
+    ; this may cause some confusion.
+    ;# {MuteListModule} {MuteListModule:MuteListModule} {} {} None
+    MuteListModule = MuteListModule
+    ;# {MuteListURL} {MuteListModule:MuteListModule} {} {} http://yourserver/Mute.php
+    MuteListURL = ${Const|BaseURL}/Mute.php
+
+    ;; Control whether group invites and notices are stored for offline users.
+    ;; Default is true.
+    ;; This applies to both core groups module.
+    ForwardOfflineGroupMessages = true
 
 
 [Inventory]
@@ -1345,7 +1481,7 @@
     ; update appearance copies inventory items and wearables of default avatars. if this value is false
     ; (default), just worn assets are copied to the Clothes folder; if true, all Clothes and Bodyparts
     ; subfolders are copied. the receiver will wear the same items the default avatar did wear.
-    ;copy_folders = false
+    copy_folders = true
 
     ; path to default appearance XML file that specifies the look of the default avatars
     ;default_appearance = default_appearance.xml
@@ -1504,6 +1640,11 @@
     ; It has no ill effect on viewers which do not support server-side windlight settings.
     enable_windlight = true
 
+[Materials]
+    ;# {enable_materials} {} {Enable Materials support?} {true false} true
+    ;; This enables the use of Materials.
+    enable_materials = true
+    ; MaxMaterialsPerTransaction = 50
 
 [Trees]
     ; enable the trees module. default true
@@ -1670,19 +1811,19 @@
 
     ; 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
+    PrimDetailLevelInLlCastRay = 2
 
     ; 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
+    SculptDetailLevelInLlCastRay = 2
 
     ; 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
+    MeshDetailLevelInLlCastRay = 2
 
     ; 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
+    AvatarDetailLevelInLlCastRay = 2
 
     ; Maximum number of returned hits from llCastRay V3
     MaxHitsInLlCastRay = 16
@@ -1783,24 +1924,24 @@
     ;PriceObjectRent = 0
     ;PriceObjectScaleFactor = 10
     ;PriceParcelRent = 0
-	
-	; Mesh upload settings, independent of economymodule
-	
-	; Create inventory entries for textures uploaded with a model
-	; default is false, ie, do not create
-	; MeshModelAllowTextureToInventory = true
-	
+
+    ; Mesh upload settings, independent of economymodule
+
+    ; Create inventory entries for textures uploaded with a model
+    ; default is false, ie, do not create
+    MeshModelAllowTextureToInventory = true
+
 
 [YEngine]
     ;; implements non preemptive microthreading, so fixing problems like llSleep or long events handlers
     ;; but those will suffer from timeslicing, so will be slower.
     ;; warning: scripts state is lost on TP or cross to Xengine regions (cars stop, etc)
     ;; ignore its extensions (subset of original XMRengine), those are still undefined.
-    ;Enabled = false
-    
+    Enabled = false
+
     ; maximum stack a script can use in KB
     ;ScriptStackSize = 2048
-    
+
     ; maximum heap memory a script can use in KB
     ;ScriptHeapSize = 1024
 
@@ -1847,6 +1988,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
+    ; WARNING this makes OpenSim use four times as much memory!
     AppDomainLoading = false
 
     ; Controls whether previously compiled scripts DLLs are deleted on sim restart.
@@ -1972,7 +2114,16 @@
     DisableUndergroundMovement = false
 
     ;; Path to script assemblies
-    ; ScriptEnginesPath = "${Paths|CachePath}/ScriptEngines"
+    ScriptEnginesPath = "${Paths|CachePath}/ScriptEngines"
+
+    ; ==== Settings for MOD and OSSL functions have been moved to the [OSSL] section
+
+
+[OSSL]
+    ;# {Include-osslEnable} {} {Include file for enabling and permissions for OSSL functions} {}
+    ;; Optionally include file to enable OSSL functions and set permissions on who can use which.
+    ;; If this INI file is not included, the OSSL functions are disabled.
+    Include-osslEnable = "config-include/osslEnable.ini"
 
 
 [Concierge]
@@ -2076,11 +2227,47 @@
 
     ; This is the current groups stub in Region.CoreModules.Avatar.Groups.  All the other settings below only really
     ; apply to the Flotsam/SimianGrid GroupsModule
-    Module  = Default
-
+    ; Module = Default
     ; This module can use a PHP XmlRpc server from the Flotsam project at http://code.google.com/p/flotsam/
     ; or from the SimianGrid project at http://code.google.com/p/openmetaverse
     ;Module  = GroupsModule
+    ;; or... use Groups Module V2, which works for standalones and robust grids
+     Module = "Groups Module V2"
+
+    ;# {StorageProvider} {Module:Groups Module V2} {The DLL that provides the storage for V2} {OpenSim.Data.MySQL.dll}
+    StorageProvider = "${Const|DataProvider}"
+
+    ;# {ServicesConnectorModule} {Module:GroupsModule Module:Groups Module V2} {Service connector to use for groups} {XmlRpcGroupsServicesConnector SimianGroupsServicesConnector "Groups Local Service Connector" "Groups Remote Service Connector" "Groups HG Service Connector"} XmlRpcGroupsServicesConnector
+    ;; Service connectors to the Groups Service as used in the GroupsModule.  Select one as follows:
+    ;; -- for Flotsam Groups use XmlRpcGroupsServicesConnector
+    ;; -- for Simian Groups use SimianGroupsServicesConnector
+    ;; -- for V2 Groups, standalone, non-HG use "Groups Local Service Connector"
+    ;; -- for V2 Groups, grided sim, non-HG use "Groups Remote Service Connector"
+    ;; -- for V2 Groups, HG, both standalone and grided sim, use "Groups HG Service Connector"
+    ;; Note that the quotes "" around the words are important!
+    ServicesConnectorModule = "Groups HG Service Connector"
+
+    ;# {LocalService} {ServicesConnectorModule:Groups HG Service Connector} {Is the group service in this process or elsewhere?} {local remote} local
+    ;; Used for V2 in HG only. If standalone, set this to local; if grided sim, set this to remote
+    LocalService = remote
+
+    ;# {SecretKey} {ServicesConnectorModule:Groups Remote Service Connector} {Secret key between sim and remote group service} {} ""
+    ;; Used for V2 in Remote only.
+    ; SecretKey = "sEcReTkEy"
+
+    ;# {GroupsServerURI} {Module:GroupsModule (ServicesConnectorModule:Groups Remote Service Connector or (ServicesConnectorModule:Groups HG Service Connector and LocalService:remote))} {Groups Server URI} {}
+    ;; URI for the groups services of this grid
+    ;; e.g. http://yourxmlrpcserver.com/xmlrpc.php for Flotsam XmlRpc
+    ;; or http://mygridserver.com:82/Grid/ for SimianGrid
+    ;; or ${Const|BaseURL}:${Const|PrivatePort} for robust, V2
+    ;; Leave it commented for standalones, V2
+    GroupsServerURI = "${Const|BaseURL}:${Const|PrivatePort}"
+
+    ;# {HomeURI} {ServicesConnectorModule:Groups HG Service Connector} {What's the home address of this world?} {}
+    ;; Used for V2 in HG only. For example
+    ;; http://mygridserver.com:9000 or http://mygridserver.com:8002
+    ;; If you have this set under [Startup], no need to set it here, leave it commented
+    HomeURI = ${Const|BaseURL}:${Const|PublicPort}
 
     ; Enable Group Notices
     NoticesEnabled   = true
@@ -2098,7 +2285,12 @@
 
     ; Specify which messaging module to use for groups messaging and if it's enabled
     ;MessagingModule = GroupsMessagingModule
-    ;MessagingEnabled = true
+    MessagingEnabled = true
+
+    ;# {MessagingModule} {MessagingEnabled:true} {Module to use for groups messaging} {GroupsMessagingModule "Groups Messaging Module V2"} GroupsMessagingModule
+    ; MessagingModule = GroupsMessagingModule
+    ; or use "Groups Messaging Module V2" for Groups V2
+    MessagingModule = "Groups Messaging Module V2"
 
     ; 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
@@ -2138,20 +2330,20 @@
 
 [InterestManagement]
     ; This section controls how state updates are prioritized for each client
-	
+
     ; UpdatePrioritizationScheme valid values are BestAvatarResponsiveness and SimpleAngularDistance
-	; SimpleAngularDistance does use more cpu
+    ; SimpleAngularDistance does use more cpu
     UpdatePrioritizationScheme = BestAvatarResponsiveness
     ReprioritizationEnabled = true
     ReprioritizationInterval = 2000.0
     RootReprioritizationDistance = 10.0
     ChildReprioritizationDistance = 20.0
 
-	; ObjectsCullingByDistance, if true, don't send object updates if outside view range
-	; currently viewers are also told to delete objects that leave view range
-	; only avater position is considered, free camera may not see objects
-	; does increase cpu load
-	ObjectsCullingByDistance = false
+    ; ObjectsCullingByDistance, if true, don't send object updates if outside view range
+    ; currently viewers are also told to delete objects that leave view range
+    ; only avater position is considered, free camera may not see objects
+    ; does increase cpu load
+    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).
@@ -2185,12 +2377,14 @@
     ; See http://opensimulator.org/wiki/FAQ#Region_Statistics_on_a_Web_Page
     ; Use a web browser and type in the "Login URI" + "/SStats/"
     ; For example- http://127.0.0.1:9000/SStats/
-    ; enabled=false
+    enabled=true
+
 
 [Statistics]
-	; NumberOfFrames is used in a moving average calculation, where NumberOfFrames is the number of frames
-	; to include in the averaging calculations
-	NumberOfFrames=10
+    ; NumberOfFrames is used in a moving average calculation, where NumberOfFrames is the number of frames
+    ; to include in the averaging calculations
+    NumberOfFrames=10
+
 
 [MediaOnAPrim]
     ; Enable media on a prim facilities
@@ -2236,16 +2430,16 @@
 
     ; 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 = 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)
-	; DefaultAdministratorParcelName = "Admin Parcel"
-	; DefaultAdministratorGroupUUID = "00000000-0000-0000-0000-000000000000"
-	; DefaultAdministratorOwnerUUID = "00000000-0000-0000-0000-000000000000"
+    ; 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)
+    ; DefaultAdministratorParcelName = "Admin Parcel"
+    ; DefaultAdministratorGroupUUID = "00000000-0000-0000-0000-000000000000"
+    ; DefaultAdministratorOwnerUUID = "00000000-0000-0000-0000-000000000000"
 
 ;;
 ;; If you are using a simian grid frontend you can enable
@@ -2267,6 +2461,31 @@
     EnableObjectStore = true
     MaxStringSpace = 0
 
+[UserProfiles]
+  ;# {ProfileServiceURL} {} {Set url to UserProfilesService} {}
+  ;; Set the value of the url to your UserProfilesService
+  ;; If un-set / "" the module is disabled
+  ;; ProfileServiceURL = ${Const|BaseURL}:${Const|PublicPort}
+
+  ;# {AllowUserProfileWebURLs} {} {allow user profiles web urls} {true false} true
+  ;; set this to false to prevent your users to be sent to unknown
+  ;; web sites by other users on their profiles
+  ; AllowUserProfileWebURLs = true
+
+[XBakes]
+  ;# {URL} {} {Set URL for Baked texture service} {}
+  ;; Sets the URL for the baked texture ROBUST service.
+  ;; Disabled when unset.
+  ;; URL = ${Const|BaseURL}:${Const|PrivatePort}
+
+;;
+;; Optional module to highlight God names in the viewer.
+;; Uncomment and customize appropriately if you want this behavior.
+;;
+;[GodNames]
+;    Enabled = false
+;    FullNames = "Test User, Foo Bar"
+;    Surnames = "Kryztlsk"
 
 ;;
 ;; These are defaults that are overwritten below in [Architecture].
@@ -2309,9 +2528,9 @@
     DwellModule = DefaultDwellModule
 
 [ServerReleaseNotes]
-	;; Comment or set to "" to disable
+    ;; Comment or set to "" to disable
     ServerReleaseNotesURL = "http://opensimulator.org/wiki/0.9.1.1_Release"
-	
+
 [Modules]
     Include-modules = "addon-modules/*/config/*.ini"
 
diff --git a/bin/config-include/config_DG.ini b/bin/config-include/config_DG.ini
index c67ccc9..59e54cd 100644
--- a/bin/config-include/config_DG.ini
+++ b/bin/config-include/config_DG.ini
@@ -37,6 +37,10 @@
     GridURL = ${Const|BaseHostname}
     SSLURL = "https://${Const|HostName}"
 
+    ; you can also have them on a diferent url / IP
+    ;# {PrivURL} {} {PrivURL} {"http://${Const|BaseURL}} "${Const|BaseURL}"
+    PrivURL = ${Const|BaseURL}
+
     PublicPort = "8002"
     PrivatePort = "8003"
     PublicSSLPort = "8443"
diff --git a/bin/config-include/config_IG.ini b/bin/config-include/config_IG.ini
index fbc1e35..d1f1e19 100644
--- a/bin/config-include/config_IG.ini
+++ b/bin/config-include/config_IG.ini
@@ -37,6 +37,10 @@
     GridURL = ${Const|BaseHostname}
     SSLURL = "https://${Const|HostName}"
 
+    ; you can also have them on a diferent url / IP
+    ;# {PrivURL} {} {PrivURL} {"http://${Const|BaseURL}} "${Const|BaseURL}"
+    PrivURL = ${Const|BaseURL}
+
     PublicPort = "8002"
     PrivatePort = "8003"
     PublicSSLPort = "8443"
diff --git a/bin/config-include/config_MG.ini b/bin/config-include/config_MG.ini
index 4827804..be46dc2 100644
--- a/bin/config-include/config_MG.ini
+++ b/bin/config-include/config_MG.ini
@@ -37,6 +37,10 @@
     GridURL = ${Const|BaseHostname}
     SSLURL = "https://${Const|HostName}"
 
+    ; you can also have them on a diferent url / IP
+    ;# {PrivURL} {} {PrivURL} {"http://${Const|BaseURL}} "${Const|BaseURL}"
+    PrivURL = ${Const|BaseURL}
+
     PublicPort = "8002"
     PrivatePort = "8003"
     PublicSSLPort = "8443"
-- 
cgit v1.1