From 5e27d15a1f8045de70e5b061dcda51b0e5555701 Mon Sep 17 00:00:00 2001
From: onefang
Date: Sun, 19 May 2019 22:57:26 +1000
Subject: Major clean up of .ini files.
Sorry about the lack of details.
---
.nant/local.include | 4 +-
bin/OpenSim.ini | 57 +
bin/OpenSimDefaults.ini | 2571 +++++++++++++++++++++++
bin/Robust.Tests.ini | 468 +++++
bin/Robust.ini | 841 ++++++++
bin/config-include/FlotsamCache.ini | 97 +
bin/config-include/GridCommon.ini | 255 +++
bin/config-include/GridCommon.ini.example | 5 +-
bin/config-include/StandaloneCommon.ini | 401 ++++
bin/config-include/StandaloneCommon.ini.example | 5 +-
10 files changed, 4700 insertions(+), 4 deletions(-)
create mode 100644 bin/OpenSim.ini
create mode 100644 bin/OpenSimDefaults.ini
create mode 100644 bin/Robust.Tests.ini
create mode 100644 bin/Robust.ini
create mode 100644 bin/config-include/FlotsamCache.ini
create mode 100644 bin/config-include/GridCommon.ini
create mode 100644 bin/config-include/StandaloneCommon.ini
diff --git a/.nant/local.include b/.nant/local.include
index 07421c8..7b7aaf5 100644
--- a/.nant/local.include
+++ b/.nant/local.include
@@ -55,8 +55,8 @@
-
-
+
+
diff --git a/bin/OpenSim.ini b/bin/OpenSim.ini
new file mode 100644
index 0000000..0087258
--- /dev/null
+++ b/bin/OpenSim.ini
@@ -0,0 +1,57 @@
+;; This is the main configuration file for OpenSimulator.
+;; If it's named OpenSim.ini then it will be loaded by OpenSimulator.
+;; If it's named OpenSim.ini.example then you will need to copy it to
+;; OpenSim.ini first (if that file does not already exist)
+;;
+;; Once you have copied OpenSim.ini.example to OpenSim.ini you will at least
+;; need to set the constants in the [Const] section and pick an architecture
+;; in the [Architecture] section at the end of this file. The architecture
+;; will require a suitable .ini file in the config-include directory, either
+;; StandaloneCommon.ini or GridCommon.ini which you can copy and modify from the
+;; available .example files.
+;;
+;; The settings in this file are in the form " = ". For example,
+;; save_crashes = false in the [Startup] section below.
+;;
+;; All settings are initially commented out and the default value used, as
+;; found in OpenSimDefaults.ini. To change a setting, first uncomment it by
+;; deleting the initial semicolon (;) and then change the value. This will
+;; override the value in OpenSimDefaults.ini
+;;
+;; If you want to find out what configuration OpenSimulator has finished with
+;; once all the configuration files are loaded then type "config show" on the
+;; region console command line.
+;;
+;;
+;; NOTES FOR DEVELOPERS REGARDING THE FORMAT OF THIS FILE
+;;
+;; All leading white space is ignored, but preserved.
+;;
+;; Double semicolons denote a text comment
+;;
+;; A * in the choices list will allow an empty entry.
+;; An empty question will set the default if the dependencies are
+;; satisfied.
+;;
+;; ; denotes a commented out option.
+;; Any options added to OpenSim.ini.example should be initially commented
+;; out.
+
+
+[Architecture]
+ ;; Uncomment one of the following includes as required. For instance, to create a standalone OpenSim,
+ ;; uncomment Include-Architecture = "config-include/Standalone.ini"
+ ;;
+ ;; Then you will need to copy and edit the corresponding *Common.example file in config-include/
+ ;; that the referenced .ini file goes on to include.
+ ;;
+ ;; For instance, if you chose "config-include/Standalone.ini" then you will need to copy
+ ;; "config-include/StandaloneCommon.ini.example" to "config-include/StandaloneCommon.ini" before
+ ;; editing it to set the database and backend services that OpenSim will use.
+ ;;
+ ; Include-Architecture = "config-include/Standalone.ini"
+ ; Include-Architecture = "config-include/StandaloneHypergrid.ini"
+ ; Include-Architecture = "config-include/Grid.ini"
+ Include-Architecture = "config-include/GridHypergrid.ini"
+ ; Include-Architecture = "config-include/SimianGrid.ini"
+ ; Include-Architecture = "config-include/HyperSimianGrid.ini"
diff --git a/bin/OpenSimDefaults.ini b/bin/OpenSimDefaults.ini
new file mode 100644
index 0000000..228b59d
--- /dev/null
+++ b/bin/OpenSimDefaults.ini
@@ -0,0 +1,2571 @@
+; 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
+
+ ; 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 UnsafeQueueUserWorkItem,
+ ; QueueUserWorkItem, BeginInvoke, SmartThreadPool, and Thread.
+ ;
+ ; SmartThreadPool is reported to work well on Mono/Linux, but
+ ; UnsafeQueueUserWorkItem has been benchmarked with better
+ ; performance on .NET/Windows
+ ;
+ ; UnsafeQueueUserWorkItem refers to the fact that the code creating the event could elevate its security
+ ; privileges. However, as calling code is trusted anyway this is safe (if you set
+ ; TrustedBinaries = true in the [XEngine] section then you already have to trust that incoming code for other reasons).
+ async_call_method = SmartThreadPool
+
+ ; Max threads to allocate on the FireAndForget thread pool
+ ; when running with the SmartThreadPool option above
+ MaxPoolThreads = 300
+
+ ; Allow certain jobs to be run consecutively in a job engine rather than always concurrently.
+ ; This improves performance in regions with large numbers of connections (in the hundreds).
+ JobEngineEnabled = true
+
+ ; 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="${Paths|ConfigPath}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 tag),
+ ; except that everything is also enclosed in a 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
+
+ ; the maximum distance to tell a viewer to connect to a neighbour region, so it can be seen
+ ; (it is limited by MaxDrawDistance above)
+ ; less than 256 shows imediate neighbours; 512 also second imediate neighbours etc
+ ; more than 512m can cause viewers problems specially in case of dense regions.
+ ; curretly this distance is from current region borders.
+ MaxRegionsViewDistance = 1024
+
+ ; 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"
+
+ ; 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 = closest
+
+ ; TelehubAllowLandmark allows users with landmarks to override telehub
+ ; routing and land at the landmark coordinates when set to true
+ ; default is false
+ TelehubAllowLandmark = true
+
+
+[Map]
+ ; Map tile options.
+ ; If true, then maptiles are generated using the MapImageModule below.
+ ; If false then the texture referenced by MaptileStaticUUID is used instead, which can also be overridden
+ ; in individual region config file(s). If you do not want to upload map tiles at all, then you will need
+ ; both to set this to false and comment out the [Modules] MapImageServiceModule setting in config-include/
+ GenerateMaptiles = true
+
+ ;WorldMapModule = "WorldMap"
+
+ ; The module to use in order to generate map images.
+ ; MapImageModule is the default. Warp3DImageModule is an alternative experimental module that can
+ ; generate better images.
+ MapImageModule = "Warp3DImageModule"
+
+ ; World map blacklist timeout in seconds
+ ;BlacklistTimeout = 600
+
+ ; Refresh (in seconds) the map tile periodically
+ MaptileRefresh = 0
+
+ ; If not generating maptiles, use this static texture asset ID
+ ;MaptileStaticUUID = "00000000-0000-0000-0000-000000000000"
+
+ ; Draw objects on maptile. This step might take a long time if you've got a large number of
+ ; objects, so you can turn it off here if you'd like.
+ DrawPrimOnMapTile = true
+
+ ; Use terrain texture for maptiles if true, use shaded green if false
+ TextureOnMapTile = true
+
+ ; Texture prims
+ TexturePrims = true
+
+ ; Only texture prims that have a diagonal size greater than this number
+ TexturePrimSize = 1
+
+ ; Attempt to render meshes and sculpties on the map
+ RenderMeshes = true;
+
+ ; 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.
+ allow_grid_gods = true
+
+ ; Allow region owners to assume god powers in their regions
+ ;region_owner_is_god = true
+
+ ; 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 = true
+
+ ; 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
+
+
+[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 = true
+
+
+[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
+
+
+[UserProfiles]
+ ;; 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]
+ ;; The SMTP server enabled the email module to send email to external
+ ;; destinations.
+
+ ;# {enabled} {[Startup]emailmodule:DefaultEmailModule} {Enable SMTP service?} {true false} false
+ ;; Enable sending email via SMTP
+ enabled = false
+
+ ;# {internal_object_host} {[Startup]emailmodule:DefaultEmailModule enabled:true} {Host name to treat as internal (object to object) email?} {} lsl.opensim.local
+ ; internal_object_host = lsl.opensim.local
+
+ ;# {host_domain_header_from} {[Startup]emailmodule:DefaultEmailModule enabled:true} {From address to use in the sent email header?} {} 127.0.0.1
+ ; host_domain_header_from = "127.0.0.1"
+
+ ;# {email_pause_time} {[Startup]emailmodule:DefaultEmailModule enabled:true} {Period in seconds to delay after an email is sent.} {} 20
+ ; email_pause_time = 20
+
+ ;# {email_max_size} {[Startup]emailmodule:DefaultEmailModule enabled:true} {Maximum total size of email in bytes.} {} 4096
+ ; email_max_size = 4096
+
+ ;# {SMTP_SERVER_HOSTNAME} {[Startup]emailmodule:DefaultEmailModule enabled:true} {SMTP server name?} {} 127.0.0.1
+ ; SMTP_SERVER_HOSTNAME = "127.0.0.1"
+
+ ;# {SMTP_SERVER_PORT} {[Startup]emailmodule:DefaultEmailModule enabled:true} {SMTP server name?} {SMTP server port?} {} 25
+ ; SMTP_SERVER_PORT = 25
+
+ ;# {SMTP_SERVER_LOGIN} {[Startup]emailmodule:DefaultEmailModule enabled:true} {SMTP server user name?} {}
+ ; SMTP_SERVER_LOGIN = ""
+
+ ;# {SMTP_SERVER_PASSWORD} {[Startup]emailmodule:DefaultEmailModule enabled:true} {SMTP server password} {}
+ ; SMTP_SERVER_PASSWORD = ""
+
+
+[Network]
+ ;; Configure the remote console user here. This will not actually be used
+ ;; unless you use -console=rest at startup.
+ ;ConsoleUser = "Test"
+ ;ConsolePass = "secret"
+ ;console_port = 0
+
+ ;# {http_listener_port} {} {TCP Port for this simulator to listen on? (This must be unique to the simulator!)} {} 9000
+ ;; Simulator HTTP port. This is not the region port, but the port the
+ ;; entire simulator listens on. This port uses the TCP protocol, while
+ ;; the region ports use UDP.
+ ;http_listener_port = 9000
+
+ ; ssl config: Experimental! The auto https config only really works definately on windows XP now
+ ; you need a Cert Request/Signed pair installed in the MY store with the CN specified below
+ ; you can use https on other platforms, but you'll need to configure the httpapi yourself for now
+ http_listener_ssl = false ; Also create a SSL server
+ http_listener_cn = "localhost" ; Use the cert with the common name
+ http_listener_sslport = 9001 ; Use this port for SSL connections
+ http_listener_ssl_cert = "" ; Currently unused, but will be used for OSHttpServer
+
+ ; HTTPS for "Out of band" management applications such as the remote
+ ; admin module
+ ;
+ ; 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
+ ; cert_path = "path/to/cert.p12"
+ ; Password for cert
+ ; cert_pass = "password"
+
+ ; By default, OpenSimulator does not allow scripts to make HTTP calls to addresses on the simulator's LAN.
+ ; See the OutboundDisallowForUserScripts parameter in OpenSimDefaults.ini for more information on this filter.
+ ; If you need to allow scripts to make some LAN calls use the OutboundDisallowForUserScriptsExcept parameter below.
+ ; We recommend that you do not override OutboundDisallowForUserScripts directly unless you are very sure about what you're doing.
+ ;
+ ; 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
+
+ ; 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.
+ ; Please be aware that the limit can be set to insanely high values,
+ ; effectively removing any limitation. This will expose your sim to a
+ ; known attack. It is not recommended to set this limit higher than
+ ; the highest value that is actually needed by existing applications!
+ ; 16384 is the SL compatible value.
+ ; HttpBodyMaxLenMAX=16384
+
+ ; Hostname to use in llRequestURL/llRequestSecureURL
+ ; 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 : 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 = ""
+
+ ; 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"
+
+ ; 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)"
+
+ ;; 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.
+
+ ; 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
+
+
+[AccessControl]
+ ; Viewer-based access control. |-separated list of allowed viewers.
+ ;; One can use a substring of the viewer name to enable only certain
+ ;; versions
+ ;; Example: Agent uses the viewer "Imprudence 1.3.2.0"
+ ;; - "Imprudence" has access
+ ;; - "Imprudence 1.3" has access
+ ;; - "Imprudence 1.3.1" has no access
+ ; AllowedClients = ""
+
+ ; Viewer-based access control. |-separated list of denied viewers.
+ ;; One can use a Substring of the viewer name to disable only certain
+ ;; versions
+ ;; Example: Agent uses the viewer "Imprudence 1.3.2.0"
+ ;; - "Imprudence" has no access
+ ;; - "Imprudence 1.3" has no access
+ ;; - "Imprudence 1.3.1" has access
+ ; No restrictions by default.
+ ; DeniedClients = ""
+
+
+[XMLRPC]
+ ;# {XmlRpcRouterModule} {} {Module used to route incoming llRemoteData calls} {XmlRpcRouterModule XmlRpcGridRouterModule} XmlRpcRouterModule
+ ;; If enabled and set to XmlRpcRouterModule, this will post an event,
+ ;; "xmlrpc_uri(string)" to the script concurrently with the first
+ ;; remote_data event. This will contain the fully qualified URI an
+ ;; external site needs to use to send XMLRPC requests to that script
+ ;;
+ ;; If enabled and set to XmlRpcGridRouterModule, newly created channels
+ ;; will be registered with an external service via a configured uri
+ ;XmlRpcRouterModule = "XmlRpcRouterModule"
+
+ ;# {XmlRpcPort} {} {Port for incoming llRemoteData xmlrpc calls} {} 20800
+ ;XmlRpcPort = 20800
+
+ ;# {XmlRpcHubURI} {XmlRpcRouterModule} {URI for external service used to register xmlrpc channels created in the simulator. This depends on XmlRpcRouterModule being set to XmlRpcGridRouterModule} {} http://example.com
+ ;; If XmlRpcRouterModule is set to XmlRpcGridRouterModule, the simulator
+ ;; will use this address to register xmlrpc channels on the external
+ ;; service
+ ; XmlRpcHubURI = http://example.com
+
+
+[ClientStack.LindenUDP]
+ ; The client socket receive buffer size determines how many
+ ; incoming requests we can process; the default on .NET is 8192
+ ; which is about 2 4k-sized UDP datagrams. On mono this is
+ ; whatever the underlying operating system has as default; for
+ ; example, ubuntu 8.04 or SLES11 have about 111k, which is about
+ ; 27 4k-sized UDP datagrams (on linux platforms you can [as root]
+ ; do "sysctl net.core.rmem_default" to find out what your system
+ ; uses a default socket receive buffer size.
+ ;
+ ; client_socket_rcvbuf_size allows you to specify the receive
+ ; buffer size LLUDPServer should use. NOTE: this will be limited
+ ; by the system's settings for the maximum client receive buffer
+ ; size (on linux systems you can set that with "sysctl -w
+ ; net.core.rmem_max=X")
+ ;
+ ;client_socket_rcvbuf_size = 8388608
+
+ ; Maximum outbound bytes per second for a single scene. This can be used to
+ ; throttle total outbound UDP traffic for a simulator. The default value is
+ ; 0, meaning no throttling at the scene level. The example given here is
+ ; 20 megabits
+ ;
+ ;scene_throttle_max_bps = 2500000
+
+ ; Maximum bytes per second to send to any single client. This will override
+ ; the user's viewer preference settings. The default value is 0, meaning no
+ ; aggregate throttling on clients (only per-category throttling). The
+ ; example given here is 1.5 megabits
+ ;
+ ;client_throttle_max_bps = 187500
+
+ ; Minimum bytes per second to send to any single client as a result of
+ ; adaptive throttling. Viewer preferences set to a lower number will
+ ; override the settin. The example given here ensures that adaptive
+ ; throttling will never decrease per client bandwidth below 256 kbps.
+ ;
+ ;adaptive_throttle_min_bps = 32000
+
+ ; Adaptive throttling attempts to limit network overload when multiple
+ ; clients login by starting each connection more slowly. Disabled by
+ ; default
+ ;
+ enable_adaptive_throttles = true
+
+ ; Per-client bytes per second rates for the various throttle categories.
+ ; These are default values that will be overridden by clients. These
+ ; defaults are approximately equivalent to the throttles set by the Imprudence
+ ; viewer when maximum bandwidth is set to 350kbps
+
+ ;resend_default = 6625
+ ;land_default = 9125
+ ;wind_default = 1750
+ ;cloud_default = 1750
+ ;task_default = 18500
+ ;texture_default = 18500
+ ;asset_default = 10500
+
+ ; Configures how ObjectUpdates are aggregated. These numbers
+ ; do not literally mean how many updates will be put in each
+ ; packet that goes over the wire, as packets are
+ ; automatically split on a 1400 byte boundary. These control
+ ; the balance between responsiveness of interest list updates
+ ; and total throughput. Higher numbers will ensure more full-
+ ; sized packets and faster sending of data, but more delay in
+ ; updating interest lists
+ ;
+ ;PrimUpdatesPerCallback = 100
+
+ ; TextureSendLimit determines how many packets will be put on
+ ; the outgoing queue each cycle. Like the settings above, this
+ ; is a balance between responsiveness to priority updates and
+ ; total throughput. Higher numbers will give a better
+ ; throughput at the cost of reduced responsiveness to client
+ ; priority changes or transfer aborts
+ ;
+ ;TextureSendLimit = 20
+
+ ; CannibalizeTextureRate allows bandwidth to be moved from the
+ ; UDP texture throttle to the task throttle. Since most viewers
+ ; use HTTP textures, this provides a means of using what is largely
+ ; unused bandwidth in the total throttle. The value is the proportion
+ ; of the texture rate to move to the task queue. It must be between
+ ; 0.0 (none of the bandwidth is cannibalized) and 0.9 (90% of the
+ ; bandwidth is grabbed)
+ ;
+ ; CannibalizeTextureRate = 0.5
+
+ ; 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
+
+
+[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
+ ;; Possible values are:
+ ;; "" -- empty, capability disabled
+ ;; "localhost" -- capability enabled and served by the simulator
+ ;; "" -- capability enabled and served by some other server
+ ;;
+ ; These are enabled by default to localhost. Change if you see fit.
+ ;;
+ Cap_AttachmentResources = ""
+ Cap_ChatSessionRequest = ""
+ Cap_CopyInventoryFromNotecard = "localhost"
+ Cap_DispatchRegionInfo = ""
+ Cap_EstateChangeInfo = ""
+ 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_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 = ""
+ 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]
+ ; 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
+
+ ;# {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
+
+ ; Controls the number of milliseconds that are slept per 100 prims rezzed in attachments
+ ; Experimental setting to control CPU spiking when avatars with many attachments login/change outfit
+ ; or when multiple avatars with medium level attachments login/change outfit simultaneously.
+ ; If 0 then no throttling is performed.
+ ThrottlePer100PrimsRezzed = 0
+
+
+[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?
+ ; If you are seeing sculpt texture decode problems
+ ; (messages such as "Decoded image with unhandled number of components: 0 shortly followed by a physcs exception")
+ ; then you might want to try setting this to false.
+ mesh_sculpted_prim = true
+
+ ; number^2 non-physical level of detail of the sculpt texture. 32x32 - 1024 verticies
+ mesh_lod = 32
+
+ ; number^2 physical level of detail of the sculpt texture. 16x16 - 256 verticies
+ mesh_physical_lod = 16
+
+ ; ##
+ ; ## additional meshing options
+ ; ##
+
+ ; Physics needs to create internal meshs (or convert the object meshs or scultps)
+ ; for all prims except simple boxes and spheres.
+
+ ; collisions of small objects againts larger ones can have a increased CPU load cost
+ ; so this are represented by a simple BOX
+ ; if all their scale dimensions are lower or equal to this option. Default is 0.1m
+ ; (ubOde only)
+ ; MinSizeToMeshmerize = 0.1
+
+
+[BulletSim]
+ ; 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]
+ ;; This is the remote admin module, which uses XMLRPC requests to
+ ;; manage regions from a web interface.
+
+ 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 : :
+ ;;msgformat = "PRIVMSG {0} :<{1} in {2}>: {3}"
+ ;;for : - :
+ ;msgformat = "PRIVMSG {0} : {3} - {1} of {2}"
+ ;;for : - from :
+ ;;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
+
+
+[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 = 1
+
+ ; Detail level when rendering sculpts in llCastRay V3
+ ; 0 = Low, 1 = Medium, 2 = High, 3 = Highest, higer level gives better accuracy but slower call
+ SculptDetailLevelInLlCastRay = 1
+
+ ; Detail level when rendering meshes in llCastRay V3
+ ; 0 = Low, 1 = Medium, 2 = High, 3 = Highest, higer level gives better accuracy but slower call
+ MeshDetailLevelInLlCastRay = 3
+
+ ; Detail level when rendering avatar capsules in llCastRay V3
+ ; 0 = Low, 1 = Medium, 2 = High, 3 = Highest, higer level gives better accuracy but slower call
+ AvatarDetailLevelInLlCastRay = 1
+
+ ; Maximum number of returned hits from llCastRay V3
+ MaxHitsInLlCastRay = 16
+
+ ; Maximum number of returned hits per prim from llCastRay V3
+ MaxHitsPerPrimInLlCastRay = 16
+
+ ; Maximum number of returned hits per object from llCastRay V3
+ MaxHitsPerObjectInLlCastRay = 16
+
+ ; Report ray intersections with surfaces on exits from a prim as hits in llCastRay V3 if true
+ DetectExitHitsInLlCastRay = false
+
+ ; Detect attachments in llCastRay V3 if true
+ DoAttachmentsInLlCastRay = false
+
+ ; Throttle period length in ms before which all old llCastRay use is discarded in llCastRay V3
+ ; The sum of AvailableTimeInMsPerRegionInLlCastRay and all AvailableTimeInMsPerAvatarInLlCastRay should not exceed this
+ ThrottleTimeInMsInLlCastRay = 200
+
+ ; Available time in ms for llCastRay per throttle period and 65536 m2 land area in llCastRay V3
+ AvailableTimeInMsPerRegionInLlCastRay = 40
+
+ ; Available time in ms for llCastRay per throttle period and avatar when script in attachment or vehicle in llCastRay V3
+ AvailableTimeInMsPerAvatarInLlCastRay = 10
+
+ ; Required available time in ms left to perform a new llCastRay in llCastRay V3
+ RequiredAvailableTimeInMsInLlCastRay = 2
+
+ ; Maximum available time in ms possible in llCastRay V3, not to get too high values with varregions
+ MaximumAvailableTimeInMsInLlCastRay = 40
+
+ ; Use cached meshes in llCastRay V3 if true
+ ; Improves performance but uses more memory
+ UseMeshCacheInLlCastRay = true
+
+
+[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
+ ; - This module is for demonstration only -
+ ; 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.
+ ; To use other modules you need to override this setting on OpenSim.ini Economy (or startup) section
+ ; economymodule = BetaGridLikeMoneyModule
+
+ ; These economy values get used in the BetaGridLikeMoneyModule. - This module is for demonstration only -
+ ; 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.
+
+ ;; 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
+
+
+[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 initial per-script memory overhead,
+ ; but deleted scripts stay inactive using memory.
+ ; Significantly improving script loading times.
+ ; However, setting this to false will also prevent script DLLs from being unloaded from memory if the script is deleted.
+ ; This may cause an OutOfMemory problem over time when avatars with scripted attachments move in and out of the region.
+ ; This may only be a problem if regions stay alive for a long time with lots of scripts added or edited.
+ ; At this time some mono versions seem to have problems with the true option,
+ ; so default is now false until a fix is found, to simply life of less technical skilled users.
+ ; 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?
+ 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 = , ...
+
+ ; 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
+
+ ; 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}"
+
+
+[MRM]
+ ; Enables the Mini Region Modules Script Engine.
+ ; default is false
+ Enabled = false
+
+ ; Runs MRM in a Security Sandbox
+ ; WARNING: DISABLING IS A SECURITY RISK.
+ Sandboxed = true
+
+ ; The level sandbox to use, adjust at your OWN RISK.
+ ; Valid values are:
+ ; * FullTrust
+ ; * SkipVerification
+ ; * Execution
+ ; * Nothing
+ ; * LocalIntranet
+ ; * Internet
+ ; * Everything
+ SandboxLevel = "Internet"
+
+ ; Only allow Region Owners to run MRMs
+ ; May represent a security risk if you disable this.
+ OwnerOnly = true
+
+
+[Hypergrid]
+ ; Keep it false for now. Making it true requires the use of a special client in order to access inventory
+ safemode = false
+
+
+[FreeSwitchVoice]
+ ;; In order for this to work you need a functioning FreeSWITCH PBX set up.
+ ;; Configuration details at http://opensimulator.org/wiki/Freeswitch_Module
+ ; Enabled = false
+
+ ;; You need to load a local service for a standalone, and a remote service
+ ;; for a grid region. Use one of the lines below, as appropriate
+ ;; If you're using Freeswitch on a standalone then you will also need to configure the [FreeswitchService] section in config-include/StandaloneCommon.ini
+ ; LocalServiceModule = OpenSim.Services.FreeswitchService.dll:FreeswitchService
+ ; LocalServiceModule = OpenSim.Services.Connectors.dll:RemoteFreeswitchConnector
+
+ ;; If using a remote connector, specify the server URL
+ ; FreeswitchServiceURL = http://my.grid.server:8004/fsapi
+
+
+[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
+ ;# {Module} {Enabled:true} {Groups module to use? (Use GroupsModule to use Flotsam/Simian)} {Default "Groups Module V2"} Default
+ ;; The default 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
+ ; 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
+ ; Valid values are BestAvatarResponsiveness, Time, Distance,
+ ; SimpleAngularDistance, and FrontBack
+ UpdatePrioritizationScheme = BestAvatarResponsiveness
+ ReprioritizationEnabled = true
+ ReprioritizationInterval = 2000.0
+ RootReprioritizationDistance = 10.0
+ ChildReprioritizationDistance = 20.0
+
+ ; TEST OPTION KEEP AS FALSE
+ ; if true, don't send object updates if outside view range
+ ObjectsCullingByDistance = false
+
+ ; If n > 1, only every n UDP terse updates will be sent to observers of an avatar that are in the same region
+ ; Updates will always be sent to the avatar that the update addresses and if av velocity is effectively zero (to prevent drift due to missing updates).
+ ; n > 1 will reduce UDP traffic but will lead to laggier movement observed in other avatars.
+ RootTerseUpdatePeriod = 0
+
+ ; If n > 1, only every n UDP terse updates will be sent to observers of an avatar that are in another region
+ ; n > 1 will reduce UDP traffic but may lead to laggier movement observed in other avatars, though values up to 4 may not generate a noticeable effect.
+ ChildTerseUpdatePeriod = 0
+
+ ; Send an update to clients if the difference from the last sent avatar position is greater than this tolerance
+ RootPositionUpdateTolerance = 0.05
+
+ ; Send an update to clients if the euclidian difference from the last sent avatar rotation is greater than this tolerance
+ RootRotationUpdateTolerance = 0.1
+
+ ; Send an update to clients if the difference from the last sent avatar velocity is greater than this tolerance
+ RootVelocityUpdateTolerance = 0.001
+
+
+[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
+
+
+;; 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
+
+
+;;
+;; 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
+
+
+[Modules]
+ Include-modules = "addon-modules/*/config/*.ini"
+
+
+[Materials]
+ ;; This enables the use of Materials.
+ enable_materials = true
+ MaxMaterialsPerTransaction = 50
+
+
+[XBakes]
+ ;; 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"
diff --git a/bin/Robust.Tests.ini b/bin/Robust.Tests.ini
new file mode 100644
index 0000000..bf72633
--- /dev/null
+++ b/bin/Robust.Tests.ini
@@ -0,0 +1,468 @@
+; * FOR TESTS ONLY -- DO NOT USE THIS FILE
+[Const]
+
+ ; The URL of the Robust server
+ BaseURL = "http://127.0.0.1"
+
+ ; The public port of the Robust server
+ PublicPort = "8888"
+
+ ; The private port of the Robust server, same for testing
+ PrivatePort = "8888"
+
+
+; * The startup section lists all the connectors to start up in this server
+; * instance. This may be only one, or it may be the entire server suite.
+; * Multiple connectors should be separated by commas.
+; *
+; * These are the IN connectors the server uses, the in connectors
+; * read this config file and load the needed service and database connectors
+; *
+; * The full syntax of a connector string is:
+; * [[@]/][:]
+; *
+[Startup]
+ ; Place to create a PID file
+ ; If no path if specified then a PID file is not created.
+ ; PIDFile = "/tmp/Robust.exe.pid"
+
+ ; Plugin Registry Location
+ ; Set path to directory for plugin registry. Information
+ ; about the registered repositories and installed plugins
+ ; will be stored here
+ ; The Robust.exe process must have R/W access to the location
+ RegistryLocation = "."
+
+ ; Modular configurations
+ ; Set path to directory for modular ini files...
+ ; The Robust.exe process must have R/W access to the location
+ ConfigDirectory = "."
+
+ console = "rest"
+
+ ; Console commands can be saved to a file, so the command history persists after a restart. (default is true)
+ ConsoleHistoryFileEnabled = false
+
+ ; 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 = "RobustConsoleHistory.txt"
+
+ ; How many lines of command history should we keep? (default is 100)
+ ConsoleHistoryFileLines = 100
+
+[ServiceList]
+ GridServiceConnector = "${Const|PrivatePort}/OpenSim.Server.Handlers.dll:GridServiceConnector"
+ PresenceServiceConnector = "${Const|PrivatePort}/OpenSim.Server.Handlers.dll:PresenceServiceConnector"
+ InstantMessageServerConnector = "${Const|PublicPort}/OpenSim.Server.Handlers.dll:InstantMessageServerConnector"
+ UserAccountServiceConnector = "${Const|PrivatePort}/OpenSim.Server.Handlers.dll:UserAccountServiceConnector"
+ InventoryInConnector = "${Const|PrivatePort}/OpenSim.Server.Handlers.dll:XInventoryInConnector"
+
+ ;; Uncomment as more tests are added
+ ;AssetServiceConnector = "${Const|PrivatePort}/OpenSim.Server.Handlers.dll:AssetServiceConnector"
+ ;GridInfoServerInConnector = "${Const|PublicPort}/OpenSim.Server.Handlers.dll:GridInfoServerInConnector"
+ ;AuthenticationServiceConnector = "${Const|PrivatePort}/OpenSim.Server.Handlers.dll:AuthenticationServiceConnector"
+ ;OpenIdServerConnector = "${Const|PublicPort}/OpenSim.Server.Handlers.dll:OpenIdServerConnector"
+ ;AvatarServiceConnector = "${Const|PrivatePort}/OpenSim.Server.Handlers.dll:AvatarServiceConnector"
+ ;LLLoginServiceInConnector = "${Const|PublicPort}/OpenSim.Server.Handlers.dll:LLLoginServiceInConnector"
+ ;GridUserServiceConnector = "${Const|PrivatePort}/OpenSim.Server.Handlers.dll:GridUserServiceConnector"
+ ;FriendsServiceConnector = "${Const|PrivatePort}/OpenSim.Server.Handlers.dll:FriendsServiceConnector"
+ ;MapAddServiceConnector = "${Const|PrivatePort}/OpenSim.Server.Handlers.dll:MapAddServiceConnector"
+ ;MapGetServiceConnector = "${Const|PublicPort}/OpenSim.Server.Handlers.dll:MapGetServiceConnector"
+ ;OfflineIMServiceConnector = "${Const|PrivatePort}/OpenSim.Addons.OfflineIM.dll:OfflineIMServiceRobustConnector"
+ ;GroupsServiceConnector = "${Const|PrivatePort}/OpenSim.Addons.Groups.dll:GroupsServiceRobustConnector"
+ ;BakedTextureService = "${Const|PrivatePort}/OpenSim.Server.Handlers.dll:XBakesConnector"
+ ;UserProfilesServiceConnector = "${Const|PublicPort}/OpenSim.Server.Handlers.dll:UserProfilesConnector"
+ ;EstateDataService = "${Const|PrivatePort}/OpenSim.Server.Handlers.dll:EstateDataRobustConnector"
+
+; * This is common for all services, it's the network setup for the entire
+; * server instance, if none is specified above
+; *
+[Network]
+ port = ${Const|PrivatePort}
+
+ ;; The follow 3 variables are for HTTP Basic Authentication for the Robust services.
+ ;; Use this if your central services in port ${Const|PrivatePort} need to be accessible on the Internet
+ ;; but you want to protect them from unauthorized access.
+ ; AuthType = "BasicHttpAuthentication"
+ ; HttpAuthUsername = "some_username"
+ ; HttpAuthPassword = "some_password"
+ ;;
+ ;; AuthType above can be overriden in any of the service sections below by
+ ; AuthType = "None"
+ ;; This is useful in cases where you want to protect most of the services,
+ ;; but unprotect individual services. Username and Password can also be
+ ;; overriden if you want to use different credentials for the different services.
+
+ ;; By default, scripts are not allowed to call private services via llHttpRequest()
+ ;; Such calls are detected by the X-SecondLife-Shared HTTP header
+ ;; If you allow such calls you must be sure that they are restricted to very trusted scripters
+ ;; (remember scripts can also be in visiting avatar attachments).
+ ;; This can be overriden in individual private service sections if necessary
+ AllowllHTTPRequestIn = false
+
+ ; * The following are for the remote console
+ ; * They have no effect for the local or basic console types
+ ; * Leave commented to diable logins to the console
+ ;ConsoleUser = Test
+ ;ConsolePass = secret
+ ;ConsolePort = 0
+
+
+[DatabaseService]
+ ; PGSQL
+ ; Uncomment these lines if you want to use PGSQL storage
+ ; Change the connection string to your db details
+ ;StorageProvider = "OpenSim.Data.PGSQL.dll"
+ ;ConnectionString = "Server=localhost;Database=opensim;User Id=opensim; password=***;"
+
+ ; Null
+ ; Uncomment these lines if you want to use MySQL storage
+ ; Change the connection string to your db details
+ StorageProvider = "OpenSim.Data.Null.dll"
+ ConnectionString = ""
+
+
+; * As an example, the below configuration precisely mimicks the legacy
+; * asset server. It is read by the asset IN connector (defined above)
+; * and it then loads the OUT connector (a local database module). That,
+; * in turn, reads the asset loader and database connection information
+; *
+[AssetService]
+ LocalServiceModule = "OpenSim.Services.AssetService.dll:AssetService"
+ DefaultAssetLoader = ""
+
+ ; Allow maptile assets to remotely deleted by remote calls to the asset service.
+ ; There is no harm in having this as false - it just means that historical maptile assets are not deleted.
+ ; This only applies to maptiles served via the version 1 viewer mechanisms
+ ; Default is false
+ AllowRemoteDelete = false
+
+ ; Allow all assets to be remotely deleted.
+ ; Only set this to true if you are operating a grid where you control all calls to the asset service
+ ; (where a necessary condition is that you control all simulators) and you need this for admin purposes.
+ ; If set to true, AllowRemoteDelete = true is required as well.
+ ; Default is false.
+ AllowRemoteDeleteAllTypes = false
+
+
+; * This configuration loads the inventory server modules. It duplicates
+; * the function of the legacy inventory server
+; *
+[InventoryService]
+ LocalServiceModule = "OpenSim.Services.InventoryService.dll:XInventoryService"
+
+ StorageProvider = "OpenSim.Tests.Common.dll:TestXInventoryDataPlugin"
+ ConnectionString = ""
+
+ ; Will calls to purge folders (empty trash) and immediately delete/update items or folders (not move to trash first) succeed?
+ ; If this is set to false then some other arrangement must be made to perform these operations if necessary.
+ AllowDelete = true
+
+
+; * This is the new style grid service.
+; * "Realm" is the table that is used for user lookup.
+; * It defaults to "regions", which uses the legacy tables
+; *
+[GridService]
+ LocalServiceModule = "OpenSim.Services.GridService.dll:GridService"
+ ; Realm = "regions"
+ ; AllowDuplicateNames = "True"
+
+ ;; Next, we can specify properties of regions, including default and fallback regions
+ ;; The syntax is: Region_ = ""
+ ;; or: Region_ = ""
+ ;; where can be DefaultRegion, DefaultHGRegion, FallbackRegion, NoDirectLogin, Persistent, LockedOut, Reservation, NoMove, Authenticate
+ ;;
+ ;; DefaultRegion If a local login cannot be placed in the required region (e.g. home region does not exist, avatar is not allowed entry, etc.)
+ ;; then this region becomes the destination. Only the first online default region will be used. If no DefaultHGRegion
+ ;; is specified then this will also be used as the region for hypergrid connections that require it (commonly because they have not specified
+ ;; an explicit region.
+ ;;
+ ;; DefaultHGRegion If an avatar connecting via the hypergrid does not specify a region, then they are placed here. Only the first online
+ ;; region will be used.
+ ;;
+ ;; FallbackRegion If the DefaultRegion is not available for a local login, then any FallbackRegions are tried instead. These are tried in the
+ ;; order specified. This only applies to local logins at this time, not Hypergrid connections.
+ ;;
+ ;; NoDirectLogin A hypergrid user cannot directly connect to this region. This does not apply to local logins.
+ ;;
+ ;; Persistent When the simulator is shutdown, the region is signalled as offline but left registered on the grid.
+ ;;
+ ;; Example specification:
+ ; Region_Welcome_Area = "DefaultRegion, FallbackRegion"
+ ; (replace spaces with underscore)
+
+ ;; Allow supporting viewers to export content
+ ;; Set to false to prevent export
+ ExportSupported = true
+
+
+
+
+; * This is the new style authentication service. Currently, only MySQL
+; * is implemented.
+; *
+[AuthenticationService]
+ ; for the server connector
+ LocalServiceModule = "OpenSim.Services.AuthenticationService.dll:PasswordAuthenticationService"
+
+ ;; Allow the service to process HTTP getauthinfo calls.
+ ;; Default is false.
+ ; AllowGetAuthInfo = false
+
+ ;; Allow the service to process HTTP setauthinfo calls.
+ ;; Default is false.
+ ; AllowSetAuthInfo = false
+
+ ;; Allow the service to process HTTP setpassword calls.
+ ;; Default is false.
+ ; AllowSetPassword = false
+
+
+; * This is the new style authentication service. Currently, only MySQL
+; * is implemented. "Realm" is the table that is used for user lookup.
+; * It defaults to "useraccounts", which uses the new style.
+; * Realm = "users" will use the legacy tables as an authentication source
+; *
+[UserAccountService]
+ StorageProvider = "OpenSim.Data.Null.dll"
+ ConnectionString = ""
+
+ ; for the server connector
+ LocalServiceModule = "OpenSim.Services.UserAccountService.dll:UserAccountService"
+ ; Realm = "useraccounts"
+
+ ; These are for creating new accounts by the service
+ ;AuthenticationService = "OpenSim.Services.AuthenticationService.dll:PasswordAuthenticationService"
+ PresenceService = "OpenSim.Services.PresenceService.dll:PresenceService"
+ GridService = "OpenSim.Services.GridService.dll:GridService"
+ InventoryService = "OpenSim.Services.InventoryService.dll:XInventoryService"
+ ;AvatarService = "OpenSim.Services.AvatarService.dll:AvatarService"
+ ;GridUserService = "OpenSim.Services.UserAccountService.dll:GridUserService"
+
+ ;; This switch creates the minimum set of body parts and avatar entries for a viewer 2
+ ;; to show a default "Ruth" avatar rather than a cloud for a newly created user.
+ ;; Default is false
+ CreateDefaultAvatarEntries = true
+
+ ;; Allow the service to process HTTP createuser calls.
+ ;; Default is false.
+ AllowCreateUser = true
+
+ ;; Allow the service to process HTTP setaccount calls.
+ ;; Default is false.
+ AllowSetAccount = true
+
+
+[GridUserService]
+ ; for the server connector
+ LocalServiceModule = "OpenSim.Services.UserAccountService.dll:GridUserService"
+
+
+[PresenceService]
+ ; for the server connector
+ LocalServiceModule = "OpenSim.Services.PresenceService.dll:PresenceService"
+ ; Set this to true to allow the use of advanced web services and multiple
+ ; bots using one account
+ AllowDuplicatePresences = false;
+
+
+[AvatarService]
+ ; for the server connector
+ LocalServiceModule = "OpenSim.Services.AvatarService.dll:AvatarService"
+
+
+[FriendsService]
+ ; for the server connector
+ LocalServiceModule = "OpenSim.Services.FriendsService.dll:FriendsService"
+
+[EstateService]
+ LocalServiceModule = "OpenSim.Services.EstateService.dll:EstateDataService"
+
+[LibraryService]
+ LibraryName = "OpenSim Library"
+ DefaultLibrary = "./inventory/Libraries.xml"
+
+
+[LoginService]
+ ; for the server connector
+ LocalServiceModule = "OpenSim.Services.LLLoginService.dll:LLLoginService"
+ ; for the service
+ UserAccountService = "OpenSim.Services.UserAccountService.dll:UserAccountService"
+ GridUserService = "OpenSim.Services.UserAccountService.dll:GridUserService"
+ AuthenticationService = "OpenSim.Services.AuthenticationService.dll:PasswordAuthenticationService"
+ InventoryService = "OpenSim.Services.InventoryService.dll:XInventoryService"
+ AvatarService = "OpenSim.Services.AvatarService.dll:AvatarService"
+ PresenceService = "OpenSim.Services.PresenceService.dll:PresenceService"
+ GridService = "OpenSim.Services.GridService.dll:GridService"
+ SimulationService ="OpenSim.Services.Connectors.dll:SimulationServiceConnector"
+ LibraryService = "OpenSim.Services.InventoryService.dll:LibraryService"
+ FriendsService = "OpenSim.Services.FriendsService.dll:FriendsService"
+
+ ; The minimum user level required for a user to be able to login. 0 by default
+ ; If you disable a particular user's account then you can set their login level below this number.
+ ; You can also change this level from the console though these changes will not be persisted.
+ ; MinLoginLevel = 0
+
+ ; Ask co-operative viewers to use a different currency name
+ ;Currency = ""
+
+ ;; Set minimum fee to publish classified
+ ; ClassifiedFee = 0
+
+ WelcomeMessage = "Welcome, Avatar!"
+ AllowRemoteSetLoginLevel = "false"
+
+ ; For V2 map
+ MapTileURL = "${Const|BaseURL}:${Const|PublicPort}/";
+
+ ; Url to search service
+ ; SearchURL = "${Const|BaseURL}:${Const|PublicPort}/";
+
+ ; For V3 destination guide
+ ; DestinationGuide = "${Const|BaseURL}/guide"
+
+ ; For V3 avatar picker (( work in progress ))
+ ; AvatarPicker = "${Const|BaseURL}/avatars"
+
+ ; If you run this login server behind a proxy, set this to true
+ ; HasProxy = false
+
+ ;; Regular expressions for controlling which client versions are accepted/denied.
+ ;; An empty string means nothing is checked.
+ ;;
+ ;; Example 1: allow only these 3 types of clients (any version of them)
+ ;; AllowedClients = "Imprudence|Hippo|Second Life"
+ ;;
+ ;; Example 2: allow all clients except these
+ ;; DeniedClients = "Twisted|Crawler|Cryolife|FuckLife|StreetLife|GreenLife|AntiLife|KORE-Phaze|Synlyfe|Purple Second Life|SecondLi |Emerald"
+ ;;
+ ;; Note that these are regular expressions, so every character counts.
+ ;; Also note that this is very weak security and should not be trusted as a reliable means
+ ;; for keeping bad clients out; modified clients can fake their identifiers.
+ ;;
+ ;;
+ ;AllowedClients = ""
+ ;DeniedClients = ""
+
+ ;# {DSTZone} {} {Override Daylight Saving Time rules} {* none local} "America/Los_Angeles;Pacific Standard Time"
+ ;; Viewers do not listen to timezone sent by the server. They use Pacific Standard Time instead,
+ ;; but rely on the server to calculate Daylight Saving Time. Sending another DST than US Pacific
+ ;; would result in time inconsistencies between grids (during summer and around DST transition period)
+ ;; default let OpenSim calculate US Pacific DST
+ ;; "none" disable DST (equivallent to "local" with system set to GMT)
+ ;; "local" force legacy behaviour (using local system time to calculate DST)
+ ; DSTZone = "America/Los_Angeles;Pacific Standard Time"
+
+ ;# {DSTZone} {} {Override Daylight Saving Time rules} {* none local} "America/Los_Angeles;Pacific Standard Time"
+ ;; Viewers do not receive timezone information from the server - almost all (?) default to Pacific Standard Time
+ ;; However, they do rely on the server to tell them whether it's Daylight Saving Time or not.
+ ;; Hence, calculating DST based on a different timezone can result in a misleading viewer display and inconsistencies between grids.
+ ;; By default, this setting uses various timezone names to calculate DST with regards to the viewer's standard PST.
+ ;; Options are
+ ;; "none" no DST
+ ;; "local" use the server's only timezone to calculate DST. This is previous OpenSimulator behaviour.
+ ;; "America/Los_Angeles;Pacific Standard Time" use these timezone names to look up Daylight savings.
+ ;; 'America/Los_Angeles' is used on Linux/Mac systems whilst 'Pacific Standard Time' is used on Windows
+ DSTZone = "America/Los_Angeles;Pacific Standard Time"
+
+ ;Basic Login Service Dos Protection Tweaks
+ ;;
+ ;; Some Grids/Users use a transparent proxy that makes use of the X-Forwarded-For HTTP Header, If you do, set this to true
+ ;; If you set this to true and you don't have a transparent proxy, it may allow attackers to put random things in the X-Forwarded-For header to
+ ;; get around this basic DOS protection.
+ ;DOSAllowXForwardedForHeader = false
+ ;;
+ ;; The protector adds up requests during this rolling period of time, default 10 seconds
+ ;DOSRequestTimeFrameMS = 10000
+ ;;
+ ;; The amount of requests in the above timeframe from the same endpoint that triggers protection
+ ;DOSMaxRequestsInTimeFrame = 5
+ ;;
+ ;; The amount of time that a specific endpoint is blocked. Default 2 minutes.
+ ;DOSForgiveClientAfterMS = 120000
+ ;;
+ ;; To turn off basic dos protection, set the DOSMaxRequestsInTimeFrame to 0.
+
+
+[MapImageService]
+ LocalServiceModule = "OpenSim.Services.MapImageService.dll:MapImageService"
+
+ ; Set this if you want to change the default
+ ; TilesStoragePath = "maptiles"
+ ;
+ ; If for some reason you have the AddMapTile service outside the firewall (e.g. ${Const|PublicPort}),
+ ; you may want to set this. Otherwise, don't set it, because it's already protected.
+ ; GridService = "OpenSim.Services.GridService.dll:GridService"
+ ;
+ ; Additionally, if you run this server behind a proxy, set this to true
+ ; HasProxy = false
+
+
+[Messaging]
+ ; OfflineIM
+ OfflineIMService = ""
+
+
+[GridInfoService]
+ ; These settings are used to return information on a get_grid_info call.
+ ; Client launcher scripts and third-party clients make use of this to
+ ; autoconfigure the client and to provide a nice user experience. If you
+ ; want to facilitate that, you should configure the settings here according
+ ; to your grid or standalone setup.
+ ;
+ ; See http://opensimulator.org/wiki/GridInfo
+
+ ; login uri: for grid this is the login server URI
+ login = ${Const|BaseURL}:${Const|PublicPort}/
+
+ ; long grid name: the long name of your grid
+ gridname = "the lost continent of hippo"
+
+ ; short grid name: the short name of your grid
+ gridnick = "hippogrid"
+
+ ; login page: optional: if it exists it will be used to tell the client to use
+ ; this as splash page
+ ;welcome = ${Const|BaseURL}/welcome
+
+ ; helper uri: optional: if it exists if will be used to tell the client to use
+ ; this for all economy related things
+ ;economy = ${Const|BaseURL}:${Const|PublicPort}/
+
+ ; web page of grid: optional: page providing further information about your grid
+ ;about = ${Const|BaseURL}/about/
+
+ ; account creation: optional: page providing further information about obtaining
+ ; a user account on your grid
+ ;register = ${Const|BaseURL}/register
+
+ ; help: optional: page providing further assistance for users of your grid
+ ;help = ${Const|BaseURL}/help
+
+ ; password help: optional: page providing password assistance for users of your grid
+ ;password = ${Const|BaseURL}/password
+
+
+[UserProfilesService]
+ LocalServiceModule = "OpenSim.Services.UserProfilesService.dll:UserProfilesService"
+ Enabled = false
+ ;; Configure this for separate profiles database
+ ;; ConnectionString = "Data Source=localhost;Database=opensim;User ID=opensim;Password=*****;Old Guids=true;"
+ ;; Realm = UserProfiles
+ UserAccountService = OpenSim.Services.UserAccountService.dll:UserAccountService
+ AuthenticationServiceModule = "OpenSim.Services.AuthenticationService.dll:PasswordAuthenticationService"
+
+
+[BakedTextureService]
+ LocalServiceModule = "OpenSim.Server.Handlers.dll:XBakes"
+ ;; This directory must be writable by the user ROBUST runs as. It will be created automatically.
+ BaseDirectory = "./bakes"
+
+[HGInstantMessageService]
+ LocalServiceModule = "OpenSim.Services.HypergridService.dll:HGInstantMessageService"
+ GridService = "OpenSim.Services.GridService.dll:GridService"
+ PresenceService = "OpenSim.Services.PresenceService.dll:PresenceService"
+ UserAgentService = ""
+ ; This should always be true in the Robust config
+ InGatekeeper = True
diff --git a/bin/Robust.ini b/bin/Robust.ini
new file mode 100644
index 0000000..6e49fb6
--- /dev/null
+++ b/bin/Robust.ini
@@ -0,0 +1,841 @@
+; * Run
+; * $ Robust.exe -inifile Robust.HG.ini
+; *
+
+; * Configurations for enabling HG1.5
+; *
+; * HG1.5 handlers are: OpenSim.Server.Handlers.dll:GatekeeperService
+; * OpenSim.Server.Handlers.dll:UserAgentService
+; * Additional OpenSim.Server.Handlers.dll:AssetServiceConnector and
+; * OpenSim.Server.Handlers.dll:XInventoryInConnector
+; * are started in port 8002, outside the firewall
+; *
+; **
+; *
+; * The Const section allows us to define some basic information that we
+; * will use throughout our configuration. We will provide examples for
+; * setting the base url of the Robust server and the public and private ports
+; * it uses. Changing the values of the constants will set the operating
+; * parameters thoughout the configuration. Other constants that may prove
+; * to be useful may be added to the followin section. They may be
+; * referenced anywhere in the configuration by using ${Const|Name}. One
+; * such use is providing a base path for setting locations that Robust
+; * uses to write data.
+; *
+
+[Paths]
+ AssetsPath = "../../AssetFiles"
+ BackupPath = "../../backups"
+ CachePath = "../../caches"
+ ConfigPath = "../../config"
+ DbPath = "../../db"
+ LogPath = "../../logs"
+
+[Const]
+ MOTD = "Welcome to this virtual world."
+
+ GridName = "My virtual world"
+ ShortGridName = "mvw"
+ ; For a grid these will usually be the externally accessible IP/DNS
+ ; name and use default public port 8002 and default private port 8003
+ ; For a standalone this will usually be the externally accessible IP/DNS
+ ; name and use default public port 9000. The private port is not used
+ ; in the configuration for a standalone.
+
+ ;# {BaseURL} {} {BaseURL} {"http://example.com" "http://127.0.0.1"} "http://127.0.0.1"
+ HostName = "localhost"
+ BaseURL = http://127.0.0.1
+ GridURL = http://127.0.0.1
+
+ ;# {PublicPort} {} {PublicPort} {8002 9000} "8002"
+ PublicPort = "8002"
+
+ ; The private port of the Robust server
+ PrivatePort = "8003"
+
+
+ DataProvider = "OpenSim.Data.MySQL.dll"
+ ConnectionString = "Data Source=MYSQL_HOST;Database=MYSQL_DB;User ID=MYSQL_USER;Password=MYSQL_PASSWORD;Old Guids=true;"
+
+; * The startup section lists all the connectors to start up in this server
+; * instance. This may be only one, or it may be the entire server suite.
+; * Multiple connectors should be separated by commas.
+; *
+; * These are the IN connectors the server uses, the in connectors
+; * read this config file and load the needed service and database connectors
+; *
+; * The full syntax of a connector string is:
+; * [[@]/][:]
+; *
+[Startup]
+ ; Place to create a PID file
+ ; If no path if specified then a PID file is not created.
+ PIDFile = ""${Paths|CachePath}"/ROBUST.pid"
+
+ ; Plugin Registry Location
+ ; Set path to directory for plugin registry. Information
+ ; about the registered repositories and installed plugins
+ ; will be stored here
+ ; The Robust.exe process must have R/W access to the location
+ RegistryLocation = "${Paths|CachePath}"
+
+ ; Modular configurations
+ ; Set path to directory for modular ini files...
+ ; The Robust.exe process must have R/W access to the location, and it must NOT be shared by the OpenSim.exe process, coz that confuses things.
+ ConfigDirectory = "${Paths|ConfigPath}/ROBUST"
+
+ ; Console commands can be saved to a file, so the command history persists after a restart. (default is true)
+ ConsoleHistoryFileEnabled = true
+
+ ; 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}/RobustConsoleHistory.txt"
+
+ ; How many lines of command history should we keep? (default is 100)
+ ConsoleHistoryFileLines = 100
+
+
+[ServiceList]
+ AssetServiceConnector = "${Const|PrivatePort}/OpenSim.Server.Handlers.dll:AssetServiceConnector"
+ InventoryInConnector = "${Const|PrivatePort}/OpenSim.Server.Handlers.dll:XInventoryInConnector"
+ ;; Uncomment if you have set up Freeswitch (see [FreeswitchService] below)
+ ;VoiceConnector = "8004/OpenSim.Server.Handlers.dll:FreeswitchServerConnector"
+ GridServiceConnector = "${Const|PrivatePort}/OpenSim.Server.Handlers.dll:GridServiceConnector"
+ GridInfoServerInConnector = "${Const|PublicPort}/OpenSim.Server.Handlers.dll:GridInfoServerInConnector"
+ AuthenticationServiceConnector = "${Const|PrivatePort}/OpenSim.Server.Handlers.dll:AuthenticationServiceConnector"
+; OpenIdServerConnector = "${Const|PublicPort}/OpenSim.Server.Handlers.dll:OpenIdServerConnector"
+ AvatarServiceConnector = "${Const|PrivatePort}/OpenSim.Server.Handlers.dll:AvatarServiceConnector"
+ LLLoginServiceInConnector = "${Const|PublicPort}/OpenSim.Server.Handlers.dll:LLLoginServiceInConnector"
+ PresenceServiceConnector = "${Const|PrivatePort}/OpenSim.Server.Handlers.dll:PresenceServiceConnector"
+ UserAccountServiceConnector = "${Const|PrivatePort}/OpenSim.Server.Handlers.dll:UserAccountServiceConnector"
+ GridUserServiceConnector = "${Const|PrivatePort}/OpenSim.Server.Handlers.dll:GridUserServiceConnector"
+ AgentPreferencesServiceConnector = "${Const|PrivatePort}/OpenSim.Server.Handlers.dll:AgentPreferencesServiceConnector"
+ FriendsServiceConnector = "${Const|PrivatePort}/OpenSim.Server.Handlers.dll:FriendsServiceConnector"
+ MapAddServiceConnector = "${Const|PrivatePort}/OpenSim.Server.Handlers.dll:MapAddServiceConnector"
+ MapGetServiceConnector = "${Const|PublicPort}/OpenSim.Server.Handlers.dll:MapGetServiceConnector"
+ ;; Uncomment this if you want offline IM to work
+ OfflineIMServiceConnector = "${Const|PrivatePort}/OpenSim.Addons.OfflineIM.dll:OfflineIMServiceRobustConnector"
+ ;; Uncomment this if you want Groups V2 to work
+ GroupsServiceConnector = "${Const|PrivatePort}/OpenSim.Addons.Groups.dll:GroupsServiceRobustConnector"
+ ;; Uncomment to provide bakes caching
+ BakedTextureService = "${Const|PrivatePort}/OpenSim.Server.Handlers.dll:XBakesConnector"
+
+ ;; Uncomment for UserProfiles see [UserProfilesService] to configure...
+ UserProfilesServiceConnector = "${Const|PublicPort}/OpenSim.Server.Handlers.dll:UserProfilesConnector"
+
+ ;; Uncomment if you want to have centralized estate data
+ ; EstateDataService = "${Const|PrivatePort}/OpenSim.Server.Handlers.dll:EstateDataRobustConnector"
+
+ MuteListConnector = "${Const|PrivatePort}/OpenSim.Server.Handlers.dll:MuteListServiceConnector"
+
+ ;; Additions for Hypergrid
+
+ GatekeeperServiceInConnector = "${Const|PublicPort}/OpenSim.Server.Handlers.dll:GatekeeperServiceInConnector"
+ UserAgentServerConnector = "${Const|PublicPort}/OpenSim.Server.Handlers.dll:UserAgentServerConnector"
+ HeloServiceInConnector = "${Const|PublicPort}/OpenSim.Server.Handlers.dll:HeloServiceInConnector"
+ HGFriendsServerConnector = "${Const|PublicPort}/OpenSim.Server.Handlers.dll:HGFriendsServerConnector"
+ InstantMessageServerConnector = "${Const|PublicPort}/OpenSim.Server.Handlers.dll:InstantMessageServerConnector"
+ HGInventoryServiceConnector = "HGInventoryService@${Const|PublicPort}/OpenSim.Server.Handlers.dll:XInventoryInConnector"
+ HGAssetServiceConnector = "HGAssetService@${Const|PublicPort}/OpenSim.Server.Handlers.dll:AssetServiceConnector"
+ ;; Uncomment this if you want Groups V2, HG to work
+ HGGroupsServiceConnector = "${Const|PublicPort}/OpenSim.Addons.Groups.dll:HGGroupsServiceRobustConnector"
+
+; * This is common for all services, it's the network setup for the entire
+; * server instance, if none is specified above
+; *
+[Network]
+ port = ${Const|PrivatePort}
+
+ ; HTTPS for "Out of band" management applications such as the remote admin
+ ; module. May specify https_main = True to make the main http server
+ ; use https or "False" to make the main server HTTP
+ ; https_main = False
+ ;
+ ; 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
+ ; cert_path = "path/to/cert.p12"
+ ;
+ ; Password for cert
+ ; cert_pass = "password"
+
+ ;; The follow 3 variables are for HTTP Basic Authentication for the Robust services.
+ ;; Use this if your central services in port ${Const|PrivatePort} need to be accessible on the Internet
+ ;; but you want to protect them from unauthorized access.
+ ; AuthType = "BasicHttpAuthentication"
+ ; HttpAuthUsername = "some_username"
+ ; HttpAuthPassword = "some_password"
+ ;;
+ ;; AuthType above can be overriden in any of the service sections below by
+ ; AuthType = "None"
+ ;; This is useful in cases where you want to protect most of the services,
+ ;; but unprotect individual services. Username and Password can also be
+ ;; overriden if you want to use different credentials for the different services.
+ ;; Hypergrid services are not affected by this; they are publicly available
+ ;; by design.
+
+ ;; By default, scripts are not allowed to call private services via llHttpRequest()
+ ;; Such calls are detected by the X-SecondLife-Shared HTTP header
+ ;; If you allow such calls you must be sure that they are restricted to very trusted scripters
+ ;; (remember scripts can also be in visiting avatar attachments).
+ ;; This can be overriden in individual private service sections if necessary
+ AllowllHTTPRequestIn = false
+
+ ; * The following are for the remote console
+ ; * They have no effect for the local or basic console types
+ ; * Leave commented to diable logins to the console
+ ;ConsoleUser = Test
+ ;ConsolePass = secret
+ ;ConsolePort = 0
+
+
+[Hypergrid]
+ ;# {HomeURI} {Hypergrid} {The Home URL of this world} {}
+ ;; This is the address of the external robust server that
+ ;; runs the UserAgentsService, possibly this server.
+ ;; For example http://myworld.com:8002
+ ;; This is a default that can be overwritten in some sections.
+ HomeURI = "${Const|BaseURL}:${Const|PublicPort}"
+
+ ;# {GatekeeperURI} {Hypergrid} {The URL of the gatekeeper of this world} {}
+ ;; This is the address of the external robust server
+ ;; that runs the Gatekeeper service, possibly this server.
+ ;; For example http://myworld.com:8002
+ ;; This is a default that can be overwritten in some sections.
+ GatekeeperURI = "${Const|BaseURL}:${Const|PublicPort}"
+
+[AccessControl]
+ ;# {AllowedClients} {} {Bar (|) separated list of allowed clients} {}
+ ;; Bar (|) separated list of viewers which may gain access to the regions.
+ ;; One can use a substring of the viewer name to enable only certain
+ ;; versions
+ ;; Example: Agent uses the viewer "Imprudence 1.3.2.0"
+ ;; - "Imprudence" has access
+ ;; - "Imprudence 1.3" has access
+ ;; - "Imprudence 1.3.1" has no access
+ ; AllowedClients = ""
+
+ ;# {DeniedClients} {} {Bar (|) separated list of denied clients} {}
+ ;; Bar (|) separated list of viewers which may not gain access to the regions.
+ ;; One can use a Substring of the viewer name to disable only certain
+ ;; versions
+ ;; Example: Agent uses the viewer "Imprudence 1.3.2.0"
+ ;; - "Imprudence" has no access
+ ;; - "Imprudence 1.3" has no access
+ ;; - "Imprudence 1.3.1" has access
+ ; DeniedClients = ""
+
+[DatabaseService]
+ ; PGSQL
+ ; Uncomment these lines if you want to use PGSQL storage
+ ; Change the connection string to your db details
+ ;StorageProvider = "OpenSim.Data.PGSQL.dll"
+ ;ConnectionString = "Server=localhost;Database=opensim;User Id=opensim; password=***;"
+
+ ; MySQL
+ ; Uncomment these lines if you want to use MySQL storage
+ ; Change the connection string to your db details
+ StorageProvider = "${Const|DataProvider}"
+ ConnectionString = "${Const|ConnectionString}"
+
+
+; * As an example, the below configuration precisely mimicks the legacy
+; * asset server. It is read by the asset IN connector (defined above)
+; * and it then loads the OUT connector (a local database module). That,
+; * in turn, reads the asset loader and database connection information
+; *
+[AssetService]
+
+ ;; Choose an asset service (Only one option should be enabled)
+ ;LocalServiceModule = "OpenSim.Services.AssetService.dll:AssetService"
+ LocalServiceModule = "OpenSim.Services.FSAssetService.dll:FSAssetConnector"
+
+ ;; FSAsset Directories. Base directory, where final asset files are stored and Spool directory for temp files
+ ;; These directories must be on the same physical filesystem
+ BaseDirectory = "${Paths|AssetsPath}/data"
+ SpoolDirectory = "${Paths|AssetsPath}/tmp"
+
+ ;; Original service can be checked if FSAssets can not find an asset
+ FallbackService = "OpenSim.Services.AssetService.dll:AssetService";
+
+ ;; How many days since last updating the access time before its updated again by FSAssets when accessing an asset
+ ;; Reduces DB calls if asset is requested often. Default value 0 will always update access time
+ ;DaysBetweenAccessTimeUpdates = 1
+
+ ;; Should FSAssets print read/write stats to the robust console, default is true
+ ShowConsoleStats = false
+
+ ;; FSAssets Custom Database Config (Leave blank to use grids default database configuration)
+ ;StorageProvider = ""
+ ;ConnectionString = ""
+ ;Realm = "fsassets"
+
+ ;; The following are common to both the default asset service and FSAsset service
+
+ ;; Common asset service options
+ DefaultAssetLoader = "OpenSim.Framework.AssetLoader.Filesystem.dll"
+ AssetLoaderArgs = "./assets/AssetSets.xml"
+
+ ; Allow maptile assets to remotely deleted by remote calls to the asset service.
+ ; There is no harm in having this as false - it just means that historical maptile assets are not deleted.
+ ; This only applies to maptiles served via the version 1 viewer mechanisms
+ ; Default is false
+ AllowRemoteDelete = false
+
+ ; Allow all assets to be remotely deleted.
+ ; Only set this to true if you are operating a grid where you control all calls to the asset service
+ ; (where a necessary condition is that you control all simulators) and you need this for admin purposes.
+ ; If set to true, AllowRemoteDelete = true is required as well.
+ ; Default is false.
+ AllowRemoteDeleteAllTypes = false
+
+; * This configuration loads the inventory server modules. It duplicates
+; * the function of the legacy inventory server
+; *
+[InventoryService]
+ LocalServiceModule = "OpenSim.Services.InventoryService.dll:XInventoryService"
+
+ ; Will calls to purge folders (empty trash) and immediately delete/update items or folders (not move to trash first) succeed?
+ ; If this is set to false then some other arrangement must be made to perform these operations if necessary.
+ AllowDelete = true
+
+
+; * This is the new style grid service.
+; * "Realm" is the table that is used for user lookup.
+; * It defaults to "regions", which uses the legacy tables
+; *
+[GridService]
+ LocalServiceModule = "OpenSim.Services.GridService.dll:GridService"
+
+ ; Realm = "regions"
+ ; AllowDuplicateNames = ""
+
+ ;; Perform distance check for the creation of a linked region
+ ; Check4096 = "True"
+
+ ;; Needed to display non-default map tile images for linked regions
+ AssetService = "OpenSim.Services.AssetService.dll:AssetService"
+
+ ;; Directory for map tile images of linked regions
+ MapTileDirectory = "${Paths|CachePath}/maptiles"
+
+ ;; Next, we can specify properties of regions, including default and fallback regions
+ ;; The syntax is: Region_ = ""
+ ;; or: Region_ = ""
+ ;; where can be DefaultRegion, DefaultHGRegion, FallbackRegion, NoDirectLogin, Persistent, LockedOut, Reservation, NoMove, Authenticate
+ ;;
+ ;; DefaultRegion If a local login cannot be placed in the required region (e.g. home region does not exist, avatar is not allowed entry, etc.)
+ ;; then this region becomes the destination. Only the first online default region will be used. If no DefaultHGRegion
+ ;; is specified then this will also be used as the region for hypergrid connections that require it (commonly because they have not specified
+ ;; an explicit region.
+ ;;
+ ;; DefaultHGRegion If an avatar connecting via the hypergrid does not specify a region, then they are placed here. Only the first online
+ ;; region will be used.
+ ;;
+ ;; FallbackRegion If the DefaultRegion is not available for a local login, then any FallbackRegions are tried instead. These are tried in the
+ ;; order specified. This only applies to local logins at this time, not Hypergrid connections.
+ ;;
+ ;; NoDirectLogin A hypergrid user cannot directly connect to this region. This does not apply to local logins.
+ ;;
+ ;; Persistent When the simulator is shutdown, the region is signalled as offline but left registered on the grid.
+ ;;
+ ;; Example specification:
+ ; Region_Welcome_Area = "DefaultRegion, FallbackRegion"
+ ; (replace spaces with underscore)
+ Region_Welcome = "DefaultRegion, FallbackRegion, Persistent"
+ Region_Sandbox = "DefaultRegion, FallbackRegion, Persistent"
+ Region_Kellietown = "DefaultRegion, FallbackRegion, Persistent"
+
+ ;; Allow Hyperlinks to be created at the console
+ HypergridLinker = true
+
+ ;; Allow supporting viewers to export content
+ ;; Set to false to prevent export
+ ExportSupported = true
+
+ ;; If you have this set under [Hypergrid], no need to set it here, leave it commented
+ ; GatekeeperURI = "${Const|BaseURL}:${Const|PublicPort}"
+
+
+; * This is the configuration for the freeswitch server in grid mode
+[FreeswitchService]
+; LocalServiceModule = "OpenSim.Services.FreeswitchService.dll:FreeswitchService"
+
+ ;; The IP address of your FreeSWITCH server.
+ ;; This address must be reachable by viewers.
+ ; ServerAddress = 127.0.0.1
+
+ ;; The following configuration parameters are optional
+
+ ;; By default, this is the same as the ServerAddress
+ ; Realm = 127.0.0.1
+
+ ;; By default, this is the same as the ServerAddress on port 5060
+ ; SIPProxy = 127.0.0.1:5060
+
+ ;; Default is 5000ms
+ ; DefaultTimeout = 5000
+
+ ;; The dial plan context. Default is "default"
+ ; Context = default
+
+ ;; Currently unused
+ ; UserName = freeswitch
+
+ ;; Currently unused
+ ; Password = password
+
+ ;; The following parameters are for STUN = Simple Traversal of UDP through NATs
+ ;; See http://wiki.freeswitch.org/wiki/NAT_Traversal
+ ;; stun.freeswitch.org is not guaranteed to be running so use it in
+ ;; production at your own risk
+ ; EchoServer = 127.0.0.1
+ ; EchoPort = 50505
+ ; AttemptSTUN = false
+
+
+; * This is the new style authentication service. Currently, only MySQL
+; * is implemented.
+; *
+[AuthenticationService]
+ ; for the server connector
+ LocalServiceModule = "OpenSim.Services.AuthenticationService.dll:PasswordAuthenticationService"
+ ; Realm = "auth"
+
+ ;; Allow the service to process HTTP getauthinfo calls.
+ ;; Default is false.
+ ; AllowGetAuthInfo = false
+
+ ;; Allow the service to process HTTP setauthinfo calls.
+ ;; Default is false.
+ ; AllowSetAuthInfo = false
+
+ ;; Allow the service to process HTTP setpassword calls.
+ ;; Default is false.
+ ; AllowSetPassword = false
+
+
+[OpenIdService]
+ ; for the server connector
+; AuthenticationServiceModule = "OpenSim.Services.AuthenticationService.dll:PasswordAuthenticationService"
+; UserAccountServiceModule = "OpenSim.Services.UserAccountService.dll:UserAccountService"
+
+
+; * This is the new style user service.
+; * "Realm" is the table that is used for user lookup.
+; * It defaults to "UserAccounts", which uses the new style.
+; * Realm = "users" will use the legacy tables as an authentication source
+; *
+[UserAccountService]
+ ; for the server connector
+ LocalServiceModule = "OpenSim.Services.UserAccountService.dll:UserAccountService"
+ ; Realm = "UserAccounts"
+
+ ; These are for creating new accounts by the service
+ AuthenticationService = "OpenSim.Services.AuthenticationService.dll:PasswordAuthenticationService"
+ PresenceService = "OpenSim.Services.PresenceService.dll:PresenceService"
+ GridService = "OpenSim.Services.GridService.dll:GridService"
+ InventoryService = "OpenSim.Services.InventoryService.dll:XInventoryService"
+ AvatarService = "OpenSim.Services.AvatarService.dll:AvatarService"
+ GridUserService = "OpenSim.Services.UserAccountService.dll:GridUserService"
+
+ ;; This switch creates the minimum set of body parts and avatar entries for a viewer 2
+ ;; to show a default "Ruth" avatar rather than a cloud for a newly created user.
+ ;; Default is false
+ CreateDefaultAvatarEntries = true
+
+ ;; Allow the service to process HTTP createuser calls.
+ ;; Default is false.
+ ; AllowCreateUser = false
+
+ ;; Allow the service to process HTTP setaccount calls.
+ ;; Default is false.
+ ; AllowSetAccount = false
+
+
+[GridUserService]
+ ; for the server connector
+ LocalServiceModule = "OpenSim.Services.UserAccountService.dll:GridUserService"
+
+
+[AgentPreferencesService]
+ ; for the server connector
+ LocalServiceModule = "OpenSim.Services.UserAccountService.dll:AgentPreferencesService"
+
+
+[PresenceService]
+ ; for the server connector
+ LocalServiceModule = "OpenSim.Services.PresenceService.dll:PresenceService"
+
+[AvatarService]
+ ; for the server connector
+ LocalServiceModule = "OpenSim.Services.AvatarService.dll:AvatarService"
+
+
+[FriendsService]
+ ; for the server connector
+ LocalServiceModule = "OpenSim.Services.FriendsService.dll:FriendsService"
+
+[EstateService]
+ LocalServiceModule = "OpenSim.Services.EstateService.dll:EstateDataService"
+
+[LibraryService]
+ LibraryName = "OpenSim Library"
+ DefaultLibrary = "./inventory/Libraries.xml"
+
+
+[LoginService]
+ ; for the server connector
+ LocalServiceModule = "OpenSim.Services.LLLoginService.dll:LLLoginService"
+ ; for the service
+ UserAccountService = "OpenSim.Services.UserAccountService.dll:UserAccountService"
+ GridUserService = "OpenSim.Services.UserAccountService.dll:GridUserService"
+ AuthenticationService = "OpenSim.Services.AuthenticationService.dll:PasswordAuthenticationService"
+ InventoryService = "OpenSim.Services.InventoryService.dll:XInventoryService"
+ AvatarService = "OpenSim.Services.AvatarService.dll:AvatarService"
+ PresenceService = "OpenSim.Services.PresenceService.dll:PresenceService"
+ GridService = "OpenSim.Services.GridService.dll:GridService"
+ SimulationService ="OpenSim.Services.Connectors.dll:SimulationServiceConnector"
+ LibraryService = "OpenSim.Services.InventoryService.dll:LibraryService"
+ FriendsService = "OpenSim.Services.FriendsService.dll:FriendsService"
+ ; The minimum user level required for a user to be able to login. 0 by default
+ ; If you disable a particular user's account then you can set their login level below this number.
+ ; You can also change this level from the console though these changes will not be persisted.
+ ; MinLoginLevel = 0
+
+ ;; for hypergrid
+ UserAgentService = "OpenSim.Services.HypergridService.dll:UserAgentService"
+
+ ; This inventory service will be used to initialize the user's inventory
+ HGInventoryServicePlugin = "HGInventoryService@OpenSim.Services.HypergridService.dll:HGSuitcaseInventoryService"
+ ; NOTE: HGInventoryServiceConstructorArg is deprecated. For now it will work, but see above
+ ; for the correct method if passing additional arguments.
+ ;; end hypergrid
+
+ ; Ask co-operative viewers to use a different currency name
+ Currency = "v "
+
+ ;; Set minimum fee to publish classified
+ ; ClassifiedFee = 0
+
+ WelcomeMessage = "${Const|MOTD}"
+ AllowRemoteSetLoginLevel = "false"
+
+ ; For V2 map
+ MapTileURL = "${Const|BaseURL}:${Const|PublicPort}/";
+
+ ; Url to search service
+ ; SearchURL = "${Const|BaseURL}:${Const|PublicPort}/";
+
+ ; For V3 destination guide
+ ; DestinationGuide = "${Const|BaseURL}/guide"
+
+ ; For V3 avatar picker (( work in progress ))
+ ; AvatarPicker = "${Const|BaseURL}/avatars"
+
+ ; If you run this login server behind a proxy, set this to true
+ ; HasProxy = false
+
+ ; Defaults for the users, if none is specified in the useraccounts table entry (ServiceURLs)
+ ;; If you have GatekeeperURI set under [Hypergrid], no need to set it here, leave it commented
+ ; GatekeeperURI = "${Const|BaseURL}:${Const|PublicPort}"
+
+ SRV_HomeURI = "${Const|BaseURL}:${Const|PublicPort}"
+ SRV_InventoryServerURI = "${Const|BaseURL}:${Const|PublicPort}"
+ SRV_AssetServerURI = "${Const|BaseURL}:${Const|PublicPort}"
+ SRV_ProfileServerURI = "${Const|BaseURL}:${Const|PublicPort}"
+ SRV_FriendsServerURI = "${Const|BaseURL}:${Const|PublicPort}"
+ SRV_IMServerURI = "${Const|BaseURL}:${Const|PublicPort}"
+ SRV_GroupsServerURI = "${Const|BaseURL}:${Const|PublicPort}"
+
+ ;# {DSTZone} {} {Override Daylight Saving Time rules} {* none local} "America/Los_Angeles;Pacific Standard Time"
+ ;; Viewers do not receive timezone information from the server - almost all (?) default to Pacific Standard Time
+ ;; However, they do rely on the server to tell them whether it's Daylight Saving Time or not.
+ ;; Hence, calculating DST based on a different timezone can result in a misleading viewer display and inconsistencies between grids.
+ ;; By default, this setting uses various timezone names to calculate DST with regards to the viewer's standard PST.
+ ;; Options are
+ ;; "none" no DST
+ ;; "local" use the server's only timezone to calculate DST. This is previous OpenSimulator behaviour.
+ ;; "America/Los_Angeles;Pacific Standard Time" use these timezone names to look up Daylight savings.
+ ;; 'America/Los_Angeles' is used on Linux/Mac systems whilst 'Pacific Standard Time' is used on Windows
+ DSTZone = "local"
+
+ ;Basic Login Service Dos Protection Tweaks
+ ;;
+ ;; Some Grids/Users use a transparent proxy that makes use of the X-Forwarded-For HTTP Header, If you do, set this to true
+ ;; If you set this to true and you don't have a transparent proxy, it may allow attackers to put random things in the X-Forwarded-For header to
+ ;; get around this basic DOS protection.
+ ;DOSAllowXForwardedForHeader = false
+ ;;
+ ;; The protector adds up requests during this rolling period of time, default 10 seconds
+ ;DOSRequestTimeFrameMS = 10000
+ ;;
+ ;; The amount of requests in the above timeframe from the same endpoint that triggers protection
+ ;DOSMaxRequestsInTimeFrame = 5
+ ;;
+ ;; The amount of time that a specific endpoint is blocked. Default 2 minutes.
+ ;DOSForgiveClientAfterMS = 120000
+ ;;
+ ;; To turn off basic dos protection, set the DOSMaxRequestsInTimeFrame to 0.
+
+
+[MapImageService]
+ LocalServiceModule = "OpenSim.Services.MapImageService.dll:MapImageService"
+
+ ; Set this if you want to change the default
+ TilesStoragePath = "${Paths|CachePath}/maptiles"
+ ;
+ ; If for some reason you have the AddMapTile service outside the firewall (e.g. ${Const|PublicPort}),
+ ; you may want to set this. Otherwise, don't set it, because it's already protected.
+ ; GridService = "OpenSim.Services.GridService.dll:GridService"
+ ;
+ ; Additionally, if you run this server behind a proxy, set this to true
+ ; HasProxy = false
+
+
+[GridInfoService]
+ ; These settings are used to return information on a get_grid_info call.
+ ; Client launcher scripts and third-party clients make use of this to
+ ; autoconfigure the client and to provide a nice user experience. If you
+ ; want to facilitate that, you should configure the settings here according
+ ; to your grid or standalone setup.
+ ;
+ ; See http://opensimulator.org/wiki/GridInfo
+
+ ; login uri: for grid this is the login server URI
+ login = ${Const|BaseURL}:${Const|PublicPort}/
+
+ ; long grid name: the long name of your grid
+ gridname = "${Const|GridName}"
+
+ ; short grid name: the short name of your grid
+ gridnick = "${Const|ShortGridName}"
+
+ ; login page: optional: if it exists it will be used to tell the client to use
+ ; this as splash page
+ welcome = ${Const|BaseURL}/drupal/loginpage
+
+ ; helper uri: optional: if it exists it will be used to tell the client to use
+ ; this for all economy related things
+ ;economy = ${Const|BaseURL}/economy
+
+ ; web page of grid: optional: page providing further information about your grid
+ about = ${Const|BaseURL}/drupal/
+
+ ; account creation: optional: page providing further information about obtaining
+ ; a user account on your grid
+ register = ${Const|BaseURL}/drupal/content/How_to_join
+
+ ; help: optional: page providing further assistance for users of your grid
+ help = ${Const|BaseURL}/drupal/Tags/help
+
+ ; password help: optional: page providing password assistance for users of your grid
+ password = ${Const|BaseURL}/drupal
+
+ ; HG address of the gatekeeper, if you have one
+ ; this is the entry point for all the regions of the world
+ ; gatekeeper = ${Const|BaseURL}:${Const|PublicPort}/
+
+ ; HG user domain, if you have one
+ ; this is the entry point for all user-related HG services
+ ; uas = ${Const|BaseURL}:${Const|PublicPort}/
+
+
+[GatekeeperService]
+ LocalServiceModule = "OpenSim.Services.HypergridService.dll:GatekeeperService"
+ ;; for the service
+ UserAccountService = "OpenSim.Services.UserAccountService.dll:UserAccountService"
+ UserAgentService = "OpenSim.Services.HypergridService.dll:UserAgentService"
+ PresenceService = "OpenSim.Services.PresenceService.dll:PresenceService"
+ GridUserService = "OpenSim.Services.UserAccountService.dll:GridUserService"
+ GridService = "OpenSim.Services.GridService.dll:GridService"
+ AuthenticationService = "OpenSim.Services.Connectors.dll:AuthenticationServicesConnector"
+ SimulationService ="OpenSim.Services.Connectors.dll:SimulationServiceConnector"
+ ; how does the outside world reach me? This acts as public key too.
+ ;; If you have GatekeeperURI set under [Hypergrid], no need to set it here, leave it commented
+ ; ExternalName = "${Const|BaseURL}:${Const|PublicPort}"
+
+ ; Does this grid allow incoming links to any region in it?
+ ; If false, HG TPs happen only to the Default regions specified in [GridService] section
+ AllowTeleportsToAnyRegion = true
+
+ ; If you run this gatekeeper server behind a proxy, set this to true
+ ; HasProxy = false
+
+ ;; Are foreign visitors allowed?
+ ForeignAgentsAllowed = true
+ ;;
+ ;; If ForeignAgentsAllowed is true, make exceptions using AllowExcept.
+ ;; Leave blank or commented for no exceptions.
+ ; AllowExcept = "http://griefer.com:8002, http://enemy.com:8002"
+ ;;
+ ;; If ForeignAgentsAllowed is false, make exceptions using DisallowExcept
+ ;; Leave blank or commented for no exceptions.
+ ; DisallowExcept = "http://myfriendgrid.com:8002, http://myboss.com:8002"
+
+
+[UserAgentService]
+ LocalServiceModule = "OpenSim.Services.HypergridService.dll:UserAgentService"
+ ;; for the service
+ GridUserService = "OpenSim.Services.UserAccountService.dll:GridUserService"
+ GridService = "OpenSim.Services.GridService.dll:GridService"
+ GatekeeperService = "OpenSim.Services.HypergridService.dll:GatekeeperService"
+ PresenceService = "OpenSim.Services.PresenceService.dll:PresenceService"
+ FriendsService = "OpenSim.Services.FriendsService.dll:FriendsService"
+ UserAccountService = "OpenSim.Services.UserAccountService.dll:UserAccountService"
+
+ ; If you run this user agent server behind a proxy, set this to true
+ ; HasProxy = false
+
+ ;; If you separate the UserAgentService from the LoginService, set this to
+ ;; the IP address of the machine where your LoginService is
+ ;LoginServerIP = "127.0.0.1"
+
+ ; User level required to be contacted from other grids
+ LevelOutsideContacts = 0
+
+ ;; Restrictions on destinations of local users.
+ ;; Are local users allowed to visit other grids?
+ ;; What user level? Use variables of this forrm:
+ ;; ForeignTripsAllowed_Level_ = true | false
+ ;; (the default is true)
+ ;; For example:
+ ; ForeignTripsAllowed_Level_0 = false
+ ; ForeignTripsAllowed_Level_200 = true ; true is default, no need to say it
+ ;;
+ ;; If ForeignTripsAllowed is false, make exceptions using DisallowExcept
+ ;; Leave blank or commented for no exceptions.
+ ; DisallowExcept_Level_0 = "http://myothergrid.com:8002, http://boss.com:8002"
+ ;;
+ ;; If ForeignTripsAllowed is true, make exceptions using AllowExcept.
+ ;; Leave blank or commented for no exceptions.
+ ; AllowExcept_Level_200 = "http://griefer.com:8002, http://enemy.com:8002"
+
+ ;; This variable controls what is exposed to profiles of local users
+ ;; as seen from outside of this grid. Leave it uncommented for exposing
+ ;; UserTitle, UserFlags and the creation date. Uncomment and change to False
+ ;; to block this info from being exposed.
+ ; ShowUserDetailsInHGProfile = True
+
+
+; * The interface that local users get when they are in other grids.
+; * This restricts the inventory operations while in other grids.
+; * Still not completely safe, especially if users perform inventory operations
+; * while in those grids. The more the user accesses his/her inventory, the more
+; * those simulators will know about the user's inventory.
+; *
+[HGInventoryService]
+ ; For the InventoryServiceInConnector
+ LocalServiceModule = "OpenSim.Services.HypergridService.dll:HGSuitcaseInventoryService"
+ ;; alternatives:
+ ;; HG1.5, more permissive, not recommended, but still supported
+ ;LocalServiceModule = "OpenSim.Services.HypergridService.dll:HGInventoryService"
+ ;; HG1.0, totally permissive, not recommended, but OK for grids with 100% trust
+ ;LocalServiceModule = "OpenSim.Services.InventoryService.dll:XInventoryService"
+
+ UserAccountsService = "OpenSim.Services.UserAccountService.dll:UserAccountService"
+ AvatarService = "OpenSim.Services.AvatarService.dll:AvatarService"
+
+ ; HGInventoryService is a public-facing inventory service that allows users to
+ ; interact with their suitcase folder when on a foreign grid. This reuses the general inventory service connector.
+ ; Hence, if the user has set up authentication in [Network] to protect their private services
+ ; make sure it is not set here.
+ AuthType = None
+
+ ;; Can overwrite the default in [Hypergrid], but probably shouldn't
+ ; HomeURI = "${Const|BaseURL}:${Const|PublicPort}"
+
+
+; * The interface that local users get when they are in other grids.
+; * This restricts the access that the rest of the world has to
+; * the assets of this world.
+; *
+[HGAssetService]
+ ;; Use the second option if you have FSAsset service enabled
+; LocalServiceModule = "OpenSim.Services.HypergridService.dll:HGAssetService"
+ LocalServiceModule = "OpenSim.Services.HypergridService.dll:HGFSAssetService"
+
+ UserAccountsService = "OpenSim.Services.UserAccountService.dll:UserAccountService"
+
+ ; HGAssetService is a public-facing service that allows users to
+ ; read and create assets when on another grid. This reuses the general asset service connector.
+ ; Hence, if the user has set up authentication in [Network] to protect their private services
+ ; make sure it is overriden for this public service.
+ AuthType = None
+
+ ;; Can overwrite the default in [Hypergrid], but probably shouldn't
+ ; HomeURI = "${Const|BaseURL}:${Const|PublicPort}"
+
+ ;; The asset types that this grid can export to / import from other grids.
+ ;; Comma separated.
+ ;; Valid values are all the asset types in OpenMetaverse.AssetType, namely:
+ ;; Unknown, Texture, Sound, CallingCard, Landmark, Clothing, Object, Notecard, LSLText,
+ ;; LSLBytecode, TextureTGA, Bodypart, SoundWAV, ImageTGA, ImageJPEG, Animation, Gesture, Mesh
+ ;;
+ ;; Leave blank or commented if you don't want to apply any restrictions.
+ ;; A more strict, but still reasonable, policy may be to disallow the exchange
+ ;; of scripts, like so:
+ ; DisallowExport ="LSLText"
+ ; DisallowImport ="LSLBytecode"
+
+
+[HGFriendsService]
+ LocalServiceModule = "OpenSim.Services.HypergridService.dll:HGFriendsService"
+ UserAgentService = "OpenSim.Services.HypergridService.dll:UserAgentService"
+ FriendsService = "OpenSim.Services.FriendsService.dll:FriendsService"
+ UserAccountService = "OpenSim.Services.UserAccountService.dll:UserAccountService"
+ GridService = "OpenSim.Services.GridService.dll:GridService"
+ PresenceService = "OpenSim.Services.PresenceService.dll:PresenceService"
+
+
+[HGInstantMessageService]
+ LocalServiceModule = "OpenSim.Services.HypergridService.dll:HGInstantMessageService"
+ GridService = "OpenSim.Services.GridService.dll:GridService"
+ PresenceService = "OpenSim.Services.PresenceService.dll:PresenceService"
+ UserAgentService = "OpenSim.Services.HypergridService.dll:UserAgentService"
+ ; This should always be true in the Robust config
+ InGatekeeper = True
+
+
+[Messaging]
+ ; OfflineIM
+ OfflineIMService = "OpenSim.Addons.OfflineIM.dll:OfflineIMService"
+
+
+[Groups]
+ ;; for the HG Groups service
+ OfflineIMService = "OpenSim.Addons.OfflineIM.dll:OfflineIMService"
+ UserAccountService = "OpenSim.Services.UserAccountService.dll:UserAccountService"
+
+ ;; What is the HomeURI of users associated with this grid?
+ ;; Can overwrite the default in [Hypergrid], but probably shouldn't
+ ; HomeURI = "${Const|BaseURL}:${Const|PublicPort}"
+ ;; end hypergrid
+
+ ;; Sets the maximum number of groups an agent may join
+ MaxAgentGroups = 420
+
+
+[UserProfilesService]
+ LocalServiceModule = "OpenSim.Services.UserProfilesService.dll:UserProfilesService"
+ Enabled = true
+ ;; Configure this for separate profiles database
+ ;; ConnectionString = "Data Source=localhost;Database=opensim;User ID=opensim;Password=*****;Old Guids=true;"
+ ;; Realm = UserProfiles
+ UserAccountService = OpenSim.Services.UserAccountService.dll:UserAccountService
+ AuthenticationServiceModule = "OpenSim.Services.AuthenticationService.dll:PasswordAuthenticationService"
+
+
+[BakedTextureService]
+ LocalServiceModule = "OpenSim.Server.Handlers.dll:XBakes"
+ ;; This directory must be writable by the user ROBUST runs as. It will be created automatically.
+ BaseDirectory = "${Paths|CachePath}/bakes"
+
+[MuteListService]
+ LocalServiceModule = "OpenSim.Services.MuteListService.dll:MuteListService"
diff --git a/bin/config-include/FlotsamCache.ini b/bin/config-include/FlotsamCache.ini
new file mode 100644
index 0000000..cf06d6c
--- /dev/null
+++ b/bin/config-include/FlotsamCache.ini
@@ -0,0 +1,97 @@
+[AssetCache]
+ ;;
+ ;; Options for FlotsamAssetCache
+ ;;
+
+ ; cache directory can be shared by multiple instances
+ CacheDirectory = ${Paths|CachePath}/assetcache
+ ; Other examples:
+ ;CacheDirectory = /directory/writable/by/OpenSim/instance
+
+ ; Log level
+ ; 0 - (Error) Errors only
+ ; 1 - (Info) Hit Rate Stats + Level 0
+ ; 2 - (Debug) Cache Activity (Reads/Writes) + Level 1
+ ;
+ LogLevel = 0
+
+ ; How often should hit rates be displayed (given in AssetRequests)
+ ; 0 to disable
+ HitRateDisplay = 100
+
+ ; Set to false for no memory cache
+ ; assets can be requested several times in short periods
+ ; so even a small memory cache is useful
+ MemoryCacheEnabled = false
+
+ ; If a memory cache hit happens, or the asset is still in memory
+ ; due to other causes, update the timestamp on the disk file anyway.
+ ; Don't turn this on unless you share your asset cache between simulators
+ ; AND use an external process, e.g. cron job, to clean it up.
+ UpdateFileTimeOnCacheHit = false
+
+ ; Enabling this will cache negative fetches. If an asset is negative-cached
+ ; it will not be re-requested from the asset server again for a while.
+ ; Generally, this is a good thing.
+ ;
+ ; Regular expiration settings (non-sliding) mean that the asset will be
+ ; retried after the time has expired. Sliding expiration means that
+ ; the time the negative cache will keep the asset is refreshed each
+ ; time a fetch is attempted. Use sliding expiration if you have rogue
+ ; scripts hammering the asset server with requests for nonexistent
+ ; assets.
+ ;
+ ; There are two cases where negative caching may cause issues:
+ ;
+ ; 1 - If an invalid asset is repeatedly requested by a script and that asset is
+ ; subsequently created, it will not be seen until fcache clear
+ ; is used. This is a very theoretical scenario since UUID collisions
+ ; are deemed to be not occuring in practice.
+ ; This can only become an issue with sliding expiration time.
+ ;
+ ; 2 - If the asset service is clustered, an asset may not have propagated
+ ; to all cluster members when it is first attempted to fetch it.
+ ; This may theoretically occur with networked vendor systems and
+ ; would lead to an asset not found message. However, after the
+ ; expiration time has elapsed, the asset will then be fetchable.
+ ;
+ ; The defaults below are suitable for all small to medium installations
+ ; including grids.
+ NegativeCacheEnabled = true
+ NegativeCacheTimeout = 120
+ NegativeCacheSliding = false
+
+ ; Set to false for no file cache
+ FileCacheEnabled = true
+
+ ; How long {in hours} to keep assets cached in memory, .5 == 30 minutes
+ ; even a few minutes may mean many assets loaded to memory, if not all.
+ ; this is good if memory is not a problem.
+ ; if memory is a problem then a few seconds may actually save same.
+ ; see hit rates with console comand: fcache status
+ MemoryCacheTimeout = .016 ; one minute
+
+ ; How long {in hours} to keep assets cached on disk, .5 == 30 minutes
+ ; Specify 0 if you do not want your disk cache to expire
+ FileCacheTimeout = 48
+
+ ; How often {in hours} should the disk be checked for expired files
+ ; Specify 0 to disable expiration checking
+ FileCleanupTimer = 0.0 ; disabled
+
+ ; If WAIT_ON_INPROGRESS_REQUESTS has been defined then this specifies how
+ ; long (in miliseconds) to block a request thread while trying to complete
+ ; an existing write to disk.
+ ; NOTE: THIS PARAMETER IS NOT CURRENTLY USED BY THE CACHE
+ ; WaitOnInprogressTimeout = 3000
+
+ ; Number of tiers to use for cache directories (current valid
+ ; range 1 to 3)
+ ;CacheDirectoryTiers = 1
+
+ ; Number of letters per path tier, 1 will create 16 directories
+ ; per tier, 2 - 256, 3 - 4096 and 4 - 65K
+ ;CacheDirectoryTierLength = 3
+
+ ; Warning level for cache directory size
+ ;CacheWarnAt = 30000
diff --git a/bin/config-include/GridCommon.ini b/bin/config-include/GridCommon.ini
new file mode 100644
index 0000000..8621651
--- /dev/null
+++ b/bin/config-include/GridCommon.ini
@@ -0,0 +1,255 @@
+; This is the main configuration file for an instance of OpenSim running in grid mode
+; In particular, this one is set up for connecting to Infinite Grid.
+
+[DatabaseService]
+ ;
+ ; ### Choose the DB
+ ;
+
+ ; SQLite
+ ; Include-Storage = "config-include/storage/SQLiteStandalone.ini";
+
+ ; MySql
+ ; Uncomment these lines if you want to use mysql storage
+ ; Change the connection string to your db details
+ ;StorageProvider = "OpenSim.Data.MySQL.dll"
+ ;ConnectionString = "Data Source=localhost;Database=opensim;User ID=opensim;Password=***;Old Guids=true;"
+ ; Uncomment this line if you are using MySQL and want to use a different database for estates
+ ; The usual application for this is to allow estates to be spread out across multiple simulators by share the same database.
+ ; Most people won't need to do this so only uncomment if you know what you're doing.
+ ;EstateConnectionString = "Data Source=localhost;Database=opensim;User ID=opensim;Password=***;Old Guids=true;"
+
+ ; MSSQL
+ ; Uncomment these lines if you want to use MSSQL storage
+ ; Change the connection string to your db details
+ ; The value for server property is shown in your SQL Server Management Studio login dialog.
+ ; (This sample is the default of express edition)
+ ;StorageProvider = "OpenSim.Data.MSSQL.dll"
+ ;ConnectionString = "Server=localhost\SQLEXPRESS;Database=opensim;User Id=opensim; password=***;"
+
+ ; PGSQL
+ ; Uncomment these lines if you want to use PGSQL storage
+ ; Change the connection string to your db details
+ ;StorageProvider = "OpenSim.Data.PGSQL.dll"
+ ;ConnectionString = "Server=localhost;Database=opensim;User Id=opensim; password=***;"
+
+ StorageProvider = "${Const|DataProvider}"
+ ConnectionString = "${Const|ConnectionString}"
+
+
+[Hypergrid]
+ ; Uncomment the variables in this section only if you are in
+ ; Hypergrid configuration. Otherwise, ignore.
+
+ ;# {HomeURI} {Hypergrid} {The Home URL of this world} {}
+ ;; If this is a standalone world, this is the address of this instance.
+ ;; If this is a grided simulator, this is the address of the external robust server that
+ ;; runs the UserAgentsService.
+ ;; For example http://myworld.com:9000 or http://myworld.com:8002
+ ;; This is a default that can be overwritten in some sections.
+ HomeURI = "${Const|BaseURL}:${Const|PublicPort}"
+
+ ;# {GatekeeperURI} {Hypergrid} {The URL of the gatekeeper of this world} {}
+ ;; If this is a standalone world, this is the address of this instance.
+ ;; If this is a grided simulator, this is the address of the external robust server
+ ;; that runs the Gatekeeper service.
+ ;; For example http://myworld.com:9000 or http://myworld.com:8002
+ ;; This is a default that can be overwritten in some sections.
+ GatekeeperURI = "${Const|BaseURL}:${Const|PublicPort}"
+
+[Modules]
+ ;; Choose one cache module and the corresponding config file, if it exists.
+ ;; Copy the config .example file into your own .ini file and adapt that.
+ ;; We recommend the use of the FlotsamAssetCache since this is most actively maintained.
+ ; I think only Windows needs caching, haven't noticed any difference under Linux, which uses spare memory for file caching anyway.
+
+ AssetCaching = "FlotsamAssetCache"
+ Include-FlotsamCache = "config-include/FlotsamCache.ini"
+
+ ;AssetCaching = "CenomeMemoryAssetCache"
+ ;Include-CenomeCache = "config-include/CenomeCache.ini"
+
+ ;AssetCaching = "GlynnTuckerAssetCache"
+
+ ;; Optionally, the port for the LLProxyLoginModule module can be changed
+ ;Setup_LLProxyLoginModule = "9090/"
+
+ ;; Authorization is not on by default, as it depends on external php
+ ;AuthorizationServices = "RemoteAuthorizationServicesConnector"
+
+[AssetService]
+ DefaultAssetLoader = "OpenSim.Framework.AssetLoader.Filesystem.dll"
+ AssetLoaderArgs = "assets/AssetSets.xml"
+
+ ;
+ ; Change this to your grid-wide asset server. Do not add a slash to the end of any of these addresses.
+ ;
+ AssetServerURI = "${Const|BaseURL}:${Const|AssetServerPort}"
+
+[InventoryService]
+ ;
+ ; Change this to your grid-wide inventory server
+ ;
+ InventoryServerURI = "${Const|GridURL}:${Const|PrivatePort}"
+ ;MaxRetries = 0
+
+[GridInfo]
+ ;
+ ; Change this to your grid info service
+ ;
+ GridInfoURI = "${Const|GridURL}:${Const|PublicPort}"
+
+[GridService]
+ ;
+ ; Change this to your grid-wide grid server
+ ;
+ GridServerURI = "${Const|GridURL}:${Const|PrivatePort}"
+ AllowHypergridMapSearch = true
+
+ ;; Directory for map tile images of linked regions
+ MapTileDirectory = "${Paths|CachePath}/maptiles"
+
+ ; === HG ONLY ===
+ ;; Change this to the address of your Gatekeeper service
+ ;; (usually bundled with the rest of the services in one
+ ;; Robust server in port ${Const|PublicPort}, but not always)
+ Gatekeeper="${Const|GridURL}:${Const|PublicPort}"
+
+[EstateDataStore]
+ ;
+ ; Uncomment if you want centralized estate data at robust server,
+ ; in which case the URL in [EstateService] will be used
+ ;
+ ;LocalServiceModule = "OpenSim.Services.Connectors.dll:EstateDataRemoteConnector"
+
+[EstateService]
+ EstateServerURI = "${Const|GridURL}:${Const|PrivatePort}"
+
+[Messaging]
+ ; === HG ONLY ===
+ ;; Change this to the address of your Gatekeeper service
+ ;; (usually bundled with the rest of the services in one
+ ;; Robust server in port ${Const|PublicPort}, but not always)
+ Gatekeeper = "${Const|GridURL}:${Const|PublicPort}"
+
+[AvatarService]
+ ;
+ ; Change this to your grid-wide grid server
+ ;
+ AvatarServerURI = "${Const|GridURL}:${Const|PrivatePort}"
+
+[AgentPreferencesService]
+ ;
+ ; Change this to your grid-wide avatar prefs server
+ ;
+ AgentPreferencesServerURI = "${Const|GridURL}:${Const|PrivatePort}"
+
+[PresenceService]
+ ;
+ ; Change this to your grid-wide presence server
+ ;
+ PresenceServerURI = "${Const|GridURL}:${Const|PrivatePort}"
+
+[UserAccountService]
+ ;
+ ; Change this to your grid-wide user accounts server
+ ;
+ UserAccountServerURI = "${Const|GridURL}:${Const|PrivatePort}"
+
+[GridUserService]
+ ;
+ ; Change this to your grid-wide user accounts server
+ ;
+ GridUserServerURI = "${Const|GridURL}:${Const|PrivatePort}"
+
+[AuthenticationService]
+ ;
+ ; Change this to your grid-wide authentication server
+ ;
+ AuthenticationServerURI = "${Const|GridURL}:${Const|PrivatePort}"
+
+[FriendsService]
+ ;
+ ; Change this to your grid-wide friends server
+ ;
+ FriendsServerURI = "${Const|GridURL}:${Const|PrivatePort}"
+
+[HGInventoryAccessModule]
+ ;
+ ; === HG ONLY ===
+ ; Change this to your server
+ ; accessible from other grids
+ ;
+ HomeURI = "${Const|GridURL}:${Const|PublicPort}"
+ Gatekeeper = "${Const|GridURL}:${Const|PublicPort}"
+ ;; If you want to protect your assets from being copied by foreign visitors
+ ;; set this to false. You may want to do this on sims that have licensed content.
+ ;; Default is true.
+ OutboundPermission = True
+
+ ;; Send visual reminder to local users that their inventories are unavailable while they are traveling
+ ;; and available when they return. True by default.
+ ;RestrictInventoryAccessAbroad = True
+
+ ;; Warning: advanced and unusual. Default is false.
+ ;; Enables configurations where grids share user services, including inventory,
+ ;; while separating regions' assets from users' assets. Asset transfer between
+ ;; the users' asset server and the regions' asset server is done in HG-like manner.
+ ; CheckSeparateAssets = false
+ ; RegionHGAssetServerURI = ${Const|GridURL}:${Const|PublicPort}
+
+
+[HGAssetService]
+ ;
+ ; === HG ONLY ===
+ ; Change this to your server
+ ; accessible from other grids
+ ;
+ HomeURI = "${Const|GridURL}:${Const|PublicPort}"
+
+ ;; The asset types that this grid can export to / import from other grids.
+ ;; Comma separated.
+ ;; Valid values are all the asset types in OpenMetaverse.AssetType, namely:
+ ;; Unknown, Texture, Sound, CallingCard, Landmark, Clothing, Object, Notecard, LSLText,
+ ;; LSLBytecode, TextureTGA, Bodypart, SoundWAV, ImageTGA, ImageJPEG, Animation, Gesture, Mesh
+ ;;
+ ;; Leave blank or commented if you don't want to apply any restrictions.
+ ;; A more strict, but still reasonable, policy may be to disallow the exchange
+ ;; of scripts, like so:
+ ; DisallowExport ="LSLText"
+ ; DisallowImport ="LSLBytecode"
+
+[HGFriendsModule]
+ ; User level required to be able to send friendship invitations to foreign users
+ LevelHGFriends = 0;
+
+[UserAgentService]
+ ;
+ ; === HG ONLY ===
+ ; Change this to your user agent server (HG robust)
+ ;
+ UserAgentServerURI = "${Const|GridURL}:${Const|PublicPort}"
+
+[MapImageService]
+ MapImageServerURI = "${Const|GridURL}:${Const|PrivatePort}"
+
+[AuthorizationService]
+ ; If you have regions with access restrictions
+ ; specify them here using the convention
+ ; Region_ =
+ ; Valid flags are:
+ ; DisallowForeigners -- HG visitors not allowed
+ ; DisallowResidents -- only Admins and Managers allowed
+ ; Example:
+ ; Region_Test_1 = "DisallowForeigners"
+
+;; Uncomment if you are using SimianGrid for grid services
+[SimianGrid]
+ ;; SimianGrid services URL
+ ;; SimianServiceURL = "http://grid.sciencesim.com/Grid/"
+
+ ;; Capability assigned by the grid administrator for the simulator
+ ;; SimulatorCapability = "00000000-0000-0000-0000-000000000000"
+
+[MuteListService]
+ MuteListServerURI = "${Const|BaseURL}:${Const|PrivatePort}"
diff --git a/bin/config-include/GridCommon.ini.example b/bin/config-include/GridCommon.ini.example
index e93ce3c..5406295 100644
--- a/bin/config-include/GridCommon.ini.example
+++ b/bin/config-include/GridCommon.ini.example
@@ -6,7 +6,7 @@
;
; SQLite
- Include-Storage = "config-include/storage/SQLiteStandalone.ini";
+ ; Include-Storage = "config-include/storage/SQLiteStandalone.ini";
; MySql
; Uncomment these lines if you want to use mysql storage
@@ -32,6 +32,9 @@
;StorageProvider = "OpenSim.Data.PGSQL.dll"
;ConnectionString = "Server=localhost;Database=opensim;User Id=opensim; password=***;"
+ StorageProvider = "${Const|DataProvider}"
+ ConnectionString = "${Const|ConnectionString}"
+
[Hypergrid]
; Uncomment the variables in this section only if you are in
; Hypergrid configuration. Otherwise, ignore.
diff --git a/bin/config-include/StandaloneCommon.ini b/bin/config-include/StandaloneCommon.ini
new file mode 100644
index 0000000..1db62c8
--- /dev/null
+++ b/bin/config-include/StandaloneCommon.ini
@@ -0,0 +1,401 @@
+; This is the main configuration file for an instance of OpenSim running in standalone mode
+
+[DatabaseService]
+ ;
+ ; ### Choose the DB
+ ;
+
+ ; SQLite
+ ; Include-Storage = "config-include/storage/SQLiteStandalone.ini";
+
+ ; MySql
+ ; Uncomment these lines if you want to use mysql storage
+ ; Change the connection string to your db details
+ ;StorageProvider = "OpenSim.Data.MySQL.dll"
+ ;ConnectionString = "Data Source=localhost;Database=opensim;User ID=opensim;Password=***;Old Guids=true;"
+
+ ; Uncomment this line if you are using MySQL and want to use a different database for estates.
+ ; The usual application for this is to allow estates to be spread out across multiple simulators by share the same database.
+ ; Most people won't need to do this so only uncomment if you know what you're doing.
+ ;EstateConnectionString = "Data Source=localhost;Database=opensim;User ID=opensim;Password=***;Old Guids=true;"
+
+ ; MSSQL
+ ; Uncomment these lines if you want to use MSSQL storage
+ ; Change the connection string to your db details
+ ; The value for server property is shown in your SQL Server Management Studio login dialog.
+ ; (This sample is the default of express edition)
+ ;StorageProvider = "OpenSim.Data.MSSQL.dll"
+ ;ConnectionString = "Server=localhost\SQLEXPRESS;Database=opensim;User Id=opensim; password=***;"
+
+ ; PGSQL
+ ; Uncomment these lines if you want to use PGSQL storage
+ ; Change the connection string to your db details
+ ;StorageProvider = "OpenSim.Data.PGSQL.dll"
+ ;ConnectionString = "Server=localhost;Database=opensim;User Id=opensim; password=***;"
+
+ StorageProvider = "${Const|DataProvider}"
+ ConnectionString = "${Const|ConnectionString}"
+
+[Hypergrid]
+ ; Uncomment the variables in this section only if you are in
+ ; Hypergrid configuration. Otherwise, ignore.
+
+ ;# {HomeURI} {Hypergrid} {The Home URL of this world} {}
+ ;; If this is a standalone world, this is the address of this instance.
+ ;; If this is a grided simulator, this is the address of the external robust server that
+ ;; runs the UserAgentsService.
+ ;; For example http://myworld.com:9000 or http://myworld.com:8002
+ ;; This is a default that can be overwritten in some sections.
+ ; HomeURI = "${Const|BaseURL}:${Const|PublicPort}"
+
+ ;# {GatekeeperURI} {Hypergrid} {The URL of the gatekeeper of this world} {}
+ ;; If this is a standalone world, this is the address of this instance.
+ ;; If this is a grided simulator, this is the address of the external robust server
+ ;; that runs the Gatekeeper service.
+ ;; For example http://myworld.com:9000 or http://myworld.com:8002
+ ;; This is a default that can be overwritten in some sections.
+ ; GatekeeperURI = "${Const|BaseURL}:${Const|PublicPort}"
+
+[Modules]
+ ;; Choose one cache module and the corresponding config file, if it exists.
+ ;; Copy the config .example file into your own .ini file and alter that
+ ;; We recommend the use of the FlotsamAssetCache since this is most actively maintained.
+
+ AssetCaching = "FlotsamAssetCache"
+ Include-FlotsamCache = "config-include/FlotsamCache.ini"
+
+ ;AssetCaching = "CenomeMemoryAssetCache"
+ ;Include-CenomeCache = "config-include/CenomeCache.ini"
+
+ ;AssetCaching = "GlynnTuckerAssetCache"
+
+ ;; Authorization is not on by default, as it depends on external php
+ ;AuthorizationServices = "LocalAuthorizationServicesConnector"
+
+[AssetService]
+ DefaultAssetLoader = "OpenSim.Framework.AssetLoader.Filesystem.dll"
+ AssetLoaderArgs = "assets/AssetSets.xml"
+
+[GridService]
+ ;; For in-memory region storage (default)
+ StorageProvider = "OpenSim.Data.Null.dll:NullRegionData"
+ ;;--- For MySql region storage (alternative)
+ ;StorageProvider = "OpenSim.Data.MySQL.dll:MySqlRegionData"
+
+ ;; Directory for map tile images of remote regions
+ ; MapTileDirectory = "./maptiles"
+
+ ;; Next, we can specify properties of regions, including default and fallback regions
+ ;; The syntax is: Region_ = ""
+ ;; where can be DefaultRegion, FallbackRegion, NoDirectLogin, Persistent, LockedOut
+ ;;
+ ;; DefaultRegion If a local login cannot be placed in the required region (e.g. home region does not exist, avatar is not allowed entry, etc.)
+ ;; then this region becomes the destination. Only the first online default region will be used. If no DefaultHGRegion
+ ;; is specified then this will also be used as the region for hypergrid connections that require it (commonly because they have not specified
+ ;; an explicit region.
+ ;;
+ ;; DefaultHGRegion If an avatar connecting via the hypergrid does not specify a region, then they are placed here. Only the first online
+ ;; region will be used.
+ ;;
+ ;; FallbackRegion If the DefaultRegion is not available for a local login, then any FallbackRegions are tried instead. These are tried in the
+ ;; order specified. This only applies to local logins at this time, not Hypergrid connections.
+ ;;
+ ;; NoDirectLogin A hypergrid user cannot directly connect to this region. This does not apply to local logins.
+ ;;
+ ;; Persistent When the simulator is shutdown, the region is signalled as offline but left registered on the grid.
+ ;;
+ ;; For example:
+ Region_Welcome_Area = "DefaultRegion, FallbackRegion"
+
+ ;; Allow supporting viewers to export content
+ ;; Set to false to prevent export
+ ExportSupported = true
+
+ ; === HG ONLY ===
+ ;; If you have this set under [Hypergrid], no need to set it here, leave it commented
+ ; GatekeeperURI="${Const|BaseURL}:${Const|PublicPort}"
+
+[LibraryModule]
+ ; Set this if you want to change the name of the OpenSim Library
+ ;LibraryName = "My World's Library"
+
+[LoginService]
+ WelcomeMessage = "Welcome, Avatar!"
+ ;; If you have Gatekeeper set under [Hypergrid], no need to set it here, leave it commented
+ ; GatekeeperURI = "${Const|BaseURL}:${Const|PublicPort}"
+
+ SRV_HomeURI = "${Const|BaseURL}:${Const|PublicPort}"
+ SRV_InventoryServerURI = "${Const|BaseURL}:${Const|PublicPort}"
+ SRV_AssetServerURI = "${Const|BaseURL}:${Const|PublicPort}"
+ SRV_ProfileServerURI = "${Const|BaseURL}:${Const|PublicPort}"
+ SRV_FriendsServerURI = "${Const|BaseURL}:${Const|PublicPort}"
+ SRV_IMServerURI = "${Const|BaseURL}:${Const|PublicPort}"
+
+ ;; For Viewer 2
+ MapTileURL = "${Const|BaseURL}:${Const|PublicPort}/"
+
+ ; Url to search service
+ ; SearchURL = "${Const|BaseURL}:${Const|PublicPort}";
+
+ ; For V3 destination guide
+ ; DestinationGuide = "${Const|BaseURL}/guide"
+
+ ; The minimum user level required for a user to be able to login. 0 by default
+ ; If you disable a particular user's account then you can set their login level below this number.
+ ; You can also change this level from the console though these changes will not be persisted.
+ ; MinLoginLevel = 0
+
+ ;; Ask co-operative viewers to use a different currency name
+ ;Currency = ""
+
+ ;; Set minimum fee to publish classified
+ ; ClassifiedFee = 0
+
+ ; Basic Login Service Dos Protection Tweaks
+ ; ;
+ ; ; Some Grids/Users use a transparent proxy that makes use of the X-Forwarded-For HTTP Header, If you do, set this to true
+ ; ; If you set this to true and you don't have a transparent proxy, it may allow attackers to put random things in the X-Forwarded-For header to
+ ; ; get around this basic DOS protection.
+ ; DOSAllowXForwardedForHeader = false
+ ; ;
+ ; ; The protector adds up requests during this rolling period of time, default 10 seconds
+ ; DOSRequestTimeFrameMS = 10000
+ ; ;
+ ; ; The amount of requests in the above timeframe from the same endpoint that triggers protection
+ ; DOSMaxRequestsInTimeFrame = 5
+ ; ;
+ ; ; The amount of time that a specific endpoint is blocked. Default 2 minutes.
+ ; DOSForgiveClientAfterMS = 120000
+ ; ;
+ ; ; To turn off basic dos protection, set the DOSMaxRequestsInTimeFrame to 0.
+
+[FreeswitchService]
+ ;; If FreeSWITCH is not being used then you don't need to set any of these parameters
+ ;;
+ ;; The IP address of your FreeSWITCH server. The common case is for this to be the same as the server running the OpenSim standalone
+ ;; This has to be set for the FreeSWITCH service to work
+ ;; This address must be reachable by viewers.
+ ;ServerAddress = 127.0.0.1
+
+ ;; The following configuration parameters are optional
+
+ ;; By default, this is the same as the ServerAddress
+ ; Realm = 127.0.0.1
+
+ ;; By default, this is the same as the ServerAddress on port 5060
+ ; SIPProxy = 127.0.0.1:5060
+
+ ;; Default is 5000ms
+ ; DefaultTimeout = 5000
+
+ ;; The dial plan context. Default is "default"
+ ; Context = default
+
+ ;; Currently unused
+ ; UserName = freeswitch
+
+ ;; Currently unused
+ ; Password = password
+
+ ;; The following parameters are for STUN = Simple Traversal of UDP through NATs
+ ;; See http://wiki.freeswitch.org/wiki/NAT_Traversal
+ ;; stun.freeswitch.org is not guaranteed to be running so use it in
+ ;; production at your own risk
+ ; EchoServer = 127.0.0.1
+ ; EchoPort = 50505
+ ; AttemptSTUN = false
+
+[GridInfoService]
+ ; These settings are used to return information on a get_grid_info call.
+ ; Client launcher scripts and third-party clients make use of this to
+ ; autoconfigure the client and to provide a nice user experience. If you
+ ; want to facilitate that, you should configure the settings here according
+ ; to your grid or standalone setup.
+ ;
+ ; See http://opensimulator.org/wiki/GridInfo
+
+ ; login uri: for grid this is the login server URI
+ login = ${Const|BaseURL}:${Const|PublicPort}/
+
+ ; long grid name: the long name of your grid
+ gridname = "the lost continent of hippo"
+
+ ; short grid name: the short name of your grid
+ gridnick = "hippogrid"
+
+ ; login page: optional: if it exists it will be used to tell the client to use
+ ; this as splash page. May also be served from an external web server, e.g. for
+ ; information on a standalone
+ ;welcome = ${Const|BaseURL}/welcome
+
+ ; helper uri: optional: if it exists it will be used to tell the client to use
+ ; this for all economy related things
+ ;economy = ${Const|BaseURL}/economy
+
+ ; web page of grid: optional: page providing further information about your grid
+ ;about = ${Const|BaseURL}/about
+
+ ; account creation: optional: page providing further information about obtaining
+ ; a user account on your grid
+ ;register = ${Const|BaseURL}/register
+
+ ; help: optional: page providing further assistance for users of your grid
+ ;help = ${Const|BaseURL}/help
+
+ ; password help: optional: page providing password assistance for users of your grid
+ ;password = ${Const|BaseURL}/password
+
+ ; HG address of the gatekeeper, if you have one
+ ; this is the entry point for all the regions of the world
+ ; gatekeeper = ${Const|BaseURL}:${Const|PublicPort}/
+
+ ; HG user domain, if you have one
+ ; this is the entry point for all user-related HG services
+ ; uas = ${Const|BaseURL}:${Const|PublicPort}/
+
+[MapImageService]
+ ; Set this if you want to change the default
+ ; TilesStoragePath = "maptiles"
+
+[AuthorizationService]
+ ; If you have regions with access restrictions
+ ; specify them here using the convention
+ ; Region_ =
+ ; Valid flags are:
+ ; DisallowForeigners -- HG visitors not allowed
+ ; DisallowResidents -- only Admins and Managers allowed
+ ; Example:
+ ; Region_Test_1 = "DisallowForeigners"
+
+;;
+;; HG configurations
+;;
+[GatekeeperService]
+ ;; If you have GatekeeperURI set under [Hypergrid], no need to set it here, leave it commented
+ ; ExternalName = "${Const|BaseURL}:${Const|PublicPort}"
+
+ ; Does this grid allow incoming links to any region in it?
+ ; If false, HG TPs happen only to the Default regions specified in [GridService] section
+ AllowTeleportsToAnyRegion = true
+
+ ;; Regular expressions for controlling which client versions are accepted/denied.
+ ;; An empty string means nothing is checked.
+ ;;
+ ;; Example 1: allow only these 3 types of clients (any version of them)
+ ;; AllowedClients = "Imprudence|Hippo|Second Life"
+ ;;
+ ;; Example 2: allow all clients except these
+ ;; DeniedClients = "Twisted|Crawler|Cryolife|FuckLife|StreetLife|GreenLife|AntiLife|KORE-Phaze|Synlyfe|Purple Second Life|SecondLi |Emerald"
+ ;;
+ ;; Note that these are regular expressions, so every character counts.
+ ;; Also note that this is very weak security and should not be trusted as a reliable means
+ ;; for keeping bad clients out; modified clients can fake their identifiers.
+ ;;
+ ;;
+ ;AllowedClients = ""
+ ;DeniedClients = ""
+
+ ;; Are foreign visitors allowed?
+ ;ForeignAgentsAllowed = true
+ ;;
+ ;; If ForeignAgentsAllowed is true, make exceptions using AllowExcept.
+ ;; Leave blank or commented for no exceptions.
+ ; AllowExcept = "http://griefer.com:8002, http://enemy.com:8002"
+ ;;
+ ;; If ForeignAgentsAllowed is false, make exceptions using DisallowExcept
+ ;; Leave blank or commented for no exceptions.
+ ; DisallowExcept = "http://myfriendgrid.com:8002, http://myboss.com:8002"
+
+[UserAgentService]
+ ;; User level required to be contacted from other grids
+ ;LevelOutsideContacts = 0
+
+ ;; Restrictions on destinations of local users.
+ ;; Are local users allowed to visit other grids?
+ ;; What user level? Use variables of this forrm:
+ ;; ForeignTripsAllowed_Level_ = true | false
+ ;; (the default is true)
+ ;; For example:
+ ; ForeignTripsAllowed_Level_0 = false
+ ; ForeignTripsAllowed_Level_200 = true ; true is default, no need to say it
+ ;;
+ ;; If ForeignTripsAllowed is false, make exceptions using DisallowExcept
+ ;; Leave blank or commented for no exceptions.
+ ; DisallowExcept_Level_0 = "http://myothergrid.com:8002, http://boss.com:8002"
+ ;;
+ ;; If ForeignTripsAllowed is true, make exceptions using AllowExcept.
+ ;; Leave blank or commented for no exceptions.
+ ; AllowExcept_Level_200 = "http://griefer.com:8002, http://enemy.com:8002"
+
+ ;; This variable controls what is exposed to profiles of local users
+ ;; as seen from outside of this grid. Leave it uncommented for exposing
+ ;; UserTitle, UserFlags and the creation date. Uncomment and change to False
+ ;; to block this info from being exposed.
+ ; ShowUserDetailsInHGProfile = True
+
+[HGInventoryService]
+ ;; If you have this set under [Hypergrid], no need to set it here, leave it commented
+ ; HomeURI = "${Const|BaseURL}:${Const|PublicPort}"
+
+[HGAssetService]
+ ;; If you have this set under [Hypergrid], no need to set it here, leave it commented
+ ; HomeURI = "${Const|BaseURL}:${Const|PublicPort}"
+
+ ;; The asset types that this grid can export to / import from other grids.
+ ;; Comma separated.
+ ;; Valid values are all the asset types in OpenMetaverse.AssetType, namely:
+ ;; Unknown, Texture, Sound, CallingCard, Landmark, Clothing, Object, Notecard, LSLText,
+ ;; LSLBytecode, TextureTGA, Bodypart, SoundWAV, ImageTGA, ImageJPEG, Animation, Gesture, Mesh
+ ;;
+ ;; Leave blank or commented if you don't want to apply any restrictions.
+ ;; A more strict, but still reasonable, policy may be to disallow the exchange
+ ;; of scripts, like so:
+ ; DisallowExport ="LSLText"
+ ; DisallowImport ="LSLBytecode"
+
+[HGInventoryAccessModule]
+ ;; If you have these set under [Hypergrid], no need to set it here, leave it commented
+ ; HomeURI = "${Const|BaseURL}:${Const|PublicPort}"
+ ; GatekeeperURI = "${Const|BaseURL}:${Const|PublicPort}"
+
+ ;; If you want to protect your assets from being copied by foreign visitors
+ ;; uncomment the next line. You may want to do this on sims that have licensed content.
+ ;; true = allow exports, false = disallow exports. True by default.
+ ; OutboundPermission = True
+
+ ;; Send visual reminder to local users that their inventories are unavailable while they are traveling
+ ;; and available when they return. True by default.
+ ;RestrictInventoryAccessAbroad = True
+
+[HGFriendsModule]
+ ; User level required to be able to send friendship invitations to foreign users
+ ;LevelHGFriends = 0;
+
+[Messaging]
+ ; === HG ONLY ===
+ ;; If you have this set under [Hypergrid], no need to set it here, leave it commented
+ ; GatekeeperURI = "${Const|BaseURL}:${Const|PublicPort}"
+
+[EntityTransfer]
+ ;; User level from which local users are allowed to HG teleport. Default 0 (all users)
+ ;LevelHGTeleport = 0
+
+ ;; Are local users restricted from taking their appearance abroad?
+ ;; Default is no restrictions
+ ;RestrictAppearanceAbroad = false
+
+ ;; If appearance is restricted, which accounts' appearances are allowed to be exported?
+ ;; Comma-separated list of account names
+ AccountForAppearance = "Test User, Astronaut Smith"
+
+[UserProfilesService]
+ ;; To use, set Enabled to true then configure for your site...
+ Enabled = false
+ LocalServiceModule = "OpenSim.Services.UserProfilesService.dll:UserProfilesService"
+
+ ;; Configure this for separate databse
+ ; ConnectionString = "Data Source=localhost;Database=opensim;User ID=opensim;Password=***;Old Guids=true;"
+ ; Realm = UserProfiles
+
+ UserAccountService = OpenSim.Services.UserAccountService.dll:UserAccountService
+ AuthenticationServiceModule = "OpenSim.Services.AuthenticationService.dll:PasswordAuthenticationService"
diff --git a/bin/config-include/StandaloneCommon.ini.example b/bin/config-include/StandaloneCommon.ini.example
index 8931557..53f0da2 100644
--- a/bin/config-include/StandaloneCommon.ini.example
+++ b/bin/config-include/StandaloneCommon.ini.example
@@ -6,7 +6,7 @@
;
; SQLite
- Include-Storage = "config-include/storage/SQLiteStandalone.ini";
+ ;Include-Storage = "config-include/storage/SQLiteStandalone.ini";
; MySql
; Uncomment these lines if you want to use mysql storage
@@ -33,6 +33,9 @@
;StorageProvider = "OpenSim.Data.PGSQL.dll"
;ConnectionString = "Server=localhost;Database=opensim;User Id=opensim; password=***;"
+ StorageProvider = "${Const|DataProvider}"
+ ConnectionString = "${Const|ConnectionString}"
+
[Hypergrid]
; Uncomment the variables in this section only if you are in
; Hypergrid configuration. Otherwise, ignore.
--
cgit v1.1