SimulatorFeatures
From OpenSimulator
Contents |
SimulatorFeaturesModule
This information is based on the current OpenSim development version. This has changed over time, occasionally in incoherent ways.
Overview
The SimulatorFeaturesModule provides support to the mechanism by which client programs (viewers) request information about some features or properties of a region, for example Bakes on mesh (BOM) support, version of LSL/OSSL syntax, etc.
Viewer should ask for this information every time they see a new region. Unfortunately some of this may require that the viewer already created an avatar on that region.
This information is sent via HTTP with llsd xml encoding. Some information specific to OpenSimulator is sent in a section (llsd map) OpenSimExtras.
Configuration
Some parameters are constant and defined in code. Others are defined by specific modules, some of which are optional. In fact, the SimulatorFeaturesModule itself is also optional.
The facilities available via the module are also very dependent on the OpenSimulation version or flavor.
This is a consequence of legacy decisions, unmanageable modularity and configurability, and blind selfish forking.
More work is needed to provide consistency, in particular because some of this information is not optional at all if one likes to have viewers that work correctly.
OpenSim
OpenSimExtras items in particular are configured in several places through the code, and configuration files, even some modules may override what was defined by others. A few examples are:
[SimulatorFeatures] ; Override search service url SearchServerURI = "url to search service" ; Override destination guide url DestinationGuideURI = "url to destination guide" ; Override map service url ;(this may be set in one of several other locations, but we can use this to be consistent) MapTileURL = "url to map service" [Chat] ; Distance in meters that ordinary chat should travel. Default is 20m say_distance = 20 ; Controls whether the chat module is enabled. Default is true. enabled = true; ; Distance in meters that whispers should travel. Default is 10m whisper_distance = 10 ; Distance in meters that shouts should travel. Default is 100m shout_distance = 100
example of data sent to viewer (dev 0.9.2 version)
<llsd> <map> <key>MeshRezEnabled</key><boolean>1</boolean> <key>MeshUploadEnabled</key><boolean>1</boolean> <key>MeshXferEnabled</key><boolean>1</boolean> <key>BakesOnMeshEnabled</key><boolean>1</boolean> <key>PhysicsMaterialsEnabled</key><boolean>1</boolean> <key>PhysicsShapeTypes</key> <map> <key>convex</key><boolean>1</boolean> <key>none</key><boolean>1</boolean> <key>prim</key><boolean>1</boolean> </map> <key>LSLSyntaxId</key><uuid>0ca3945b-ad46-5155-6d66-6b6c74370dd2</uuid> <key>AnimatedObjects</key> <map> <key>AnimatedObjectMaxTris</key><integer>150000</integer> <key>MaxAgentAnimatedObjectAttachments</key><integer>2</integer> </map> <key>MaxAgentAttachments</key><integer>38</integer> <key>MaxAgentGroupsBasic</key><integer>60</integer> <key>MaxAgentGroupsPremium</key><integer>60</integer> <key>OpenSimExtras</key> <map> <key>AvatarSkeleton</key><boolean>1</boolean> <key>AnimationSet</key><boolean>1</boolean> <key>MinSimHeight</key><real>-100</real> <key>MaxSimHeight</key><real>50000</real> <key>MinHeightmap</key><real>-100</real> <key>MaxHeightmap</key><real>4000</real> <key>currency-base-uri</key><string>http://my.grid.host:9000/</string> <key>map-server-url</key><string>http://my.grid.host:9004/</string> <key>ExportSupported</key><string>true</string> <key>SimulatorFPS</key><real>11.001100540161133</real> <key>SimulatorFPSFactor</key><real>4.9994997978210449</real> <key>SimulatorFPSWarnPercent</key><integer>60</integer> <key>SimulatorFPSCritPercent</key><integer>40</integer> <key>MinPrimScale</key><real>0.0010000000474974513</real> <key>MaxPrimScale</key><real>1024</real> <key>MinPhysPrimScale</key><real>0.0099999997764825821</real> <key>MaxPhysPrimScale</key><real>64</real> <key>GridName</key><string>testgridLocal</string> <key>GridNick</key><string>testgridLocal</string> <key>GridURL</key><string>http://my.grid.host:9004</string> <key>GridURLAlias</key><string>http://my.oldgrid.host:9004,http://my.localgrid.host:8003</string> <key>search-server-url</key><string>http://my.grid.host:9004/</string> <key>destination-guide-url</key><string>http://my.grid.host:80/guide/</string> <key>say-range</key><integer>20</integer> <key>whisper-range</key><integer>10</integer> <key>shout-range</key><integer>100</integer> </map> <key>AvatarHoverHeightEnabled</key><boolean>1</boolean> <key>menus</key> <map> <key>agent</key> <map> </map> <key>world</key> <map> </map> <key>tools</key> <map> </map> <key>advanced</key> <map> </map> <key>admin</key> <map> </map> </map> <key>MaxMaterialsPerTransaction</key><integer>50</integer> <key>RenderMaterialsCapability</key><real>3</real> </map> </llsd>