Tuning of OpenSim.ini
Here are some settings as they can be set in addition to the necessary region settings. This whole page contains optional settings only.
The async_call_method sets the method that OpenSim will use to fire asynchronous events. Default is “SmartThreadPool”.
[Startup]
; async_call_method = "SmartThreadPool"
If OpenSim runs SmartThreadPool on a powerful computer, the maximum number of threads can be increased.
[Startup] MinPoolThreads = 32 MaxPoolThreads = 300
Allow the simulator to start up even if in Regions.ini is no region configuration or the file is missing. If set to “false” (default) the OpenSim console on startup asks questions to create a Regions.ini with configuration for one first region. Setting it to “true” may help debugging serious startup problems.
[Startup]
; allow_regionless = false
If a telehub is defined in Region Details, avatars will always be teleported there, no matter which coordinates they use in the map. The following parameter allows avatars to alternatively teleport to landmarks from their inventory, thus avoiding the telehub. Default is “false”.
[Startup]
TelehubAllowLandmark = true
When a region crashed, it is recommended to not only restart that region, but the whole OpenSim application. This increases reliability, because sometimes the other regions of the same instance of OpenSim are affected by the crash. Default is “false”.
[Startup] InworldRestartShutsDown = true
The cache for sculpt maps can be disabled, but this will cost you extra requests to the grid’s asset server. Default is “true”, but the OSGrid example configuration sets it to “false”. Maybe there are sometimes problems with .NET?
[Startup]
CacheSculptMaps = false
If GenerateMaptiles is “true”, then maptiles are generated using the MapImageModule selected below. If “false”, then the texture referenced by MaptileStaticUUID is used instead. Details follow below, default is “true”.
[Map]
; GenerateMaptiles = true
The module to use in order to generate map images, “MapImageModule” is the default. “Warp3DImageModule” is an alternative experimental module that actually generates the best images, but has a memory leak. Therefore do not use Warp3DImageModule together with MaptileRefresh!
[Map]
; MapImageModule = "MapImageModule"
If desired, a running region can update the map tiles periodically to reflect building activity. This makes sense only if you have prims or other mesh on maptiles. Value is in seconds, default is zero meaning never.
[Map] ; MaptileRefresh = 0
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. Default is “true”.
[Map]
; DrawPrimOnMapTile = true
Texture the faces of the prims that are rendered on the map tiles. Default is “true”, this is only relevant if DrawPrimOnMapTile is true.
[Map]
; TexturePrims = true
Only texture prims that have a diagonal size greater than this number, default is 48 meter or pixel. Prims under this limit are shown in the median surface colour. This is only relevant if DrawPrimOnMapTile and TexturePrims are true.
[Map]
; TexturePrimSize = 48
Relevant for Warp3DImageModule only: Experimental attempt to render meshes and sculpties on the map which makes the image even more beautiful. Default is “false”.
[Map] ; RenderMeshes = false
Instead of generating images from the region data, there are two alternatives. First you can use static maptiles uploaded as texture images to the grid. The edge length in pixel must correspond to the region size in meter. This may be overridden on a per region basis in Regions.ini, which would be the better method in case of more than one region on the server. If you choose this first alternative, green dots for avatars and other runtime map symbols are added to the map image. The second alternative would be to load an image directly from a directory on the region server (not uploaded to the grid). That method is not decribed here because would lack the generation of runtime map symbols.
[Map] ; MapImageModule = "MapImageModule" ; MaptileRefresh = 0 GenerateMaptiles = false ; MaptileStaticUUID = "00000000-0000-0000-0000-000000000000"
This allows grid users with a UserLevel of 200 or more (“grid admins”) to assume god powers in the regions in this simulator. OpenSim default is “false”, but in the OpenSimDefaults.ini it is overwritten with “true”.
Policy of OSGrid: If you don’t trust grid admins, what are you doing there? => OSGrid default in OpenSim.ini is “true”.
[Permissions] allow_grid_gods = true
Set region_manager_is_god to “true” if region managers shall assume god powers in regions they manage. OpenSim default is “false”.
[Permissions] region_manager_is_god = true
The time to wait before disconecting an unresponsive client. The time is in seconds, default is 60 (one minute).
[ClientStack.LindenUDP]
AckTimeout = 600
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. This is especially important in artistic builds that depend on lights on the build for their appearance, since facelights will cause the building’s lights to possibly not be rendered. Default is “false”.
[ClientStack.LindenUDP] ; DisableFacelights = false
Maximum outbound bytes per second for a single scene. This can be used to throttle total outbound UDP traffic for a home simulator with low bandwidth. The default value is 0, meaning no throttling at the scene level. Example for 20 megabits is 2500000. Most OpenSim traffic is TCP though.
[ClientStack.LindenUDP]
; scene_throttle_max_bps = 0
Maximum bytes per second to send to any single client. This will override the user’s viewer preference settings to distribute the UDP traffic fairer between the avatars present on home simulators. The default value is 0, meaning no aggregate throttling on clients (only per-category throttling). Example for 1.5 megabits is 187500. Most OpenSim traffic is TCP though.
[ClientStack.LindenUDP]
; client_throttle_max_bps = 0
Distance in meters that whisper, say and shout should travel. Defaults are 10 meters (whisper), 20 meters (say) and 100 meters (shout). On theater regions for example enlarging these values could be useful.
[Chat]
; whisper_distance = 10
; say_distance = 20
; shout_distance = 100
Control whether group messages are forwarded to offline users, default is “true”. On high traffic regions one may set this to “false” to reduce data load.
[Messaging]
; ForwardOfflineGroupMessages = true
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. Default is “false”.
[BulletSim]
UseSeparatePhysicsThread = true
Enables the wind module, default is “true”.
[Wind] ; enabled = true
There are two wind plugins to choose between, “SimpleRandomWind” (default) and “ConfigurableWind”.
[Wind] ; wind_plugin = "SimpleRandomWind"
If you have chosen “SimpleRandomWind” above, you can set the strength only. Default is 1.0 and 0.0 would be no wind. (For ConfigurableWind see avg_strength instead.)
[Wind]
; strength = 1.0
The following settings are specific only to the “ConfigurableWind” plugin. Defaults: avg_strength = 5.0, avg_direction = 0.0, var_strength = 5.0, var_direction = 30.0, rate_change = 1.0. You can play around with the values which is fun with scripted sailing boats for example.
[Wind] ; avg_strength = 5.0 ; avg_direction = 0.0 ; var_strength = 5.0 ; var_direction = 30.0 ; rate_change = 1.0
If a region is having severe script execution problems, an emergency workaround is to turn off the physics engine with “false” for debugging. The XEngine is no longer supported.
[YEngine]
Enabled = true
Settings recommended in OSGrid, left uncommented there.
[YEngine]
ScriptStackSize = 256
ScriptHeapSize = 256
Maximal distance at which a VivoxVoice channel is silent. Values between 0 and 160 are allowed, default is 80.
[VivoxVoice]
; vivox_channel_max_range = 80
Distance before attenuation of a VivoxVoice channel applies. Values between 0 and 160 are allowed, default is 10.
[VivoxVoice]
; vivox_channel_clamping_distance = 10
Only message cached online users rather than all users, should make large groups with few online members messaging faster. Default is “false”, but OSGrid has set it to “true” in their example configuration.
[Groups]
MessageOnlineUsersOnly = true
If NoNPCGroup is “true”, NPCs will have no group title. If “false” for easy identification “- NPC -” is diplayed as group title. Default is “true”.
[NPC]
; NoNPCGroup = true
Allow to create NPCs by cloning any avatar in region, default is “true”. If for special reasons you allow NPC creation for normal residents or visitors (in osslEnable.ini), there is chance of misuse. You may set it to “false” in this case.
[NPC]
; AllowCloneOtherAvatars = true
With the default setting “pinhead-island” a new created region pops up with that silly circle island and many spikes in the water. Setting it to “flat” to get flat land on new regions.
[Terrain] InitialTerrain = "flat"
Continued: Configure OSSL function access