; 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).


[Includes]
    ; Define your server specific constants in this file.
    Include-Common = ../../config/config.ini


[Startup]
    ; Console prompt
    ; Certain special characters can be used to customize the prompt
    ; Currently, these are
    ; \R - substitute region name
    ; \\ - substtitue \
    ConsolePrompt = "Region (\R) "

    ; Console commands can be saved to a file, so the command history persists after a restart. (default is true)
    ConsoleHistoryFileEnabled = true

    ; Log file location. This can be set to a simple file path
    LogFile = "${Paths|LogPath}/OpenSim.log"

    ; The history file can be just a filename (relative to OpenSim's bin/ directory
    ; or it can be a full path to somewhere else. (default is OpenSimConsoleHistory.txt in bin/)
    ConsoleHistoryFile = "${Paths|LogPath}/OpenSimConsoleHistory.txt"

    ; How many lines of command history should we keep? (default is 100)
    ConsoleHistoryFileLines = 100

    ; Time stamp commands in history file (default 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
    ; It will not log crashes caused by virtual machine failures, which includes mono and ODE failures.
    ; You will need to capture these native stack traces by recording the session log itself.
    save_crashes = false

    ; Directory to save crashes to if above is enabled
    ; (default is /opensimdir/crashes/*.txt or C:\opensim\crashes\*.txt)
    crash_dir = "crashes"

    ; Place to create a PID file
    ; PIDFile = "/tmp/OpenSim.exe.pid"

    ; Console commands run at startup
    startup_console_commands_file = "startup_commands.txt"

    ; Console commands run on shutdown
    shutdown_console_commands_file = "shutdown_commands.txt"

    ; Console commands run every 20 minutes
    ; timer_Script = "filename"

    ; timer_Script time interval (default 20 min)
    ; The time is 60 per minute
    ; timer_Interval = 1200

    ; ##
    ; ## SYSTEM
    ; ##

    ; Sets the method that OpenSim will use to fire asynchronous
    ; events. Valid values are ,
    ; QueueUserWorkItem, SmartThreadPool, and Thread.
    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

    ; Plugin Registry Location
    ; Set path to directory for plugin registry. Information about the
    ; registered repositories and installed plugins will be stored here.
    ; The OpenSim.exe process must have R/W access to the location.
    RegistryLocation = "."

    ; Used by region module addins. You can set this to outside bin, so that addin
    ; configurations will survive updates. The OpenSim.exe process must have R/W access
    ; to the location.
    ConfigDirectory = "."

    ; ##
    ; ## CLIENTS
    ; ##

    ; Set this to the DLL containing the client stack to use.
    clientstack_plugin="OpenSim.Region.ClientStack.LindenUDP.dll"

    ; ##
    ; ## REGIONS
    ; ##

    ; Determine where OpenSimulator looks for the files which tell it which regions to server
    ; Defaults to "filesystem" if this setting isn't present
    region_info_source = "filesystem"
    ; region_info_source = "web"

    ; Determines where the region XML files are stored if you are loading these from the filesystem.
    ; Defaults to bin/Regions in your OpenSimulator installation directory
    regionload_regionsdir="Regions"

    ; Determines the page from which regions xml is retrieved if you are loading these from the web
    ; The XML here has the same format as it does on the filesystem (including the <Root> tag),
    ; except that everything is also enclosed in a <Regions> tag.
    ; regionload_webserver_url = "http://example.com/regions.xml"

    ;; Allow the simulator to start up if there are no region configuration available
    ;; from the selected region_info_source.
    allow_regionless = false

    ;; Allow child agents to see into the region even if their root counterpart isn't allowed in here
    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 = 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 = 20

    ; Minimum size for non-physical prims.This can be overridden in the region config file (as
    ; NonPhysicalPrimMin!).
    ; 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 = 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 = 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.
    ClampPrimSize = false

    ; If a prim is loaded from an external source, clamp it to Z = 0 if Z is negative.
    ClampNegativeZ = false

    ; Maximum number of prims allowable in a linkset. Affects creating new linksets. Ignored if less than or equal to zero.
    ; This can be overridden in the region config file.
    LinksetPrims = 0

    ; 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

    ; Allow compiled script binary code to cross region boundaries.
    ; If you set this to "true", any region that can teleport to you can
    ; inject ARBITRARY BINARY CODE into your system. Use at your own risk.
    ; YOU HAVE BEEN WARNED!!!
    TrustBinaries = false

    ; the default view range. Viewers override this ( no major effect still )
    DefaultDrawDistance = 1024.0

    ; 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 = 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
    ; true to make the entire instance exit instead of restarting the region.
    ; 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 = 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

    ; 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

    ; The values below represent the percentage of the target frame time that,
    ; when underrun, should trigger yellow or red in the lag meter.
    ; Less than 60% of FPS is amber by default, less then 40% is red.
    ; These values are advisory. Viewers may choose to not use them but it is
    ; encouraged that they do.
    ; FrameTimeWarnPercent = 60
    ; FrameTimeCritPercent = 40

    ; 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
    ; ##

    ; If true then prims can be collided with by avatars, other prims, etc.
    ; If false then all prims are phantom, no matter whether their phantom flag is checked or unchecked.
    ; Also, no prims are subject to physics.
    collidable_prim = true

    ; If true then prims can be made subject to physics (gravity, pushing, etc.).
    ; If false then physics flag can be set but it is not honoured.  However, prims are still solid for the purposes of collision direction
    physical_prim = true

    ; 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

    ; Path to decoded sculpty maps
    ; Defaults to "j2kDecodeCache
    ;DecodedSculptMapPath = "j2kDecodeCache"

    ; 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"
    ;; ***DANGER***DANGER***
    ;; experimental engine
    ;; see section [YEngine] below
    ; DefaultScriptEngine = "YEngine"

    ; Http proxy setting for llHTTPRequest and dynamic texture loading, if
    ; required
    ; HttpProxy = "http://proxy.com:8080"

    ; If you're using HttpProxy, then you can set HttpProxyExceptions to a
    ; list of regular expressions for URLs that you don't want to go through
    ; the proxy.
    ; For example, servers inside your firewall.
    ; Separate patterns with a ';'
    ; HttpProxyExceptions = ".mydomain.com;localhost"

    ; ##
    ; ## EMAIL MODULE
    ; ##
    ;; The email module requires some configuration. It needs an SMTP
    ;; server to send mail through.
    ;emailmodule = DefaultEmailModule

    ; ##
    ; ## ANIMATIONS
    ; ##

    ; If enabled, enableFlySlow will change the primary fly state to
    ; FLYSLOW, and the "always run" state will be the regular fly.
    enableflyslow = false

    ; PreJump is an additional animation state, but it probably
    ; won't look right until the physics engine supports it
    ; (i.e delays takeoff for a moment)

    ; #
    ; # statistics
    ; #

    ; Simulator statistics are output to the console periodically at debug level INFO.
    ; Setting this to zero disables this output.
    LogShowStatsSeconds = 0

    ; Simulator Stats URI
    ; Enable JSON simulator data by setting a URI name (case sensitive)
    ; Returns regular sim stats (SimFPS, ...)
    Stats_URI = "jsonSimStats"

    ; Simulator StatsManager URI
    ; Enable fetch of StatsManager registered stats. Fetch is query which can optionally
    ; specify category, container and stat to fetch. If not selected, returns all of that type.
    ; http://simulatorHTTPport/ManagedStats/?cat=Category&cont=Container&stat=Statistic
    ; ManagedStatsRemoteFetchURI = "ManagedStats"

    ; Make OpenSim start all regions with logins disabled. They will need
    ; to be enabled from the console if this is set
    StartDisabled = false

    ; Image decoding. Use CSJ2K for layer boundary decoding if true,
    ; OpenJPEG if false
    ; UseCSJ2K = true

    ; Use "Trash" folder for items deleted from the scene
    ; When set to True (the default) items deleted from the scene will be
    ; stored in the user's trash or lost and found folder. When set to
    ; False items will be removed from the scene permanently
    UseTrashOnDelete = True

    ; #
    ; # Logging
    ; #

    ; Force logging when the thread pool approaches an overload condition
    ; Provides useful data for post-mortem analysis even in a production
    ; system with reduced logging
    LogOverloads = True

    ; #
    ; # Telehubs
    ; #

    ; SpawnPointRouting adjusts the landing for incoming avatars.
    ; "closest" will place the avatar at the SpawnPoint located in the closest
    ; 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 = random

    ; TelehubAllowLandmark allows users with landmarks to override telehub
    ; routing and land at the landmark coordinates when set to true
    ; 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]
    InternalAddress = "0.0.0.0"
    ExternalHostName = "${Const|HostName}"


    ; #
    ; # 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
    ; you can also bypass the hostname or domain verification
    ; NoVerifyCertHostname = true
    ; having both options true does provide encryption but with low security
    ; set both true if you don't care to use SSL, they are needed to contact regions or grids that do use it.

[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 = "Warp3DCachedImageModule"

    ; 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 = 1

    ; Attempt to render meshes and sculpties on the map
    RenderMeshes = false

    ; warp3D rendering height limits for prims (relative to rez position not bounding box)
    ; prims above RenderMaxHeight are excluded
    ; valid values: 100 to 4086
    RenderMaxHeight = 4086

    ; prims below RenderMinHeight are excluded
    ; valid values: -100 to RenderMaxHeight - 10
    RenderMinHeight = -100

    ; Show NPCs as green world map dots
    ShowNPCs = false

    ; 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
    ; ##

    ; Permission modules to use, separated by comma.
    ; Possible modules are DefaultPermissionsModule, PrimLimitsModule
    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.
    ; If set to true, then all permissions checks are carried out
    ; Default is true
    serverside_object_permissions = true


    ; This allows some control over permissions
    ; please note that this still doesn't duplicate SL, and is not intended to

    ; 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?
    allow_grid_gods = true

    ; Allow region owners to assume god powers in their regions
    region_owner_is_god = false

    ; Allow region managers to assume god powers in regions they manage
    region_manager_is_god = false

    ; God mode should be turned on in the viewer whenever
    ; the user has god rights somewhere. They may choose
    ; to turn it off again, though.
    automatic_gods = false

    ; The user can execute any and all god functions, as
    ; permitted by the viewer UI, without actually "godding
    ; up". This is the default state in 0.8.2.
    implicit_gods = false

    ; Control user types that are allowed to create new scripts
    ; Only enforced if serviceside_object_permissions is true
    ;
    ; Current possible values are
    ;     all - anyone can create scripts (subject to normal permissions)
    ;     gods - only administrators can create scripts (as long as allow_grid_gods is true)
    ; Default value is all
    ; allowed_script_creators = all

    ; Control user types that are allowed to edit (save) scripts
    ; Only enforced if serviceside_object_permissions is true
    ;
    ; Current possible values are
    ;     all - anyone can edit scripts (subject to normal permissions)
    ;     gods - only administrators can edit scripts (as long as allow_grid_gods is true)
    ; Default value is all
    ; allowed_script_editors = all

    ; Provides a simple control for land owners to give build rights to specific avatars
    ; in publicly accessible parcels that disallow object creation in general.
    ; Owners specific avatars by adding them to the Access List of the parcel
    ; without having to use the Groups feature
    ; Disabled by default
    ; simple_build_permissions = False

    ; Minimum user level required to upload assets
    ;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

    ; Channel on which to signal region readiness through a message
    ; formatted as follows: "{server_startup|oar_file_load},{0|1},n,[oar error]"
    ; - the first field indicating whether this is an initial server startup
    ; - 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 = 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 = false

    ; - send an alert as json to a service
    ; alert_uri = "http://myappserver.net/my_handler/"


[EstateManagement]
    ; If false, then block any region restart requests from the client even if they are otherwise valid.
    ; Default is true
    AllowRegionRestartFromClient = false


[UserProfiles]
  ;# {ProfileURL} {} {Set url to UserProfilesService} {}
  ;; Set the value of the url to your UserProfilesService
  ;; If un-set / "" the module is disabled
  ;; 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
  ;;
  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
  ; AllowUserProfileWebURLs = true


[SMTP]
    enabled = false

    ;enabled = true
    ;internal_object_host = lsl.opensim.local
    ;host_domain_header_from = 127.0.0.1
    ;SMTP_SERVER_HOSTNAME = 127.0.0.1
    ;SMTP_SERVER_PORT = 25
    ;SMTP_SERVER_LOGIN = foo
    ;SMTP_SERVER_PASSWORD = bar


[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
    ;console_port = 0

    ; 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
    http_listener_cn = "myRegionsExternalHostName"
    ; 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

    ; 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
    ; specified. Provide the path to your server certificate along with it's
    ; password
    ; https_listener = False
    ; Set our listener to this port
    ; https_port = 0
    ; Path to X509 certificate, can be the same as main or another
    ; cert_path = "path/to/cert.p12"
    ; Password for cert
    ; cert_pass = "password"

    ; Maximum bytes allowed for HTTP_BODY_MAXLENGTH.
    ; By default, llHTTPRequest limits the response body to 2048 bytes.
    ; This limit can be extended using HTTP_BODY_MAXLENGTH to a maximum
    ; of HttpBodyMaxLenMAX bytes.
    ; HttpBodyMaxLenMAX=16384

    ; Hostname to use in llRequestURL/llRequestSecureURL
    ; 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
    ; This stops users making HTTP calls to machines in the simulator's local network.
    ; If you need to allow some LAN calls we recommend you use OutboundDisallowForUserScriptsExcept documented in OpenSim.ini.example
    ; If you override OutboundDisallowForUserScripts directly you need to be very careful.
    ;
    ; Network ranges are specified in CIDR notation (http://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing#CIDR_notation) with multiple entries separated by |
    ; To specify an individual IP address use the /32 netmask (e.g. 192.168.1.3/32)
    ; You can also specify individual <addr>:<port> endpoints (e.g. 192.168.1.3:8003)
    ; If an address if given without a port number then port 80 is assumed.
    OutboundDisallowForUserScripts = 0.0.0.0/8|10.0.0.0/8|100.64.0.0/10|127.0.0.0/8|169.254.0.0/16|172.16.0.0/12|192.0.0.0/24|192.0.2.0/24|192.88.99.0/24|192.168.0.0/16|198.18.0.0/15|198.51.100.0/24|203.0.113.0/24|224.0.0.0/4|240.0.0.0/4|255.255.255.255/32
    ;
    ; You can also prevent all user script outgoing calls with the following override in OpenSim.ini
    ;
    ; OutboundDisallowForUserScripts = 0.0.0.0/0
    ;
    ; You can also disable the blacklist entirely with an empty entry
    ;
    ; 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
    ; " (Mozilla Compatible)" to the text where there are problems with a web server
    ;user_agent = "OpenSim LSL (Mozilla Compatible)"

    ; 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

[ScriptsHttpRequestModule]
    ; 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
    ;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
    ;PrimOwnerRequestsBurst = 5.0

    ; requests timeout in miliseconds, range 200 to 60000, default 30000
    ;RequestsTimeOut = 30000

[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
    ; 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


    ; TextureSendLimit determines how many packets will be put on
    ; the lludp 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

    ; Quash and remove any light properties from attachments not on the
    ; hands. This allows flashlights and lanterns to function, but kills
    ; silly vanity "Facelights" dead. Sorry, head mounted miner's lamps
    ; will also be affected.
    ;
    DisableFacelights = true

    ; 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

    ; 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
    ;; http://wiki.secondlife.com/wiki/Current_Sim_Capabilities
    ;; Not all are supported by OpenSim. The ones supported are
    ;; set to localhost. These defaults can be overwritten
    ;; in OpenSim.ini
    ;;
    Cap_AttachmentResources = ""
    Cap_ChatSessionRequest = ""
    Cap_CopyInventoryFromNotecard = "localhost"
    Cap_DispatchRegionInfo = ""
    Cap_EstateAccess = "localhost"
    Cap_EstateChangeInfo = "localhost"
    Cap_EnvironmentSettings = "localhost"
    Cap_EventQueueGet = "localhost"
    Cap_FetchInventory = ""
    Cap_ObjectMedia = "localhost"
    Cap_ObjectMediaNavigate = "localhost"
    Cap_FetchLib = ""
    Cap_FetchLibDescendents = ""
    Cap_GetDisplayNames = "localhost"
    Cap_GetTexture = "localhost"
    Cap_GetMesh = "localhost"
    Cap_GetMesh2 = "localhost"
    ; 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 = ""
    Cap_GroupMemberData = "localhost"
    Cap_HomeLocation = "localhost"
    Cap_LandResources = ""
    Cap_MapLayer = "localhost"
    Cap_MapLayerGod = "localhost"
    Cap_NewFileAgentInventory = "localhost"
    Cap_NewFileAgentInventoryVariablePrice = "localhost"
    Cap_ObjectAdd = "localhost"
    Cap_ParcelPropertiesUpdate = "localhost"
    Cap_ParcelMediaURLFilterList = ""
    Cap_ParcelNavigateMedia = ""
    Cap_ParcelVoiceInfoRequest = ""
    Cap_ProductInfoRequest = ""
    Cap_ProvisionVoiceAccountRequest = ""
    Cap_RemoteParcelRequest = "localhost"
    Cap_RequestTextureDownload = ""
    Cap_SearchStatRequest = ""
    Cap_SearchStatTracking = ""
    Cap_SendPostcard = ""
    Cap_SendUserReport = ""
    Cap_SendUserReportWithScreenshot = ""
    Cap_ServerReleaseNotes = "localhost"
    Cap_SimConsole = ""
    Cap_SimulatorFeatures = ""
    Cap_SetDisplayName = ""
    Cap_StartGroupProposal = ""
    Cap_TextureStats = ""
    Cap_UntrustedSimulatorMessage = ""
    Cap_UpdateAgentInformation = ""
    Cap_UpdateAgentLanguage = ""
    Cap_UpdateGestureAgentInventory = ""
    Cap_UpdateNotecardAgentInventory = "localhost"
    Cap_UpdateScriptAgent = "localhost"
    Cap_UpdateGestureTaskInventory = ""
    Cap_UpdateNotecardTaskInventory = "localhost"
    Cap_UpdateScriptTask = "localhost"
    Cap_UploadBakedTexture = "localhost"
    Cap_UploadObjectAsset = "localhost"
    Cap_ViewerStartAuction = ""
    Cap_ViewerStats = ""

    ; Capabilities for fetching inventory over HTTP rather than UDP
    ; FetchInventoryDescendents2 and FetchInventory2 are the ones used in the latest Linden Lab viewers (from some point in the v2 series and above)
    ; It appears that Linden Lab viewer 3.3.1 onwards will not work properly if FetchInventoryDescendents2 and FetchInventory2 are not enabled
    Cap_WebFetchInventoryDescendents = ""
    Cap_FetchInventoryDescendents2 = "localhost"
    Cap_FetchInventory2 = "localhost"

    ; 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.
    enabled = true

    ; Distance in meters that whispers should travel.  Default is 10m
    whisper_distance = 15

    ; Distance in meters that ordinary chat should travel.  Default is 20m
    say_distance = 40

    ; Distance in meters that shouts should travel.  Default is 100m
    shout_distance = 256


[EntityTransfer]
    ; The maximum distance in regions that an agent is allowed to teleport
    ; 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 = 0

    ; 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

    ; Minimum user level required for HyperGrid teleports
    LevelHGTeleport = 0

    ; Determine whether the cancel button is shown at all during teleports.
    ; This option exists because cancelling at certain points can result in an unuseable session (frozen avatar, etc.)
    ; 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_SL


[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
    ; MessageTransferModule = MessageTransferModule

    ;# {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]
    ; Control whether multiple objects sent to inventory should be coaleseced into a single item
    ; There are still some issues with coalescence, including the fact that rotation is not restored
    ; and some assets may be missing from archive files.
    CoalesceMultipleObjectsToInventory = true


[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 whether avatar attachments are enabled.
    ; Defaults to true - only set to false for debugging purposes
    Enabled = true

    ; Inventory object wear did replace all the worn objects on same attachment point
    ; if this option is set false, only oldest worn object will be replaced on that point.
    ; true will do as older versions
    ;WearReplacesAll = true


[Mesh]
    ; enable / disable mesh asset uploads
    ; mesh asset must conform to standard mesh format, with OpenSim extensions
    ; default is true
    AllowMeshUpload = true

    ; Minimum user level required to upload meshes
    ;LevelUpload = 0

    ; support meshes on physics
    UseMeshiesPhysicsMesh = true

    ;support convex shape type on normal prims
    ; (ubOde only)
    ;ConvexPrims = true

    ;support convex shape type on sculpts
    ; (ubOde only)
    ;ConvexSculpts = true

    ; mesh cache settings:
    ; (ubOde only)
    ; do cache (keep true)
    ;MeshFileCache = true
    ; cache folder name relative to bin/ or absolute path
    ;MeshFileCachePath = MeshCache
    ;MeshFileCacheDoExpire = true
    ;MeshFileCacheExpireHours = 48



[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
    ;##

    ;Gravity.  Feel like falling up?  change world_gravityz to 9.8 instead of -9.8.  m/s
    world_gravityx = 0
    world_gravityy = 0
    world_gravityz = -9.8

    ; Terminal velocity of a falling avatar
    ; This is the same http://en.wikipedia.org/wiki/Terminal_velocity#Examples
    ; Max value is 255, min value is 0
    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
    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

    ;girth of the avatar.  Adds radius to the height also
    av_capsule_radius = 0.37

    ; Max force permissible to use to keep the avatar standing up straight
    av_capsule_standup_tensor = 550000

    ; 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

    ; used to calculate mass of avatar.
    ; float AVvolume = (float) (Math.PI*Math.Pow(CAPSULE_RADIUS, 2)*CAPSULE_LENGTH);
    ; av_density * AVvolume;
    av_density = 80

    ; use this value to cut 52% of the height the sim gives us
    ; Currently unused
    ; av_height_fudge_factor = 0.52

    ; 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
    ; ##

    ; used in the mass calculation.
    geometry_default_density = 10.000006836

    ; 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

    ; Maximum mass an object can be before it is clamped
    maximum_mass_object = 10000.01

    ; ##
    ; ## Sculpted Prim settings
    ; ##

    ; Do we want to mesh sculpted prim to collide like they look?
    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]
    ; All the BulletSim parameters can be displayed with the console command
    ;   "physics get all" and all are defined in the source file
    ;    OpenSim/Regions/Physics/BulletSPlugin/BSParam.cs.

    ; 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 = 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 = 3

    ; Should avatars collide with each other?
    AvatarToAvatarCollisionsByDefault = true

    ; Avatar physics height adjustments.
    ;   http://opensimulator.org/wiki/BulletSim#Adjusting_Avatar_Height
    AvatarHeightLowFudge = 0      ; Adjustment at low end of height range
    AvatarHeightMidFudge = 0      ; Adjustment at mid point of avatar height range
    AvatarHeightHighFudge = 0     ; Adjustment at high end of height range

    ; 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.
;;;; 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
    ; negative for a downward speed.
    AvatarTerminalVelocity = -54

    ; 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


[RemoteAdmin]
    enabled = false

    ; Set this to a nonzero value to have remote admin use a different port
    port = 0

    ; Set this to the ip address that you want the admin server to bind to
    bind_ip_address = "0.0.0.0"

    ; This password is required to make any XMLRPC call (should be set as the "password" parameter)
    access_password = unknown

    ; List the IP addresses allowed to call RemoteAdmin
    ; If access_ip_addresses isn't set, then all IP addresses can access RemoteAdmin.
    ; access_ip_addresses = 0.0.0.0, 0.0.0.0 ...
    ; access_ip_addresses =

    ; set this variable to true if you want the create_region XmlRpc
    ; call to unconditionally enable voice on all parcels for a newly
    ; created region [default: false]
    create_region_enable_voice = false

    ; set this variable to false if you want the create_region XmlRpc
    ; call to create all regions as private per default (can be
    ; overridden in the XmlRpc call) [default: true]
    create_region_public = false

    ; the create_region XmlRpc call uses region_file_template to generate
    ; the file name of newly create regions (if they are created
    ; persistent). the parameter available are:
    ;     {0} - X location
    ;     {1} - Y location
    ;     {2} - region UUID
    ;     {3} - region port
    ;     {4} - region name with " ", ":", "/" mapped to  "_"
    region_file_template = "{0}x{1}-{2}.ini"

    ; we can limit the number of regions that XmlRpcCreateRegion will
    ; allow by setting this to a positive, non-0 number: as long as the
    ; number of regions is below region_limits, XmlRpcCreateRegion will
    ; succeed. setting region_limit to 0 disables the check.
    ; default is 0
    ;region_limit = 0

    ; enable only those methods you deem to be appropriate using a | delimited whitelist
    ; for example, enabled_methods = admin_broadcast|admin_region_query|admin_save_oar|admin_save_xml
    ; if this parameter is not specified but enabled = true, all methods will be available
    enabled_methods = all

    ; specify the default appearance for an avatar created through the remote admin interface
    ; This will only take effect is the file specified by the default_appearance setting below exists
    ;default_male = Default Male
    ;default_female = Default Female

    ; 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 = true

    ; path to default appearance XML file that specifies the look of the default avatars
    ;default_appearance = default_appearance.xml


; RestPlugins are not currently operational.
;[RestPlugins]
;    ; Change this to true to enable REST Plugins. This must be true if you wish to use
;    ; REST Region or REST Asset and Inventory Plugins
;    enabled = false
;    god_key = SECRET
;    prefix = /admin


;[RestRegionPlugin]
;    ; Change this to true to enable the REST Region Plugin
;    enabled = false


;[RestHandler]
;    ; Change this to true to enable the REST Asset and Inventory Plugin
;    enabled = false
;    authenticate = true
;    secured = true
;    extended-escape = true
;    realm = OpenSim REST
;    dump-asset = false
;    path-fill = true
;    dump-line-size = 32
;    flush-on-error = true


[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
    ;password = mypass
    ;nick    = OpenSimBotNameProbablyMakeThisShorter
    ;channel = #the_irc_channel_you_want_to_connect_to
    ;user    = "USER OpenSimBot 8 * :I'm an OpenSim to IRC bot"
    ;port = 6667
    ;; channel to listen for configuration commands
    ;commands_enabled = false
    ;command_channel = 2777
    ;report_clients = true
    ;; relay private chat connections
    ;; relay_private_channels = true: will relay IRC chat from/to private in-world channels
    ;; relay_private_channel_out -- channel to send messages out to the IRC bridge
    ;; relay_private_channel_in -- channel to receive message from the IRC bridge
    ;; relay_chat = false: IRC bridge will not relay normal chat
    ;; access_password -- simple security device
    ;;
    ;; so, to just relay chat from an IRC channel to in-world region and vice versa:
    ;;
    ;;     relay_private_channels = false
    ;;     relay_chat = true
    ;;
    ;; to relay chat only to/from private in-world channels:
    ;;
    ;;     relay_chat = false
    ;;     relay_private_channels = true
    ;;     relay_private_channel_in = 2226
    ;;     relay_private_channel_out = 2225
    ;;
    ;; in this example, all chat coming in from IRC will be send out via
    ;; in-world channel 2226, and all chat from in-world channel 2225 will
    ;; be relayed to the IRC channel.
    ;;
    ;relay_private_channels = false
    ;relay_private_channel_in = 2226
    ;relay_private_channel_out = 2225
    ;relay_chat = true
    ;access_password = foobar

    ;;fallback_region = name of "default" region
    ;;MSGformat fields : 0=botnick, 1=user, 2=region, 3=message
    ;; must start with "PRIVMSG {0} : " or irc server will get upset
    ;;for <bot>:<user in region> :<message>
    ;;msgformat = "PRIVMSG {0} :<{1} in {2}>: {3}"
    ;;for <bot>:<message> - <user of region> :
    ;msgformat = "PRIVMSG {0} : {3} - {1} of {2}"
    ;;for <bot>:<message> - from <user> :
    ;;msgformat = "PRIVMSG {0} : {3} - from {1}"

    ;; exclude_list allows you to stop the IRC connector from announcing the
    ;;arrival and departure of certain users. For example: admins, bots.

    ;exclude_list=User 1,User 2,User 3

    ;;Shows modal alertbox for entering agent on IRC enabled regions
    ;;
    ;; Enable Alert, default = false
    ;alert_show = false
    ;;
    ;; Show IRC serverinfo, default = true
    ;alert_show_serverinfo = true
    ;;
    ;alert_msg_pre = "This region is linked to Irc."
    ;alert_msg_post = "Everything you say in public chat can be listened."


[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 = 24
    ; Year length in days
    year_length = 365
    ; Day to Night Ratio
    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


[Wind]
    ; Enables the wind module.  Default is true
    enabled = true

    ; 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

    ; These settings are specific to the ConfigurableWind plugin
    ; To use ConfigurableWind as the default, simply change wind_plugin to ConfigurableWind and uncomment the following.
    ; avg_strength  = 5.0
    ; avg_direction = 0.0
    ; var_strength  = 0.0
    ; var_direction = 0.0
    ; rate_change   = 1.0

    ; This setting is specific to the SimpleRandomWind plugin
    ; Adjusts wind strength. 0.0 = no wind, 1.0 = normal wind.  Default is 1.0
    strength = 1.0


[Cloud]
    ; Enable this to generate classic particle clouds above the sim.
    ; default is disabled - turn it on here
    enabled = true

    ; Density of cloud cover 0.0 to 1.0 Defult 0.5
    density = 0.5

    ; update interval for the cloud cover data returned by llCloud().
    ; default is 1000
    cloud_update_rate = 1000


[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 = 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
    enabled = true

    ; 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

[VectorRender]
    ; the font to use for rendering text (default: Arial)
    ; font_name = "Arial"


[LL-Functions]
    ; Set the following to true to allow administrator owned scripts to execute console commands
    ; currently unused
    ; AllowosConsoleCommand=false

    ; 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 = 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.
    ; If false then email may be sent to any valid email address.
    RestrictEmail = false

    ; 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 = 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

    ; Add a third vector with stats when returning results from llGetBoundingBox.
    ; Lists objects (groups), prims/meshes/avatars (parts) and vertices rendered.
    AddStatsInGetBoundingBox = false

    ; Avatar bounding box, lower X value, constant part, when standing
    LowerAvatarBoundingBoxStandingXconst = -0.275

    ; Avatar bounding box, upper X value, constant part, when standing
    UpperAvatarBoundingBoxStandingXconst = 0.275

    ; Avatar bounding box, lower Y value, constant part, when standing
    LowerAvatarBoundingBoxStandingYconst = -0.35

    ; Avatar bounding box, upper Y value, constant part, when standing
    UpperAvatarBoundingBoxStandingYconst = 0.35

    ; Avatar bounding box, lower Z value, constant part, when standing
    LowerAvatarBoundingBoxStandingZconst = -0.1

    ; Avatar bounding box, lower Z value, coefficient to multiply with avatar height, when standing
    LowerAvatarBoundingBoxStandingZcoeff = -0.5

    ; Avatar bounding box, upper Z value, constant part, when standing
    UpperAvatarBoundingBoxStandingZconst = 0.1

    ; Avatar bounding box, upper Z value, coefficient to multiply with avatar height, when standing
    UpperAvatarBoundingBoxStandingZcoeff = 0.5

    ; Avatar bounding box, lower X value, constant part, when groundsitting
    LowerAvatarBoundingBoxGroundsittingXconst = -0.3875

    ; Avatar bounding box, upper X value, constant part, when groundsitting
    UpperAvatarBoundingBoxGroundsittingXconst = 0.3875

    ; Avatar bounding box, lower Y value, constant part, when groundsitting
    LowerAvatarBoundingBoxGroundsittingYconst = -0.5

    ; Avatar bounding box, upper Y value, constant part, when groundsitting
    UpperAvatarBoundingBoxGroundsittingYconst = 0.5

    ; Avatar bounding box, lower Z value, constant part, when groundsitting
    LowerAvatarBoundingBoxGroundsittingZconst = -0.05

    ; Avatar bounding box, lower Z value, coefficient to multiply with avatar height, when groundsitting
    LowerAvatarBoundingBoxGroundsittingZcoeff = -0.375

    ; Avatar bounding box, upper Z value, constant part, when groundsitting
    UpperAvatarBoundingBoxGroundsittingZconst = 0.5

    ; Avatar bounding box, upper Z value, coefficient to multiply with avatar height, when groundsitting
    UpperAvatarBoundingBoxGroundsittingZcoeff = 0.0

    ; Avatar bounding box, lower X value, constant part, when sitting
    LowerAvatarBoundingBoxSittingXconst = -0.5875

    ; Avatar bounding box, upper X value, constant part, when sitting
    UpperAvatarBoundingBoxSittingXconst = 0.1875

    ; Avatar bounding box, lower Y value, constant part, when sitting
    LowerAvatarBoundingBoxSittingYconst = -0.35

    ; Avatar bounding box, upper Y value, constant part, when sitting
    UpperAvatarBoundingBoxSittingYconst = 0.35

    ; Avatar bounding box, lower Z value, constant part, when sitting
    LowerAvatarBoundingBoxSittingZconst = -0.35

    ; Avatar bounding box, lower Z value, coefficient to multiply with avatar height, when sitting
    LowerAvatarBoundingBoxSittingZcoeff = -0.375

    ; Avatar bounding box, upper Z value, constant part, when sitting
    UpperAvatarBoundingBoxSittingZconst = -0.25

    ; Avatar bounding box, upper Z value, coefficient to multiply with avatar height, when sitting
    UpperAvatarBoundingBoxSittingZcoeff = 0.25

    ; Safety coefficient for max bounding box from prim size box X coordinate
    ; Worst case is twisted and sheared box, 1+sqrt(2)
    PrimBoundingBoxSafetyCoefficientX = 2.414214

    ; Safety coefficient for max bounding box from prim size box Y coordinate
    ; Worst case is twisted and sheared box, 1+sqrt(2)
    PrimBoundingBoxSafetyCoefficientY = 2.414214

    ; Safety coefficient for max bounding box from prim size box Z coordinate
    ; Worst case is twisted tube, 0.5+sqrt(1.25)
    PrimBoundingBoxSafetyCoefficientZ = 1.618034

    ; 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 = 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 = 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 = 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 = 2

    ; 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


[DataSnapshot]
    ; The following set of configs pertains to search.
    ; Set index_sims to true to enable search engines to index your searchable data
    ; If false, no data will be exposed, DataSnapshot module will be off, and you can ignore the rest of these search-related configs
    ; default is false
    index_sims = false

    ; The variable data_exposure controls what the regions expose:
    ;    minimum: exposes only things explicitly marked for search
    ;    all: exposes everything
    data_exposure = minimum

    ; If search is on, change this to your grid name; will be ignored for standalones
    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
    default_snapshot_period = 1200

    ; This will be created in bin, if it doesn't exist already. It will hold the data snapshots.
    snapshot_cache_directory = "${Paths|CachePath}/DataSnapshot"

    ; Uncomment if you want to index your data with this and/or other search providers. One entry per
    ; data service
    ;DATA_SRV_MISearch = "http://metaverseink.com/cgi-bin/register.py"


[Economy]
    ; the economy module in use
    ; default is the provided BetaGridLikeMoneyModule
    ; The default economy module only implements just enough to allow free actions (transfer of objects, etc).
    ; There is no intention to implement anything further in core OpenSimulator.
    ; This functionality has to be provided by third party modules.
    ; economymodule = BetaGridLikeMoneyModule

    ; Economy values get used in the BetaGridLikeMoneyModule.

    ;; Enables selling things for $0.  Default is true.
    SellEnabled = true

    ;; Money Unit fee to upload textures, animations etc.  Default is 0.
    PriceUpload = 0

    ;; Money Unit fee to create groups.  Default is 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.
    ;ObjectCount = 0
    ;PriceEnergyUnit = 0
    ;PriceObjectClaim = 0
    ;PricePublicObjectDecay = 0
    ;PricePublicObjectDelete = 0
    ;PriceParcelClaim = 0
    ;PriceParcelClaimFactor = 1

    ;PriceRentLight = 0
    ;TeleportMinPrice = 0
    ;TeleportPriceExponent = 2
    ;EnergyEfficiency = 1
    ;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


[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

    ; maximum stack a script can use in KB
    ;ScriptStackSize = 2048

    ; maximum heap memory a script can use in KB
    ;ScriptHeapSize = 1024

    ; number of threads to execute script. Too many threads can have negative impact on other region operations
    ;NumThreadScriptWorkers = 2

    ; Priority of those threads (Lowest, BelowNormal, Normal, AboveNormal or Highest). Higher priorit can have negative impact on other region operations
    ;Priority = Normal

    ; to reuse binary compare sources using a hash codes of them or full text
    UseSourceHashCode = true

    MinTimerInterval = 0.1

    ; scripts states and cache parent folder location
    ;ScriptBasePath="ScriptEngines"


[XEngine]
    ; Enable this engine in this OpenSim instance
    Enabled = true

    ; 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 = 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 per-script overhead but deleted scripts stay inactive using memory
    ; 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.
    ; 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 = 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

    ; Save the source of all compiled scripts
    WriteScriptSourceToDebugFile = false

    ; 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 = true

    ; Allow the use of os* functions (some are dangerous)
    AllowOSFunctions = true

    ; Allow the user of LightShare functions
    AllowLightShareFunctions = true

    ; Threat level to allow, one of None, VeryLow, Low, Moderate, High, VeryHigh, Severe
    OSFunctionThreatLevel = Moderate

    ; OS Functions enable/disable
    ; For each function, you can add one line, as shown
    ; The default for all functions allows them if below threat level

    ; true allows the use of the function unconditionally
    ; Allow_osSetRegionWaterHeight = true

    ; false disables the function completely
    ; Allow_osSetRegionWaterHeight = false

    ; Comma separated list of UUIDS allows the function for that list of UUIDS
    ; Allow_osSetRegionWaterHeight = 888760cb-a3cf-43ac-8ea4-8732fd3ee2bb

    ; Comma separated list of owner classes that allow the function for a particular class of owners. Choices are
    ; - PARCEL_GROUP_MEMBER: allow if objectgroup is the same group as the parcel
    ; - PARCEL_OWNER: allow if the objectowner is parcelowner
    ; - ESTATE_MANAGER: allow if the object owner is a estate manager
    ; - ESTATE_OWNER: allow if objectowner is estateowner
    ; Allow_osSetRegionWaterHeight = 888760cb-a3cf-43ac-8ea4-8732fd3ee2bb, PARCEL_OWNER, ESTATE_OWNER>, ...

    ; You can also use script creators as the uuid
    ; Creators_osSetRegionWaterHeight = <uuid>, ...

    ; If both Allow_ and Creators_ are given, effective permissions
    ; are the union of the two.

    ; Interval (s) between background save of script states
    SaveInterval = 120

    ; Interval (s) between maintenance runs (0 = disable)
    MaintenanceInterval = 10

    ; Time a script can spend in an event handler before it is interrupted
    EventLimit = 60

    ; If a script overruns it's event limit, kill the script?
    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).
    WaitForEventCompletionOnScriptStop = 1000

    ; Sets the multiplier for the scripting delays
    ScriptDelayFactor = 1.0

    ; The factor the 10 m distances llimits are multiplied by
    ScriptDistanceLimitFactor = 1.0

    ; Maximum length of notecard line read
    ; Increasing this to large values potentially opens
    ; 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.1

    ; Sensor settings
    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 = true

    ; Disable underground movement of prims (default true); set to
    ; false to allow script controlled underground positioning of
    ; prims
    DisableUndergroundMovement = false

    ;; Path to script assemblies
    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]
    ; Enable concierge module
    ; Default is false
    enabled = false

    ; name of the concierge
    whoami = "jeeves"

    ; password for updating the welcome message templates via XmlRpc
    password = SECRET

    ; regex specifying for which regions concierge service is desired; if
    ; empty, then for all
    ;regions = "^MeetingSpace-"
    regions = ""

    ; for each region that matches the regions regexp you can provide
    ; (optionally) a welcome template using format substitution:
    ; {0} is replaced with the name of the avatar entering the region
    ; {1} is replaced with the name of the region
    ; {2} is replaced with the name of the concierge (whoami variable above)

    ;welcomes = /path/to/welcome/template/directory

    ; Concierge can send attendee lists to an event broker whenever an
    ; avatar enters or leaves a concierged region. the URL is subject
    ; to format substitution:
    ; {0} is replaced with the region's name
    ; {1} is replaced with the region's UUID
    ;broker = "http://broker.place.com/{1}"


[Hypergrid]
    ; Keep it false for now. Making it true requires the use of a special client in order to access inventory
    safemode = false


[VivoxVoice]
    ; The VivoxVoice module will allow you to provide voice on your
    ; region(s). It uses the same voice technology as the LL grid and
    ; works with recent LL clients (we have tested 1.22.9.110075, so
    ; anything later ought to be fine as well).
    ;
    ; For this to work you need to obtain an admin account from Vivox
    ; that allows you to create voice accounts and region channels.

    enabled = false

    ; vivox voice server
    vivox_server = www.foobar.vivox.com

    ; vivox SIP URI
    vivox_sip_uri = foobar.vivox.com

    ; vivox admin user name
    vivox_admin_user = DeepThroat

    ; vivox admin password
    vivox_admin_password = VoiceG4te

    ; channel type: "channel" or "positional"
    ; - positional: spatial sound (default)
    ; - channel: normal "conference call", no spatial sound
    ;vivox_channel_type = positional

    ; channel characteristics (unless you know what you are doing, i'd
    ; leave them as they are --- now you WILL muck around with them,
    ; huh? sigh)

    ; channel distance model:
    ; 0 - no attenuation
    ; 1 - inverse distance attenuation
    ; 2 - linear attenuation (default)
    ; 3 - exponential attenuation
    ;vivox_channel_distance_model = 2

    ; channel mode:
    ; - "open" (default)
    ; - "lecture"
    ; - "presentation"
    ; - "auditorium"
    ;vivox_channel_mode = "open"

    ; channel roll off: rate of attenuation
    ; - a value between 1.0 and 4.0, default is 2.0
    ;vivox_channel_roll_off = 2.0

    ; channel max range: distance at which channel is silent
    ; - a value between 0 and 160, default is 80
    ;vivox_channel_max_range = 80

    ; channel clamping distance: distance before attenuation applies
    ; - a value between 0 and 160, default is 10
    ;vivox_channel_clamping_distance = 10


[Groups]
    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
    ; 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

    ; This makes the Group module very chatty on the console.
    DebugEnabled     = false

    ; This makes the Groups Messaging module very chatty on the console.
    DebugMessagingEnabled = false

    ; 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

    ; Specify which messaging module to use for groups messaging and if it's enabled
    ;MessagingModule = GroupsMessagingModule
    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
    ; (Flotsam groups only; in V2 this is always on)
    MessageOnlineUsersOnly = true

    ; Service connectors to the Groups Service.  Select one depending on whether you're using a Flotsam XmlRpc backend or a SimianGrid backend

    ; SimianGrid Service for Groups
    ;ServicesConnectorModule = SimianGroupsServicesConnector
    ;GroupsServerURI = http://mygridserver.com:82/Grid/

    ; Flotsam XmlRpc Service for Groups
    ;ServicesConnectorModule = XmlRpcGroupsServicesConnector
    ;GroupsServerURI        = http://yourxmlrpcserver.com/xmlrpc.php

    ; XmlRpc Security settings.  These must match those set on your backend groups service if the service is using these keys
    ;XmlRpcServiceReadKey    = 1234
    ;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.
    ; XmlRpcDisableKeepAlive = true

    ; Minimum user level required to create groups
    LevelGroupCreate = 0


[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

    ; UpdatePrioritizationScheme valid values are BestAvatarResponsiveness and SimpleAngularDistance
    ; 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

    ; 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

[Monitoring]
    ; Enable region monitoring
    ; If true, this will print out an error if more than a minute has passed since the last simulator frame
    ; Also is another source of region statistics provided via the regionstats URL
    Enabled = true
    ; next option may still use framework performance monitors designed for debug only, so avoid it
    ;ServerStatsEnabled = false


[WebStats]
    ; View region statistics via a web page
    ; 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=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


[MediaOnAPrim]
    ; Enable media on a prim facilities
    Enabled = true


[NPC]
    ;; Enable Non Player Character (NPC) facilities
    Enabled = true
    ;; several options to control NPCs creation

    ;; 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 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 = false

[Terrain]
    ; Values can be "pinhead-island" or "flat"
    InitialTerrain = "pinhead-island"
    ; 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 = false
    ParcelLayerViewDistance = 1024

    ; 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"

;;
;; If you are using a simian grid frontend you can enable
;; this module to upload tile images for the mapping fn
;;
[SimianGridMaptiles]
    Enabled = False
    MaptileURL = "http://www.mygrid.com/Grid/"
    RefreshTime = 3600


;;
;; JsonStore module provides structured store for scripts
;;
[JsonStore]
    Enabled = true

    ;; Enable direct access to the SOP dynamic attributes
    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].
;; These defaults allow OpenSim to work out of the box with
;; zero configuration
;;
[AssetService]
    DefaultAssetLoader = "OpenSim.Framework.AssetLoader.Filesystem.dll"
    AssetLoaderArgs = "assets/AssetSets.xml"

    ; Disable this to prevent the default asset set from being inserted into the
    ; asset store each time the region starts
    AssetLoaderEnabled = true


[GridService]
    ;; default standalone, overridable in StandaloneCommon.ini
    StorageProvider = "OpenSim.Data.Null.dll:NullRegionData"


[AutoBackupModule]
    ;; default is module is disabled at the top level
    AutoBackupModuleEnabled = false


[Sounds]
    ;; {Module} {} {Implementation of ISoundModule to use.} {OpenSim.Region.CoreModules.dll:SoundModule}
    Module = OpenSim.Region.CoreModules.dll:SoundModule

    ;; {MaxDistance} {} {Cut-off distance at which sounds will not be sent to users} {100.0}
    MaxDistance = 100.0


[ServiceThrottle]
    ;; Default time interval (in ms) for the throttle service thread to wake up
    Interval = 5000

[Dwell]
    ;; This enables the built in basic dwell module
    DwellModule = DefaultDwellModule

[ServerReleaseNotes]
    ;; Comment or set to "" to disable
    ServerReleaseNotesURL = "http://opensimulator.org/wiki/0.9.1.1_Release"

[Modules]
    Include-modules = "addon-modules/*/config/*.ini"