diff options
author | onefang | 2019-09-11 16:36:50 +1000 |
---|---|---|
committer | onefang | 2019-09-11 16:36:50 +1000 |
commit | 50cd1ffd32f69228e566f2b0b89f86ea0d9fe489 (patch) | |
tree | 52f2ab0c04f1a5d7d6ac5dc872981b4b156447e7 /bin/config-include | |
parent | Renamed branch to SledjChisl. (diff) | |
parent | Bump to release flavour, build 0. (diff) | |
download | opensim-SC_OLD-50cd1ffd32f69228e566f2b0b89f86ea0d9fe489.zip opensim-SC_OLD-50cd1ffd32f69228e566f2b0b89f86ea0d9fe489.tar.gz opensim-SC_OLD-50cd1ffd32f69228e566f2b0b89f86ea0d9fe489.tar.bz2 opensim-SC_OLD-50cd1ffd32f69228e566f2b0b89f86ea0d9fe489.tar.xz |
Merge branch 'SledjChisl'
Diffstat (limited to 'bin/config-include')
23 files changed, 6339 insertions, 0 deletions
diff --git a/bin/config-include/CenomeCache.ini.example b/bin/config-include/CenomeCache.ini.example new file mode 100644 index 0000000..4340493 --- /dev/null +++ b/bin/config-include/CenomeCache.ini.example | |||
@@ -0,0 +1,14 @@ | |||
1 | [AssetCache] | ||
2 | ;; | ||
3 | ;; Options for CenomeAssetCache | ||
4 | ;; | ||
5 | |||
6 | ; Max size of the cache in bytes | ||
7 | ; 134217728 = 128 MB, 26843556 = 256 MB, etc (default: 134217728) | ||
8 | MaxSize = 134217728 | ||
9 | |||
10 | ; How many assets it is possible to store in the cache (default: 4096) | ||
11 | MaxCount = 4096 | ||
12 | |||
13 | ; Expiration time in minutes (default: 30) | ||
14 | ExpirationTime = 30 | ||
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 @@ | |||
1 | [AssetCache] | ||
2 | ;; | ||
3 | ;; Options for FlotsamAssetCache | ||
4 | ;; | ||
5 | |||
6 | ; cache directory can be shared by multiple instances | ||
7 | CacheDirectory = ${Paths|CachePath}/assetcache | ||
8 | ; Other examples: | ||
9 | ;CacheDirectory = /directory/writable/by/OpenSim/instance | ||
10 | |||
11 | ; Log level | ||
12 | ; 0 - (Error) Errors only | ||
13 | ; 1 - (Info) Hit Rate Stats + Level 0 | ||
14 | ; 2 - (Debug) Cache Activity (Reads/Writes) + Level 1 | ||
15 | ; | ||
16 | LogLevel = 0 | ||
17 | |||
18 | ; How often should hit rates be displayed (given in AssetRequests) | ||
19 | ; 0 to disable | ||
20 | HitRateDisplay = 100 | ||
21 | |||
22 | ; Set to false for no memory cache | ||
23 | ; assets can be requested several times in short periods | ||
24 | ; so even a small memory cache is useful | ||
25 | MemoryCacheEnabled = false | ||
26 | |||
27 | ; If a memory cache hit happens, or the asset is still in memory | ||
28 | ; due to other causes, update the timestamp on the disk file anyway. | ||
29 | ; Don't turn this on unless you share your asset cache between simulators | ||
30 | ; AND use an external process, e.g. cron job, to clean it up. | ||
31 | UpdateFileTimeOnCacheHit = false | ||
32 | |||
33 | ; Enabling this will cache negative fetches. If an asset is negative-cached | ||
34 | ; it will not be re-requested from the asset server again for a while. | ||
35 | ; Generally, this is a good thing. | ||
36 | ; | ||
37 | ; Regular expiration settings (non-sliding) mean that the asset will be | ||
38 | ; retried after the time has expired. Sliding expiration means that | ||
39 | ; the time the negative cache will keep the asset is refreshed each | ||
40 | ; time a fetch is attempted. Use sliding expiration if you have rogue | ||
41 | ; scripts hammering the asset server with requests for nonexistent | ||
42 | ; assets. | ||
43 | ; | ||
44 | ; There are two cases where negative caching may cause issues: | ||
45 | ; | ||
46 | ; 1 - If an invalid asset is repeatedly requested by a script and that asset is | ||
47 | ; subsequently created, it will not be seen until fcache clear | ||
48 | ; is used. This is a very theoretical scenario since UUID collisions | ||
49 | ; are deemed to be not occuring in practice. | ||
50 | ; This can only become an issue with sliding expiration time. | ||
51 | ; | ||
52 | ; 2 - If the asset service is clustered, an asset may not have propagated | ||
53 | ; to all cluster members when it is first attempted to fetch it. | ||
54 | ; This may theoretically occur with networked vendor systems and | ||
55 | ; would lead to an asset not found message. However, after the | ||
56 | ; expiration time has elapsed, the asset will then be fetchable. | ||
57 | ; | ||
58 | ; The defaults below are suitable for all small to medium installations | ||
59 | ; including grids. | ||
60 | NegativeCacheEnabled = true | ||
61 | NegativeCacheTimeout = 120 | ||
62 | NegativeCacheSliding = false | ||
63 | |||
64 | ; Set to false for no file cache | ||
65 | FileCacheEnabled = true | ||
66 | |||
67 | ; How long {in hours} to keep assets cached in memory, .5 == 30 minutes | ||
68 | ; even a few minutes may mean many assets loaded to memory, if not all. | ||
69 | ; this is good if memory is not a problem. | ||
70 | ; if memory is a problem then a few seconds may actually save same. | ||
71 | ; see hit rates with console comand: fcache status | ||
72 | MemoryCacheTimeout = .016 ; one minute | ||
73 | |||
74 | ; How long {in hours} to keep assets cached on disk, .5 == 30 minutes | ||
75 | ; Specify 0 if you do not want your disk cache to expire | ||
76 | FileCacheTimeout = 48 | ||
77 | |||
78 | ; How often {in hours} should the disk be checked for expired files | ||
79 | ; Specify 0 to disable expiration checking | ||
80 | FileCleanupTimer = 0.0 ; disabled | ||
81 | |||
82 | ; If WAIT_ON_INPROGRESS_REQUESTS has been defined then this specifies how | ||
83 | ; long (in miliseconds) to block a request thread while trying to complete | ||
84 | ; an existing write to disk. | ||
85 | ; NOTE: THIS PARAMETER IS NOT CURRENTLY USED BY THE CACHE | ||
86 | ; WaitOnInprogressTimeout = 3000 | ||
87 | |||
88 | ; Number of tiers to use for cache directories (current valid | ||
89 | ; range 1 to 3) | ||
90 | ;CacheDirectoryTiers = 1 | ||
91 | |||
92 | ; Number of letters per path tier, 1 will create 16 directories | ||
93 | ; per tier, 2 - 256, 3 - 4096 and 4 - 65K | ||
94 | ;CacheDirectoryTierLength = 3 | ||
95 | |||
96 | ; Warning level for cache directory size | ||
97 | ;CacheWarnAt = 30000 | ||
diff --git a/bin/config-include/FlotsamCache.ini.example b/bin/config-include/FlotsamCache.ini.example new file mode 100644 index 0000000..4f16943 --- /dev/null +++ b/bin/config-include/FlotsamCache.ini.example | |||
@@ -0,0 +1,97 @@ | |||
1 | [AssetCache] | ||
2 | ;; | ||
3 | ;; Options for FlotsamAssetCache | ||
4 | ;; | ||
5 | |||
6 | ; cache directory can be shared by multiple instances | ||
7 | CacheDirectory = ./assetcache | ||
8 | ; Other examples: | ||
9 | ;CacheDirectory = /directory/writable/by/OpenSim/instance | ||
10 | |||
11 | ; Log level | ||
12 | ; 0 - (Error) Errors only | ||
13 | ; 1 - (Info) Hit Rate Stats + Level 0 | ||
14 | ; 2 - (Debug) Cache Activity (Reads/Writes) + Level 1 | ||
15 | ; | ||
16 | LogLevel = 0 | ||
17 | |||
18 | ; How often should hit rates be displayed (given in AssetRequests) | ||
19 | ; 0 to disable | ||
20 | HitRateDisplay = 100 | ||
21 | |||
22 | ; Set to false for no memory cache | ||
23 | ; assets can be requested several times in short periods | ||
24 | ; so even a small memory cache is useful | ||
25 | MemoryCacheEnabled = false | ||
26 | |||
27 | ; If a memory cache hit happens, or the asset is still in memory | ||
28 | ; due to other causes, update the timestamp on the disk file anyway. | ||
29 | ; Don't turn this on unless you share your asset cache between simulators | ||
30 | ; AND use an external process, e.g. cron job, to clean it up. | ||
31 | UpdateFileTimeOnCacheHit = false | ||
32 | |||
33 | ; Enabling this will cache negative fetches. If an asset is negative-cached | ||
34 | ; it will not be re-requested from the asset server again for a while. | ||
35 | ; Generally, this is a good thing. | ||
36 | ; | ||
37 | ; Regular expiration settings (non-sliding) mean that the asset will be | ||
38 | ; retried after the time has expired. Sliding expiration means that | ||
39 | ; the time the negative cache will keep the asset is refreshed each | ||
40 | ; time a fetch is attempted. Use sliding expiration if you have rogue | ||
41 | ; scripts hammering the asset server with requests for nonexistent | ||
42 | ; assets. | ||
43 | ; | ||
44 | ; There are two cases where negative caching may cause issues: | ||
45 | ; | ||
46 | ; 1 - If an invalid asset is repeatedly requested by a script and that asset is | ||
47 | ; subsequently created, it will not be seen until fcache clear | ||
48 | ; is used. This is a very theoretical scenario since UUID collisions | ||
49 | ; are deemed to be not occuring in practice. | ||
50 | ; This can only become an issue with sliding expiration time. | ||
51 | ; | ||
52 | ; 2 - If the asset service is clustered, an asset may not have propagated | ||
53 | ; to all cluster members when it is first attempted to fetch it. | ||
54 | ; This may theoretically occur with networked vendor systems and | ||
55 | ; would lead to an asset not found message. However, after the | ||
56 | ; expiration time has elapsed, the asset will then be fetchable. | ||
57 | ; | ||
58 | ; The defaults below are suitable for all small to medium installations | ||
59 | ; including grids. | ||
60 | NegativeCacheEnabled = true | ||
61 | NegativeCacheTimeout = 120 | ||
62 | NegativeCacheSliding = false | ||
63 | |||
64 | ; Set to false for no file cache | ||
65 | FileCacheEnabled = true | ||
66 | |||
67 | ; How long {in hours} to keep assets cached in memory, .5 == 30 minutes | ||
68 | ; even a few minutes may mean many assets loaded to memory, if not all. | ||
69 | ; this is good if memory is not a problem. | ||
70 | ; if memory is a problem then a few seconds may actually save same. | ||
71 | ; see hit rates with console comand: fcache status | ||
72 | MemoryCacheTimeout = .016 ; one minute | ||
73 | |||
74 | ; How long {in hours} to keep assets cached on disk, .5 == 30 minutes | ||
75 | ; Specify 0 if you do not want your disk cache to expire | ||
76 | FileCacheTimeout = 48 | ||
77 | |||
78 | ; How often {in hours} should the disk be checked for expired files | ||
79 | ; Specify 0 to disable expiration checking | ||
80 | FileCleanupTimer = 0.0 ; disabled | ||
81 | |||
82 | ; If WAIT_ON_INPROGRESS_REQUESTS has been defined then this specifies how | ||
83 | ; long (in miliseconds) to block a request thread while trying to complete | ||
84 | ; an existing write to disk. | ||
85 | ; NOTE: THIS PARAMETER IS NOT CURRENTLY USED BY THE CACHE | ||
86 | ; WaitOnInprogressTimeout = 3000 | ||
87 | |||
88 | ; Number of tiers to use for cache directories (current valid | ||
89 | ; range 1 to 3) | ||
90 | ;CacheDirectoryTiers = 1 | ||
91 | |||
92 | ; Number of letters per path tier, 1 will create 16 directories | ||
93 | ; per tier, 2 - 256, 3 - 4096 and 4 - 65K | ||
94 | ;CacheDirectoryTierLength = 3 | ||
95 | |||
96 | ; Warning level for cache directory size | ||
97 | ;CacheWarnAt = 30000 | ||
diff --git a/bin/config-include/Grid.ini b/bin/config-include/Grid.ini new file mode 100644 index 0000000..ab8f25d --- /dev/null +++ b/bin/config-include/Grid.ini | |||
@@ -0,0 +1,60 @@ | |||
1 | ;; | ||
2 | ;; Please don't change this file. | ||
3 | ;; All optional settings are in GridCommon.ini.example, | ||
4 | ;; which you can copy and change. | ||
5 | ;; | ||
6 | |||
7 | [Includes] | ||
8 | Include-Common = "config-include/GridCommon.ini" | ||
9 | |||
10 | [Modules] | ||
11 | AssetServices = "RemoteAssetServicesConnector" | ||
12 | InventoryServices = "RemoteXInventoryServicesConnector" | ||
13 | GridServices = "RemoteGridServicesConnector" | ||
14 | AvatarServices = "RemoteAvatarServicesConnector" | ||
15 | NeighbourServices = "NeighbourServicesOutConnector" | ||
16 | AuthenticationServices = "RemoteAuthenticationServicesConnector" | ||
17 | AuthorizationServices = "LocalAuthorizationServicesConnector" | ||
18 | PresenceServices = "RemotePresenceServicesConnector" | ||
19 | UserAccountServices = "RemoteUserAccountServicesConnector" | ||
20 | AgentPreferencesServices= "RemoteAgentPreferencesServicesConnector" | ||
21 | GridUserServices = "RemoteGridUserServicesConnector" | ||
22 | SimulationServices = "RemoteSimulationConnectorModule" | ||
23 | EntityTransferModule = "BasicEntityTransferModule" | ||
24 | InventoryAccessModule = "BasicInventoryAccessModule" | ||
25 | LandServices = "RemoteLandServicesConnector" | ||
26 | MapImageService = "MapImageServiceModule" | ||
27 | SearchModule = "BasicSearchModule" | ||
28 | MuteListService = "RemoteMuteListServicesConnector" | ||
29 | |||
30 | LandServiceInConnector = true | ||
31 | NeighbourServiceInConnector = true | ||
32 | SimulationServiceInConnector = true | ||
33 | LibraryModule = true | ||
34 | |||
35 | [SimulationDataStore] | ||
36 | LocalServiceModule = "OpenSim.Services.SimulationService.dll:SimulationDataService" | ||
37 | |||
38 | [EstateDataStore] | ||
39 | LocalServiceModule = "OpenSim.Services.EstateService.dll:EstateDataService" | ||
40 | |||
41 | [GridService] | ||
42 | LocalServiceModule = "OpenSim.Services.GridService.dll:GridService" | ||
43 | ; for the LocalGridServicesConnector which is used by the Remote one | ||
44 | StorageProvider = "OpenSim.Data.Null.dll:NullRegionData" | ||
45 | NetworkConnector = "OpenSim.Services.Connectors.dll:GridServicesConnector" | ||
46 | |||
47 | ; Because LocalGridServicesConnector starts this service, in grid mode we need to suppress | ||
48 | ; the inappropriate console commands that it registers. | ||
49 | SuppressConsoleCommands = true | ||
50 | |||
51 | [LibraryService] | ||
52 | LocalServiceModule = "OpenSim.Services.InventoryService.dll:LibraryService" | ||
53 | LibraryName = "OpenSim Library" | ||
54 | DefaultLibrary = "./inventory/Libraries.xml" | ||
55 | |||
56 | [Friends] | ||
57 | Connector = "OpenSim.Services.Connectors.dll:FriendsServicesConnector" | ||
58 | |||
59 | [MapImageService] | ||
60 | LocalServiceModule = "OpenSim.Services.Connectors.dll:MapImageServicesConnector" | ||
diff --git a/bin/config-include/GridCommon.ini b/bin/config-include/GridCommon.ini new file mode 100644 index 0000000..26accd9 --- /dev/null +++ b/bin/config-include/GridCommon.ini | |||
@@ -0,0 +1,255 @@ | |||
1 | ; This is the main configuration file for an instance of OpenSim running in grid mode | ||
2 | ; In particular, this one is set up for connecting to IG or MG. | ||
3 | |||
4 | [DatabaseService] | ||
5 | ; | ||
6 | ; ### Choose the DB | ||
7 | ; | ||
8 | |||
9 | ; SQLite | ||
10 | ; Include-Storage = "config-include/storage/SQLiteStandalone.ini"; | ||
11 | |||
12 | ; MySql | ||
13 | ; Uncomment these lines if you want to use mysql storage | ||
14 | ; Change the connection string to your db details | ||
15 | ;StorageProvider = "OpenSim.Data.MySQL.dll" | ||
16 | ;ConnectionString = "Data Source=localhost;Database=opensim;User ID=opensim;Password=***;Old Guids=true;" | ||
17 | ; Uncomment this line if you are using MySQL and want to use a different database for estates | ||
18 | ; The usual application for this is to allow estates to be spread out across multiple simulators by share the same database. | ||
19 | ; Most people won't need to do this so only uncomment if you know what you're doing. | ||
20 | ;EstateConnectionString = "Data Source=localhost;Database=opensim;User ID=opensim;Password=***;Old Guids=true;" | ||
21 | |||
22 | ; MSSQL | ||
23 | ; Uncomment these lines if you want to use MSSQL storage | ||
24 | ; Change the connection string to your db details | ||
25 | ; The value for server property is shown in your SQL Server Management Studio login dialog. | ||
26 | ; (This sample is the default of express edition) | ||
27 | ;StorageProvider = "OpenSim.Data.MSSQL.dll" | ||
28 | ;ConnectionString = "Server=localhost\SQLEXPRESS;Database=opensim;User Id=opensim; password=***;" | ||
29 | |||
30 | ; PGSQL | ||
31 | ; Uncomment these lines if you want to use PGSQL storage | ||
32 | ; Change the connection string to your db details | ||
33 | ;StorageProvider = "OpenSim.Data.PGSQL.dll" | ||
34 | ;ConnectionString = "Server=localhost;Database=opensim;User Id=opensim; password=***;" | ||
35 | |||
36 | StorageProvider = "${Const|DataProvider}" | ||
37 | ConnectionString = "${Const|ConnectionString}" | ||
38 | |||
39 | |||
40 | [Hypergrid] | ||
41 | ; Uncomment the variables in this section only if you are in | ||
42 | ; Hypergrid configuration. Otherwise, ignore. | ||
43 | |||
44 | ;# {HomeURI} {Hypergrid} {The Home URL of this world} {} | ||
45 | ;; If this is a standalone world, this is the address of this instance. | ||
46 | ;; If this is a grided simulator, this is the address of the external robust server that | ||
47 | ;; runs the UserAgentsService. | ||
48 | ;; For example http://myworld.com:9000 or http://myworld.com:8002 | ||
49 | ;; This is a default that can be overwritten in some sections. | ||
50 | HomeURI = "${Const|BaseURL}:${Const|PublicPort}" | ||
51 | |||
52 | ;# {GatekeeperURI} {Hypergrid} {The URL of the gatekeeper of this world} {} | ||
53 | ;; If this is a standalone world, this is the address of this instance. | ||
54 | ;; If this is a grided simulator, this is the address of the external robust server | ||
55 | ;; that runs the Gatekeeper service. | ||
56 | ;; For example http://myworld.com:9000 or http://myworld.com:8002 | ||
57 | ;; This is a default that can be overwritten in some sections. | ||
58 | GatekeeperURI = "${Const|BaseURL}:${Const|PublicPort}" | ||
59 | |||
60 | [Modules] | ||
61 | ;; Choose one cache module and the corresponding config file, if it exists. | ||
62 | ;; Copy the config .example file into your own .ini file and adapt that. | ||
63 | ;; We recommend the use of the FlotsamAssetCache since this is most actively maintained. | ||
64 | ; I think only Windows needs caching, haven't noticed any difference under Linux, which uses spare memory for file caching anyway. | ||
65 | |||
66 | AssetCaching = "FlotsamAssetCache" | ||
67 | Include-FlotsamCache = "config-include/FlotsamCache.ini" | ||
68 | |||
69 | ;AssetCaching = "CenomeMemoryAssetCache" | ||
70 | ;Include-CenomeCache = "config-include/CenomeCache.ini" | ||
71 | |||
72 | ;AssetCaching = "GlynnTuckerAssetCache" | ||
73 | |||
74 | ;; Optionally, the port for the LLProxyLoginModule module can be changed | ||
75 | ;Setup_LLProxyLoginModule = "9090/" | ||
76 | |||
77 | ;; Authorization is not on by default, as it depends on external php | ||
78 | ;AuthorizationServices = "RemoteAuthorizationServicesConnector" | ||
79 | |||
80 | [AssetService] | ||
81 | DefaultAssetLoader = "OpenSim.Framework.AssetLoader.Filesystem.dll" | ||
82 | AssetLoaderArgs = "assets/AssetSets.xml" | ||
83 | |||
84 | ; | ||
85 | ; Change this to your grid-wide asset server. Do not add a slash to the end of any of these addresses. | ||
86 | ; | ||
87 | AssetServerURI = "${Const|BaseURL}:${Const|AssetServerPort}" | ||
88 | |||
89 | [InventoryService] | ||
90 | ; | ||
91 | ; Change this to your grid-wide inventory server | ||
92 | ; | ||
93 | InventoryServerURI = "${Const|GridURL}:${Const|PrivatePort}" | ||
94 | ;MaxRetries = 0 | ||
95 | |||
96 | [GridInfo] | ||
97 | ; | ||
98 | ; Change this to your grid info service | ||
99 | ; | ||
100 | GridInfoURI = "${Const|GridURL}:${Const|PublicPort}" | ||
101 | |||
102 | [GridService] | ||
103 | ; | ||
104 | ; Change this to your grid-wide grid server | ||
105 | ; | ||
106 | GridServerURI = "${Const|GridURL}:${Const|PrivatePort}" | ||
107 | AllowHypergridMapSearch = true | ||
108 | |||
109 | ;; Directory for map tile images of linked regions | ||
110 | MapTileDirectory = "${Paths|CachePath}/maptiles" | ||
111 | |||
112 | ; === HG ONLY === | ||
113 | ;; Change this to the address of your Gatekeeper service | ||
114 | ;; (usually bundled with the rest of the services in one | ||
115 | ;; Robust server in port ${Const|PublicPort}, but not always) | ||
116 | GatekeeperURI="${Const|GridURL}:${Const|PublicPort}" | ||
117 | |||
118 | [EstateDataStore] | ||
119 | ; | ||
120 | ; Uncomment if you want centralized estate data at robust server, | ||
121 | ; in which case the URL in [EstateService] will be used | ||
122 | ; | ||
123 | ;LocalServiceModule = "OpenSim.Services.Connectors.dll:EstateDataRemoteConnector" | ||
124 | |||
125 | [EstateService] | ||
126 | EstateServerURI = "${Const|GridURL}:${Const|PrivatePort}" | ||
127 | |||
128 | [Messaging] | ||
129 | ; === HG ONLY === | ||
130 | ;; Change this to the address of your Gatekeeper service | ||
131 | ;; (usually bundled with the rest of the services in one | ||
132 | ;; Robust server in port ${Const|PublicPort}, but not always) | ||
133 | GatekeeperURI = "${Const|GridURL}:${Const|PublicPort}" | ||
134 | |||
135 | [AvatarService] | ||
136 | ; | ||
137 | ; Change this to your grid-wide grid server | ||
138 | ; | ||
139 | AvatarServerURI = "${Const|GridURL}:${Const|PrivatePort}" | ||
140 | |||
141 | [AgentPreferencesService] | ||
142 | ; | ||
143 | ; Change this to your grid-wide avatar prefs server | ||
144 | ; | ||
145 | AgentPreferencesServerURI = "${Const|GridURL}:${Const|PrivatePort}" | ||
146 | |||
147 | [PresenceService] | ||
148 | ; | ||
149 | ; Change this to your grid-wide presence server | ||
150 | ; | ||
151 | PresenceServerURI = "${Const|GridURL}:${Const|PrivatePort}" | ||
152 | |||
153 | [UserAccountService] | ||
154 | ; | ||
155 | ; Change this to your grid-wide user accounts server | ||
156 | ; | ||
157 | UserAccountServerURI = "${Const|GridURL}:${Const|PrivatePort}" | ||
158 | |||
159 | [GridUserService] | ||
160 | ; | ||
161 | ; Change this to your grid-wide user accounts server | ||
162 | ; | ||
163 | GridUserServerURI = "${Const|GridURL}:${Const|PrivatePort}" | ||
164 | |||
165 | [AuthenticationService] | ||
166 | ; | ||
167 | ; Change this to your grid-wide authentication server | ||
168 | ; | ||
169 | AuthenticationServerURI = "${Const|GridURL}:${Const|PrivatePort}" | ||
170 | |||
171 | [FriendsService] | ||
172 | ; | ||
173 | ; Change this to your grid-wide friends server | ||
174 | ; | ||
175 | FriendsServerURI = "${Const|GridURL}:${Const|PrivatePort}" | ||
176 | |||
177 | [HGInventoryAccessModule] | ||
178 | ; | ||
179 | ; === HG ONLY === | ||
180 | ; Change this to your server | ||
181 | ; accessible from other grids | ||
182 | ; | ||
183 | HomeURI = "${Const|GridURL}:${Const|PublicPort}" | ||
184 | GatekeeperURI = "${Const|GridURL}:${Const|PublicPort}" | ||
185 | ;; If you want to protect your assets from being copied by foreign visitors | ||
186 | ;; set this to false. You may want to do this on sims that have licensed content. | ||
187 | ;; Default is true. | ||
188 | OutboundPermission = True | ||
189 | |||
190 | ;; Send visual reminder to local users that their inventories are unavailable while they are traveling | ||
191 | ;; and available when they return. True by default. | ||
192 | ;RestrictInventoryAccessAbroad = True | ||
193 | |||
194 | ;; Warning: advanced and unusual. Default is false. | ||
195 | ;; Enables configurations where grids share user services, including inventory, | ||
196 | ;; while separating regions' assets from users' assets. Asset transfer between | ||
197 | ;; the users' asset server and the regions' asset server is done in HG-like manner. | ||
198 | ; CheckSeparateAssets = false | ||
199 | ; RegionHGAssetServerURI = ${Const|GridURL}:${Const|PublicPort} | ||
200 | |||
201 | |||
202 | [HGAssetService] | ||
203 | ; | ||
204 | ; === HG ONLY === | ||
205 | ; Change this to your server | ||
206 | ; accessible from other grids | ||
207 | ; | ||
208 | HomeURI = "${Const|GridURL}:${Const|PublicPort}" | ||
209 | |||
210 | ;; The asset types that this grid can export to / import from other grids. | ||
211 | ;; Comma separated. | ||
212 | ;; Valid values are all the asset types in OpenMetaverse.AssetType, namely: | ||
213 | ;; Unknown, Texture, Sound, CallingCard, Landmark, Clothing, Object, Notecard, LSLText, | ||
214 | ;; LSLBytecode, TextureTGA, Bodypart, SoundWAV, ImageTGA, ImageJPEG, Animation, Gesture, Mesh | ||
215 | ;; | ||
216 | ;; Leave blank or commented if you don't want to apply any restrictions. | ||
217 | ;; A more strict, but still reasonable, policy may be to disallow the exchange | ||
218 | ;; of scripts, like so: | ||
219 | ; DisallowExport ="LSLText" | ||
220 | ; DisallowImport ="LSLBytecode" | ||
221 | |||
222 | [HGFriendsModule] | ||
223 | ; User level required to be able to send friendship invitations to foreign users | ||
224 | LevelHGFriends = 0; | ||
225 | |||
226 | [UserAgentService] | ||
227 | ; | ||
228 | ; === HG ONLY === | ||
229 | ; Change this to your user agent server (HG robust) | ||
230 | ; | ||
231 | UserAgentServerURI = "${Const|GridURL}:${Const|PublicPort}" | ||
232 | |||
233 | [MapImageService] | ||
234 | MapImageServerURI = "${Const|GridURL}:${Const|PrivatePort}" | ||
235 | |||
236 | [AuthorizationService] | ||
237 | ; If you have regions with access restrictions | ||
238 | ; specify them here using the convention | ||
239 | ; Region_<Region_Name> = <flags> | ||
240 | ; Valid flags are: | ||
241 | ; DisallowForeigners -- HG visitors not allowed | ||
242 | ; DisallowResidents -- only Admins and Managers allowed | ||
243 | ; Example: | ||
244 | ; Region_Test_1 = "DisallowForeigners" | ||
245 | |||
246 | ;; Uncomment if you are using SimianGrid for grid services | ||
247 | [SimianGrid] | ||
248 | ;; SimianGrid services URL | ||
249 | ;; SimianServiceURL = "http://grid.sciencesim.com/Grid/" | ||
250 | |||
251 | ;; Capability assigned by the grid administrator for the simulator | ||
252 | ;; SimulatorCapability = "00000000-0000-0000-0000-000000000000" | ||
253 | |||
254 | [MuteListService] | ||
255 | MuteListServerURI = "${Const|BaseURL}:${Const|PrivatePort}" | ||
diff --git a/bin/config-include/GridCommon.ini.example b/bin/config-include/GridCommon.ini.example new file mode 100644 index 0000000..47771e3 --- /dev/null +++ b/bin/config-include/GridCommon.ini.example | |||
@@ -0,0 +1,252 @@ | |||
1 | ; This is the main configuration file for an instance of OpenSim running in grid mode | ||
2 | |||
3 | [DatabaseService] | ||
4 | ; | ||
5 | ; ### Choose the DB | ||
6 | ; | ||
7 | |||
8 | ; SQLite | ||
9 | ; Include-Storage = "config-include/storage/SQLiteStandalone.ini"; | ||
10 | |||
11 | ; MySql | ||
12 | ; Uncomment these lines if you want to use mysql storage | ||
13 | ; Change the connection string to your db details | ||
14 | ;StorageProvider = "OpenSim.Data.MySQL.dll" | ||
15 | ;ConnectionString = "Data Source=localhost;Database=opensim;User ID=opensim;Password=***;Old Guids=true;" | ||
16 | ; Uncomment this line if you are using MySQL and want to use a different database for estates | ||
17 | ; The usual application for this is to allow estates to be spread out across multiple simulators by share the same database. | ||
18 | ; Most people won't need to do this so only uncomment if you know what you're doing. | ||
19 | ;EstateConnectionString = "Data Source=localhost;Database=opensim;User ID=opensim;Password=***;Old Guids=true;" | ||
20 | |||
21 | ; MSSQL | ||
22 | ; Uncomment these lines if you want to use MSSQL storage | ||
23 | ; Change the connection string to your db details | ||
24 | ; The value for server property is shown in your SQL Server Management Studio login dialog. | ||
25 | ; (This sample is the default of express edition) | ||
26 | ;StorageProvider = "OpenSim.Data.MSSQL.dll" | ||
27 | ;ConnectionString = "Server=localhost\SQLEXPRESS;Database=opensim;User Id=opensim; password=***;" | ||
28 | |||
29 | ; PGSQL | ||
30 | ; Uncomment these lines if you want to use PGSQL storage | ||
31 | ; Change the connection string to your db details | ||
32 | ;StorageProvider = "OpenSim.Data.PGSQL.dll" | ||
33 | ;ConnectionString = "Server=localhost;Database=opensim;User Id=opensim; password=***;" | ||
34 | |||
35 | StorageProvider = "${Const|DataProvider}" | ||
36 | ConnectionString = "${Const|ConnectionString}" | ||
37 | |||
38 | [Hypergrid] | ||
39 | ; Uncomment the variables in this section only if you are in | ||
40 | ; Hypergrid configuration. Otherwise, ignore. | ||
41 | |||
42 | ;# {HomeURI} {Hypergrid} {The Home URL of this world} {} | ||
43 | ;; If this is a standalone world, this is the address of this instance. | ||
44 | ;; If this is a grided simulator, this is the address of the external robust server that | ||
45 | ;; runs the UserAgentsService. | ||
46 | ;; For example http://myworld.com:9000 or http://myworld.com:8002 | ||
47 | ;; This is a default that can be overwritten in some sections. | ||
48 | ; HomeURI = "${Const|BaseURL}:${Const|PublicPort}" | ||
49 | |||
50 | ;# {GatekeeperURI} {Hypergrid} {The URL of the gatekeeper of this world} {} | ||
51 | ;; If this is a standalone world, this is the address of this instance. | ||
52 | ;; If this is a grided simulator, this is the address of the external robust server | ||
53 | ;; that runs the Gatekeeper service. | ||
54 | ;; For example http://myworld.com:9000 or http://myworld.com:8002 | ||
55 | ;; This is a default that can be overwritten in some sections. | ||
56 | ; GatekeeperURI = "${Const|BaseURL}:${Const|PublicPort}" | ||
57 | |||
58 | [Modules] | ||
59 | ;; Choose one cache module and the corresponding config file, if it exists. | ||
60 | ;; Copy the config .example file into your own .ini file and adapt that. | ||
61 | ;; We recommend the use of the FlotsamAssetCache since this is most actively maintained. | ||
62 | |||
63 | AssetCaching = "FlotsamAssetCache" | ||
64 | Include-FlotsamCache = "config-include/FlotsamCache.ini" | ||
65 | |||
66 | ;AssetCaching = "CenomeMemoryAssetCache" | ||
67 | ;Include-CenomeCache = "config-include/CenomeCache.ini" | ||
68 | |||
69 | ;AssetCaching = "GlynnTuckerAssetCache" | ||
70 | |||
71 | ;; Optionally, the port for the LLProxyLoginModule module can be changed | ||
72 | ;Setup_LLProxyLoginModule = "9090/" | ||
73 | |||
74 | ;; Authorization is not on by default, as it depends on external php | ||
75 | ;AuthorizationServices = "RemoteAuthorizationServicesConnector" | ||
76 | |||
77 | [AssetService] | ||
78 | DefaultAssetLoader = "OpenSim.Framework.AssetLoader.Filesystem.dll" | ||
79 | AssetLoaderArgs = "assets/AssetSets.xml" | ||
80 | |||
81 | ; | ||
82 | ; Change this to your grid-wide asset server. Do not add a slash to the end of any of these addresses. | ||
83 | ; | ||
84 | AssetServerURI = "${Const|BaseURL}:${Const|PrivatePort}" | ||
85 | |||
86 | [InventoryService] | ||
87 | ; | ||
88 | ; Change this to your grid-wide inventory server | ||
89 | ; | ||
90 | InventoryServerURI = "${Const|BaseURL}:${Const|PrivatePort}" | ||
91 | ;MaxRetries = 0 | ||
92 | |||
93 | [GridInfo] | ||
94 | ; | ||
95 | ; Change this to your grid info service | ||
96 | ; | ||
97 | GridInfoURI = "${Const|BaseURL}:${Const|PublicPort}" | ||
98 | |||
99 | [GridService] | ||
100 | ; | ||
101 | ; Change this to your grid-wide grid server | ||
102 | ; | ||
103 | GridServerURI = "${Const|BaseURL}:${Const|PrivatePort}" | ||
104 | ;AllowHypergridMapSearch = true | ||
105 | |||
106 | ;; Directory for map tile images of linked regions | ||
107 | ; MapTileDirectory = "./maptiles" | ||
108 | |||
109 | ; === HG ONLY === | ||
110 | ;; Change this to the address of your Gatekeeper service | ||
111 | ;; (usually bundled with the rest of the services in one | ||
112 | ;; Robust server in port ${Const|PublicPort}, but not always) | ||
113 | GatekeeperURI="${Const|BaseURL}:${Const|PublicPort}" | ||
114 | |||
115 | [EstateDataStore] | ||
116 | ; | ||
117 | ; Uncomment if you want centralized estate data at robust server, | ||
118 | ; in which case the URL in [EstateService] will be used | ||
119 | ; | ||
120 | ;LocalServiceModule = "OpenSim.Services.Connectors.dll:EstateDataRemoteConnector" | ||
121 | |||
122 | [EstateService] | ||
123 | EstateServerURI = "${Const|BaseURL}:${Const|PrivatePort}" | ||
124 | |||
125 | [Messaging] | ||
126 | ; === HG ONLY === | ||
127 | ;; Change this to the address of your Gatekeeper service | ||
128 | ;; (usually bundled with the rest of the services in one | ||
129 | ;; Robust server in port ${Const|PublicPort}, but not always) | ||
130 | GatekeeperURI = "${Const|BaseURL}:${Const|PublicPort}" | ||
131 | |||
132 | [AvatarService] | ||
133 | ; | ||
134 | ; Change this to your grid-wide grid server | ||
135 | ; | ||
136 | AvatarServerURI = "${Const|BaseURL}:${Const|PrivatePort}" | ||
137 | |||
138 | [AgentPreferencesService] | ||
139 | ; | ||
140 | ; Change this to your grid-wide avatar prefs server | ||
141 | ; | ||
142 | AgentPreferencesServerURI = "${Const|BaseURL}:${Const|PrivatePort}" | ||
143 | |||
144 | [PresenceService] | ||
145 | ; | ||
146 | ; Change this to your grid-wide presence server | ||
147 | ; | ||
148 | PresenceServerURI = "${Const|BaseURL}:${Const|PrivatePort}" | ||
149 | |||
150 | [UserAccountService] | ||
151 | ; | ||
152 | ; Change this to your grid-wide user accounts server | ||
153 | ; | ||
154 | UserAccountServerURI = "${Const|BaseURL}:${Const|PrivatePort}" | ||
155 | |||
156 | [GridUserService] | ||
157 | ; | ||
158 | ; Change this to your grid-wide user accounts server | ||
159 | ; | ||
160 | GridUserServerURI = "${Const|BaseURL}:${Const|PrivatePort}" | ||
161 | |||
162 | [AuthenticationService] | ||
163 | ; | ||
164 | ; Change this to your grid-wide authentication server | ||
165 | ; | ||
166 | AuthenticationServerURI = "${Const|BaseURL}:${Const|PrivatePort}" | ||
167 | |||
168 | [FriendsService] | ||
169 | ; | ||
170 | ; Change this to your grid-wide friends server | ||
171 | ; | ||
172 | FriendsServerURI = "${Const|BaseURL}:${Const|PrivatePort}" | ||
173 | |||
174 | [HGInventoryAccessModule] | ||
175 | ; | ||
176 | ; === HG ONLY === | ||
177 | ; Change this to your server | ||
178 | ; accessible from other grids | ||
179 | ; | ||
180 | HomeURI = "${Const|BaseURL}:${Const|PublicPort}" | ||
181 | GatekeeperURI = "${Const|BaseURL}:${Const|PublicPort}" | ||
182 | ;; If you want to protect your assets from being copied by foreign visitors | ||
183 | ;; set this to false. You may want to do this on sims that have licensed content. | ||
184 | ;; Default is true. | ||
185 | ; OutboundPermission = True | ||
186 | |||
187 | ;; Send visual reminder to local users that their inventories are unavailable while they are traveling | ||
188 | ;; and available when they return. True by default. | ||
189 | ;RestrictInventoryAccessAbroad = True | ||
190 | |||
191 | ;; Warning: advanced and unusual. Default is false. | ||
192 | ;; Enables configurations where grids share user services, including inventory, | ||
193 | ;; while separating regions' assets from users' assets. Asset transfer between | ||
194 | ;; the users' asset server and the regions' asset server is done in HG-like manner. | ||
195 | ; CheckSeparateAssets = false | ||
196 | ; RegionHGAssetServerURI = ${Const|BaseURL}:${Const|PublicPort} | ||
197 | |||
198 | |||
199 | [HGAssetService] | ||
200 | ; | ||
201 | ; === HG ONLY === | ||
202 | ; Change this to your server | ||
203 | ; accessible from other grids | ||
204 | ; | ||
205 | HomeURI = "${Const|BaseURL}:${Const|PublicPort}" | ||
206 | |||
207 | ;; The asset types that this grid can export to / import from other grids. | ||
208 | ;; Comma separated. | ||
209 | ;; Valid values are all the asset types in OpenMetaverse.AssetType, namely: | ||
210 | ;; Unknown, Texture, Sound, CallingCard, Landmark, Clothing, Object, Notecard, LSLText, | ||
211 | ;; LSLBytecode, TextureTGA, Bodypart, SoundWAV, ImageTGA, ImageJPEG, Animation, Gesture, Mesh | ||
212 | ;; | ||
213 | ;; Leave blank or commented if you don't want to apply any restrictions. | ||
214 | ;; A more strict, but still reasonable, policy may be to disallow the exchange | ||
215 | ;; of scripts, like so: | ||
216 | ; DisallowExport ="LSLText" | ||
217 | ; DisallowImport ="LSLBytecode" | ||
218 | |||
219 | [HGFriendsModule] | ||
220 | ; User level required to be able to send friendship invitations to foreign users | ||
221 | ;LevelHGFriends = 0; | ||
222 | |||
223 | [UserAgentService] | ||
224 | ; | ||
225 | ; === HG ONLY === | ||
226 | ; Change this to your user agent server (HG robust) | ||
227 | ; | ||
228 | UserAgentServerURI = "${Const|BaseURL}:${Const|PublicPort}" | ||
229 | |||
230 | [MapImageService] | ||
231 | MapImageServerURI = "${Const|BaseURL}:${Const|PrivatePort}" | ||
232 | |||
233 | [AuthorizationService] | ||
234 | ; If you have regions with access restrictions | ||
235 | ; specify them here using the convention | ||
236 | ; Region_<Region_Name> = <flags> | ||
237 | ; Valid flags are: | ||
238 | ; DisallowForeigners -- HG visitors not allowed | ||
239 | ; DisallowResidents -- only Admins and Managers allowed | ||
240 | ; Example: | ||
241 | ; Region_Test_1 = "DisallowForeigners" | ||
242 | |||
243 | ;; Uncomment if you are using SimianGrid for grid services | ||
244 | [SimianGrid] | ||
245 | ;; SimianGrid services URL | ||
246 | ;; SimianServiceURL = "http://grid.sciencesim.com/Grid/" | ||
247 | |||
248 | ;; Capability assigned by the grid administrator for the simulator | ||
249 | ;; SimulatorCapability = "00000000-0000-0000-0000-000000000000" | ||
250 | |||
251 | [MuteListService] | ||
252 | MuteListServerURI = "${Const|BaseURL}:${Const|PrivatePort}" | ||
diff --git a/bin/config-include/GridHypergrid.ini b/bin/config-include/GridHypergrid.ini new file mode 100644 index 0000000..96cd3c4 --- /dev/null +++ b/bin/config-include/GridHypergrid.ini | |||
@@ -0,0 +1,86 @@ | |||
1 | ;; | ||
2 | ;; Please don't change this file. | ||
3 | ;; All optional settings are in GridCommon.ini.example, | ||
4 | ;; which you can copy and change. | ||
5 | ;; | ||
6 | |||
7 | [Includes] | ||
8 | Include-Common = "config-include/GridCommon.ini" | ||
9 | |||
10 | [Startup] | ||
11 | WorldMapModule = "HGWorldMap" | ||
12 | |||
13 | [Modules] | ||
14 | AssetServices = "HGAssetBroker" | ||
15 | InventoryServices = "HGInventoryBroker" | ||
16 | GridServices = "RemoteGridServicesConnector" | ||
17 | AvatarServices = "RemoteAvatarServicesConnector" | ||
18 | NeighbourServices = "NeighbourServicesOutConnector" | ||
19 | AuthenticationServices = "RemoteAuthenticationServicesConnector" | ||
20 | AuthorizationServices = "LocalAuthorizationServicesConnector" | ||
21 | PresenceServices = "RemotePresenceServicesConnector" | ||
22 | UserAccountServices = "RemoteUserAccountServicesConnector" | ||
23 | AgentPreferencesServices= "RemoteAgentPreferencesServicesConnector" | ||
24 | GridUserServices = "RemoteGridUserServicesConnector" | ||
25 | SimulationServices = "RemoteSimulationConnectorModule" | ||
26 | EntityTransferModule = "HGEntityTransferModule" | ||
27 | InventoryAccessModule = "HGInventoryAccessModule" | ||
28 | LandServices = "RemoteLandServicesConnector" | ||
29 | FriendsModule = "HGFriendsModule" | ||
30 | MapImageService = "MapImageServiceModule" | ||
31 | UserManagementModule = "HGUserManagementModule" | ||
32 | SearchModule = "BasicSearchModule" | ||
33 | MuteListService = "RemoteMuteListServicesConnector" | ||
34 | |||
35 | LandServiceInConnector = true | ||
36 | NeighbourServiceInConnector = true | ||
37 | SimulationServiceInConnector = true | ||
38 | LibraryModule = true | ||
39 | |||
40 | [SimulationDataStore] | ||
41 | LocalServiceModule = "OpenSim.Services.SimulationService.dll:SimulationDataService" | ||
42 | |||
43 | [EstateDataStore] | ||
44 | LocalServiceModule = "OpenSim.Services.EstateService.dll:EstateDataService" | ||
45 | |||
46 | [AssetService] | ||
47 | LocalGridAssetService = "OpenSim.Services.Connectors.dll:AssetServicesConnector" | ||
48 | HypergridAssetService = "OpenSim.Services.Connectors.dll:HGAssetServiceConnector" | ||
49 | |||
50 | [InventoryService] | ||
51 | LocalGridInventoryService = "OpenSim.Region.CoreModules.dll:RemoteXInventoryServicesConnector" | ||
52 | |||
53 | [GridService] | ||
54 | ; RemoteGridServicesConnector instantiates a LocalGridServicesConnector, | ||
55 | ; which in turn uses this | ||
56 | LocalServiceModule = "OpenSim.Services.GridService.dll:GridService" | ||
57 | StorageProvider = "OpenSim.Data.Null.dll:NullRegionData" | ||
58 | |||
59 | NetworkConnector = "OpenSim.Services.Connectors.dll:GridServicesConnector" | ||
60 | |||
61 | ; Needed to display non-default map tile images for linked regions | ||
62 | AssetService = "OpenSim.Services.Connectors.dll:AssetServicesConnector" | ||
63 | |||
64 | HypergridLinker = true | ||
65 | AllowHypergridMapSearch = true | ||
66 | SuppressConsoleCommands = true | ||
67 | |||
68 | [LibraryService] | ||
69 | LocalServiceModule = "OpenSim.Services.InventoryService.dll:LibraryService" | ||
70 | LibraryName = "OpenSim Library" | ||
71 | DefaultLibrary = "./inventory/Libraries.xml" | ||
72 | |||
73 | [Friends] | ||
74 | Connector = "OpenSim.Services.Connectors.dll:FriendsServicesConnector" | ||
75 | |||
76 | [Messaging] | ||
77 | MessageTransferModule = HGMessageTransferModule | ||
78 | |||
79 | [HGInstantMessageService] | ||
80 | LocalServiceModule = "OpenSim.Services.HypergridService.dll:HGInstantMessageService" | ||
81 | GridService = "OpenSim.Services.Connectors.dll:GridServicesConnector" | ||
82 | PresenceService = "OpenSim.Services.Connectors.dll:PresenceServicesConnector" | ||
83 | UserAgentService = "OpenSim.Services.Connectors.dll:UserAgentServiceConnector" | ||
84 | |||
85 | [MapImageService] | ||
86 | LocalServiceModule = "OpenSim.Services.Connectors.dll:MapImageServicesConnector" | ||
diff --git a/bin/config-include/HyperSimianGrid.ini b/bin/config-include/HyperSimianGrid.ini new file mode 100644 index 0000000..24f9813 --- /dev/null +++ b/bin/config-include/HyperSimianGrid.ini | |||
@@ -0,0 +1,97 @@ | |||
1 | ;; | ||
2 | ;; Please don't change this file. | ||
3 | ;; All optional settings are in GridCommon.ini.example, | ||
4 | ;; which you can copy and change. | ||
5 | ;; | ||
6 | |||
7 | ;; | ||
8 | ;; In GridCommon.ini, these are the URLs you would use if SimianGrid is | ||
9 | ;; installed at http://www.mygrid.com/Grid/ | ||
10 | ;; | ||
11 | ; AssetServerURI = "http://www.mygrid.com/Grid/?id=" | ||
12 | ; InventoryServerURI = "http://www.mygrid.com/Grid/" | ||
13 | ; AvatarServerURI = "http://www.mygrid.com/Grid/" | ||
14 | ; PresenceServerURI = "http://www.mygrid.com/Grid/" | ||
15 | ; UserAccountServerURI = "http://www.mygrid.com/Grid/" | ||
16 | ; AuthenticationServerURI = "http://www.mygrid.com/Grid/" | ||
17 | ; FriendsServerURI = "http://www.mygrid.com/Grid/" | ||
18 | ; GroupsServerURI = "http://www.mygrid.com/Grid/" | ||
19 | |||
20 | [Includes] | ||
21 | Include-Common = "config-include/GridCommon.ini" | ||
22 | |||
23 | [Modules] | ||
24 | GridServices = "RemoteGridServicesConnector" | ||
25 | PresenceServices = "SimianPresenceServiceConnector" | ||
26 | UserAccountServices = "SimianUserAccountServiceConnector" | ||
27 | AuthenticationServices = "SimianAuthenticationServiceConnector" | ||
28 | AssetServices = "HGAssetBroker" | ||
29 | InventoryServices = "HGInventoryBroker" | ||
30 | AvatarServices = "SimianAvatarServiceConnector" | ||
31 | |||
32 | NeighbourServices = "NeighbourServicesOutConnector" | ||
33 | SimulationServices = "RemoteSimulationConnectorModule" | ||
34 | EntityTransferModule = "HGEntityTransferModule" | ||
35 | InventoryAccessModule = "HGInventoryAccessModule" | ||
36 | |||
37 | LandServiceInConnector = true | ||
38 | NeighbourServiceInConnector = true | ||
39 | SimulationServiceInConnector = true | ||
40 | LibraryModule = false | ||
41 | |||
42 | AssetCaching = "FlotsamAssetCache" | ||
43 | |||
44 | [SimulationDataStore] | ||
45 | LocalServiceModule = "OpenSim.Services.Connectors.dll:SimulationDataService" | ||
46 | |||
47 | [EstateDataStore] | ||
48 | LocalServiceModule = "OpenSim.Services.Connectors.dll:EstateDataService" | ||
49 | |||
50 | [Friends] | ||
51 | Connector = "OpenSim.Services.Connectors.dll:SimianFriendsServiceConnector" | ||
52 | |||
53 | [GridService] | ||
54 | LocalServiceModule = "OpenSim.Services.GridService.dll:GridService" | ||
55 | StorageProvider = "OpenSim.Data.Null.dll:NullRegionData" | ||
56 | NetworkConnector = "OpenSim.Services.Connectors.dll:SimianGridServiceConnector" | ||
57 | |||
58 | HypergridLinker = true | ||
59 | AllowHypergridMapSearch = true | ||
60 | |||
61 | [LibraryService] | ||
62 | LocalServiceModule = "OpenSim.Services.InventoryService.dll:LibraryService" | ||
63 | LibraryName = "OpenSim Library" | ||
64 | DefaultLibrary = "./inventory/Libraries.xml" | ||
65 | |||
66 | [AssetService] | ||
67 | DefaultAssetLoader = "OpenSim.Framework.AssetLoader.Filesystem.dll" | ||
68 | LocalGridAssetService = "OpenSim.Services.Connectors.dll:SimianAssetServiceConnector" | ||
69 | HypergridAssetService = "OpenSim.Services.Connectors.dll:HGAssetServiceConnector" | ||
70 | AssetLoaderArgs = "assets/AssetSets.xml" | ||
71 | |||
72 | [InventoryService] | ||
73 | LocalGridInventoryService = "OpenSim.Services.Connectors.dll:SimianInventoryServiceConnector" | ||
74 | |||
75 | [Groups] | ||
76 | Enabled = true | ||
77 | Module = GroupsModule | ||
78 | DebugEnabled = false | ||
79 | NoticesEnabled = true | ||
80 | MessagingModule = GroupsMessagingModule | ||
81 | MessagingEnabled = true | ||
82 | ServicesConnectorModule = SimianGroupsServicesConnector | ||
83 | |||
84 | [Profiles] | ||
85 | Module = "SimianProfiles" | ||
86 | |||
87 | [HGInventoryAccessModule] | ||
88 | ; | ||
89 | ; === HG ONLY === | ||
90 | ; Change this to your profile server | ||
91 | ; accessible from other grids | ||
92 | ; | ||
93 | ProfileServerURI = "http://mygridserver.com:8002/user" | ||
94 | |||
95 | ;; If you want to protect your assets from being copied by foreign visitors | ||
96 | ;; uncomment the next line. You may want to do this on sims that have licensed content. | ||
97 | ; OutboundPermission = False | ||
diff --git a/bin/config-include/SimBalanced.ini b/bin/config-include/SimBalanced.ini new file mode 100644 index 0000000..fbf778f --- /dev/null +++ b/bin/config-include/SimBalanced.ini | |||
@@ -0,0 +1,889 @@ | |||
1 | ;; hopefully a well balanced configuration that works well for everything. | ||
2 | |||
3 | |||
4 | [Startup] | ||
5 | ; ## | ||
6 | ; ## SYSTEM | ||
7 | ; ## | ||
8 | |||
9 | ; Sets the method that OpenSim will use to fire asynchronous | ||
10 | ; events. Valid values are UnsafeQueueUserWorkItem, | ||
11 | ; QueueUserWorkItem, BeginInvoke, SmartThreadPool, and Thread. | ||
12 | ; | ||
13 | ; SmartThreadPool is reported to work well on Mono/Linux, but | ||
14 | ; UnsafeQueueUserWorkItem has been benchmarked with better | ||
15 | ; performance on .NET/Windows | ||
16 | ; | ||
17 | ; UnsafeQueueUserWorkItem refers to the fact that the code creating the event could elevate its security | ||
18 | ; privileges. However, as calling code is trusted anyway this is safe (if you set | ||
19 | ; TrustedBinaries = true in the [XEngine] section then you already have to trust that incoming code for other reasons). | ||
20 | async_call_method = SmartThreadPool | ||
21 | |||
22 | ; Max threads to allocate on the FireAndForget thread pool | ||
23 | ; when running with the SmartThreadPool option above | ||
24 | MaxPoolThreads = 300 | ||
25 | |||
26 | ; Allow certain jobs to be run consecutively in a job engine rather than always concurrently. | ||
27 | ; This improves performance in regions with large numbers of connections (in the hundreds). | ||
28 | JobEngineEnabled = true | ||
29 | |||
30 | ; Maximum number of position, rotation and scale changes for each prim that the simulator will store for later undos | ||
31 | ; Increasing this number will increase memory usage. | ||
32 | MaxPrimUndos = 42 | ||
33 | |||
34 | ; If a viewer attempts to rez a prim larger than the non-physical or physical prim max, clamp the dimensions to the appropriate maximum | ||
35 | ; This can be overridden in the region config file. | ||
36 | ClampPrimSize = true | ||
37 | |||
38 | ; If a prim is loaded from an external source, clamp it to Z = 0 if Z is negative. | ||
39 | ClampNegativeZ = true | ||
40 | |||
41 | ; Allow scripts to keep running when they cross region boundaries, rather than being restarted. State is reloaded on the destination region. | ||
42 | ; This only applies when crossing to a region running in a different simulator. | ||
43 | ; For crossings where the regions are on the same simulator the script is always kept running. | ||
44 | AllowScriptCrossing = true | ||
45 | |||
46 | ; Main Frame time | ||
47 | ; This defines the rate of several simulation events. | ||
48 | ; Default value should meet most needs. | ||
49 | ; It can be reduced to improve the simulation of moving objects, with possible increase of cpu and network loads. | ||
50 | ; It should not be less than the physics engine step time. | ||
51 | ; Being a integer multiple of it may reduce some jitter in reported physics FPS. | ||
52 | ; changing this value, you need to change some of the following *EveryNFrames so their actions timing remains the same | ||
53 | FrameTime = 0.0909 | ||
54 | |||
55 | ; Send scheduled updates to objects in the scene | ||
56 | ; This must be a whole number | ||
57 | UpdateObjectsEveryNFrames = 1 | ||
58 | |||
59 | ; Send position/velocity, etc. updates to agents in the scene | ||
60 | ; This must be a whole number | ||
61 | UpdateAgentsEveryNFrames = 1 | ||
62 | |||
63 | ; Apply pending forces from physics calculations to an entity. | ||
64 | ; This must be a whole number | ||
65 | UpdateEntityMovementEveryNFrames = 1 | ||
66 | |||
67 | ; Send coarse location updates to viewers. In a classic viewer, this updates the minimap. | ||
68 | ; This must be a whole number | ||
69 | UpdateCoarseLocationsEveryNFrames = 50 | ||
70 | |||
71 | ; Physics simulation execution or syncronization, acording to engine. Should be 1 | ||
72 | ; This must be a whole number | ||
73 | UpdatePhysicsEveryNFrames = 1 | ||
74 | |||
75 | ; Send out the on frame event to modules and other listeners. This should probably never deviate from 1. | ||
76 | ; This must be a whole number | ||
77 | UpdateEventsEveryNFrames = 1 | ||
78 | |||
79 | ; Send terrain updates to viewers | ||
80 | ; This must be a whole number | ||
81 | UpdateTerrainEveryNFrames = 50 | ||
82 | |||
83 | ; Persitently store any objects which meet the PRIM STORAGE criteria | ||
84 | ; This must be a whole number | ||
85 | UpdateStorageEveryNFrames = 200 | ||
86 | |||
87 | ; Clean up temp on rez objects. | ||
88 | ; This must be a whole number | ||
89 | UpdateTempCleaningEveryNSeconds = 180 | ||
90 | |||
91 | ; ## | ||
92 | ; ## PRIM STORAGE | ||
93 | ; ## | ||
94 | |||
95 | ; Persistence of changed objects happens during regular sweeps. The following control that behaviour to | ||
96 | ; prevent frequently changing objects from heavily loading the region data store. | ||
97 | ; If both of these values are set to zero then persistence of all changed objects will happen on every sweep. | ||
98 | ; | ||
99 | ; Objects will be considered for persistance in the next sweep when they have not changed for this number of seconds | ||
100 | MinimumTimeBeforePersistenceConsidered = 60 | ||
101 | ; Objects will always be considered for persistance in the next sweep if the first change occurred this number of seconds ago | ||
102 | MaximumTimeBeforePersistenceConsidered = 600 | ||
103 | |||
104 | ; ## | ||
105 | ; ## PHYSICS | ||
106 | ; ## | ||
107 | |||
108 | ; Select a mesher here. | ||
109 | ; | ||
110 | ; Meshmerizer properly handles complex prims by using triangle meshes. | ||
111 | ; Note that only the ODE physics engine currently deals with meshed prims in a satisfactory way | ||
112 | ; | ||
113 | ; ZeroMesher is faster but leaves the physics engine to model the mesh using the basic shapes that it supports | ||
114 | ; Usually this is only a box | ||
115 | |||
116 | ;meshing = Meshmerizer | ||
117 | ;meshing = ZeroMesher | ||
118 | ;; select ubODEMeshmerizer only with ubOde physics engine | ||
119 | meshing = ubODEMeshmerizer | ||
120 | |||
121 | ; ubODE and OpenDynamicsEngine does allocate a lot of memory on stack. On linux you may need to increase its limit | ||
122 | ; script opensim-ode-sh starts opensim setting that limit. You may need to increase it even more on large regions | ||
123 | ; edit the line ulimit -s 262144, and change this last value | ||
124 | |||
125 | ; if you use Meshmerizer and want sculpt map collisions, setting this to | ||
126 | ; to true will store decoded sculpt maps in a special folder in your bin | ||
127 | ; folder, which can reduce startup times by reducing asset requests. Some | ||
128 | ; versions of mono dont work well when reading the cache files, so set this | ||
129 | ; to false if you have compatibility problems. | ||
130 | CacheSculptMaps = true | ||
131 | |||
132 | ;; BulletSim is the default physics engine. It provides the best performance and most functionality. | ||
133 | ;; BulletSim supports varregions. | ||
134 | ;; OpenDynamicsEngine was the previous default physics engine in OpenSimulator 0.7.6.1 and before. | ||
135 | ;; It continues to provide a workable physics implementation. It does not currently support varregions. | ||
136 | ;; basicphysics effectively does not model physics at all, making all objects phantom. | ||
137 | ;; Default is BulletSim | ||
138 | ;physics = BulletSim | ||
139 | ;physics = modified_BulletX | ||
140 | ;physics = OpenDynamicsEngine | ||
141 | ;physics = basicphysics | ||
142 | ;physics = POS | ||
143 | ;; alternative OpenDynamicsEngine engine. ubODEMeshmerizer meshing above MUST be selected also | ||
144 | physics = ubODE | ||
145 | |||
146 | ; ## | ||
147 | ; ## SCRIPT ENGINE | ||
148 | ; ## | ||
149 | |||
150 | ;; Default script engine to use. Currently, we only have XEngine | ||
151 | DefaultScriptEngine = "XEngine" | ||
152 | |||
153 | ; Image decoding. Use CSJ2K for layer boundary decoding if true, | ||
154 | ; OpenJPEG if false | ||
155 | ; UseCSJ2K = true | ||
156 | |||
157 | |||
158 | [Map] | ||
159 | ; Map tile options. | ||
160 | ; If true, then maptiles are generated using the MapImageModule below. | ||
161 | ; If false then the texture referenced by MaptileStaticUUID is used instead, which can also be overridden | ||
162 | ; in individual region config file(s). If you do not want to upload map tiles at all, then you will need | ||
163 | ; both to set this to false and comment out the [Modules] MapImageServiceModule setting in config-include/ | ||
164 | GenerateMaptiles = true | ||
165 | |||
166 | ;WorldMapModule = "WorldMap" | ||
167 | |||
168 | ; The module to use in order to generate map images. | ||
169 | ; MapImageModule is the default. Warp3DImageModule is an alternative experimental module that can | ||
170 | ; generate better images. | ||
171 | MapImageModule = "Warp3DImageModule" | ||
172 | |||
173 | ; World map blacklist timeout in seconds | ||
174 | ;BlacklistTimeout = 600 | ||
175 | |||
176 | ; Refresh (in seconds) the map tile periodically | ||
177 | MaptileRefresh = 0 | ||
178 | |||
179 | ; If not generating maptiles, use this static texture asset ID | ||
180 | ;MaptileStaticUUID = "00000000-0000-0000-0000-000000000000" | ||
181 | |||
182 | ; Draw objects on maptile. This step might take a long time if you've got a large number of | ||
183 | ; objects, so you can turn it off here if you'd like. | ||
184 | DrawPrimOnMapTile = true | ||
185 | |||
186 | ; Use terrain texture for maptiles if true, use shaded green if false | ||
187 | TextureOnMapTile = true | ||
188 | |||
189 | ; Texture prims | ||
190 | TexturePrims = true | ||
191 | |||
192 | ; Only texture prims that have a diagonal size greater than this number | ||
193 | TexturePrimSize = 5 | ||
194 | |||
195 | ; Attempt to render meshes and sculpties on the map | ||
196 | RenderMeshes = true | ||
197 | |||
198 | UseAntiAliasing = true | ||
199 | |||
200 | |||
201 | [Network] | ||
202 | ; OpenSim can send multiple simultaneous requests for services such as asset | ||
203 | ; retrieval. However, some versions of mono appear to hang when there are too | ||
204 | ; many simultaneous requests, default is 30 and is currently applied only to assets | ||
205 | ;MaxRequestConcurrency = 30 | ||
206 | |||
207 | |||
208 | [ClientStack.LindenUDP] | ||
209 | ; The client socket receive buffer size determines how many | ||
210 | ; incoming requests we can process; the default on .NET is 8192 | ||
211 | ; which is about 2 4k-sized UDP datagrams. On mono this is | ||
212 | ; whatever the underlying operating system has as default; for | ||
213 | ; example, ubuntu 8.04 or SLES11 have about 111k, which is about | ||
214 | ; 27 4k-sized UDP datagrams (on linux platforms you can [as root] | ||
215 | ; do "sysctl net.core.rmem_default" to find out what your system | ||
216 | ; uses a default socket receive buffer size. | ||
217 | ; | ||
218 | ; client_socket_rcvbuf_size allows you to specify the receive | ||
219 | ; buffer size LLUDPServer should use. NOTE: this will be limited | ||
220 | ; by the system's settings for the maximum client receive buffer | ||
221 | ; size (on linux systems you can set that with "sysctl -w | ||
222 | ; net.core.rmem_max=X") | ||
223 | ; | ||
224 | ;client_socket_rcvbuf_size = 8388608 | ||
225 | |||
226 | ; Maximum outbound bytes per second for a single scene. This can be used to | ||
227 | ; throttle total outbound UDP traffic for a simulator. The default value is | ||
228 | ; 0, meaning no throttling at the scene level. The example given here is | ||
229 | ; 20 megabits | ||
230 | ; | ||
231 | ;scene_throttle_max_bps = 2500000 | ||
232 | |||
233 | ; Maximum bytes per second to send to any single client. This will override | ||
234 | ; the user's viewer preference settings. The default value is 0, meaning no | ||
235 | ; aggregate throttling on clients (only per-category throttling). The | ||
236 | ; example given here is 1.5 megabits | ||
237 | ; | ||
238 | ;client_throttle_max_bps = 187500 | ||
239 | |||
240 | ; Minimum bytes per second to send to any single client as a result of | ||
241 | ; adaptive throttling. Viewer preferences set to a lower number will | ||
242 | ; override the settin. The example given here ensures that adaptive | ||
243 | ; throttling will never decrease per client bandwidth below 256 kbps. | ||
244 | ; | ||
245 | ;adaptive_throttle_min_bps = 32000 | ||
246 | |||
247 | ; Adaptive throttling attempts to limit network overload when multiple | ||
248 | ; clients login by starting each connection more slowly. Disabled by | ||
249 | ; default | ||
250 | ; | ||
251 | enable_adaptive_throttles = true | ||
252 | |||
253 | ; Per-client bytes per second rates for the various throttle categories. | ||
254 | ; These are default values that will be overridden by clients. These | ||
255 | ; defaults are approximately equivalent to the throttles set by the Imprudence | ||
256 | ; viewer when maximum bandwidth is set to 350kbps | ||
257 | |||
258 | ;resend_default = 6625 | ||
259 | ;land_default = 9125 | ||
260 | ;wind_default = 1750 | ||
261 | ;cloud_default = 1750 | ||
262 | ;task_default = 18500 | ||
263 | ;texture_default = 18500 | ||
264 | ;asset_default = 10500 | ||
265 | |||
266 | ; Configures how ObjectUpdates are aggregated. These numbers | ||
267 | ; do not literally mean how many updates will be put in each | ||
268 | ; packet that goes over the wire, as packets are | ||
269 | ; automatically split on a 1400 byte boundary. These control | ||
270 | ; the balance between responsiveness of interest list updates | ||
271 | ; and total throughput. Higher numbers will ensure more full- | ||
272 | ; sized packets and faster sending of data, but more delay in | ||
273 | ; updating interest lists | ||
274 | ; | ||
275 | ;PrimUpdatesPerCallback = 100 | ||
276 | |||
277 | ; TextureSendLimit determines how many packets will be put on | ||
278 | ; the outgoing queue each cycle. Like the settings above, this | ||
279 | ; is a balance between responsiveness to priority updates and | ||
280 | ; total throughput. Higher numbers will give a better | ||
281 | ; throughput at the cost of reduced responsiveness to client | ||
282 | ; priority changes or transfer aborts | ||
283 | ; | ||
284 | ;TextureSendLimit = 20 | ||
285 | |||
286 | ; CannibalizeTextureRate allows bandwidth to be moved from the | ||
287 | ; UDP texture throttle to the task throttle. Since most viewers | ||
288 | ; use HTTP textures, this provides a means of using what is largely | ||
289 | ; unused bandwidth in the total throttle. The value is the proportion | ||
290 | ; of the texture rate to move to the task queue. It must be between | ||
291 | ; 0.0 (none of the bandwidth is cannibalized) and 0.9 (90% of the | ||
292 | ; bandwidth is grabbed) | ||
293 | ; | ||
294 | ; CannibalizeTextureRate = 0.5 | ||
295 | |||
296 | ; The time to wait before disconecting an unresponsive client. | ||
297 | ; The time is in seconds. The default is one minute | ||
298 | ; | ||
299 | ;AckTimeout = 60 | ||
300 | |||
301 | ; The time to wait before disconecting an unresponsive paused client. | ||
302 | ; A client can be paused when the file selection dialog is open during file upload. | ||
303 | ; This gives extra time to find files via the dialog but will still disconnect if | ||
304 | ; the client crashes or loses its network connection | ||
305 | ; The time is in seconds. The default is five minutes. | ||
306 | ; | ||
307 | ;PausedAckTimeout = 300 | ||
308 | |||
309 | |||
310 | [Appearance] | ||
311 | ; Persist avatar baked textures | ||
312 | ; Persisting baked textures can speed up login and region border | ||
313 | ; crossings especially with large numbers of users, though it | ||
314 | ; will store potentially large numbers of textures in your asset | ||
315 | ; database | ||
316 | PersistBakedTextures = true | ||
317 | |||
318 | ; Control the delay before appearance is sent to other avatars and | ||
319 | ; saved in the avatar service. Attempts to limit the impact caused | ||
320 | ; by the very chatty dialog that sets appearance when an avatar | ||
321 | ; logs in or teleports into a region; values are in seconds | ||
322 | DelayBeforeAppearanceSave = 5 | ||
323 | DelayBeforeAppearanceSend = 2 | ||
324 | |||
325 | ; If true, avatar appearance information is resent to other avatars in the simulator every 60 seconds. | ||
326 | ; This may help with some situations where avatars are persistently grey, though it will not help | ||
327 | ; in other situations (e.g. appearance baking failures where the avatar only appears as a cloud to others). | ||
328 | ResendAppearanceUpdates = true | ||
329 | |||
330 | ; Turning this on responds to CachedTexture packets to possibly avoid rebaking the avatar | ||
331 | ; on every login | ||
332 | ReuseTextures = true | ||
333 | |||
334 | |||
335 | [Attachments] | ||
336 | ; Controls the number of milliseconds that are slept per 100 prims rezzed in attachments | ||
337 | ; Experimental setting to control CPU spiking when avatars with many attachments login/change outfit | ||
338 | ; or when multiple avatars with medium level attachments login/change outfit simultaneously. | ||
339 | ; If 0 then no throttling is performed. | ||
340 | ThrottlePer100PrimsRezzed = 0 | ||
341 | |||
342 | |||
343 | [Textures] | ||
344 | ; If true, textures generated dynamically (i.e. through osSetDynamicTextureData() and similar OSSL functions) are reused where possible | ||
345 | ; Chiefly, reuse occurs if a texture has already been generated with identical data and settings, and that texture contains no dynamic components | ||
346 | ; (e.g. images pulled from an external HTTP address). | ||
347 | ; 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. | ||
348 | ; Currently, it will also increase asset cache use since temporary dynamic textures are no longer deleted. | ||
349 | ; Hence, currently considered experimental. | ||
350 | ; Default is false. | ||
351 | ReuseDynamicTextures = true | ||
352 | |||
353 | ; If true, then textures generated dynamically that have a low data size relative to their pixel size are not reused | ||
354 | ; 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. | ||
355 | ; Only set this to true if you are sure that all the viewers using your simulator will not suffer from this problem. | ||
356 | ; This setting only has an affect is ReuseDynamicTextures = true | ||
357 | ; Default is false | ||
358 | ReuseDynamicLowDataTextures = true | ||
359 | |||
360 | |||
361 | [ODEPhysicsSettings] | ||
362 | ; ## | ||
363 | ; ## Physics stats settings ( most ignored by ubOde ) | ||
364 | ; | ||
365 | |||
366 | ; If collect_stats is enabled, then extra stat information is collected which is accessible via the MonitorModule | ||
367 | ; (see http://opensimulator.org/wiki/Monitoring_Module for more details). | ||
368 | collect_stats = true | ||
369 | |||
370 | ; ## | ||
371 | ; ## Physics logging settings - logfiles are saved to *.DIF files | ||
372 | ; ## | ||
373 | |||
374 | ; default is false | ||
375 | ;physics_logging = true | ||
376 | ;; every n simulation iterations, the physics snapshot file is updated | ||
377 | ;physics_logging_interval = 50 | ||
378 | ;; append to existing physics logfile, or overwrite existing logfiles? | ||
379 | ;physics_logging_append_existing_logfile = true | ||
380 | |||
381 | ;## | ||
382 | ;## World Settings | ||
383 | ;## | ||
384 | |||
385 | ; World Step size. | ||
386 | ; with legacy ODE this value needs to be close to 0.02s | ||
387 | ; with ubOde this value can be reduced to improve simulation quality with the cost of higher cpu load | ||
388 | ; you will need to test acording to you needs | ||
389 | ; choosing a value that is a integer sub multiple of FrameRate reduces some jitter on reported physics FPS | ||
390 | world_stepsize = 0.01818 | ||
391 | ; number of iterations of constrains solver, higher should improve results | ||
392 | ; up to a point where acumulated math errors eliminate the improvement | ||
393 | ; more steps may increase CPU load. No real gain in changing | ||
394 | world_solver_iterations = 10 | ||
395 | |||
396 | ;Spaces level settings. Affects memory consumption vs Collider CPU time for avatar and physical prim | ||
397 | ; defines spaces partition cells min and max sizes == 2^value | ||
398 | world_hashspace_level_low = -5 | ||
399 | world_hashSpace_level_high = 12 | ||
400 | |||
401 | meters_in_small_space = 29.9 | ||
402 | |||
403 | |||
404 | ; ## | ||
405 | ; ## Contact properties. (the stuff that happens when things come in contact with each other) | ||
406 | ; ## | ||
407 | |||
408 | ; surface layer around geometries other geometries can sink into before generating a contact | ||
409 | world_contact_surface_layer = 0.001 | ||
410 | |||
411 | ; Filtering collisions helps keep things stable physics wise, but sometimes | ||
412 | ; it can be overzealous. If you notice bouncing, chances are it's that. | ||
413 | filter_collisions = true | ||
414 | |||
415 | ; Non Moving Terrain Contact (avatar isn't moving) | ||
416 | nm_terraincontact_friction = 255.0 | ||
417 | nm_terraincontact_bounce = 0.1 | ||
418 | nm_terraincontact_erp = 0.1025 | ||
419 | |||
420 | ; Moving Terrain Contact (avatar is moving) | ||
421 | m_terraincontact_friction = 75.0 | ||
422 | m_terraincontact_bounce = 0.05 | ||
423 | m_terrainContact_erp = 0.05025 | ||
424 | |||
425 | ; Moving Avatar to object Contact | ||
426 | m_avatarobjectcontact_friction = 75.0 | ||
427 | m_avatarobjectcontact_bounce = 0.1 | ||
428 | |||
429 | ; Object to Object Contact and Non-Moving Avatar to object | ||
430 | objectcontact_friction = 250.0 | ||
431 | objectcontact_bounce = 0.2 | ||
432 | |||
433 | ; ## | ||
434 | ; ## Avatar Control | ||
435 | ; ## | ||
436 | |||
437 | ; PID Controller Settings. These affect the math that causes the avatar to reach the | ||
438 | ; desired velocity | ||
439 | ; See http://en.wikipedia.org/wiki/PID_controller | ||
440 | |||
441 | av_pid_derivative = 2200.0 | ||
442 | av_pid_proportional = 900.0 | ||
443 | |||
444 | ; specifies if the capsule should be tilted (=true; old compatibility mode) | ||
445 | ; or straight up-and-down (=false; better and more consistent physics behavior) | ||
446 | av_capsule_tilted = false | ||
447 | |||
448 | ; Movement. Smaller is faster. | ||
449 | |||
450 | ; speed of movement with Always Run off | ||
451 | av_movement_divisor_walk = 1.3 | ||
452 | |||
453 | ; speed of movement with Always Run on | ||
454 | av_movement_divisor_run = 0.8 | ||
455 | |||
456 | ; When the avatar flies, it will be moved up by this amount off the ground (in meters) | ||
457 | minimum_ground_flight_offset = 3.0 | ||
458 | |||
459 | ; Plant avatar. This reduces the effect of physical contacts with the avatar. | ||
460 | ; If you have a group of unruly and rude visitors that bump each other, turn this on to make that less attractive. | ||
461 | ; The avatar still allows a small movement based on the PID settings above. Stronger PID settings AND this active | ||
462 | ; will lock the avatar in place | ||
463 | av_planted = false | ||
464 | |||
465 | ; 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 | ||
466 | av_av_collisions_off = false | ||
467 | |||
468 | ; ## | ||
469 | ; ## Object options | ||
470 | ; ## | ||
471 | |||
472 | ; amount of ODE steps where object is non moving for ODE to automatically put it to sleep | ||
473 | body_frames_auto_disable = 20 | ||
474 | |||
475 | ; used to control llMove2Target | ||
476 | body_pid_derivative = 35 | ||
477 | body_pid_gain = 25 | ||
478 | |||
479 | ; maximum number of contact points to generate per collision | ||
480 | contacts_per_collision = 80 | ||
481 | |||
482 | ; start throttling the object updates if object comes in contact with 3 or more other objects | ||
483 | geom_contactpoints_start_throttling = 3 | ||
484 | |||
485 | ; send 1 update for every x updates below when throttled | ||
486 | geom_updates_before_throttled_update = 15 | ||
487 | |||
488 | ; ## | ||
489 | ; ## Sculpted Prim settings | ||
490 | ; ## | ||
491 | |||
492 | ; Do we want to mesh sculpted prim to collide like they look? | ||
493 | ; If you are seeing sculpt texture decode problems | ||
494 | ; (messages such as "Decoded image with unhandled number of components: 0 shortly followed by a physcs exception") | ||
495 | ; then you might want to try setting this to false. | ||
496 | mesh_sculpted_prim = true | ||
497 | |||
498 | ; number^2 non-physical level of detail of the sculpt texture. 32x32 - 1024 verticies | ||
499 | mesh_lod = 32 | ||
500 | |||
501 | ; number^2 physical level of detail of the sculpt texture. 16x16 - 256 verticies | ||
502 | mesh_physical_lod = 16 | ||
503 | |||
504 | ; ## | ||
505 | ; ## additional meshing options | ||
506 | ; ## | ||
507 | |||
508 | ; Physics needs to create internal meshs (or convert the object meshs or scultps) | ||
509 | ; for all prims except simple boxes and spheres. | ||
510 | |||
511 | ; collisions of small objects againts larger ones can have a increased CPU load cost | ||
512 | ; so this are represented by a simple BOX | ||
513 | ; if all their scale dimensions are lower or equal to this option. Default is 0.1m | ||
514 | ; (ubOde only) | ||
515 | ; MinSizeToMeshmerize = 0.1 | ||
516 | |||
517 | |||
518 | [BulletSim] | ||
519 | ; There are two bullet physics libraries, bulletunmanaged is the default and is a | ||
520 | ; native c++ dll bulletxna is a managed C# dll. They have comparible functionality | ||
521 | ; but the c++ one is much faster. | ||
522 | ;BulletEngine = "bulletunmanaged" | ||
523 | BulletEngine = "bulletxna" | ||
524 | |||
525 | ; BulletSim can run on its own thread independent of the simulator's heartbeat | ||
526 | ; thread. Enabling this will not let the physics engine slow down avatar movement, etc. | ||
527 | UseSeparatePhysicsThread = true | ||
528 | |||
529 | ; Terrain implementation can use either Bullet's heightField or BulletSim can build | ||
530 | ; a mesh. 0=heightField, 1=mesh | ||
531 | TerrainImplementation = 0 | ||
532 | ; For mesh terrain, the detail of the created mesh. '1' gives 256x256 (heightfield | ||
533 | ; resolution). '2' gives 512x512. Etc. Cannot be larger than '4'. Higher | ||
534 | ; magnifications use lots of memory. | ||
535 | TerrainMeshMagnification = 1 | ||
536 | |||
537 | ; Should avatars collide with each other? | ||
538 | AvatarToAvatarCollisionsByDefault = true | ||
539 | |||
540 | ; Default linkset implmentation | ||
541 | ; 'Constraint' uses physics constraints to hold linkset together. 'Compound' | ||
542 | ; builds a compound shape from the children shapes to create a single physical | ||
543 | ; shape. 'Compound' uses a lot less CPU time. | ||
544 | LinkImplementation = 1 ; 0=constraint, 1=compound | ||
545 | |||
546 | ; If 'true', offset a linkset's origin based on mass of linkset parts. | ||
547 | LinksetOffsetCenterOfMass = false | ||
548 | |||
549 | ; If 'true', turn scuplties into meshes | ||
550 | MeshSculptedPrim = true | ||
551 | |||
552 | ; If 'true', force simple prims (box and sphere) to be meshed | ||
553 | ; If 'false', the Bullet native special case shape is used for square rectangles | ||
554 | ; and even dimensioned spheres. | ||
555 | ForceSimplePrimMeshing = true | ||
556 | |||
557 | ; If 'true', when creating meshes, remove all triangles that have two equal vertexes. | ||
558 | ; Happens often in sculpties. If turned off, there will be some doorways | ||
559 | ; that cannot be walked through. | ||
560 | ShouldRemoveZeroWidthTriangles = true | ||
561 | |||
562 | ; If 'true', use convex hull definition in mesh asset if present. | ||
563 | ShouldUseAssetHulls = true | ||
564 | |||
565 | ; If there are thousands of physical objects, these maximums should be increased. | ||
566 | MaxCollisionsPerFrame = 2048 | ||
567 | MaxUpdatesPerFrame = 8192 | ||
568 | |||
569 | ; Detailed physics debug logging. Very verbose. | ||
570 | PhysicsLoggingEnabled = False | ||
571 | PhysicsLoggingDir = "." | ||
572 | VehicleLoggingEnabled = False | ||
573 | |||
574 | |||
575 | [Sun] | ||
576 | ; send a Sun update every update_interval # of frames. A lower number will | ||
577 | ; make for smoother sun transition at the cost of network | ||
578 | ;update_interval = 100 | ||
579 | |||
580 | |||
581 | [Wind] | ||
582 | ; How often should wind be updated, as a function of world frames. Approximately 50 frames a second | ||
583 | wind_update_rate = 150 | ||
584 | |||
585 | ; The Default Wind Plugin to load | ||
586 | wind_plugin = SimpleRandomWind | ||
587 | |||
588 | |||
589 | [Cloud] | ||
590 | ; update interval for the cloud cover data returned by llCloud(). | ||
591 | ; default is 1000 | ||
592 | cloud_update_rate = 1000 | ||
593 | |||
594 | |||
595 | [Trees] | ||
596 | ; active_trees allows module to change its trees in time. | ||
597 | ; some will be deleted, others created and rest may grow | ||
598 | ; default is false. You can change it with console command tree active true | false later | ||
599 | active_trees = false | ||
600 | ; the trees change execution time rate (in ms) | ||
601 | update_rate = 1000 | ||
602 | |||
603 | ; allow the trees to grow. | ||
604 | ; DANGER | ||
605 | ; this option causes high network use on the order of | ||
606 | ; NumberOfTrees * NumberAvatars * 1000 / update_rate udp packets per second | ||
607 | allowGrow = false | ||
608 | |||
609 | |||
610 | [LL-Functions] | ||
611 | ; Maximum number of llListen events we allow over the entire region. | ||
612 | ; Set this to 0 to have no limit imposed | ||
613 | max_listens_per_region = 0 | ||
614 | |||
615 | ; Maximum number of llListen events we allow per script | ||
616 | ; Set this to 0 to have no limit imposed. | ||
617 | max_listens_per_script = 0 | ||
618 | |||
619 | ; Maximum number of external urls that scripts can set up in this simulator (e.g. via llRequestURL()) | ||
620 | max_external_urls_per_simulator = 256 | ||
621 | |||
622 | ; Use size boxes instead of meshed prims, sculpts and mesh when calculating bounding boxes. | ||
623 | ; Speeds up calculations but can make them inaccurate, in some cases very inaccurate. | ||
624 | UseSimpleBoxesInGetBoundingBox = false | ||
625 | |||
626 | ; Use llCastRay V3 if true. | ||
627 | ; Implements llCastRay similar but not identical to Second Life. | ||
628 | ; See http://wiki.secondlife.com/wiki/LlCastRay . | ||
629 | ; NEW | ||
630 | ; Meshes prims for good accuracy in ray hit detection, | ||
631 | ; handling basic and tortured prims, sculpts and meshes. | ||
632 | ; Uses ellipsoid, correctly sized avatar capsules. | ||
633 | ; Handles complex terrain, multi-prim objects and seated avatars. | ||
634 | ; Implements throttling and the status codes | ||
635 | ; RCERR_UNKNOWN and RCERR_CAST_TIME_EXCEEDED, | ||
636 | ; so LSL scripts need to handle these responses and RCERR_SIM_PERF_LOW. | ||
637 | ; WARNING | ||
638 | ; Can be faster on some servers and scenes, but slower on others, | ||
639 | ; compared to previous version of llCastRay in OpenSimulator. | ||
640 | ; Is in most cases considerably slower than llCastRay in Second Life. | ||
641 | ; Generates geometry meshes and can therefore use much system resources. | ||
642 | UseLlCastRayV3 = true | ||
643 | |||
644 | ; Accepted calculation precision error in calculations in llCastRay V3 | ||
645 | FloatToleranceInLlCastRay = 0.00001 | ||
646 | |||
647 | ; Accepted distance difference between duplicate hits in llCastRay V3 | ||
648 | FloatTolerance2InLlCastRay = 0.001 | ||
649 | |||
650 | ; Detail level when rendering prims in llCastRay V3 | ||
651 | ; 0 = Low, 1 = Medium, 2 = High, 3 = Highest, higer level gives better accuracy but slower call | ||
652 | PrimDetailLevelInLlCastRay = 1 | ||
653 | |||
654 | ; Detail level when rendering sculpts in llCastRay V3 | ||
655 | ; 0 = Low, 1 = Medium, 2 = High, 3 = Highest, higer level gives better accuracy but slower call | ||
656 | SculptDetailLevelInLlCastRay = 1 | ||
657 | |||
658 | ; Detail level when rendering meshes in llCastRay V3 | ||
659 | ; 0 = Low, 1 = Medium, 2 = High, 3 = Highest, higer level gives better accuracy but slower call | ||
660 | MeshDetailLevelInLlCastRay = 3 | ||
661 | |||
662 | ; Detail level when rendering avatar capsules in llCastRay V3 | ||
663 | ; 0 = Low, 1 = Medium, 2 = High, 3 = Highest, higer level gives better accuracy but slower call | ||
664 | AvatarDetailLevelInLlCastRay = 1 | ||
665 | |||
666 | ; Maximum number of returned hits from llCastRay V3 | ||
667 | MaxHitsInLlCastRay = 16 | ||
668 | |||
669 | ; Maximum number of returned hits per prim from llCastRay V3 | ||
670 | MaxHitsPerPrimInLlCastRay = 16 | ||
671 | |||
672 | ; Maximum number of returned hits per object from llCastRay V3 | ||
673 | MaxHitsPerObjectInLlCastRay = 16 | ||
674 | |||
675 | ; Report ray intersections with surfaces on exits from a prim as hits in llCastRay V3 if true | ||
676 | DetectExitHitsInLlCastRay = false | ||
677 | |||
678 | ; Detect attachments in llCastRay V3 if true | ||
679 | DoAttachmentsInLlCastRay = false | ||
680 | |||
681 | ; Throttle period length in ms before which all old llCastRay use is discarded in llCastRay V3 | ||
682 | ; The sum of AvailableTimeInMsPerRegionInLlCastRay and all AvailableTimeInMsPerAvatarInLlCastRay should not exceed this | ||
683 | ThrottleTimeInMsInLlCastRay = 200 | ||
684 | |||
685 | ; Available time in ms for llCastRay per throttle period and 65536 m2 land area in llCastRay V3 | ||
686 | AvailableTimeInMsPerRegionInLlCastRay = 40 | ||
687 | |||
688 | ; Available time in ms for llCastRay per throttle period and avatar when script in attachment or vehicle in llCastRay V3 | ||
689 | AvailableTimeInMsPerAvatarInLlCastRay = 10 | ||
690 | |||
691 | ; Required available time in ms left to perform a new llCastRay in llCastRay V3 | ||
692 | RequiredAvailableTimeInMsInLlCastRay = 2 | ||
693 | |||
694 | ; Maximum available time in ms possible in llCastRay V3, not to get too high values with varregions | ||
695 | MaximumAvailableTimeInMsInLlCastRay = 40 | ||
696 | |||
697 | ; Use cached meshes in llCastRay V3 if true | ||
698 | ; Improves performance but uses more memory | ||
699 | UseMeshCacheInLlCastRay = true | ||
700 | |||
701 | |||
702 | [XEngine] | ||
703 | ; How many threads to keep alive even if nothing is happening | ||
704 | MinThreads = 2 | ||
705 | |||
706 | ; How many threads to start at maximum load | ||
707 | MaxThreads = 100 | ||
708 | |||
709 | ; Time a thread must be idle (in seconds) before it dies | ||
710 | IdleTimeout = 60 | ||
711 | |||
712 | ; Thread priority ("Lowest", "BelowNormal", "Normal", "AboveNormal", "Highest") | ||
713 | Priority = "Normal" | ||
714 | |||
715 | ; Maximum number of events to queue for a script (excluding timers) | ||
716 | MaxScriptEventQueue = 3000 | ||
717 | |||
718 | ; Stack size per thread created | ||
719 | ThreadStackSize = 262144 | ||
720 | |||
721 | ; Set this to true to load each script into a separate | ||
722 | ; AppDomain. Setting this to false will load all script assemblies into the | ||
723 | ; current AppDomain, which will reduce the initial per-script memory overhead, | ||
724 | ; but deleted scripts stay inactive using memory. | ||
725 | ; Significantly improving script loading times. | ||
726 | ; However, setting this to false will also prevent script DLLs from being unloaded from memory if the script is deleted. | ||
727 | ; This may cause an OutOfMemory problem over time when avatars with scripted attachments move in and out of the region. | ||
728 | ; This may only be a problem if regions stay alive for a long time with lots of scripts added or edited. | ||
729 | ; At this time some mono versions seem to have problems with the true option, | ||
730 | ; so default is now false until a fix is found, to simply life of less technical skilled users. | ||
731 | ; | ||
732 | ; At least on my desktop, this seems to be what soaks up 4 - 5 times the memory. | ||
733 | AppDomainLoading = false | ||
734 | |||
735 | ; Controls whether previously compiled scripts DLLs are deleted on sim restart. | ||
736 | ; If you set this to false then startup will be considerably faster since scripts won't need to be recompiled. | ||
737 | ; It should be true on first run after updating opensim binary version | ||
738 | ; after first run you can change to false. | ||
739 | ; You can also set it to false and delete the script DLLs by hand | ||
740 | ; This does not delete cached scripts state. | ||
741 | DeleteScriptsOnStartup = true | ||
742 | |||
743 | ; CompactMemOnLoad | ||
744 | ; forces calls to memory garbage collector before loading each script DLL during region startup. | ||
745 | ; Peak memory usage is reduced and region starts with a more compacted memory allocation. | ||
746 | ; But this costs a lot of time, so region load will take a lot longer. | ||
747 | ; it is more usefull if there are no previously compiled scripts DLLs (or DeleteScriptsOnStartup = true) | ||
748 | CompactMemOnLoad = true | ||
749 | |||
750 | ; Controls whether scripts are stopped by aborting their threads externally (abort) | ||
751 | ; or by co-operative checks inserted by OpenSimulator into compiled script (co-op). | ||
752 | ; co-op will be more stable as aborting threads can cause instability. | ||
753 | ; abort was the default option in OpenSimulator 0.8 and before. | ||
754 | ; If this setting is changed between co-op and abort, then existing scripts will automatically be recompiled if necessary. | ||
755 | ; However, the setting change will not take affect until the next time you restart the simulator. | ||
756 | ; Setting changes will not affect state information stored for scripts. | ||
757 | ScriptStopStrategy = co-op | ||
758 | |||
759 | ; Rate to poll for asynchronous command replies (ms) | ||
760 | ; currently unused | ||
761 | ;AsyncLLCommandLoopms = 50 | ||
762 | |||
763 | ; Compile debug info (line numbers) into the script assemblies | ||
764 | CompileWithDebugInformation = true | ||
765 | |||
766 | ; Interval (s) between background save of script states | ||
767 | SaveInterval = 120 | ||
768 | |||
769 | ; Interval (s) between maintenance runs (0 = disable) | ||
770 | MaintenanceInterval = 10 | ||
771 | |||
772 | ; Amount of time in milliseconds we will wait for an event to completely normally when a script stop is requested | ||
773 | ; before aborting the thread (such as when an object containing scripts is taken into inventory). | ||
774 | WaitForEventCompletionOnScriptStop = 1000 | ||
775 | |||
776 | ; Minimum settable timer interval. Any timer setting less than this is | ||
777 | ; rounded up to this minimum interval. | ||
778 | MinTimerInterval = 0.1 | ||
779 | |||
780 | ; Sensor settings | ||
781 | SensorMaxRange = 1024.0 | ||
782 | SensorMaxResults = 64 | ||
783 | |||
784 | |||
785 | [Groups] | ||
786 | ; Groups data is cached for this number of seconds before another request is made to the groups service | ||
787 | ; Set to 0 to disable the cache. | ||
788 | ; Default is 30 seconds | ||
789 | GroupsCacheTimeout = 30 | ||
790 | |||
791 | |||
792 | [PacketPool] | ||
793 | ;RecyclePackets = true | ||
794 | ;RecycleDataBlocks = true | ||
795 | |||
796 | ; If true, then the basic packet objects used to receive data are also recycled, not just the LLUDP packets. | ||
797 | ; This reduces data churn | ||
798 | RecycleBaseUDPPackets = true | ||
799 | |||
800 | |||
801 | [InterestManagement] | ||
802 | ; This section controls how state updates are prioritized for each client | ||
803 | ; Valid values are BestAvatarResponsiveness, Time, Distance, | ||
804 | ; SimpleAngularDistance, and FrontBack | ||
805 | UpdatePrioritizationScheme = BestAvatarResponsiveness | ||
806 | ReprioritizationEnabled = true | ||
807 | ReprioritizationInterval = 2000.0 | ||
808 | RootReprioritizationDistance = 10.0 | ||
809 | ChildReprioritizationDistance = 20.0 | ||
810 | |||
811 | ; TEST OPTION KEEP AS FALSE | ||
812 | ; if true, don't send object updates if outside view range | ||
813 | ObjectsCullingByDistance = false | ||
814 | |||
815 | ; If n > 1, only every n UDP terse updates will be sent to observers of an avatar that are in the same region | ||
816 | ; 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). | ||
817 | ; n > 1 will reduce UDP traffic but will lead to laggier movement observed in other avatars. | ||
818 | RootTerseUpdatePeriod = 0 | ||
819 | |||
820 | ; If n > 1, only every n UDP terse updates will be sent to observers of an avatar that are in another region | ||
821 | ; 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. | ||
822 | ChildTerseUpdatePeriod = 0 | ||
823 | |||
824 | ; Send an update to clients if the difference from the last sent avatar position is greater than this tolerance | ||
825 | RootPositionUpdateTolerance = 0.05 | ||
826 | |||
827 | ; Send an update to clients if the euclidian difference from the last sent avatar rotation is greater than this tolerance | ||
828 | RootRotationUpdateTolerance = 0.1 | ||
829 | |||
830 | ; Send an update to clients if the difference from the last sent avatar velocity is greater than this tolerance | ||
831 | RootVelocityUpdateTolerance = 0.001 | ||
832 | |||
833 | |||
834 | [Statistics] | ||
835 | ; NumberOfFrames is used in a moving average calculation, where NumberOfFrames is the number of frames | ||
836 | ; to include in the averaging calculations | ||
837 | NumberOfFrames=10 | ||
838 | |||
839 | |||
840 | [Terrain] | ||
841 | ; If 'true' each avatar is only sent terrain patches within their view distance | ||
842 | ; This also changes the region terrain loading from 'lawn mower' to ordered around | ||
843 | ; the avatar outward. | ||
844 | SendTerrainUpdatesByViewDistance = True | ||
845 | |||
846 | |||
847 | [LandManagement] | ||
848 | ; When editing terrain or objects, parcel layer info is updated in the viewer. | ||
849 | ; This can be expensive for large regions. If this variable is 'true', only the | ||
850 | ; parcel layer data around the area of interest is sent. The parcel layer info | ||
851 | ; is sent for 'ParcelLayerViewDistance' around the interest point. | ||
852 | ; If 'ParcelLayerViewDistance' is >= 128, the operation for legacy sized regions | ||
853 | ; will be what it has always been (send the whole region's parcel layer info). | ||
854 | ; Other parcel updates (login, changing parcel ownership, ...) will still send | ||
855 | ; whole region. | ||
856 | LimitParcelLayerUpdateDistance = true | ||
857 | ParcelLayerViewDistance = 1024 | ||
858 | |||
859 | |||
860 | ;; If you are using a simian grid frontend you can enable | ||
861 | ;; this module to upload tile images for the mapping fn | ||
862 | ;; | ||
863 | [SimianGridMaptiles] | ||
864 | RefreshTime = 3600 | ||
865 | |||
866 | |||
867 | ;; | ||
868 | ;; These are defaults that are overwritten below in [Architecture]. | ||
869 | ;; These defaults allow OpenSim to work out of the box with | ||
870 | ;; zero configuration | ||
871 | ;; | ||
872 | [AssetService] | ||
873 | ; Disable this to prevent the default asset set from being inserted into the | ||
874 | ; asset store each time the region starts | ||
875 | AssetLoaderEnabled = false | ||
876 | |||
877 | |||
878 | [AutoBackupModule] | ||
879 | ;; default is module is disabled at the top level | ||
880 | AutoBackupModuleEnabled = false | ||
881 | |||
882 | |||
883 | [ServiceThrottle] | ||
884 | ;; Default time interval (in ms) for the throttle service thread to wake up | ||
885 | Interval = 5000 | ||
886 | |||
887 | |||
888 | [Materials] | ||
889 | MaxMaterialsPerTransaction = 50 | ||
diff --git a/bin/config-include/SimDefault.ini b/bin/config-include/SimDefault.ini new file mode 100644 index 0000000..3f2e713 --- /dev/null +++ b/bin/config-include/SimDefault.ini | |||
@@ -0,0 +1,884 @@ | |||
1 | [Startup] | ||
2 | ; ## | ||
3 | ; ## SYSTEM | ||
4 | ; ## | ||
5 | |||
6 | ; Sets the method that OpenSim will use to fire asynchronous | ||
7 | ; events. Valid values are UnsafeQueueUserWorkItem, | ||
8 | ; QueueUserWorkItem, BeginInvoke, SmartThreadPool, and Thread. | ||
9 | ; | ||
10 | ; SmartThreadPool is reported to work well on Mono/Linux, but | ||
11 | ; UnsafeQueueUserWorkItem has been benchmarked with better | ||
12 | ; performance on .NET/Windows | ||
13 | ; | ||
14 | ; UnsafeQueueUserWorkItem refers to the fact that the code creating the event could elevate its security | ||
15 | ; privileges. However, as calling code is trusted anyway this is safe (if you set | ||
16 | ; TrustedBinaries = true in the [XEngine] section then you already have to trust that incoming code for other reasons). | ||
17 | async_call_method = SmartThreadPool | ||
18 | |||
19 | ; Max threads to allocate on the FireAndForget thread pool | ||
20 | ; when running with the SmartThreadPool option above | ||
21 | MaxPoolThreads = 300 | ||
22 | |||
23 | ; Allow certain jobs to be run consecutively in a job engine rather than always concurrently. | ||
24 | ; This improves performance in regions with large numbers of connections (in the hundreds). | ||
25 | JobEngineEnabled = true | ||
26 | |||
27 | ; Maximum number of position, rotation and scale changes for each prim that the simulator will store for later undos | ||
28 | ; Increasing this number will increase memory usage. | ||
29 | MaxPrimUndos = 20 | ||
30 | |||
31 | ; If a viewer attempts to rez a prim larger than the non-physical or physical prim max, clamp the dimensions to the appropriate maximum | ||
32 | ; This can be overridden in the region config file. | ||
33 | ClampPrimSize = false | ||
34 | |||
35 | ; If a prim is loaded from an external source, clamp it to Z = 0 if Z is negative. | ||
36 | ClampNegativeZ = false | ||
37 | |||
38 | ; Allow scripts to keep running when they cross region boundaries, rather than being restarted. State is reloaded on the destination region. | ||
39 | ; This only applies when crossing to a region running in a different simulator. | ||
40 | ; For crossings where the regions are on the same simulator the script is always kept running. | ||
41 | AllowScriptCrossing = true | ||
42 | |||
43 | ; Main Frame time | ||
44 | ; This defines the rate of several simulation events. | ||
45 | ; Default value should meet most needs. | ||
46 | ; It can be reduced to improve the simulation of moving objects, with possible increase of cpu and network loads. | ||
47 | ; It should not be less than the physics engine step time. | ||
48 | ; Being a integer multiple of it may reduce some jitter in reported physics FPS. | ||
49 | ; changing this value, you need to change some of the following *EveryNFrames so their actions timing remains the same | ||
50 | FrameTime = 0.0909 | ||
51 | |||
52 | ; Send scheduled updates to objects in the scene | ||
53 | ; This must be a whole number | ||
54 | UpdateObjectsEveryNFrames = 1 | ||
55 | |||
56 | ; Send position/velocity, etc. updates to agents in the scene | ||
57 | ; This must be a whole number | ||
58 | UpdateAgentsEveryNFrames = 1 | ||
59 | |||
60 | ; Apply pending forces from physics calculations to an entity. | ||
61 | ; This must be a whole number | ||
62 | UpdateEntityMovementEveryNFrames = 1 | ||
63 | |||
64 | ; Send coarse location updates to viewers. In a classic viewer, this updates the minimap. | ||
65 | ; This must be a whole number | ||
66 | UpdateCoarseLocationsEveryNFrames = 50 | ||
67 | |||
68 | ; Physics simulation execution or syncronization, acording to engine. Should be 1 | ||
69 | ; This must be a whole number | ||
70 | UpdatePhysicsEveryNFrames = 1 | ||
71 | |||
72 | ; Send out the on frame event to modules and other listeners. This should probably never deviate from 1. | ||
73 | ; This must be a whole number | ||
74 | UpdateEventsEveryNFrames = 1 | ||
75 | |||
76 | ; Send terrain updates to viewers | ||
77 | ; This must be a whole number | ||
78 | UpdateTerrainEveryNFrames = 50 | ||
79 | |||
80 | ; Persitently store any objects which meet the PRIM STORAGE criteria | ||
81 | ; This must be a whole number | ||
82 | UpdateStorageEveryNFrames = 200 | ||
83 | |||
84 | ; Clean up temp on rez objects. | ||
85 | ; This must be a whole number | ||
86 | UpdateTempCleaningEveryNSeconds = 180 | ||
87 | |||
88 | ; ## | ||
89 | ; ## PRIM STORAGE | ||
90 | ; ## | ||
91 | |||
92 | ; Persistence of changed objects happens during regular sweeps. The following control that behaviour to | ||
93 | ; prevent frequently changing objects from heavily loading the region data store. | ||
94 | ; If both of these values are set to zero then persistence of all changed objects will happen on every sweep. | ||
95 | ; | ||
96 | ; Objects will be considered for persistance in the next sweep when they have not changed for this number of seconds | ||
97 | MinimumTimeBeforePersistenceConsidered = 60 | ||
98 | ; Objects will always be considered for persistance in the next sweep if the first change occurred this number of seconds ago | ||
99 | MaximumTimeBeforePersistenceConsidered = 600 | ||
100 | |||
101 | ; ## | ||
102 | ; ## PHYSICS | ||
103 | ; ## | ||
104 | |||
105 | ; Select a mesher here. | ||
106 | ; | ||
107 | ; Meshmerizer properly handles complex prims by using triangle meshes. | ||
108 | ; Note that only the ODE physics engine currently deals with meshed prims in a satisfactory way | ||
109 | ; | ||
110 | ; ZeroMesher is faster but leaves the physics engine to model the mesh using the basic shapes that it supports | ||
111 | ; Usually this is only a box | ||
112 | |||
113 | ;meshing = Meshmerizer | ||
114 | ;meshing = ZeroMesher | ||
115 | ;; select ubODEMeshmerizer only with ubOde physics engine | ||
116 | meshing = ubODEMeshmerizer | ||
117 | |||
118 | ; ubODE and OpenDynamicsEngine does allocate a lot of memory on stack. On linux you may need to increase its limit | ||
119 | ; script opensim-ode-sh starts opensim setting that limit. You may need to increase it even more on large regions | ||
120 | ; edit the line ulimit -s 262144, and change this last value | ||
121 | |||
122 | ; if you use Meshmerizer and want sculpt map collisions, setting this to | ||
123 | ; to true will store decoded sculpt maps in a special folder in your bin | ||
124 | ; folder, which can reduce startup times by reducing asset requests. Some | ||
125 | ; versions of mono dont work well when reading the cache files, so set this | ||
126 | ; to false if you have compatibility problems. | ||
127 | CacheSculptMaps = true | ||
128 | |||
129 | ;; BulletSim is the default physics engine. It provides the best performance and most functionality. | ||
130 | ;; BulletSim supports varregions. | ||
131 | ;; OpenDynamicsEngine was the previous default physics engine in OpenSimulator 0.7.6.1 and before. | ||
132 | ;; It continues to provide a workable physics implementation. It does not currently support varregions. | ||
133 | ;; basicphysics effectively does not model physics at all, making all objects phantom. | ||
134 | ;; Default is BulletSim | ||
135 | ;physics = BulletSim | ||
136 | ;physics = modified_BulletX | ||
137 | ;physics = OpenDynamicsEngine | ||
138 | ;physics = basicphysics | ||
139 | ;physics = POS | ||
140 | ;; alternative OpenDynamicsEngine engine. ubODEMeshmerizer meshing above MUST be selected also | ||
141 | physics = ubODE | ||
142 | |||
143 | ; ## | ||
144 | ; ## SCRIPT ENGINE | ||
145 | ; ## | ||
146 | |||
147 | ;; Default script engine to use. Currently, we only have XEngine | ||
148 | DefaultScriptEngine = "XEngine" | ||
149 | |||
150 | ; Image decoding. Use CSJ2K for layer boundary decoding if true, | ||
151 | ; OpenJPEG if false | ||
152 | ; UseCSJ2K = true | ||
153 | |||
154 | |||
155 | [Map] | ||
156 | ; Map tile options. | ||
157 | ; If true, then maptiles are generated using the MapImageModule below. | ||
158 | ; If false then the texture referenced by MaptileStaticUUID is used instead, which can also be overridden | ||
159 | ; in individual region config file(s). If you do not want to upload map tiles at all, then you will need | ||
160 | ; both to set this to false and comment out the [Modules] MapImageServiceModule setting in config-include/ | ||
161 | GenerateMaptiles = true | ||
162 | |||
163 | ;WorldMapModule = "WorldMap" | ||
164 | |||
165 | ; The module to use in order to generate map images. | ||
166 | ; MapImageModule is the default. Warp3DImageModule is an alternative experimental module that can | ||
167 | ; generate better images. | ||
168 | MapImageModule = "MapImageModule" | ||
169 | |||
170 | ; World map blacklist timeout in seconds | ||
171 | ;BlacklistTimeout = 600 | ||
172 | |||
173 | ; Refresh (in seconds) the map tile periodically | ||
174 | MaptileRefresh = 0 | ||
175 | |||
176 | ; If not generating maptiles, use this static texture asset ID | ||
177 | ;MaptileStaticUUID = "00000000-0000-0000-0000-000000000000" | ||
178 | |||
179 | ; Draw objects on maptile. This step might take a long time if you've got a large number of | ||
180 | ; objects, so you can turn it off here if you'd like. | ||
181 | DrawPrimOnMapTile = true | ||
182 | |||
183 | ; Use terrain texture for maptiles if true, use shaded green if false | ||
184 | TextureOnMapTile = true | ||
185 | |||
186 | ; Texture prims | ||
187 | TexturePrims = true | ||
188 | |||
189 | ; Only texture prims that have a diagonal size greater than this number | ||
190 | TexturePrimSize = 48 | ||
191 | |||
192 | ; Attempt to render meshes and sculpties on the map | ||
193 | RenderMeshes = false | ||
194 | |||
195 | ;UseAntiAliasing = true | ||
196 | |||
197 | |||
198 | [Network] | ||
199 | ; OpenSim can send multiple simultaneous requests for services such as asset | ||
200 | ; retrieval. However, some versions of mono appear to hang when there are too | ||
201 | ; many simultaneous requests, default is 30 and is currently applied only to assets | ||
202 | ;MaxRequestConcurrency = 30 | ||
203 | |||
204 | |||
205 | [ClientStack.LindenUDP] | ||
206 | ; The client socket receive buffer size determines how many | ||
207 | ; incoming requests we can process; the default on .NET is 8192 | ||
208 | ; which is about 2 4k-sized UDP datagrams. On mono this is | ||
209 | ; whatever the underlying operating system has as default; for | ||
210 | ; example, ubuntu 8.04 or SLES11 have about 111k, which is about | ||
211 | ; 27 4k-sized UDP datagrams (on linux platforms you can [as root] | ||
212 | ; do "sysctl net.core.rmem_default" to find out what your system | ||
213 | ; uses a default socket receive buffer size. | ||
214 | ; | ||
215 | ; client_socket_rcvbuf_size allows you to specify the receive | ||
216 | ; buffer size LLUDPServer should use. NOTE: this will be limited | ||
217 | ; by the system's settings for the maximum client receive buffer | ||
218 | ; size (on linux systems you can set that with "sysctl -w | ||
219 | ; net.core.rmem_max=X") | ||
220 | ; | ||
221 | ;client_socket_rcvbuf_size = 8388608 | ||
222 | |||
223 | ; Maximum outbound bytes per second for a single scene. This can be used to | ||
224 | ; throttle total outbound UDP traffic for a simulator. The default value is | ||
225 | ; 0, meaning no throttling at the scene level. The example given here is | ||
226 | ; 20 megabits | ||
227 | ; | ||
228 | ;scene_throttle_max_bps = 2500000 | ||
229 | |||
230 | ; Maximum bytes per second to send to any single client. This will override | ||
231 | ; the user's viewer preference settings. The default value is 0, meaning no | ||
232 | ; aggregate throttling on clients (only per-category throttling). The | ||
233 | ; example given here is 1.5 megabits | ||
234 | ; | ||
235 | ;client_throttle_max_bps = 187500 | ||
236 | |||
237 | ; Minimum bytes per second to send to any single client as a result of | ||
238 | ; adaptive throttling. Viewer preferences set to a lower number will | ||
239 | ; override the settin. The example given here ensures that adaptive | ||
240 | ; throttling will never decrease per client bandwidth below 256 kbps. | ||
241 | ; | ||
242 | ;adaptive_throttle_min_bps = 32000 | ||
243 | |||
244 | ; Adaptive throttling attempts to limit network overload when multiple | ||
245 | ; clients login by starting each connection more slowly. Disabled by | ||
246 | ; default | ||
247 | ; | ||
248 | enable_adaptive_throttles = false | ||
249 | |||
250 | ; Per-client bytes per second rates for the various throttle categories. | ||
251 | ; These are default values that will be overridden by clients. These | ||
252 | ; defaults are approximately equivalent to the throttles set by the Imprudence | ||
253 | ; viewer when maximum bandwidth is set to 350kbps | ||
254 | |||
255 | ;resend_default = 6625 | ||
256 | ;land_default = 9125 | ||
257 | ;wind_default = 1750 | ||
258 | ;cloud_default = 1750 | ||
259 | ;task_default = 18500 | ||
260 | ;texture_default = 18500 | ||
261 | ;asset_default = 10500 | ||
262 | |||
263 | ; Configures how ObjectUpdates are aggregated. These numbers | ||
264 | ; do not literally mean how many updates will be put in each | ||
265 | ; packet that goes over the wire, as packets are | ||
266 | ; automatically split on a 1400 byte boundary. These control | ||
267 | ; the balance between responsiveness of interest list updates | ||
268 | ; and total throughput. Higher numbers will ensure more full- | ||
269 | ; sized packets and faster sending of data, but more delay in | ||
270 | ; updating interest lists | ||
271 | ; | ||
272 | ;PrimUpdatesPerCallback = 100 | ||
273 | |||
274 | ; TextureSendLimit determines how many packets will be put on | ||
275 | ; the outgoing queue each cycle. Like the settings above, this | ||
276 | ; is a balance between responsiveness to priority updates and | ||
277 | ; total throughput. Higher numbers will give a better | ||
278 | ; throughput at the cost of reduced responsiveness to client | ||
279 | ; priority changes or transfer aborts | ||
280 | ; | ||
281 | ;TextureSendLimit = 20 | ||
282 | |||
283 | ; CannibalizeTextureRate allows bandwidth to be moved from the | ||
284 | ; UDP texture throttle to the task throttle. Since most viewers | ||
285 | ; use HTTP textures, this provides a means of using what is largely | ||
286 | ; unused bandwidth in the total throttle. The value is the proportion | ||
287 | ; of the texture rate to move to the task queue. It must be between | ||
288 | ; 0.0 (none of the bandwidth is cannibalized) and 0.9 (90% of the | ||
289 | ; bandwidth is grabbed) | ||
290 | ; | ||
291 | ; CannibalizeTextureRate = 0.5 | ||
292 | |||
293 | ; The time to wait before disconecting an unresponsive client. | ||
294 | ; The time is in seconds. The default is one minute | ||
295 | ; | ||
296 | ;AckTimeout = 60 | ||
297 | |||
298 | ; The time to wait before disconecting an unresponsive paused client. | ||
299 | ; A client can be paused when the file selection dialog is open during file upload. | ||
300 | ; This gives extra time to find files via the dialog but will still disconnect if | ||
301 | ; the client crashes or loses its network connection | ||
302 | ; The time is in seconds. The default is five minutes. | ||
303 | ; | ||
304 | ;PausedAckTimeout = 300 | ||
305 | |||
306 | |||
307 | [Appearance] | ||
308 | ; Persist avatar baked textures | ||
309 | ; Persisting baked textures can speed up login and region border | ||
310 | ; crossings especially with large numbers of users, though it | ||
311 | ; will store potentially large numbers of textures in your asset | ||
312 | ; database | ||
313 | PersistBakedTextures = false | ||
314 | |||
315 | ; Control the delay before appearance is sent to other avatars and | ||
316 | ; saved in the avatar service. Attempts to limit the impact caused | ||
317 | ; by the very chatty dialog that sets appearance when an avatar | ||
318 | ; logs in or teleports into a region; values are in seconds | ||
319 | DelayBeforeAppearanceSave = 5 | ||
320 | DelayBeforeAppearanceSend = 2 | ||
321 | |||
322 | ; If true, avatar appearance information is resent to other avatars in the simulator every 60 seconds. | ||
323 | ; This may help with some situations where avatars are persistently grey, though it will not help | ||
324 | ; in other situations (e.g. appearance baking failures where the avatar only appears as a cloud to others). | ||
325 | ResendAppearanceUpdates = false | ||
326 | |||
327 | ; Turning this on responds to CachedTexture packets to possibly avoid rebaking the avatar | ||
328 | ; on every login | ||
329 | ReuseTextures = false | ||
330 | |||
331 | |||
332 | [Attachments] | ||
333 | ; Controls the number of milliseconds that are slept per 100 prims rezzed in attachments | ||
334 | ; Experimental setting to control CPU spiking when avatars with many attachments login/change outfit | ||
335 | ; or when multiple avatars with medium level attachments login/change outfit simultaneously. | ||
336 | ; If 0 then no throttling is performed. | ||
337 | ThrottlePer100PrimsRezzed = 0 | ||
338 | |||
339 | |||
340 | [Textures] | ||
341 | ; If true, textures generated dynamically (i.e. through osSetDynamicTextureData() and similar OSSL functions) are reused where possible | ||
342 | ; Chiefly, reuse occurs if a texture has already been generated with identical data and settings, and that texture contains no dynamic components | ||
343 | ; (e.g. images pulled from an external HTTP address). | ||
344 | ; 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. | ||
345 | ; Currently, it will also increase asset cache use since temporary dynamic textures are no longer deleted. | ||
346 | ; Hence, currently considered experimental. | ||
347 | ; Default is false. | ||
348 | ReuseDynamicTextures = false | ||
349 | |||
350 | ; If true, then textures generated dynamically that have a low data size relative to their pixel size are not reused | ||
351 | ; 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. | ||
352 | ; Only set this to true if you are sure that all the viewers using your simulator will not suffer from this problem. | ||
353 | ; This setting only has an affect is ReuseDynamicTextures = true | ||
354 | ; Default is false | ||
355 | ReuseDynamicLowDataTextures = false | ||
356 | |||
357 | |||
358 | [ODEPhysicsSettings] | ||
359 | ; ## | ||
360 | ; ## Physics stats settings ( most ignored by ubOde ) | ||
361 | ; | ||
362 | |||
363 | ; If collect_stats is enabled, then extra stat information is collected which is accessible via the MonitorModule | ||
364 | ; (see http://opensimulator.org/wiki/Monitoring_Module for more details). | ||
365 | collect_stats = false | ||
366 | |||
367 | ; ## | ||
368 | ; ## Physics logging settings - logfiles are saved to *.DIF files | ||
369 | ; ## | ||
370 | |||
371 | ; default is false | ||
372 | ;physics_logging = true | ||
373 | ;; every n simulation iterations, the physics snapshot file is updated | ||
374 | ;physics_logging_interval = 50 | ||
375 | ;; append to existing physics logfile, or overwrite existing logfiles? | ||
376 | ;physics_logging_append_existing_logfile = true | ||
377 | |||
378 | ;## | ||
379 | ;## World Settings | ||
380 | ;## | ||
381 | |||
382 | ; World Step size. | ||
383 | ; with legacy ODE this value needs to be close to 0.02s | ||
384 | ; with ubOde this value can be reduced to improve simulation quality with the cost of higher cpu load | ||
385 | ; you will need to test acording to you needs | ||
386 | ; choosing a value that is a integer sub multiple of FrameRate reduces some jitter on reported physics FPS | ||
387 | world_stepsize = 0.01818 | ||
388 | ; number of iterations of constrains solver, higher should improve results | ||
389 | ; up to a point where acumulated math errors eliminate the improvement | ||
390 | ; more steps may increase CPU load. No real gain in changing | ||
391 | world_solver_iterations = 10 | ||
392 | |||
393 | ;Spaces level settings. Affects memory consumption vs Collider CPU time for avatar and physical prim | ||
394 | ; defines spaces partition cells min and max sizes == 2^value | ||
395 | world_hashspace_level_low = -5 | ||
396 | world_hashSpace_level_high = 12 | ||
397 | |||
398 | meters_in_small_space = 29.9 | ||
399 | |||
400 | |||
401 | ; ## | ||
402 | ; ## Contact properties. (the stuff that happens when things come in contact with each other) | ||
403 | ; ## | ||
404 | |||
405 | ; surface layer around geometries other geometries can sink into before generating a contact | ||
406 | world_contact_surface_layer = 0.001 | ||
407 | |||
408 | ; Filtering collisions helps keep things stable physics wise, but sometimes | ||
409 | ; it can be overzealous. If you notice bouncing, chances are it's that. | ||
410 | filter_collisions = false | ||
411 | |||
412 | ; Non Moving Terrain Contact (avatar isn't moving) | ||
413 | nm_terraincontact_friction = 255.0 | ||
414 | nm_terraincontact_bounce = 0.1 | ||
415 | nm_terraincontact_erp = 0.1025 | ||
416 | |||
417 | ; Moving Terrain Contact (avatar is moving) | ||
418 | m_terraincontact_friction = 75.0 | ||
419 | m_terraincontact_bounce = 0.1 | ||
420 | m_terrainContact_erp = 0.05025 | ||
421 | |||
422 | ; Moving Avatar to object Contact | ||
423 | m_avatarobjectcontact_friction = 75.0 | ||
424 | m_avatarobjectcontact_bounce = 0.1 | ||
425 | |||
426 | ; Object to Object Contact and Non-Moving Avatar to object | ||
427 | objectcontact_friction = 250.0 | ||
428 | objectcontact_bounce = 0.2 | ||
429 | |||
430 | ; ## | ||
431 | ; ## Avatar Control | ||
432 | ; ## | ||
433 | |||
434 | ; PID Controller Settings. These affect the math that causes the avatar to reach the | ||
435 | ; desired velocity | ||
436 | ; See http://en.wikipedia.org/wiki/PID_controller | ||
437 | |||
438 | av_pid_derivative = 2200.0 | ||
439 | av_pid_proportional = 900.0 | ||
440 | |||
441 | ; specifies if the capsule should be tilted (=true; old compatibility mode) | ||
442 | ; or straight up-and-down (=false; better and more consistent physics behavior) | ||
443 | av_capsule_tilted = false | ||
444 | |||
445 | ; Movement. Smaller is faster. | ||
446 | |||
447 | ; speed of movement with Always Run off | ||
448 | av_movement_divisor_walk = 1.3 | ||
449 | |||
450 | ; speed of movement with Always Run on | ||
451 | av_movement_divisor_run = 0.8 | ||
452 | |||
453 | ; When the avatar flies, it will be moved up by this amount off the ground (in meters) | ||
454 | minimum_ground_flight_offset = 3.0 | ||
455 | |||
456 | ; Plant avatar. This reduces the effect of physical contacts with the avatar. | ||
457 | ; If you have a group of unruly and rude visitors that bump each other, turn this on to make that less attractive. | ||
458 | ; The avatar still allows a small movement based on the PID settings above. Stronger PID settings AND this active | ||
459 | ; will lock the avatar in place | ||
460 | av_planted = false | ||
461 | |||
462 | ; 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 | ||
463 | av_av_collisions_off = false | ||
464 | |||
465 | ; ## | ||
466 | ; ## Object options | ||
467 | ; ## | ||
468 | |||
469 | ; amount of ODE steps where object is non moving for ODE to automatically put it to sleep | ||
470 | body_frames_auto_disable = 20 | ||
471 | |||
472 | ; used to control llMove2Target | ||
473 | body_pid_derivative = 35 | ||
474 | body_pid_gain = 25 | ||
475 | |||
476 | ; maximum number of contact points to generate per collision | ||
477 | contacts_per_collision = 80 | ||
478 | |||
479 | ; start throttling the object updates if object comes in contact with 3 or more other objects | ||
480 | geom_contactpoints_start_throttling = 3 | ||
481 | |||
482 | ; send 1 update for every x updates below when throttled | ||
483 | geom_updates_before_throttled_update = 15 | ||
484 | |||
485 | ; ## | ||
486 | ; ## Sculpted Prim settings | ||
487 | ; ## | ||
488 | |||
489 | ; Do we want to mesh sculpted prim to collide like they look? | ||
490 | ; If you are seeing sculpt texture decode problems | ||
491 | ; (messages such as "Decoded image with unhandled number of components: 0 shortly followed by a physcs exception") | ||
492 | ; then you might want to try setting this to false. | ||
493 | mesh_sculpted_prim = true | ||
494 | |||
495 | ; number^2 non-physical level of detail of the sculpt texture. 32x32 - 1024 verticies | ||
496 | mesh_lod = 32 | ||
497 | |||
498 | ; number^2 physical level of detail of the sculpt texture. 16x16 - 256 verticies | ||
499 | mesh_physical_lod = 16 | ||
500 | |||
501 | ; ## | ||
502 | ; ## additional meshing options | ||
503 | ; ## | ||
504 | |||
505 | ; Physics needs to create internal meshs (or convert the object meshs or scultps) | ||
506 | ; for all prims except simple boxes and spheres. | ||
507 | |||
508 | ; collisions of small objects againts larger ones can have a increased CPU load cost | ||
509 | ; so this are represented by a simple BOX | ||
510 | ; if all their scale dimensions are lower or equal to this option. Default is 0.1m | ||
511 | ; (ubOde only) | ||
512 | ; MinSizeToMeshmerize = 0.1 | ||
513 | |||
514 | |||
515 | [BulletSim] | ||
516 | ; There are two bullet physics libraries, bulletunmanaged is the default and is a | ||
517 | ; native c++ dll bulletxna is a managed C# dll. They have comparible functionality | ||
518 | ; but the c++ one is much faster. | ||
519 | BulletEngine = "bulletunmanaged" | ||
520 | ; BulletEngine = "bulletxna" | ||
521 | |||
522 | ; BulletSim can run on its own thread independent of the simulator's heartbeat | ||
523 | ; thread. Enabling this will not let the physics engine slow down avatar movement, etc. | ||
524 | UseSeparatePhysicsThread = false | ||
525 | |||
526 | ; Terrain implementation can use either Bullet's heightField or BulletSim can build | ||
527 | ; a mesh. 0=heightField, 1=mesh | ||
528 | TerrainImplementation = 0 | ||
529 | ; For mesh terrain, the detail of the created mesh. '1' gives 256x256 (heightfield | ||
530 | ; resolution). '2' gives 512x512. Etc. Cannot be larger than '4'. Higher | ||
531 | ; magnifications use lots of memory. | ||
532 | TerrainMeshMagnification = 2 | ||
533 | |||
534 | ; Should avatars collide with each other? | ||
535 | AvatarToAvatarCollisionsByDefault = true | ||
536 | |||
537 | ; Default linkset implmentation | ||
538 | ; 'Constraint' uses physics constraints to hold linkset together. 'Compound' | ||
539 | ; builds a compound shape from the children shapes to create a single physical | ||
540 | ; shape. 'Compound' uses a lot less CPU time. | ||
541 | LinkImplementation = 1 ; 0=constraint, 1=compound | ||
542 | |||
543 | ; If 'true', offset a linkset's origin based on mass of linkset parts. | ||
544 | LinksetOffsetCenterOfMass = false | ||
545 | |||
546 | ; If 'true', turn scuplties into meshes | ||
547 | MeshSculptedPrim = true | ||
548 | |||
549 | ; If 'true', force simple prims (box and sphere) to be meshed | ||
550 | ; If 'false', the Bullet native special case shape is used for square rectangles | ||
551 | ; and even dimensioned spheres. | ||
552 | ForceSimplePrimMeshing = false | ||
553 | |||
554 | ; If 'true', when creating meshes, remove all triangles that have two equal vertexes. | ||
555 | ; Happens often in sculpties. If turned off, there will be some doorways | ||
556 | ; that cannot be walked through. | ||
557 | ShouldRemoveZeroWidthTriangles = true | ||
558 | |||
559 | ; If 'true', use convex hull definition in mesh asset if present. | ||
560 | ShouldUseAssetHulls = true | ||
561 | |||
562 | ; If there are thousands of physical objects, these maximums should be increased. | ||
563 | MaxCollisionsPerFrame = 2048 | ||
564 | MaxUpdatesPerFrame = 8192 | ||
565 | |||
566 | ; Detailed physics debug logging. Very verbose. | ||
567 | PhysicsLoggingEnabled = False | ||
568 | PhysicsLoggingDir = "." | ||
569 | VehicleLoggingEnabled = False | ||
570 | |||
571 | |||
572 | [Sun] | ||
573 | ; send a Sun update every update_interval # of frames. A lower number will | ||
574 | ; make for smoother sun transition at the cost of network | ||
575 | ;update_interval = 100 | ||
576 | |||
577 | |||
578 | [Wind] | ||
579 | ; How often should wind be updated, as a function of world frames. Approximately 50 frames a second | ||
580 | wind_update_rate = 150 | ||
581 | |||
582 | ; The Default Wind Plugin to load | ||
583 | wind_plugin = SimpleRandomWind | ||
584 | |||
585 | |||
586 | [Cloud] | ||
587 | ; update interval for the cloud cover data returned by llCloud(). | ||
588 | ; default is 1000 | ||
589 | cloud_update_rate = 1000 | ||
590 | |||
591 | |||
592 | [Trees] | ||
593 | ; active_trees allows module to change its trees in time. | ||
594 | ; some will be deleted, others created and rest may grow | ||
595 | ; default is false. You can change it with console command tree active true | false later | ||
596 | active_trees = false | ||
597 | ; the trees change execution time rate (in ms) | ||
598 | update_rate = 1000 | ||
599 | |||
600 | ; allow the trees to grow. | ||
601 | ; DANGER | ||
602 | ; this option causes high network use on the order of | ||
603 | ; NumberOfTrees * NumberAvatars * 1000 / update_rate udp packets per second | ||
604 | allowGrow = false | ||
605 | |||
606 | |||
607 | [LL-Functions] | ||
608 | ; Maximum number of llListen events we allow over the entire region. | ||
609 | ; Set this to 0 to have no limit imposed | ||
610 | max_listens_per_region = 1000 | ||
611 | |||
612 | ; Maximum number of llListen events we allow per script | ||
613 | ; Set this to 0 to have no limit imposed. | ||
614 | max_listens_per_script = 64 | ||
615 | |||
616 | ; Maximum number of external urls that scripts can set up in this simulator (e.g. via llRequestURL()) | ||
617 | max_external_urls_per_simulator = 100 | ||
618 | |||
619 | ; Use size boxes instead of meshed prims, sculpts and mesh when calculating bounding boxes. | ||
620 | ; Speeds up calculations but can make them inaccurate, in some cases very inaccurate. | ||
621 | UseSimpleBoxesInGetBoundingBox = false | ||
622 | |||
623 | ; Use llCastRay V3 if true. | ||
624 | ; Implements llCastRay similar but not identical to Second Life. | ||
625 | ; See http://wiki.secondlife.com/wiki/LlCastRay . | ||
626 | ; NEW | ||
627 | ; Meshes prims for good accuracy in ray hit detection, | ||
628 | ; handling basic and tortured prims, sculpts and meshes. | ||
629 | ; Uses ellipsoid, correctly sized avatar capsules. | ||
630 | ; Handles complex terrain, multi-prim objects and seated avatars. | ||
631 | ; Implements throttling and the status codes | ||
632 | ; RCERR_UNKNOWN and RCERR_CAST_TIME_EXCEEDED, | ||
633 | ; so LSL scripts need to handle these responses and RCERR_SIM_PERF_LOW. | ||
634 | ; WARNING | ||
635 | ; Can be faster on some servers and scenes, but slower on others, | ||
636 | ; compared to previous version of llCastRay in OpenSimulator. | ||
637 | ; Is in most cases considerably slower than llCastRay in Second Life. | ||
638 | ; Generates geometry meshes and can therefore use much system resources. | ||
639 | UseLlCastRayV3 = false | ||
640 | |||
641 | ; Accepted calculation precision error in calculations in llCastRay V3 | ||
642 | FloatToleranceInLlCastRay = 0.00001 | ||
643 | |||
644 | ; Accepted distance difference between duplicate hits in llCastRay V3 | ||
645 | FloatTolerance2InLlCastRay = 0.001 | ||
646 | |||
647 | ; Detail level when rendering prims in llCastRay V3 | ||
648 | ; 0 = Low, 1 = Medium, 2 = High, 3 = Highest, higer level gives better accuracy but slower call | ||
649 | PrimDetailLevelInLlCastRay = 1 | ||
650 | |||
651 | ; Detail level when rendering sculpts in llCastRay V3 | ||
652 | ; 0 = Low, 1 = Medium, 2 = High, 3 = Highest, higer level gives better accuracy but slower call | ||
653 | SculptDetailLevelInLlCastRay = 1 | ||
654 | |||
655 | ; Detail level when rendering meshes in llCastRay V3 | ||
656 | ; 0 = Low, 1 = Medium, 2 = High, 3 = Highest, higer level gives better accuracy but slower call | ||
657 | MeshDetailLevelInLlCastRay = 3 | ||
658 | |||
659 | ; Detail level when rendering avatar capsules in llCastRay V3 | ||
660 | ; 0 = Low, 1 = Medium, 2 = High, 3 = Highest, higer level gives better accuracy but slower call | ||
661 | AvatarDetailLevelInLlCastRay = 1 | ||
662 | |||
663 | ; Maximum number of returned hits from llCastRay V3 | ||
664 | MaxHitsInLlCastRay = 16 | ||
665 | |||
666 | ; Maximum number of returned hits per prim from llCastRay V3 | ||
667 | MaxHitsPerPrimInLlCastRay = 16 | ||
668 | |||
669 | ; Maximum number of returned hits per object from llCastRay V3 | ||
670 | MaxHitsPerObjectInLlCastRay = 16 | ||
671 | |||
672 | ; Report ray intersections with surfaces on exits from a prim as hits in llCastRay V3 if true | ||
673 | DetectExitHitsInLlCastRay = false | ||
674 | |||
675 | ; Detect attachments in llCastRay V3 if true | ||
676 | DoAttachmentsInLlCastRay = false | ||
677 | |||
678 | ; Throttle period length in ms before which all old llCastRay use is discarded in llCastRay V3 | ||
679 | ; The sum of AvailableTimeInMsPerRegionInLlCastRay and all AvailableTimeInMsPerAvatarInLlCastRay should not exceed this | ||
680 | ThrottleTimeInMsInLlCastRay = 200 | ||
681 | |||
682 | ; Available time in ms for llCastRay per throttle period and 65536 m2 land area in llCastRay V3 | ||
683 | AvailableTimeInMsPerRegionInLlCastRay = 40 | ||
684 | |||
685 | ; Available time in ms for llCastRay per throttle period and avatar when script in attachment or vehicle in llCastRay V3 | ||
686 | AvailableTimeInMsPerAvatarInLlCastRay = 10 | ||
687 | |||
688 | ; Required available time in ms left to perform a new llCastRay in llCastRay V3 | ||
689 | RequiredAvailableTimeInMsInLlCastRay = 2 | ||
690 | |||
691 | ; Maximum available time in ms possible in llCastRay V3, not to get too high values with varregions | ||
692 | MaximumAvailableTimeInMsInLlCastRay = 40 | ||
693 | |||
694 | ; Use cached meshes in llCastRay V3 if true | ||
695 | ; Improves performance but uses more memory | ||
696 | UseMeshCacheInLlCastRay = true | ||
697 | |||
698 | |||
699 | [XEngine] | ||
700 | ; How many threads to keep alive even if nothing is happening | ||
701 | MinThreads = 2 | ||
702 | |||
703 | ; How many threads to start at maximum load | ||
704 | MaxThreads = 100 | ||
705 | |||
706 | ; Time a thread must be idle (in seconds) before it dies | ||
707 | IdleTimeout = 60 | ||
708 | |||
709 | ; Thread priority ("Lowest", "BelowNormal", "Normal", "AboveNormal", "Highest") | ||
710 | Priority = "BelowNormal" | ||
711 | |||
712 | ; Maximum number of events to queue for a script (excluding timers) | ||
713 | MaxScriptEventQueue = 300 | ||
714 | |||
715 | ; Stack size per thread created | ||
716 | ThreadStackSize = 262144 | ||
717 | |||
718 | ; Set this to true to load each script into a separate | ||
719 | ; AppDomain. Setting this to false will load all script assemblies into the | ||
720 | ; current AppDomain, which will reduce the initial per-script memory overhead, | ||
721 | ; but deleted scripts stay inactive using memory. | ||
722 | ; Significantly improving script loading times. | ||
723 | ; However, setting this to false will also prevent script DLLs from being unloaded from memory if the script is deleted. | ||
724 | ; This may cause an OutOfMemory problem over time when avatars with scripted attachments move in and out of the region. | ||
725 | ; This may only be a problem if regions stay alive for a long time with lots of scripts added or edited. | ||
726 | ; At this time some mono versions seem to have problems with the true option, | ||
727 | ; so default is now false until a fix is found, to simply life of less technical skilled users. | ||
728 | AppDomainLoading = false | ||
729 | |||
730 | ; Controls whether previously compiled scripts DLLs are deleted on sim restart. | ||
731 | ; If you set this to false then startup will be considerably faster since scripts won't need to be recompiled. | ||
732 | ; It should be true on first run after updating opensim binary version | ||
733 | ; after first run you can change to false. | ||
734 | ; You can also set it to false and delete the script DLLs by hand | ||
735 | ; This does not delete cached scripts state. | ||
736 | DeleteScriptsOnStartup = true | ||
737 | |||
738 | ; CompactMemOnLoad | ||
739 | ; forces calls to memory garbage collector before loading each script DLL during region startup. | ||
740 | ; Peak memory usage is reduced and region starts with a more compacted memory allocation. | ||
741 | ; But this costs a lot of time, so region load will take a lot longer. | ||
742 | ; it is more usefull if there are no previously compiled scripts DLLs (or DeleteScriptsOnStartup = true) | ||
743 | ; CompactMemOnLoad = false | ||
744 | |||
745 | ; Controls whether scripts are stopped by aborting their threads externally (abort) | ||
746 | ; or by co-operative checks inserted by OpenSimulator into compiled script (co-op). | ||
747 | ; co-op will be more stable as aborting threads can cause instability. | ||
748 | ; abort was the default option in OpenSimulator 0.8 and before. | ||
749 | ; If this setting is changed between co-op and abort, then existing scripts will automatically be recompiled if necessary. | ||
750 | ; However, the setting change will not take affect until the next time you restart the simulator. | ||
751 | ; Setting changes will not affect state information stored for scripts. | ||
752 | ScriptStopStrategy = co-op | ||
753 | |||
754 | ; Rate to poll for asynchronous command replies (ms) | ||
755 | ; currently unused | ||
756 | ;AsyncLLCommandLoopms = 50 | ||
757 | |||
758 | ; Compile debug info (line numbers) into the script assemblies | ||
759 | CompileWithDebugInformation = true | ||
760 | |||
761 | ; Interval (s) between background save of script states | ||
762 | SaveInterval = 120 | ||
763 | |||
764 | ; Interval (s) between maintenance runs (0 = disable) | ||
765 | MaintenanceInterval = 10 | ||
766 | |||
767 | ; Amount of time in milliseconds we will wait for an event to completely normally when a script stop is requested | ||
768 | ; before aborting the thread (such as when an object containing scripts is taken into inventory). | ||
769 | WaitForEventCompletionOnScriptStop = 1000 | ||
770 | |||
771 | ; Minimum settable timer interval. Any timer setting less than this is | ||
772 | ; rounded up to this minimum interval. | ||
773 | MinTimerInterval = 0.5 | ||
774 | |||
775 | ; Sensor settings | ||
776 | SensorMaxRange = 96.0 | ||
777 | SensorMaxResults = 16 | ||
778 | |||
779 | |||
780 | [Groups] | ||
781 | ; Groups data is cached for this number of seconds before another request is made to the groups service | ||
782 | ; Set to 0 to disable the cache. | ||
783 | ; Default is 30 seconds | ||
784 | GroupsCacheTimeout = 30 | ||
785 | |||
786 | |||
787 | [PacketPool] | ||
788 | ;RecyclePackets = true | ||
789 | ;RecycleDataBlocks = true | ||
790 | |||
791 | ; If true, then the basic packet objects used to receive data are also recycled, not just the LLUDP packets. | ||
792 | ; This reduces data churn | ||
793 | RecycleBaseUDPPackets = true | ||
794 | |||
795 | |||
796 | [InterestManagement] | ||
797 | ; This section controls how state updates are prioritized for each client | ||
798 | ; Valid values are BestAvatarResponsiveness, Time, Distance, | ||
799 | ; SimpleAngularDistance, and FrontBack | ||
800 | UpdatePrioritizationScheme = BestAvatarResponsiveness | ||
801 | ReprioritizationEnabled = true | ||
802 | ReprioritizationInterval = 2000.0 | ||
803 | RootReprioritizationDistance = 10.0 | ||
804 | ChildReprioritizationDistance = 20.0 | ||
805 | |||
806 | ; TEST OPTION KEEP AS FALSE | ||
807 | ; if true, don't send object updates if outside view range | ||
808 | ObjectsCullingByDistance = false | ||
809 | |||
810 | ; If n > 1, only every n UDP terse updates will be sent to observers of an avatar that are in the same region | ||
811 | ; 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). | ||
812 | ; n > 1 will reduce UDP traffic but will lead to laggier movement observed in other avatars. | ||
813 | RootTerseUpdatePeriod = 0 | ||
814 | |||
815 | ; If n > 1, only every n UDP terse updates will be sent to observers of an avatar that are in another region | ||
816 | ; 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. | ||
817 | ChildTerseUpdatePeriod = 0 | ||
818 | |||
819 | ; Send an update to clients if the difference from the last sent avatar position is greater than this tolerance | ||
820 | RootPositionUpdateTolerance = 0.05 | ||
821 | |||
822 | ; Send an update to clients if the euclidian difference from the last sent avatar rotation is greater than this tolerance | ||
823 | RootRotationUpdateTolerance = 0.1 | ||
824 | |||
825 | ; Send an update to clients if the difference from the last sent avatar velocity is greater than this tolerance | ||
826 | RootVelocityUpdateTolerance = 0.001 | ||
827 | |||
828 | |||
829 | [Statistics] | ||
830 | ; NumberOfFrames is used in a moving average calculation, where NumberOfFrames is the number of frames | ||
831 | ; to include in the averaging calculations | ||
832 | NumberOfFrames=10 | ||
833 | |||
834 | |||
835 | [Terrain] | ||
836 | ; If 'true' each avatar is only sent terrain patches within their view distance | ||
837 | ; This also changes the region terrain loading from 'lawn mower' to ordered around | ||
838 | ; the avatar outward. | ||
839 | SendTerrainUpdatesByViewDistance = True | ||
840 | |||
841 | |||
842 | [LandManagement] | ||
843 | ; When editing terrain or objects, parcel layer info is updated in the viewer. | ||
844 | ; This can be expensive for large regions. If this variable is 'true', only the | ||
845 | ; parcel layer data around the area of interest is sent. The parcel layer info | ||
846 | ; is sent for 'ParcelLayerViewDistance' around the interest point. | ||
847 | ; If 'ParcelLayerViewDistance' is >= 128, the operation for legacy sized regions | ||
848 | ; will be what it has always been (send the whole region's parcel layer info). | ||
849 | ; Other parcel updates (login, changing parcel ownership, ...) will still send | ||
850 | ; whole region. | ||
851 | LimitParcelLayerUpdateDistance = true | ||
852 | ParcelLayerViewDistance = 128 | ||
853 | |||
854 | |||
855 | ;; If you are using a simian grid frontend you can enable | ||
856 | ;; this module to upload tile images for the mapping fn | ||
857 | ;; | ||
858 | [SimianGridMaptiles] | ||
859 | RefreshTime = 3600 | ||
860 | |||
861 | |||
862 | ;; | ||
863 | ;; These are defaults that are overwritten below in [Architecture]. | ||
864 | ;; These defaults allow OpenSim to work out of the box with | ||
865 | ;; zero configuration | ||
866 | ;; | ||
867 | [AssetService] | ||
868 | ; Disable this to prevent the default asset set from being inserted into the | ||
869 | ; asset store each time the region starts | ||
870 | AssetLoaderEnabled = true | ||
871 | |||
872 | |||
873 | [AutoBackupModule] | ||
874 | ;; default is module is disabled at the top level | ||
875 | AutoBackupModuleEnabled = false | ||
876 | |||
877 | |||
878 | [ServiceThrottle] | ||
879 | ;; Default time interval (in ms) for the throttle service thread to wake up | ||
880 | Interval = 5000 | ||
881 | |||
882 | |||
883 | [Materials] | ||
884 | MaxMaterialsPerTransaction = 50 | ||
diff --git a/bin/config-include/SimFast.ini b/bin/config-include/SimFast.ini new file mode 100644 index 0000000..40d3cc1 --- /dev/null +++ b/bin/config-include/SimFast.ini | |||
@@ -0,0 +1,884 @@ | |||
1 | [Startup] | ||
2 | ; ## | ||
3 | ; ## SYSTEM | ||
4 | ; ## | ||
5 | |||
6 | ; Sets the method that OpenSim will use to fire asynchronous | ||
7 | ; events. Valid values are UnsafeQueueUserWorkItem, | ||
8 | ; QueueUserWorkItem, BeginInvoke, SmartThreadPool, and Thread. | ||
9 | ; | ||
10 | ; SmartThreadPool is reported to work well on Mono/Linux, but | ||
11 | ; UnsafeQueueUserWorkItem has been benchmarked with better | ||
12 | ; performance on .NET/Windows | ||
13 | ; | ||
14 | ; UnsafeQueueUserWorkItem refers to the fact that the code creating the event could elevate its security | ||
15 | ; privileges. However, as calling code is trusted anyway this is safe (if you set | ||
16 | ; TrustedBinaries = true in the [XEngine] section then you already have to trust that incoming code for other reasons). | ||
17 | async_call_method = SmartThreadPool | ||
18 | |||
19 | ; Max threads to allocate on the FireAndForget thread pool | ||
20 | ; when running with the SmartThreadPool option above | ||
21 | MaxPoolThreads = 300 | ||
22 | |||
23 | ; Allow certain jobs to be run consecutively in a job engine rather than always concurrently. | ||
24 | ; This improves performance in regions with large numbers of connections (in the hundreds). | ||
25 | JobEngineEnabled = true | ||
26 | |||
27 | ; Maximum number of position, rotation and scale changes for each prim that the simulator will store for later undos | ||
28 | ; Increasing this number will increase memory usage. | ||
29 | MaxPrimUndos = 42 | ||
30 | |||
31 | ; If a viewer attempts to rez a prim larger than the non-physical or physical prim max, clamp the dimensions to the appropriate maximum | ||
32 | ; This can be overridden in the region config file. | ||
33 | ClampPrimSize = true | ||
34 | |||
35 | ; If a prim is loaded from an external source, clamp it to Z = 0 if Z is negative. | ||
36 | ClampNegativeZ = true | ||
37 | |||
38 | ; Allow scripts to keep running when they cross region boundaries, rather than being restarted. State is reloaded on the destination region. | ||
39 | ; This only applies when crossing to a region running in a different simulator. | ||
40 | ; For crossings where the regions are on the same simulator the script is always kept running. | ||
41 | AllowScriptCrossing = true | ||
42 | |||
43 | ; Main Frame time | ||
44 | ; This defines the rate of several simulation events. | ||
45 | ; Default value should meet most needs. | ||
46 | ; It can be reduced to improve the simulation of moving objects, with possible increase of cpu and network loads. | ||
47 | ; It should not be less than the physics engine step time. | ||
48 | ; Being a integer multiple of it may reduce some jitter in reported physics FPS. | ||
49 | ; changing this value, you need to change some of the following *EveryNFrames so their actions timing remains the same | ||
50 | FrameTime = 0.0909 | ||
51 | |||
52 | ; Send scheduled updates to objects in the scene | ||
53 | ; This must be a whole number | ||
54 | UpdateObjectsEveryNFrames = 1 | ||
55 | |||
56 | ; Send position/velocity, etc. updates to agents in the scene | ||
57 | ; This must be a whole number | ||
58 | UpdateAgentsEveryNFrames = 1 | ||
59 | |||
60 | ; Apply pending forces from physics calculations to an entity. | ||
61 | ; This must be a whole number | ||
62 | UpdateEntityMovementEveryNFrames = 1 | ||
63 | |||
64 | ; Send coarse location updates to viewers. In a classic viewer, this updates the minimap. | ||
65 | ; This must be a whole number | ||
66 | UpdateCoarseLocationsEveryNFrames = 50 | ||
67 | |||
68 | ; Physics simulation execution or syncronization, acording to engine. Should be 1 | ||
69 | ; This must be a whole number | ||
70 | UpdatePhysicsEveryNFrames = 1 | ||
71 | |||
72 | ; Send out the on frame event to modules and other listeners. This should probably never deviate from 1. | ||
73 | ; This must be a whole number | ||
74 | UpdateEventsEveryNFrames = 1 | ||
75 | |||
76 | ; Send terrain updates to viewers | ||
77 | ; This must be a whole number | ||
78 | UpdateTerrainEveryNFrames = 50 | ||
79 | |||
80 | ; Persitently store any objects which meet the PRIM STORAGE criteria | ||
81 | ; This must be a whole number | ||
82 | UpdateStorageEveryNFrames = 200 | ||
83 | |||
84 | ; Clean up temp on rez objects. | ||
85 | ; This must be a whole number | ||
86 | UpdateTempCleaningEveryNSeconds = 180 | ||
87 | |||
88 | ; ## | ||
89 | ; ## PRIM STORAGE | ||
90 | ; ## | ||
91 | |||
92 | ; Persistence of changed objects happens during regular sweeps. The following control that behaviour to | ||
93 | ; prevent frequently changing objects from heavily loading the region data store. | ||
94 | ; If both of these values are set to zero then persistence of all changed objects will happen on every sweep. | ||
95 | ; | ||
96 | ; Objects will be considered for persistance in the next sweep when they have not changed for this number of seconds | ||
97 | MinimumTimeBeforePersistenceConsidered = 60 | ||
98 | ; Objects will always be considered for persistance in the next sweep if the first change occurred this number of seconds ago | ||
99 | MaximumTimeBeforePersistenceConsidered = 600 | ||
100 | |||
101 | ; ## | ||
102 | ; ## PHYSICS | ||
103 | ; ## | ||
104 | |||
105 | ; Select a mesher here. | ||
106 | ; | ||
107 | ; Meshmerizer properly handles complex prims by using triangle meshes. | ||
108 | ; Note that only the ODE physics engine currently deals with meshed prims in a satisfactory way | ||
109 | ; | ||
110 | ; ZeroMesher is faster but leaves the physics engine to model the mesh using the basic shapes that it supports | ||
111 | ; Usually this is only a box | ||
112 | |||
113 | ;meshing = Meshmerizer | ||
114 | ;meshing = ZeroMesher | ||
115 | ;; select ubODEMeshmerizer only with ubOde physics engine | ||
116 | meshing = ubODEMeshmerizer | ||
117 | |||
118 | ; ubODE and OpenDynamicsEngine does allocate a lot of memory on stack. On linux you may need to increase its limit | ||
119 | ; script opensim-ode-sh starts opensim setting that limit. You may need to increase it even more on large regions | ||
120 | ; edit the line ulimit -s 262144, and change this last value | ||
121 | |||
122 | ; if you use Meshmerizer and want sculpt map collisions, setting this to | ||
123 | ; to true will store decoded sculpt maps in a special folder in your bin | ||
124 | ; folder, which can reduce startup times by reducing asset requests. Some | ||
125 | ; versions of mono dont work well when reading the cache files, so set this | ||
126 | ; to false if you have compatibility problems. | ||
127 | CacheSculptMaps = true | ||
128 | |||
129 | ;; BulletSim is the default physics engine. It provides the best performance and most functionality. | ||
130 | ;; BulletSim supports varregions. | ||
131 | ;; OpenDynamicsEngine was the previous default physics engine in OpenSimulator 0.7.6.1 and before. | ||
132 | ;; It continues to provide a workable physics implementation. It does not currently support varregions. | ||
133 | ;; basicphysics effectively does not model physics at all, making all objects phantom. | ||
134 | ;; Default is BulletSim | ||
135 | ;physics = BulletSim | ||
136 | ;physics = modified_BulletX | ||
137 | ;physics = OpenDynamicsEngine | ||
138 | ;physics = basicphysics | ||
139 | ;physics = POS | ||
140 | ;; alternative OpenDynamicsEngine engine. ubODEMeshmerizer meshing above MUST be selected also | ||
141 | physics = ubODE | ||
142 | |||
143 | ; ## | ||
144 | ; ## SCRIPT ENGINE | ||
145 | ; ## | ||
146 | |||
147 | ;; Default script engine to use. Currently, we only have XEngine | ||
148 | DefaultScriptEngine = "XEngine" | ||
149 | |||
150 | ; Image decoding. Use CSJ2K for layer boundary decoding if true, | ||
151 | ; OpenJPEG if false | ||
152 | ; UseCSJ2K = true | ||
153 | |||
154 | |||
155 | [Map] | ||
156 | ; Map tile options. | ||
157 | ; If true, then maptiles are generated using the MapImageModule below. | ||
158 | ; If false then the texture referenced by MaptileStaticUUID is used instead, which can also be overridden | ||
159 | ; in individual region config file(s). If you do not want to upload map tiles at all, then you will need | ||
160 | ; both to set this to false and comment out the [Modules] MapImageServiceModule setting in config-include/ | ||
161 | GenerateMaptiles = false | ||
162 | |||
163 | ;WorldMapModule = "WorldMap" | ||
164 | |||
165 | ; The module to use in order to generate map images. | ||
166 | ; MapImageModule is the default. Warp3DImageModule is an alternative experimental module that can | ||
167 | ; generate better images. | ||
168 | MapImageModule = "Map3DImageModule" | ||
169 | |||
170 | ; World map blacklist timeout in seconds | ||
171 | ;BlacklistTimeout = 600 | ||
172 | |||
173 | ; Refresh (in seconds) the map tile periodically | ||
174 | MaptileRefresh = 0 | ||
175 | |||
176 | ; If not generating maptiles, use this static texture asset ID | ||
177 | MaptileStaticUUID = "00000000-0000-0000-0000-000000000000" | ||
178 | |||
179 | ; Draw objects on maptile. This step might take a long time if you've got a large number of | ||
180 | ; objects, so you can turn it off here if you'd like. | ||
181 | DrawPrimOnMapTile = false | ||
182 | |||
183 | ; Use terrain texture for maptiles if true, use shaded green if false | ||
184 | TextureOnMapTile = false | ||
185 | |||
186 | ; Texture prims | ||
187 | TexturePrims = false | ||
188 | |||
189 | ; Only texture prims that have a diagonal size greater than this number | ||
190 | TexturePrimSize = 64 | ||
191 | |||
192 | ; Attempt to render meshes and sculpties on the map | ||
193 | RenderMeshes = false | ||
194 | |||
195 | UseAntiAliasing = false | ||
196 | |||
197 | |||
198 | [Network] | ||
199 | ; OpenSim can send multiple simultaneous requests for services such as asset | ||
200 | ; retrieval. However, some versions of mono appear to hang when there are too | ||
201 | ; many simultaneous requests, default is 30 and is currently applied only to assets | ||
202 | ;MaxRequestConcurrency = 30 | ||
203 | |||
204 | |||
205 | [ClientStack.LindenUDP] | ||
206 | ; The client socket receive buffer size determines how many | ||
207 | ; incoming requests we can process; the default on .NET is 8192 | ||
208 | ; which is about 2 4k-sized UDP datagrams. On mono this is | ||
209 | ; whatever the underlying operating system has as default; for | ||
210 | ; example, ubuntu 8.04 or SLES11 have about 111k, which is about | ||
211 | ; 27 4k-sized UDP datagrams (on linux platforms you can [as root] | ||
212 | ; do "sysctl net.core.rmem_default" to find out what your system | ||
213 | ; uses a default socket receive buffer size. | ||
214 | ; | ||
215 | ; client_socket_rcvbuf_size allows you to specify the receive | ||
216 | ; buffer size LLUDPServer should use. NOTE: this will be limited | ||
217 | ; by the system's settings for the maximum client receive buffer | ||
218 | ; size (on linux systems you can set that with "sysctl -w | ||
219 | ; net.core.rmem_max=X") | ||
220 | ; | ||
221 | ;client_socket_rcvbuf_size = 8388608 | ||
222 | |||
223 | ; Maximum outbound bytes per second for a single scene. This can be used to | ||
224 | ; throttle total outbound UDP traffic for a simulator. The default value is | ||
225 | ; 0, meaning no throttling at the scene level. The example given here is | ||
226 | ; 20 megabits | ||
227 | ; | ||
228 | ;scene_throttle_max_bps = 2500000 | ||
229 | |||
230 | ; Maximum bytes per second to send to any single client. This will override | ||
231 | ; the user's viewer preference settings. The default value is 0, meaning no | ||
232 | ; aggregate throttling on clients (only per-category throttling). The | ||
233 | ; example given here is 1.5 megabits | ||
234 | ; | ||
235 | ;client_throttle_max_bps = 187500 | ||
236 | |||
237 | ; Minimum bytes per second to send to any single client as a result of | ||
238 | ; adaptive throttling. Viewer preferences set to a lower number will | ||
239 | ; override the settin. The example given here ensures that adaptive | ||
240 | ; throttling will never decrease per client bandwidth below 256 kbps. | ||
241 | ; | ||
242 | ;adaptive_throttle_min_bps = 32000 | ||
243 | |||
244 | ; Adaptive throttling attempts to limit network overload when multiple | ||
245 | ; clients login by starting each connection more slowly. Disabled by | ||
246 | ; default | ||
247 | ; | ||
248 | enable_adaptive_throttles = false | ||
249 | |||
250 | ; Per-client bytes per second rates for the various throttle categories. | ||
251 | ; These are default values that will be overridden by clients. These | ||
252 | ; defaults are approximately equivalent to the throttles set by the Imprudence | ||
253 | ; viewer when maximum bandwidth is set to 350kbps | ||
254 | |||
255 | ;resend_default = 6625 | ||
256 | ;land_default = 9125 | ||
257 | ;wind_default = 1750 | ||
258 | ;cloud_default = 1750 | ||
259 | ;task_default = 18500 | ||
260 | ;texture_default = 18500 | ||
261 | ;asset_default = 10500 | ||
262 | |||
263 | ; Configures how ObjectUpdates are aggregated. These numbers | ||
264 | ; do not literally mean how many updates will be put in each | ||
265 | ; packet that goes over the wire, as packets are | ||
266 | ; automatically split on a 1400 byte boundary. These control | ||
267 | ; the balance between responsiveness of interest list updates | ||
268 | ; and total throughput. Higher numbers will ensure more full- | ||
269 | ; sized packets and faster sending of data, but more delay in | ||
270 | ; updating interest lists | ||
271 | ; | ||
272 | ;PrimUpdatesPerCallback = 100 | ||
273 | |||
274 | ; TextureSendLimit determines how many packets will be put on | ||
275 | ; the outgoing queue each cycle. Like the settings above, this | ||
276 | ; is a balance between responsiveness to priority updates and | ||
277 | ; total throughput. Higher numbers will give a better | ||
278 | ; throughput at the cost of reduced responsiveness to client | ||
279 | ; priority changes or transfer aborts | ||
280 | ; | ||
281 | ;TextureSendLimit = 20 | ||
282 | |||
283 | ; CannibalizeTextureRate allows bandwidth to be moved from the | ||
284 | ; UDP texture throttle to the task throttle. Since most viewers | ||
285 | ; use HTTP textures, this provides a means of using what is largely | ||
286 | ; unused bandwidth in the total throttle. The value is the proportion | ||
287 | ; of the texture rate to move to the task queue. It must be between | ||
288 | ; 0.0 (none of the bandwidth is cannibalized) and 0.9 (90% of the | ||
289 | ; bandwidth is grabbed) | ||
290 | ; | ||
291 | ; CannibalizeTextureRate = 0.5 | ||
292 | |||
293 | ; The time to wait before disconecting an unresponsive client. | ||
294 | ; The time is in seconds. The default is one minute | ||
295 | ; | ||
296 | ;AckTimeout = 60 | ||
297 | |||
298 | ; The time to wait before disconecting an unresponsive paused client. | ||
299 | ; A client can be paused when the file selection dialog is open during file upload. | ||
300 | ; This gives extra time to find files via the dialog but will still disconnect if | ||
301 | ; the client crashes or loses its network connection | ||
302 | ; The time is in seconds. The default is five minutes. | ||
303 | ; | ||
304 | ;PausedAckTimeout = 300 | ||
305 | |||
306 | |||
307 | [Appearance] | ||
308 | ; Persist avatar baked textures | ||
309 | ; Persisting baked textures can speed up login and region border | ||
310 | ; crossings especially with large numbers of users, though it | ||
311 | ; will store potentially large numbers of textures in your asset | ||
312 | ; database | ||
313 | PersistBakedTextures = false | ||
314 | |||
315 | ; Control the delay before appearance is sent to other avatars and | ||
316 | ; saved in the avatar service. Attempts to limit the impact caused | ||
317 | ; by the very chatty dialog that sets appearance when an avatar | ||
318 | ; logs in or teleports into a region; values are in seconds | ||
319 | DelayBeforeAppearanceSave = 5 | ||
320 | DelayBeforeAppearanceSend = 2 | ||
321 | |||
322 | ; If true, avatar appearance information is resent to other avatars in the simulator every 60 seconds. | ||
323 | ; This may help with some situations where avatars are persistently grey, though it will not help | ||
324 | ; in other situations (e.g. appearance baking failures where the avatar only appears as a cloud to others). | ||
325 | ResendAppearanceUpdates = false | ||
326 | |||
327 | ; Turning this on responds to CachedTexture packets to possibly avoid rebaking the avatar | ||
328 | ; on every login | ||
329 | ReuseTextures = true | ||
330 | |||
331 | |||
332 | [Attachments] | ||
333 | ; Controls the number of milliseconds that are slept per 100 prims rezzed in attachments | ||
334 | ; Experimental setting to control CPU spiking when avatars with many attachments login/change outfit | ||
335 | ; or when multiple avatars with medium level attachments login/change outfit simultaneously. | ||
336 | ; If 0 then no throttling is performed. | ||
337 | ThrottlePer100PrimsRezzed = 0 | ||
338 | |||
339 | |||
340 | [Textures] | ||
341 | ; If true, textures generated dynamically (i.e. through osSetDynamicTextureData() and similar OSSL functions) are reused where possible | ||
342 | ; Chiefly, reuse occurs if a texture has already been generated with identical data and settings, and that texture contains no dynamic components | ||
343 | ; (e.g. images pulled from an external HTTP address). | ||
344 | ; 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. | ||
345 | ; Currently, it will also increase asset cache use since temporary dynamic textures are no longer deleted. | ||
346 | ; Hence, currently considered experimental. | ||
347 | ; Default is false. | ||
348 | ReuseDynamicTextures = true | ||
349 | |||
350 | ; If true, then textures generated dynamically that have a low data size relative to their pixel size are not reused | ||
351 | ; 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. | ||
352 | ; Only set this to true if you are sure that all the viewers using your simulator will not suffer from this problem. | ||
353 | ; This setting only has an affect is ReuseDynamicTextures = true | ||
354 | ; Default is false | ||
355 | ReuseDynamicLowDataTextures = true | ||
356 | |||
357 | |||
358 | [ODEPhysicsSettings] | ||
359 | ; ## | ||
360 | ; ## Physics stats settings ( most ignored by ubOde ) | ||
361 | ; | ||
362 | |||
363 | ; If collect_stats is enabled, then extra stat information is collected which is accessible via the MonitorModule | ||
364 | ; (see http://opensimulator.org/wiki/Monitoring_Module for more details). | ||
365 | collect_stats = false | ||
366 | |||
367 | ; ## | ||
368 | ; ## Physics logging settings - logfiles are saved to *.DIF files | ||
369 | ; ## | ||
370 | |||
371 | ; default is false | ||
372 | ;physics_logging = true | ||
373 | ;; every n simulation iterations, the physics snapshot file is updated | ||
374 | ;physics_logging_interval = 50 | ||
375 | ;; append to existing physics logfile, or overwrite existing logfiles? | ||
376 | ;physics_logging_append_existing_logfile = true | ||
377 | |||
378 | ;## | ||
379 | ;## World Settings | ||
380 | ;## | ||
381 | |||
382 | ; World Step size. | ||
383 | ; with legacy ODE this value needs to be close to 0.02s | ||
384 | ; with ubOde this value can be reduced to improve simulation quality with the cost of higher cpu load | ||
385 | ; you will need to test acording to you needs | ||
386 | ; choosing a value that is a integer sub multiple of FrameRate reduces some jitter on reported physics FPS | ||
387 | world_stepsize = 0.015 | ||
388 | ; number of iterations of constrains solver, higher should improve results | ||
389 | ; up to a point where acumulated math errors eliminate the improvement | ||
390 | ; more steps may increase CPU load. No real gain in changing | ||
391 | world_solver_iterations = 10 | ||
392 | |||
393 | ;Spaces level settings. Affects memory consumption vs Collider CPU time for avatar and physical prim | ||
394 | ; defines spaces partition cells min and max sizes == 2^value | ||
395 | world_hashspace_level_low = -5 | ||
396 | world_hashSpace_level_high = 12 | ||
397 | |||
398 | meters_in_small_space = 29.9 | ||
399 | |||
400 | |||
401 | ; ## | ||
402 | ; ## Contact properties. (the stuff that happens when things come in contact with each other) | ||
403 | ; ## | ||
404 | |||
405 | ; surface layer around geometries other geometries can sink into before generating a contact | ||
406 | world_contact_surface_layer = 0.001 | ||
407 | |||
408 | ; Filtering collisions helps keep things stable physics wise, but sometimes | ||
409 | ; it can be overzealous. If you notice bouncing, chances are it's that. | ||
410 | filter_collisions = false | ||
411 | |||
412 | ; Non Moving Terrain Contact (avatar isn't moving) | ||
413 | nm_terraincontact_friction = 255.0 | ||
414 | nm_terraincontact_bounce = 0.1 | ||
415 | nm_terraincontact_erp = 0.1025 | ||
416 | |||
417 | ; Moving Terrain Contact (avatar is moving) | ||
418 | m_terraincontact_friction = 75.0 | ||
419 | m_terraincontact_bounce = 0.05 | ||
420 | m_terrainContact_erp = 0.05025 | ||
421 | |||
422 | ; Moving Avatar to object Contact | ||
423 | m_avatarobjectcontact_friction = 75.0 | ||
424 | m_avatarobjectcontact_bounce = 0.1 | ||
425 | |||
426 | ; Object to Object Contact and Non-Moving Avatar to object | ||
427 | objectcontact_friction = 250.0 | ||
428 | objectcontact_bounce = 0.2 | ||
429 | |||
430 | ; ## | ||
431 | ; ## Avatar Control | ||
432 | ; ## | ||
433 | |||
434 | ; PID Controller Settings. These affect the math that causes the avatar to reach the | ||
435 | ; desired velocity | ||
436 | ; See http://en.wikipedia.org/wiki/PID_controller | ||
437 | |||
438 | av_pid_derivative = 2200.0 | ||
439 | av_pid_proportional = 900.0 | ||
440 | |||
441 | ; specifies if the capsule should be tilted (=true; old compatibility mode) | ||
442 | ; or straight up-and-down (=false; better and more consistent physics behavior) | ||
443 | av_capsule_tilted = false | ||
444 | |||
445 | ; Movement. Smaller is faster. | ||
446 | |||
447 | ; speed of movement with Always Run off | ||
448 | av_movement_divisor_walk = 1.4 | ||
449 | |||
450 | ; speed of movement with Always Run on | ||
451 | av_movement_divisor_run = 0.9 | ||
452 | |||
453 | ; When the avatar flies, it will be moved up by this amount off the ground (in meters) | ||
454 | minimum_ground_flight_offset = 3.0 | ||
455 | |||
456 | ; Plant avatar. This reduces the effect of physical contacts with the avatar. | ||
457 | ; If you have a group of unruly and rude visitors that bump each other, turn this on to make that less attractive. | ||
458 | ; The avatar still allows a small movement based on the PID settings above. Stronger PID settings AND this active | ||
459 | ; will lock the avatar in place | ||
460 | av_planted = true | ||
461 | |||
462 | ; 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 | ||
463 | av_av_collisions_off = true | ||
464 | |||
465 | ; ## | ||
466 | ; ## Object options | ||
467 | ; ## | ||
468 | |||
469 | ; amount of ODE steps where object is non moving for ODE to automatically put it to sleep | ||
470 | body_frames_auto_disable = 20 | ||
471 | |||
472 | ; used to control llMove2Target | ||
473 | body_pid_derivative = 35 | ||
474 | body_pid_gain = 25 | ||
475 | |||
476 | ; maximum number of contact points to generate per collision | ||
477 | contacts_per_collision = 80 | ||
478 | |||
479 | ; start throttling the object updates if object comes in contact with 3 or more other objects | ||
480 | geom_contactpoints_start_throttling = 3 | ||
481 | |||
482 | ; send 1 update for every x updates below when throttled | ||
483 | geom_updates_before_throttled_update = 15 | ||
484 | |||
485 | ; ## | ||
486 | ; ## Sculpted Prim settings | ||
487 | ; ## | ||
488 | |||
489 | ; Do we want to mesh sculpted prim to collide like they look? | ||
490 | ; If you are seeing sculpt texture decode problems | ||
491 | ; (messages such as "Decoded image with unhandled number of components: 0 shortly followed by a physcs exception") | ||
492 | ; then you might want to try setting this to false. | ||
493 | mesh_sculpted_prim = false | ||
494 | |||
495 | ; number^2 non-physical level of detail of the sculpt texture. 32x32 - 1024 verticies | ||
496 | mesh_lod = 32 | ||
497 | |||
498 | ; number^2 physical level of detail of the sculpt texture. 16x16 - 256 verticies | ||
499 | mesh_physical_lod = 16 | ||
500 | |||
501 | ; ## | ||
502 | ; ## additional meshing options | ||
503 | ; ## | ||
504 | |||
505 | ; Physics needs to create internal meshs (or convert the object meshs or scultps) | ||
506 | ; for all prims except simple boxes and spheres. | ||
507 | |||
508 | ; collisions of small objects againts larger ones can have a increased CPU load cost | ||
509 | ; so this are represented by a simple BOX | ||
510 | ; if all their scale dimensions are lower or equal to this option. Default is 0.1m | ||
511 | ; (ubOde only) | ||
512 | ; MinSizeToMeshmerize = 0.1 | ||
513 | |||
514 | |||
515 | [BulletSim] | ||
516 | ; There are two bullet physics libraries, bulletunmanaged is the default and is a | ||
517 | ; native c++ dll bulletxna is a managed C# dll. They have comparible functionality | ||
518 | ; but the c++ one is much faster. | ||
519 | ;BulletEngine = "bulletunmanaged" | ||
520 | BulletEngine = "bulletxna" | ||
521 | |||
522 | ; BulletSim can run on its own thread independent of the simulator's heartbeat | ||
523 | ; thread. Enabling this will not let the physics engine slow down avatar movement, etc. | ||
524 | UseSeparatePhysicsThread = true | ||
525 | |||
526 | ; Terrain implementation can use either Bullet's heightField or BulletSim can build | ||
527 | ; a mesh. 0=heightField, 1=mesh | ||
528 | TerrainImplementation = 0 | ||
529 | ; For mesh terrain, the detail of the created mesh. '1' gives 256x256 (heightfield | ||
530 | ; resolution). '2' gives 512x512. Etc. Cannot be larger than '4'. Higher | ||
531 | ; magnifications use lots of memory. | ||
532 | TerrainMeshMagnification = 1 | ||
533 | |||
534 | ; Should avatars collide with each other? | ||
535 | AvatarToAvatarCollisionsByDefault = false | ||
536 | |||
537 | ; Default linkset implmentation | ||
538 | ; 'Constraint' uses physics constraints to hold linkset together. 'Compound' | ||
539 | ; builds a compound shape from the children shapes to create a single physical | ||
540 | ; shape. 'Compound' uses a lot less CPU time. | ||
541 | LinkImplementation = 1 ; 0=constraint, 1=compound | ||
542 | |||
543 | ; If 'true', offset a linkset's origin based on mass of linkset parts. | ||
544 | LinksetOffsetCenterOfMass = false | ||
545 | |||
546 | ; If 'true', turn scuplties into meshes | ||
547 | MeshSculptedPrim = false | ||
548 | |||
549 | ; If 'true', force simple prims (box and sphere) to be meshed | ||
550 | ; If 'false', the Bullet native special case shape is used for square rectangles | ||
551 | ; and even dimensioned spheres. | ||
552 | ForceSimplePrimMeshing = true | ||
553 | |||
554 | ; If 'true', when creating meshes, remove all triangles that have two equal vertexes. | ||
555 | ; Happens often in sculpties. If turned off, there will be some doorways | ||
556 | ; that cannot be walked through. | ||
557 | ShouldRemoveZeroWidthTriangles = true | ||
558 | |||
559 | ; If 'true', use convex hull definition in mesh asset if present. | ||
560 | ShouldUseAssetHulls = true | ||
561 | |||
562 | ; If there are thousands of physical objects, these maximums should be increased. | ||
563 | MaxCollisionsPerFrame = 2048 | ||
564 | MaxUpdatesPerFrame = 8192 | ||
565 | |||
566 | ; Detailed physics debug logging. Very verbose. | ||
567 | PhysicsLoggingEnabled = False | ||
568 | PhysicsLoggingDir = "." | ||
569 | VehicleLoggingEnabled = False | ||
570 | |||
571 | |||
572 | [Sun] | ||
573 | ; send a Sun update every update_interval # of frames. A lower number will | ||
574 | ; make for smoother sun transition at the cost of network | ||
575 | ;update_interval = 100 | ||
576 | |||
577 | |||
578 | [Wind] | ||
579 | ; How often should wind be updated, as a function of world frames. Approximately 50 frames a second | ||
580 | wind_update_rate = 150 | ||
581 | |||
582 | ; The Default Wind Plugin to load | ||
583 | wind_plugin = SimpleRandomWind | ||
584 | |||
585 | |||
586 | [Cloud] | ||
587 | ; update interval for the cloud cover data returned by llCloud(). | ||
588 | ; default is 1000 | ||
589 | cloud_update_rate = 1000 | ||
590 | |||
591 | |||
592 | [Trees] | ||
593 | ; active_trees allows module to change its trees in time. | ||
594 | ; some will be deleted, others created and rest may grow | ||
595 | ; default is false. You can change it with console command tree active true | false later | ||
596 | active_trees = false | ||
597 | ; the trees change execution time rate (in ms) | ||
598 | update_rate = 1000 | ||
599 | |||
600 | ; allow the trees to grow. | ||
601 | ; DANGER | ||
602 | ; this option causes high network use on the order of | ||
603 | ; NumberOfTrees * NumberAvatars * 1000 / update_rate udp packets per second | ||
604 | allowGrow = false | ||
605 | |||
606 | |||
607 | [LL-Functions] | ||
608 | ; Maximum number of llListen events we allow over the entire region. | ||
609 | ; Set this to 0 to have no limit imposed | ||
610 | max_listens_per_region = 0 | ||
611 | |||
612 | ; Maximum number of llListen events we allow per script | ||
613 | ; Set this to 0 to have no limit imposed. | ||
614 | max_listens_per_script = 0 | ||
615 | |||
616 | ; Maximum number of external urls that scripts can set up in this simulator (e.g. via llRequestURL()) | ||
617 | max_external_urls_per_simulator = 256 | ||
618 | |||
619 | ; Use size boxes instead of meshed prims, sculpts and mesh when calculating bounding boxes. | ||
620 | ; Speeds up calculations but can make them inaccurate, in some cases very inaccurate. | ||
621 | UseSimpleBoxesInGetBoundingBox = true | ||
622 | |||
623 | ; Use llCastRay V3 if true. | ||
624 | ; Implements llCastRay similar but not identical to Second Life. | ||
625 | ; See http://wiki.secondlife.com/wiki/LlCastRay . | ||
626 | ; NEW | ||
627 | ; Meshes prims for good accuracy in ray hit detection, | ||
628 | ; handling basic and tortured prims, sculpts and meshes. | ||
629 | ; Uses ellipsoid, correctly sized avatar capsules. | ||
630 | ; Handles complex terrain, multi-prim objects and seated avatars. | ||
631 | ; Implements throttling and the status codes | ||
632 | ; RCERR_UNKNOWN and RCERR_CAST_TIME_EXCEEDED, | ||
633 | ; so LSL scripts need to handle these responses and RCERR_SIM_PERF_LOW. | ||
634 | ; WARNING | ||
635 | ; Can be faster on some servers and scenes, but slower on others, | ||
636 | ; compared to previous version of llCastRay in OpenSimulator. | ||
637 | ; Is in most cases considerably slower than llCastRay in Second Life. | ||
638 | ; Generates geometry meshes and can therefore use much system resources. | ||
639 | UseLlCastRayV3 = true | ||
640 | |||
641 | ; Accepted calculation precision error in calculations in llCastRay V3 | ||
642 | FloatToleranceInLlCastRay = 0.00001 | ||
643 | |||
644 | ; Accepted distance difference between duplicate hits in llCastRay V3 | ||
645 | FloatTolerance2InLlCastRay = 0.001 | ||
646 | |||
647 | ; Detail level when rendering prims in llCastRay V3 | ||
648 | ; 0 = Low, 1 = Medium, 2 = High, 3 = Highest, higer level gives better accuracy but slower call | ||
649 | PrimDetailLevelInLlCastRay = 1 | ||
650 | |||
651 | ; Detail level when rendering sculpts in llCastRay V3 | ||
652 | ; 0 = Low, 1 = Medium, 2 = High, 3 = Highest, higer level gives better accuracy but slower call | ||
653 | SculptDetailLevelInLlCastRay = 1 | ||
654 | |||
655 | ; Detail level when rendering meshes in llCastRay V3 | ||
656 | ; 0 = Low, 1 = Medium, 2 = High, 3 = Highest, higer level gives better accuracy but slower call | ||
657 | MeshDetailLevelInLlCastRay = 3 | ||
658 | |||
659 | ; Detail level when rendering avatar capsules in llCastRay V3 | ||
660 | ; 0 = Low, 1 = Medium, 2 = High, 3 = Highest, higer level gives better accuracy but slower call | ||
661 | AvatarDetailLevelInLlCastRay = 1 | ||
662 | |||
663 | ; Maximum number of returned hits from llCastRay V3 | ||
664 | MaxHitsInLlCastRay = 16 | ||
665 | |||
666 | ; Maximum number of returned hits per prim from llCastRay V3 | ||
667 | MaxHitsPerPrimInLlCastRay = 16 | ||
668 | |||
669 | ; Maximum number of returned hits per object from llCastRay V3 | ||
670 | MaxHitsPerObjectInLlCastRay = 16 | ||
671 | |||
672 | ; Report ray intersections with surfaces on exits from a prim as hits in llCastRay V3 if true | ||
673 | DetectExitHitsInLlCastRay = false | ||
674 | |||
675 | ; Detect attachments in llCastRay V3 if true | ||
676 | DoAttachmentsInLlCastRay = false | ||
677 | |||
678 | ; Throttle period length in ms before which all old llCastRay use is discarded in llCastRay V3 | ||
679 | ; The sum of AvailableTimeInMsPerRegionInLlCastRay and all AvailableTimeInMsPerAvatarInLlCastRay should not exceed this | ||
680 | ThrottleTimeInMsInLlCastRay = 200 | ||
681 | |||
682 | ; Available time in ms for llCastRay per throttle period and 65536 m2 land area in llCastRay V3 | ||
683 | AvailableTimeInMsPerRegionInLlCastRay = 40 | ||
684 | |||
685 | ; Available time in ms for llCastRay per throttle period and avatar when script in attachment or vehicle in llCastRay V3 | ||
686 | AvailableTimeInMsPerAvatarInLlCastRay = 10 | ||
687 | |||
688 | ; Required available time in ms left to perform a new llCastRay in llCastRay V3 | ||
689 | RequiredAvailableTimeInMsInLlCastRay = 2 | ||
690 | |||
691 | ; Maximum available time in ms possible in llCastRay V3, not to get too high values with varregions | ||
692 | MaximumAvailableTimeInMsInLlCastRay = 40 | ||
693 | |||
694 | ; Use cached meshes in llCastRay V3 if true | ||
695 | ; Improves performance but uses more memory | ||
696 | UseMeshCacheInLlCastRay = true | ||
697 | |||
698 | |||
699 | [XEngine] | ||
700 | ; How many threads to keep alive even if nothing is happening | ||
701 | MinThreads = 2 | ||
702 | |||
703 | ; How many threads to start at maximum load | ||
704 | MaxThreads = 100 | ||
705 | |||
706 | ; Time a thread must be idle (in seconds) before it dies | ||
707 | IdleTimeout = 60 | ||
708 | |||
709 | ; Thread priority ("Lowest", "BelowNormal", "Normal", "AboveNormal", "Highest") | ||
710 | Priority = "Normal" | ||
711 | |||
712 | ; Maximum number of events to queue for a script (excluding timers) | ||
713 | MaxScriptEventQueue = 3000 | ||
714 | |||
715 | ; Stack size per thread created | ||
716 | ThreadStackSize = 262144 | ||
717 | |||
718 | ; Set this to true to load each script into a separate | ||
719 | ; AppDomain. Setting this to false will load all script assemblies into the | ||
720 | ; current AppDomain, which will reduce the initial per-script memory overhead, | ||
721 | ; but deleted scripts stay inactive using memory. | ||
722 | ; Significantly improving script loading times. | ||
723 | ; However, setting this to false will also prevent script DLLs from being unloaded from memory if the script is deleted. | ||
724 | ; This may cause an OutOfMemory problem over time when avatars with scripted attachments move in and out of the region. | ||
725 | ; This may only be a problem if regions stay alive for a long time with lots of scripts added or edited. | ||
726 | ; At this time some mono versions seem to have problems with the true option, | ||
727 | ; so default is now false until a fix is found, to simply life of less technical skilled users. | ||
728 | AppDomainLoading = false | ||
729 | |||
730 | ; Controls whether previously compiled scripts DLLs are deleted on sim restart. | ||
731 | ; If you set this to false then startup will be considerably faster since scripts won't need to be recompiled. | ||
732 | ; It should be true on first run after updating opensim binary version | ||
733 | ; after first run you can change to false. | ||
734 | ; You can also set it to false and delete the script DLLs by hand | ||
735 | ; This does not delete cached scripts state. | ||
736 | DeleteScriptsOnStartup = false | ||
737 | |||
738 | ; CompactMemOnLoad | ||
739 | ; forces calls to memory garbage collector before loading each script DLL during region startup. | ||
740 | ; Peak memory usage is reduced and region starts with a more compacted memory allocation. | ||
741 | ; But this costs a lot of time, so region load will take a lot longer. | ||
742 | ; it is more usefull if there are no previously compiled scripts DLLs (or DeleteScriptsOnStartup = true) | ||
743 | CompactMemOnLoad = true | ||
744 | |||
745 | ; Controls whether scripts are stopped by aborting their threads externally (abort) | ||
746 | ; or by co-operative checks inserted by OpenSimulator into compiled script (co-op). | ||
747 | ; co-op will be more stable as aborting threads can cause instability. | ||
748 | ; abort was the default option in OpenSimulator 0.8 and before. | ||
749 | ; If this setting is changed between co-op and abort, then existing scripts will automatically be recompiled if necessary. | ||
750 | ; However, the setting change will not take affect until the next time you restart the simulator. | ||
751 | ; Setting changes will not affect state information stored for scripts. | ||
752 | ScriptStopStrategy = abort | ||
753 | |||
754 | ; Rate to poll for asynchronous command replies (ms) | ||
755 | ; currently unused | ||
756 | ;AsyncLLCommandLoopms = 50 | ||
757 | |||
758 | ; Compile debug info (line numbers) into the script assemblies | ||
759 | CompileWithDebugInformation = false | ||
760 | |||
761 | ; Interval (s) between background save of script states | ||
762 | SaveInterval = 120 | ||
763 | |||
764 | ; Interval (s) between maintenance runs (0 = disable) | ||
765 | MaintenanceInterval = 10 | ||
766 | |||
767 | ; Amount of time in milliseconds we will wait for an event to completely normally when a script stop is requested | ||
768 | ; before aborting the thread (such as when an object containing scripts is taken into inventory). | ||
769 | WaitForEventCompletionOnScriptStop = 1000 | ||
770 | |||
771 | ; Minimum settable timer interval. Any timer setting less than this is | ||
772 | ; rounded up to this minimum interval. | ||
773 | MinTimerInterval = 0.1 | ||
774 | |||
775 | ; Sensor settings | ||
776 | SensorMaxRange = 96.0 | ||
777 | SensorMaxResults = 64 | ||
778 | |||
779 | |||
780 | [Groups] | ||
781 | ; Groups data is cached for this number of seconds before another request is made to the groups service | ||
782 | ; Set to 0 to disable the cache. | ||
783 | ; Default is 30 seconds | ||
784 | GroupsCacheTimeout = 30 | ||
785 | |||
786 | |||
787 | [PacketPool] | ||
788 | ;RecyclePackets = true | ||
789 | ;RecycleDataBlocks = true | ||
790 | |||
791 | ; If true, then the basic packet objects used to receive data are also recycled, not just the LLUDP packets. | ||
792 | ; This reduces data churn | ||
793 | RecycleBaseUDPPackets = true | ||
794 | |||
795 | |||
796 | [InterestManagement] | ||
797 | ; This section controls how state updates are prioritized for each client | ||
798 | ; Valid values are BestAvatarResponsiveness, Time, Distance, | ||
799 | ; SimpleAngularDistance, and FrontBack | ||
800 | UpdatePrioritizationScheme = BestAvatarResponsiveness | ||
801 | ReprioritizationEnabled = true | ||
802 | ReprioritizationInterval = 2000.0 | ||
803 | RootReprioritizationDistance = 10.0 | ||
804 | ChildReprioritizationDistance = 20.0 | ||
805 | |||
806 | ; TEST OPTION KEEP AS FALSE | ||
807 | ; if true, don't send object updates if outside view range | ||
808 | ObjectsCullingByDistance = false | ||
809 | |||
810 | ; If n > 1, only every n UDP terse updates will be sent to observers of an avatar that are in the same region | ||
811 | ; 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). | ||
812 | ; n > 1 will reduce UDP traffic but will lead to laggier movement observed in other avatars. | ||
813 | RootTerseUpdatePeriod = 0 | ||
814 | |||
815 | ; If n > 1, only every n UDP terse updates will be sent to observers of an avatar that are in another region | ||
816 | ; 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. | ||
817 | ChildTerseUpdatePeriod = 0 | ||
818 | |||
819 | ; Send an update to clients if the difference from the last sent avatar position is greater than this tolerance | ||
820 | RootPositionUpdateTolerance = 0.05 | ||
821 | |||
822 | ; Send an update to clients if the euclidian difference from the last sent avatar rotation is greater than this tolerance | ||
823 | RootRotationUpdateTolerance = 0.1 | ||
824 | |||
825 | ; Send an update to clients if the difference from the last sent avatar velocity is greater than this tolerance | ||
826 | RootVelocityUpdateTolerance = 0.001 | ||
827 | |||
828 | |||
829 | [Statistics] | ||
830 | ; NumberOfFrames is used in a moving average calculation, where NumberOfFrames is the number of frames | ||
831 | ; to include in the averaging calculations | ||
832 | NumberOfFrames=10 | ||
833 | |||
834 | |||
835 | [Terrain] | ||
836 | ; If 'true' each avatar is only sent terrain patches within their view distance | ||
837 | ; This also changes the region terrain loading from 'lawn mower' to ordered around | ||
838 | ; the avatar outward. | ||
839 | SendTerrainUpdatesByViewDistance = True | ||
840 | |||
841 | |||
842 | [LandManagement] | ||
843 | ; When editing terrain or objects, parcel layer info is updated in the viewer. | ||
844 | ; This can be expensive for large regions. If this variable is 'true', only the | ||
845 | ; parcel layer data around the area of interest is sent. The parcel layer info | ||
846 | ; is sent for 'ParcelLayerViewDistance' around the interest point. | ||
847 | ; If 'ParcelLayerViewDistance' is >= 128, the operation for legacy sized regions | ||
848 | ; will be what it has always been (send the whole region's parcel layer info). | ||
849 | ; Other parcel updates (login, changing parcel ownership, ...) will still send | ||
850 | ; whole region. | ||
851 | LimitParcelLayerUpdateDistance = true | ||
852 | ParcelLayerViewDistance = 128 | ||
853 | |||
854 | |||
855 | ;; If you are using a simian grid frontend you can enable | ||
856 | ;; this module to upload tile images for the mapping fn | ||
857 | ;; | ||
858 | [SimianGridMaptiles] | ||
859 | RefreshTime = 3600 | ||
860 | |||
861 | |||
862 | ;; | ||
863 | ;; These are defaults that are overwritten below in [Architecture]. | ||
864 | ;; These defaults allow OpenSim to work out of the box with | ||
865 | ;; zero configuration | ||
866 | ;; | ||
867 | [AssetService] | ||
868 | ; Disable this to prevent the default asset set from being inserted into the | ||
869 | ; asset store each time the region starts | ||
870 | AssetLoaderEnabled = false | ||
871 | |||
872 | |||
873 | [AutoBackupModule] | ||
874 | ;; default is module is disabled at the top level | ||
875 | AutoBackupModuleEnabled = false | ||
876 | |||
877 | |||
878 | [ServiceThrottle] | ||
879 | ;; Default time interval (in ms) for the throttle service thread to wake up | ||
880 | Interval = 5000 | ||
881 | |||
882 | |||
883 | [Materials] | ||
884 | MaxMaterialsPerTransaction = 50 | ||
diff --git a/bin/config-include/SimLean.ini b/bin/config-include/SimLean.ini new file mode 100644 index 0000000..0e80320 --- /dev/null +++ b/bin/config-include/SimLean.ini | |||
@@ -0,0 +1,884 @@ | |||
1 | [Startup] | ||
2 | ; ## | ||
3 | ; ## SYSTEM | ||
4 | ; ## | ||
5 | |||
6 | ; Sets the method that OpenSim will use to fire asynchronous | ||
7 | ; events. Valid values are UnsafeQueueUserWorkItem, | ||
8 | ; QueueUserWorkItem, BeginInvoke, SmartThreadPool, and Thread. | ||
9 | ; | ||
10 | ; SmartThreadPool is reported to work well on Mono/Linux, but | ||
11 | ; UnsafeQueueUserWorkItem has been benchmarked with better | ||
12 | ; performance on .NET/Windows | ||
13 | ; | ||
14 | ; UnsafeQueueUserWorkItem refers to the fact that the code creating the event could elevate its security | ||
15 | ; privileges. However, as calling code is trusted anyway this is safe (if you set | ||
16 | ; TrustedBinaries = true in the [XEngine] section then you already have to trust that incoming code for other reasons). | ||
17 | async_call_method = SmartThreadPool | ||
18 | |||
19 | ; Max threads to allocate on the FireAndForget thread pool | ||
20 | ; when running with the SmartThreadPool option above | ||
21 | MaxPoolThreads = 300 | ||
22 | |||
23 | ; Allow certain jobs to be run consecutively in a job engine rather than always concurrently. | ||
24 | ; This improves performance in regions with large numbers of connections (in the hundreds). | ||
25 | JobEngineEnabled = false | ||
26 | |||
27 | ; Maximum number of position, rotation and scale changes for each prim that the simulator will store for later undos | ||
28 | ; Increasing this number will increase memory usage. | ||
29 | MaxPrimUndos = 10 | ||
30 | |||
31 | ; If a viewer attempts to rez a prim larger than the non-physical or physical prim max, clamp the dimensions to the appropriate maximum | ||
32 | ; This can be overridden in the region config file. | ||
33 | ClampPrimSize = false | ||
34 | |||
35 | ; If a prim is loaded from an external source, clamp it to Z = 0 if Z is negative. | ||
36 | ClampNegativeZ = false | ||
37 | |||
38 | ; Allow scripts to keep running when they cross region boundaries, rather than being restarted. State is reloaded on the destination region. | ||
39 | ; This only applies when crossing to a region running in a different simulator. | ||
40 | ; For crossings where the regions are on the same simulator the script is always kept running. | ||
41 | AllowScriptCrossing = true | ||
42 | |||
43 | ; Main Frame time | ||
44 | ; This defines the rate of several simulation events. | ||
45 | ; Default value should meet most needs. | ||
46 | ; It can be reduced to improve the simulation of moving objects, with possible increase of cpu and network loads. | ||
47 | ; It should not be less than the physics engine step time. | ||
48 | ; Being a integer multiple of it may reduce some jitter in reported physics FPS. | ||
49 | ; changing this value, you need to change some of the following *EveryNFrames so their actions timing remains the same | ||
50 | FrameTime = 0.0909 | ||
51 | |||
52 | ; Send scheduled updates to objects in the scene | ||
53 | ; This must be a whole number | ||
54 | UpdateObjectsEveryNFrames = 1 | ||
55 | |||
56 | ; Send position/velocity, etc. updates to agents in the scene | ||
57 | ; This must be a whole number | ||
58 | UpdateAgentsEveryNFrames = 1 | ||
59 | |||
60 | ; Apply pending forces from physics calculations to an entity. | ||
61 | ; This must be a whole number | ||
62 | UpdateEntityMovementEveryNFrames = 1 | ||
63 | |||
64 | ; Send coarse location updates to viewers. In a classic viewer, this updates the minimap. | ||
65 | ; This must be a whole number | ||
66 | UpdateCoarseLocationsEveryNFrames = 50 | ||
67 | |||
68 | ; Physics simulation execution or syncronization, acording to engine. Should be 1 | ||
69 | ; This must be a whole number | ||
70 | UpdatePhysicsEveryNFrames = 1 | ||
71 | |||
72 | ; Send out the on frame event to modules and other listeners. This should probably never deviate from 1. | ||
73 | ; This must be a whole number | ||
74 | UpdateEventsEveryNFrames = 1 | ||
75 | |||
76 | ; Send terrain updates to viewers | ||
77 | ; This must be a whole number | ||
78 | UpdateTerrainEveryNFrames = 50 | ||
79 | |||
80 | ; Persitently store any objects which meet the PRIM STORAGE criteria | ||
81 | ; This must be a whole number | ||
82 | UpdateStorageEveryNFrames = 200 | ||
83 | |||
84 | ; Clean up temp on rez objects. | ||
85 | ; This must be a whole number | ||
86 | UpdateTempCleaningEveryNSeconds = 180 | ||
87 | |||
88 | ; ## | ||
89 | ; ## PRIM STORAGE | ||
90 | ; ## | ||
91 | |||
92 | ; Persistence of changed objects happens during regular sweeps. The following control that behaviour to | ||
93 | ; prevent frequently changing objects from heavily loading the region data store. | ||
94 | ; If both of these values are set to zero then persistence of all changed objects will happen on every sweep. | ||
95 | ; | ||
96 | ; Objects will be considered for persistance in the next sweep when they have not changed for this number of seconds | ||
97 | MinimumTimeBeforePersistenceConsidered = 60 | ||
98 | ; Objects will always be considered for persistance in the next sweep if the first change occurred this number of seconds ago | ||
99 | MaximumTimeBeforePersistenceConsidered = 600 | ||
100 | |||
101 | ; ## | ||
102 | ; ## PHYSICS | ||
103 | ; ## | ||
104 | |||
105 | ; Select a mesher here. | ||
106 | ; | ||
107 | ; Meshmerizer properly handles complex prims by using triangle meshes. | ||
108 | ; Note that only the ODE physics engine currently deals with meshed prims in a satisfactory way | ||
109 | ; | ||
110 | ; ZeroMesher is faster but leaves the physics engine to model the mesh using the basic shapes that it supports | ||
111 | ; Usually this is only a box | ||
112 | |||
113 | ;meshing = Meshmerizer | ||
114 | ;meshing = ZeroMesher | ||
115 | ;; select ubODEMeshmerizer only with ubOde physics engine | ||
116 | meshing = ubODEMeshmerizer | ||
117 | |||
118 | ; ubODE and OpenDynamicsEngine does allocate a lot of memory on stack. On linux you may need to increase its limit | ||
119 | ; script opensim-ode-sh starts opensim setting that limit. You may need to increase it even more on large regions | ||
120 | ; edit the line ulimit -s 262144, and change this last value | ||
121 | |||
122 | ; if you use Meshmerizer and want sculpt map collisions, setting this to | ||
123 | ; to true will store decoded sculpt maps in a special folder in your bin | ||
124 | ; folder, which can reduce startup times by reducing asset requests. Some | ||
125 | ; versions of mono dont work well when reading the cache files, so set this | ||
126 | ; to false if you have compatibility problems. | ||
127 | CacheSculptMaps = false | ||
128 | |||
129 | ;; BulletSim is the default physics engine. It provides the best performance and most functionality. | ||
130 | ;; BulletSim supports varregions. | ||
131 | ;; OpenDynamicsEngine was the previous default physics engine in OpenSimulator 0.7.6.1 and before. | ||
132 | ;; It continues to provide a workable physics implementation. It does not currently support varregions. | ||
133 | ;; basicphysics effectively does not model physics at all, making all objects phantom. | ||
134 | ;; Default is BulletSim | ||
135 | ;physics = BulletSim | ||
136 | ;physics = modified_BulletX | ||
137 | ;physics = OpenDynamicsEngine | ||
138 | ;physics = basicphysics | ||
139 | ;physics = POS | ||
140 | ;; alternative OpenDynamicsEngine engine. ubODEMeshmerizer meshing above MUST be selected also | ||
141 | physics = ubODE | ||
142 | |||
143 | ; ## | ||
144 | ; ## SCRIPT ENGINE | ||
145 | ; ## | ||
146 | |||
147 | ;; Default script engine to use. Currently, we only have XEngine | ||
148 | DefaultScriptEngine = "XEngine" | ||
149 | |||
150 | ; Image decoding. Use CSJ2K for layer boundary decoding if true, | ||
151 | ; OpenJPEG if false | ||
152 | ; UseCSJ2K = true | ||
153 | |||
154 | |||
155 | [Map] | ||
156 | ; Map tile options. | ||
157 | ; If true, then maptiles are generated using the MapImageModule below. | ||
158 | ; If false then the texture referenced by MaptileStaticUUID is used instead, which can also be overridden | ||
159 | ; in individual region config file(s). If you do not want to upload map tiles at all, then you will need | ||
160 | ; both to set this to false and comment out the [Modules] MapImageServiceModule setting in config-include/ | ||
161 | GenerateMaptiles = false | ||
162 | |||
163 | ;WorldMapModule = "WorldMap" | ||
164 | |||
165 | ; The module to use in order to generate map images. | ||
166 | ; MapImageModule is the default. Warp3DImageModule is an alternative experimental module that can | ||
167 | ; generate better images. | ||
168 | MapImageModule = "Map3DImageModule" | ||
169 | |||
170 | ; World map blacklist timeout in seconds | ||
171 | ;BlacklistTimeout = 600 | ||
172 | |||
173 | ; Refresh (in seconds) the map tile periodically | ||
174 | MaptileRefresh = 0 | ||
175 | |||
176 | ; If not generating maptiles, use this static texture asset ID | ||
177 | ;MaptileStaticUUID = "00000000-0000-0000-0000-000000000000" | ||
178 | |||
179 | ; Draw objects on maptile. This step might take a long time if you've got a large number of | ||
180 | ; objects, so you can turn it off here if you'd like. | ||
181 | DrawPrimOnMapTile = false | ||
182 | |||
183 | ; Use terrain texture for maptiles if true, use shaded green if false | ||
184 | TextureOnMapTile = false | ||
185 | |||
186 | ; Texture prims | ||
187 | TexturePrims = false | ||
188 | |||
189 | ; Only texture prims that have a diagonal size greater than this number | ||
190 | TexturePrimSize = 48 | ||
191 | |||
192 | ; Attempt to render meshes and sculpties on the map | ||
193 | RenderMeshes = false | ||
194 | |||
195 | UseAntiAliasing = false | ||
196 | |||
197 | |||
198 | [Network] | ||
199 | ; OpenSim can send multiple simultaneous requests for services such as asset | ||
200 | ; retrieval. However, some versions of mono appear to hang when there are too | ||
201 | ; many simultaneous requests, default is 30 and is currently applied only to assets | ||
202 | ;MaxRequestConcurrency = 30 | ||
203 | |||
204 | |||
205 | [ClientStack.LindenUDP] | ||
206 | ; The client socket receive buffer size determines how many | ||
207 | ; incoming requests we can process; the default on .NET is 8192 | ||
208 | ; which is about 2 4k-sized UDP datagrams. On mono this is | ||
209 | ; whatever the underlying operating system has as default; for | ||
210 | ; example, ubuntu 8.04 or SLES11 have about 111k, which is about | ||
211 | ; 27 4k-sized UDP datagrams (on linux platforms you can [as root] | ||
212 | ; do "sysctl net.core.rmem_default" to find out what your system | ||
213 | ; uses a default socket receive buffer size. | ||
214 | ; | ||
215 | ; client_socket_rcvbuf_size allows you to specify the receive | ||
216 | ; buffer size LLUDPServer should use. NOTE: this will be limited | ||
217 | ; by the system's settings for the maximum client receive buffer | ||
218 | ; size (on linux systems you can set that with "sysctl -w | ||
219 | ; net.core.rmem_max=X") | ||
220 | ; | ||
221 | ;client_socket_rcvbuf_size = 8388608 | ||
222 | |||
223 | ; Maximum outbound bytes per second for a single scene. This can be used to | ||
224 | ; throttle total outbound UDP traffic for a simulator. The default value is | ||
225 | ; 0, meaning no throttling at the scene level. The example given here is | ||
226 | ; 20 megabits | ||
227 | ; | ||
228 | ;scene_throttle_max_bps = 2500000 | ||
229 | |||
230 | ; Maximum bytes per second to send to any single client. This will override | ||
231 | ; the user's viewer preference settings. The default value is 0, meaning no | ||
232 | ; aggregate throttling on clients (only per-category throttling). The | ||
233 | ; example given here is 1.5 megabits | ||
234 | ; | ||
235 | ;client_throttle_max_bps = 187500 | ||
236 | |||
237 | ; Minimum bytes per second to send to any single client as a result of | ||
238 | ; adaptive throttling. Viewer preferences set to a lower number will | ||
239 | ; override the settin. The example given here ensures that adaptive | ||
240 | ; throttling will never decrease per client bandwidth below 256 kbps. | ||
241 | ; | ||
242 | ;adaptive_throttle_min_bps = 32000 | ||
243 | |||
244 | ; Adaptive throttling attempts to limit network overload when multiple | ||
245 | ; clients login by starting each connection more slowly. Disabled by | ||
246 | ; default | ||
247 | ; | ||
248 | enable_adaptive_throttles = false | ||
249 | |||
250 | ; Per-client bytes per second rates for the various throttle categories. | ||
251 | ; These are default values that will be overridden by clients. These | ||
252 | ; defaults are approximately equivalent to the throttles set by the Imprudence | ||
253 | ; viewer when maximum bandwidth is set to 350kbps | ||
254 | |||
255 | ;resend_default = 6625 | ||
256 | ;land_default = 9125 | ||
257 | ;wind_default = 1750 | ||
258 | ;cloud_default = 1750 | ||
259 | ;task_default = 18500 | ||
260 | ;texture_default = 18500 | ||
261 | ;asset_default = 10500 | ||
262 | |||
263 | ; Configures how ObjectUpdates are aggregated. These numbers | ||
264 | ; do not literally mean how many updates will be put in each | ||
265 | ; packet that goes over the wire, as packets are | ||
266 | ; automatically split on a 1400 byte boundary. These control | ||
267 | ; the balance between responsiveness of interest list updates | ||
268 | ; and total throughput. Higher numbers will ensure more full- | ||
269 | ; sized packets and faster sending of data, but more delay in | ||
270 | ; updating interest lists | ||
271 | ; | ||
272 | ;PrimUpdatesPerCallback = 100 | ||
273 | |||
274 | ; TextureSendLimit determines how many packets will be put on | ||
275 | ; the outgoing queue each cycle. Like the settings above, this | ||
276 | ; is a balance between responsiveness to priority updates and | ||
277 | ; total throughput. Higher numbers will give a better | ||
278 | ; throughput at the cost of reduced responsiveness to client | ||
279 | ; priority changes or transfer aborts | ||
280 | ; | ||
281 | ;TextureSendLimit = 20 | ||
282 | |||
283 | ; CannibalizeTextureRate allows bandwidth to be moved from the | ||
284 | ; UDP texture throttle to the task throttle. Since most viewers | ||
285 | ; use HTTP textures, this provides a means of using what is largely | ||
286 | ; unused bandwidth in the total throttle. The value is the proportion | ||
287 | ; of the texture rate to move to the task queue. It must be between | ||
288 | ; 0.0 (none of the bandwidth is cannibalized) and 0.9 (90% of the | ||
289 | ; bandwidth is grabbed) | ||
290 | ; | ||
291 | ; CannibalizeTextureRate = 0.5 | ||
292 | |||
293 | ; The time to wait before disconecting an unresponsive client. | ||
294 | ; The time is in seconds. The default is one minute | ||
295 | ; | ||
296 | ;AckTimeout = 60 | ||
297 | |||
298 | ; The time to wait before disconecting an unresponsive paused client. | ||
299 | ; A client can be paused when the file selection dialog is open during file upload. | ||
300 | ; This gives extra time to find files via the dialog but will still disconnect if | ||
301 | ; the client crashes or loses its network connection | ||
302 | ; The time is in seconds. The default is five minutes. | ||
303 | ; | ||
304 | ;PausedAckTimeout = 300 | ||
305 | |||
306 | |||
307 | [Appearance] | ||
308 | ; Persist avatar baked textures | ||
309 | ; Persisting baked textures can speed up login and region border | ||
310 | ; crossings especially with large numbers of users, though it | ||
311 | ; will store potentially large numbers of textures in your asset | ||
312 | ; database | ||
313 | PersistBakedTextures = false | ||
314 | |||
315 | ; Control the delay before appearance is sent to other avatars and | ||
316 | ; saved in the avatar service. Attempts to limit the impact caused | ||
317 | ; by the very chatty dialog that sets appearance when an avatar | ||
318 | ; logs in or teleports into a region; values are in seconds | ||
319 | DelayBeforeAppearanceSave = 5 | ||
320 | DelayBeforeAppearanceSend = 2 | ||
321 | |||
322 | ; If true, avatar appearance information is resent to other avatars in the simulator every 60 seconds. | ||
323 | ; This may help with some situations where avatars are persistently grey, though it will not help | ||
324 | ; in other situations (e.g. appearance baking failures where the avatar only appears as a cloud to others). | ||
325 | ResendAppearanceUpdates = false | ||
326 | |||
327 | ; Turning this on responds to CachedTexture packets to possibly avoid rebaking the avatar | ||
328 | ; on every login | ||
329 | ReuseTextures = true | ||
330 | |||
331 | |||
332 | [Attachments] | ||
333 | ; Controls the number of milliseconds that are slept per 100 prims rezzed in attachments | ||
334 | ; Experimental setting to control CPU spiking when avatars with many attachments login/change outfit | ||
335 | ; or when multiple avatars with medium level attachments login/change outfit simultaneously. | ||
336 | ; If 0 then no throttling is performed. | ||
337 | ThrottlePer100PrimsRezzed = 0 | ||
338 | |||
339 | |||
340 | [Textures] | ||
341 | ; If true, textures generated dynamically (i.e. through osSetDynamicTextureData() and similar OSSL functions) are reused where possible | ||
342 | ; Chiefly, reuse occurs if a texture has already been generated with identical data and settings, and that texture contains no dynamic components | ||
343 | ; (e.g. images pulled from an external HTTP address). | ||
344 | ; 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. | ||
345 | ; Currently, it will also increase asset cache use since temporary dynamic textures are no longer deleted. | ||
346 | ; Hence, currently considered experimental. | ||
347 | ; Default is false. | ||
348 | ReuseDynamicTextures = false | ||
349 | |||
350 | ; If true, then textures generated dynamically that have a low data size relative to their pixel size are not reused | ||
351 | ; 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. | ||
352 | ; Only set this to true if you are sure that all the viewers using your simulator will not suffer from this problem. | ||
353 | ; This setting only has an affect is ReuseDynamicTextures = true | ||
354 | ; Default is false | ||
355 | ReuseDynamicLowDataTextures = false | ||
356 | |||
357 | |||
358 | [ODEPhysicsSettings] | ||
359 | ; ## | ||
360 | ; ## Physics stats settings ( most ignored by ubOde ) | ||
361 | ; | ||
362 | |||
363 | ; If collect_stats is enabled, then extra stat information is collected which is accessible via the MonitorModule | ||
364 | ; (see http://opensimulator.org/wiki/Monitoring_Module for more details). | ||
365 | collect_stats = false | ||
366 | |||
367 | ; ## | ||
368 | ; ## Physics logging settings - logfiles are saved to *.DIF files | ||
369 | ; ## | ||
370 | |||
371 | ; default is false | ||
372 | ;physics_logging = true | ||
373 | ;; every n simulation iterations, the physics snapshot file is updated | ||
374 | ;physics_logging_interval = 50 | ||
375 | ;; append to existing physics logfile, or overwrite existing logfiles? | ||
376 | ;physics_logging_append_existing_logfile = true | ||
377 | |||
378 | ;## | ||
379 | ;## World Settings | ||
380 | ;## | ||
381 | |||
382 | ; World Step size. | ||
383 | ; with legacy ODE this value needs to be close to 0.02s | ||
384 | ; with ubOde this value can be reduced to improve simulation quality with the cost of higher cpu load | ||
385 | ; you will need to test acording to you needs | ||
386 | ; choosing a value that is a integer sub multiple of FrameRate reduces some jitter on reported physics FPS | ||
387 | world_stepsize = 0.01818 | ||
388 | ; number of iterations of constrains solver, higher should improve results | ||
389 | ; up to a point where acumulated math errors eliminate the improvement | ||
390 | ; more steps may increase CPU load. No real gain in changing | ||
391 | world_solver_iterations = 10 | ||
392 | |||
393 | ;Spaces level settings. Affects memory consumption vs Collider CPU time for avatar and physical prim | ||
394 | ; defines spaces partition cells min and max sizes == 2^value | ||
395 | world_hashspace_level_low = -5 | ||
396 | world_hashSpace_level_high = 12 | ||
397 | |||
398 | meters_in_small_space = 29.9 | ||
399 | |||
400 | |||
401 | ; ## | ||
402 | ; ## Contact properties. (the stuff that happens when things come in contact with each other) | ||
403 | ; ## | ||
404 | |||
405 | ; surface layer around geometries other geometries can sink into before generating a contact | ||
406 | world_contact_surface_layer = 0.001 | ||
407 | |||
408 | ; Filtering collisions helps keep things stable physics wise, but sometimes | ||
409 | ; it can be overzealous. If you notice bouncing, chances are it's that. | ||
410 | filter_collisions = false | ||
411 | |||
412 | ; Non Moving Terrain Contact (avatar isn't moving) | ||
413 | nm_terraincontact_friction = 255.0 | ||
414 | nm_terraincontact_bounce = 0.1 | ||
415 | nm_terraincontact_erp = 0.1025 | ||
416 | |||
417 | ; Moving Terrain Contact (avatar is moving) | ||
418 | m_terraincontact_friction = 75.0 | ||
419 | m_terraincontact_bounce = 0.05 | ||
420 | m_terrainContact_erp = 0.05025 | ||
421 | |||
422 | ; Moving Avatar to object Contact | ||
423 | m_avatarobjectcontact_friction = 75.0 | ||
424 | m_avatarobjectcontact_bounce = 0.1 | ||
425 | |||
426 | ; Object to Object Contact and Non-Moving Avatar to object | ||
427 | objectcontact_friction = 250.0 | ||
428 | objectcontact_bounce = 0.2 | ||
429 | |||
430 | ; ## | ||
431 | ; ## Avatar Control | ||
432 | ; ## | ||
433 | |||
434 | ; PID Controller Settings. These affect the math that causes the avatar to reach the | ||
435 | ; desired velocity | ||
436 | ; See http://en.wikipedia.org/wiki/PID_controller | ||
437 | |||
438 | av_pid_derivative = 2200.0 | ||
439 | av_pid_proportional = 900.0 | ||
440 | |||
441 | ; specifies if the capsule should be tilted (=true; old compatibility mode) | ||
442 | ; or straight up-and-down (=false; better and more consistent physics behavior) | ||
443 | av_capsule_tilted = false | ||
444 | |||
445 | ; Movement. Smaller is faster. | ||
446 | |||
447 | ; speed of movement with Always Run off | ||
448 | av_movement_divisor_walk = 1.3 | ||
449 | |||
450 | ; speed of movement with Always Run on | ||
451 | av_movement_divisor_run = 0.8 | ||
452 | |||
453 | ; When the avatar flies, it will be moved up by this amount off the ground (in meters) | ||
454 | minimum_ground_flight_offset = 3.0 | ||
455 | |||
456 | ; Plant avatar. This reduces the effect of physical contacts with the avatar. | ||
457 | ; If you have a group of unruly and rude visitors that bump each other, turn this on to make that less attractive. | ||
458 | ; The avatar still allows a small movement based on the PID settings above. Stronger PID settings AND this active | ||
459 | ; will lock the avatar in place | ||
460 | av_planted = false | ||
461 | |||
462 | ; 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 | ||
463 | av_av_collisions_off = false | ||
464 | |||
465 | ; ## | ||
466 | ; ## Object options | ||
467 | ; ## | ||
468 | |||
469 | ; amount of ODE steps where object is non moving for ODE to automatically put it to sleep | ||
470 | body_frames_auto_disable = 20 | ||
471 | |||
472 | ; used to control llMove2Target | ||
473 | body_pid_derivative = 35 | ||
474 | body_pid_gain = 25 | ||
475 | |||
476 | ; maximum number of contact points to generate per collision | ||
477 | contacts_per_collision = 80 | ||
478 | |||
479 | ; start throttling the object updates if object comes in contact with 3 or more other objects | ||
480 | geom_contactpoints_start_throttling = 3 | ||
481 | |||
482 | ; send 1 update for every x updates below when throttled | ||
483 | geom_updates_before_throttled_update = 15 | ||
484 | |||
485 | ; ## | ||
486 | ; ## Sculpted Prim settings | ||
487 | ; ## | ||
488 | |||
489 | ; Do we want to mesh sculpted prim to collide like they look? | ||
490 | ; If you are seeing sculpt texture decode problems | ||
491 | ; (messages such as "Decoded image with unhandled number of components: 0 shortly followed by a physcs exception") | ||
492 | ; then you might want to try setting this to false. | ||
493 | mesh_sculpted_prim = true | ||
494 | |||
495 | ; number^2 non-physical level of detail of the sculpt texture. 32x32 - 1024 verticies | ||
496 | mesh_lod = 32 | ||
497 | |||
498 | ; number^2 physical level of detail of the sculpt texture. 16x16 - 256 verticies | ||
499 | mesh_physical_lod = 16 | ||
500 | |||
501 | ; ## | ||
502 | ; ## additional meshing options | ||
503 | ; ## | ||
504 | |||
505 | ; Physics needs to create internal meshs (or convert the object meshs or scultps) | ||
506 | ; for all prims except simple boxes and spheres. | ||
507 | |||
508 | ; collisions of small objects againts larger ones can have a increased CPU load cost | ||
509 | ; so this are represented by a simple BOX | ||
510 | ; if all their scale dimensions are lower or equal to this option. Default is 0.1m | ||
511 | ; (ubOde only) | ||
512 | ; MinSizeToMeshmerize = 0.1 | ||
513 | |||
514 | |||
515 | [BulletSim] | ||
516 | ; There are two bullet physics libraries, bulletunmanaged is the default and is a | ||
517 | ; native c++ dll bulletxna is a managed C# dll. They have comparible functionality | ||
518 | ; but the c++ one is much faster. | ||
519 | BulletEngine = "bulletunmanaged" | ||
520 | ; BulletEngine = "bulletxna" | ||
521 | |||
522 | ; BulletSim can run on its own thread independent of the simulator's heartbeat | ||
523 | ; thread. Enabling this will not let the physics engine slow down avatar movement, etc. | ||
524 | UseSeparatePhysicsThread = false | ||
525 | |||
526 | ; Terrain implementation can use either Bullet's heightField or BulletSim can build | ||
527 | ; a mesh. 0=heightField, 1=mesh | ||
528 | TerrainImplementation = 0 | ||
529 | ; For mesh terrain, the detail of the created mesh. '1' gives 256x256 (heightfield | ||
530 | ; resolution). '2' gives 512x512. Etc. Cannot be larger than '4'. Higher | ||
531 | ; magnifications use lots of memory. | ||
532 | TerrainMeshMagnification = 1 | ||
533 | |||
534 | ; Should avatars collide with each other? | ||
535 | AvatarToAvatarCollisionsByDefault = false | ||
536 | |||
537 | ; Default linkset implmentation | ||
538 | ; 'Constraint' uses physics constraints to hold linkset together. 'Compound' | ||
539 | ; builds a compound shape from the children shapes to create a single physical | ||
540 | ; shape. 'Compound' uses a lot less CPU time. | ||
541 | LinkImplementation = 1 ; 0=constraint, 1=compound | ||
542 | |||
543 | ; If 'true', offset a linkset's origin based on mass of linkset parts. | ||
544 | LinksetOffsetCenterOfMass = false | ||
545 | |||
546 | ; If 'true', turn scuplties into meshes | ||
547 | MeshSculptedPrim = false | ||
548 | |||
549 | ; If 'true', force simple prims (box and sphere) to be meshed | ||
550 | ; If 'false', the Bullet native special case shape is used for square rectangles | ||
551 | ; and even dimensioned spheres. | ||
552 | ForceSimplePrimMeshing = false | ||
553 | |||
554 | ; If 'true', when creating meshes, remove all triangles that have two equal vertexes. | ||
555 | ; Happens often in sculpties. If turned off, there will be some doorways | ||
556 | ; that cannot be walked through. | ||
557 | ShouldRemoveZeroWidthTriangles = true | ||
558 | |||
559 | ; If 'true', use convex hull definition in mesh asset if present. | ||
560 | ShouldUseAssetHulls = true | ||
561 | |||
562 | ; If there are thousands of physical objects, these maximums should be increased. | ||
563 | MaxCollisionsPerFrame = 2048 | ||
564 | MaxUpdatesPerFrame = 8192 | ||
565 | |||
566 | ; Detailed physics debug logging. Very verbose. | ||
567 | PhysicsLoggingEnabled = False | ||
568 | PhysicsLoggingDir = "." | ||
569 | VehicleLoggingEnabled = False | ||
570 | |||
571 | |||
572 | [Sun] | ||
573 | ; send a Sun update every update_interval # of frames. A lower number will | ||
574 | ; make for smoother sun transition at the cost of network | ||
575 | ;update_interval = 100 | ||
576 | |||
577 | |||
578 | [Wind] | ||
579 | ; How often should wind be updated, as a function of world frames. Approximately 50 frames a second | ||
580 | wind_update_rate = 150 | ||
581 | |||
582 | ; The Default Wind Plugin to load | ||
583 | wind_plugin = SimpleRandomWind | ||
584 | |||
585 | |||
586 | [Cloud] | ||
587 | ; update interval for the cloud cover data returned by llCloud(). | ||
588 | ; default is 1000 | ||
589 | cloud_update_rate = 1000 | ||
590 | |||
591 | |||
592 | [Trees] | ||
593 | ; active_trees allows module to change its trees in time. | ||
594 | ; some will be deleted, others created and rest may grow | ||
595 | ; default is false. You can change it with console command tree active true | false later | ||
596 | active_trees = false | ||
597 | ; the trees change execution time rate (in ms) | ||
598 | update_rate = 1000 | ||
599 | |||
600 | ; allow the trees to grow. | ||
601 | ; DANGER | ||
602 | ; this option causes high network use on the order of | ||
603 | ; NumberOfTrees * NumberAvatars * 1000 / update_rate udp packets per second | ||
604 | allowGrow = false | ||
605 | |||
606 | |||
607 | [LL-Functions] | ||
608 | ; Maximum number of llListen events we allow over the entire region. | ||
609 | ; Set this to 0 to have no limit imposed | ||
610 | max_listens_per_region = 1000 | ||
611 | |||
612 | ; Maximum number of llListen events we allow per script | ||
613 | ; Set this to 0 to have no limit imposed. | ||
614 | max_listens_per_script = 64 | ||
615 | |||
616 | ; Maximum number of external urls that scripts can set up in this simulator (e.g. via llRequestURL()) | ||
617 | max_external_urls_per_simulator = 100 | ||
618 | |||
619 | ; Use size boxes instead of meshed prims, sculpts and mesh when calculating bounding boxes. | ||
620 | ; Speeds up calculations but can make them inaccurate, in some cases very inaccurate. | ||
621 | UseSimpleBoxesInGetBoundingBox = true | ||
622 | |||
623 | ; Use llCastRay V3 if true. | ||
624 | ; Implements llCastRay similar but not identical to Second Life. | ||
625 | ; See http://wiki.secondlife.com/wiki/LlCastRay . | ||
626 | ; NEW | ||
627 | ; Meshes prims for good accuracy in ray hit detection, | ||
628 | ; handling basic and tortured prims, sculpts and meshes. | ||
629 | ; Uses ellipsoid, correctly sized avatar capsules. | ||
630 | ; Handles complex terrain, multi-prim objects and seated avatars. | ||
631 | ; Implements throttling and the status codes | ||
632 | ; RCERR_UNKNOWN and RCERR_CAST_TIME_EXCEEDED, | ||
633 | ; so LSL scripts need to handle these responses and RCERR_SIM_PERF_LOW. | ||
634 | ; WARNING | ||
635 | ; Can be faster on some servers and scenes, but slower on others, | ||
636 | ; compared to previous version of llCastRay in OpenSimulator. | ||
637 | ; Is in most cases considerably slower than llCastRay in Second Life. | ||
638 | ; Generates geometry meshes and can therefore use much system resources. | ||
639 | UseLlCastRayV3 = false | ||
640 | |||
641 | ; Accepted calculation precision error in calculations in llCastRay V3 | ||
642 | FloatToleranceInLlCastRay = 0.00001 | ||
643 | |||
644 | ; Accepted distance difference between duplicate hits in llCastRay V3 | ||
645 | FloatTolerance2InLlCastRay = 0.001 | ||
646 | |||
647 | ; Detail level when rendering prims in llCastRay V3 | ||
648 | ; 0 = Low, 1 = Medium, 2 = High, 3 = Highest, higer level gives better accuracy but slower call | ||
649 | PrimDetailLevelInLlCastRay = 1 | ||
650 | |||
651 | ; Detail level when rendering sculpts in llCastRay V3 | ||
652 | ; 0 = Low, 1 = Medium, 2 = High, 3 = Highest, higer level gives better accuracy but slower call | ||
653 | SculptDetailLevelInLlCastRay = 1 | ||
654 | |||
655 | ; Detail level when rendering meshes in llCastRay V3 | ||
656 | ; 0 = Low, 1 = Medium, 2 = High, 3 = Highest, higer level gives better accuracy but slower call | ||
657 | MeshDetailLevelInLlCastRay = 3 | ||
658 | |||
659 | ; Detail level when rendering avatar capsules in llCastRay V3 | ||
660 | ; 0 = Low, 1 = Medium, 2 = High, 3 = Highest, higer level gives better accuracy but slower call | ||
661 | AvatarDetailLevelInLlCastRay = 1 | ||
662 | |||
663 | ; Maximum number of returned hits from llCastRay V3 | ||
664 | MaxHitsInLlCastRay = 16 | ||
665 | |||
666 | ; Maximum number of returned hits per prim from llCastRay V3 | ||
667 | MaxHitsPerPrimInLlCastRay = 16 | ||
668 | |||
669 | ; Maximum number of returned hits per object from llCastRay V3 | ||
670 | MaxHitsPerObjectInLlCastRay = 16 | ||
671 | |||
672 | ; Report ray intersections with surfaces on exits from a prim as hits in llCastRay V3 if true | ||
673 | DetectExitHitsInLlCastRay = false | ||
674 | |||
675 | ; Detect attachments in llCastRay V3 if true | ||
676 | DoAttachmentsInLlCastRay = false | ||
677 | |||
678 | ; Throttle period length in ms before which all old llCastRay use is discarded in llCastRay V3 | ||
679 | ; The sum of AvailableTimeInMsPerRegionInLlCastRay and all AvailableTimeInMsPerAvatarInLlCastRay should not exceed this | ||
680 | ThrottleTimeInMsInLlCastRay = 200 | ||
681 | |||
682 | ; Available time in ms for llCastRay per throttle period and 65536 m2 land area in llCastRay V3 | ||
683 | AvailableTimeInMsPerRegionInLlCastRay = 40 | ||
684 | |||
685 | ; Available time in ms for llCastRay per throttle period and avatar when script in attachment or vehicle in llCastRay V3 | ||
686 | AvailableTimeInMsPerAvatarInLlCastRay = 10 | ||
687 | |||
688 | ; Required available time in ms left to perform a new llCastRay in llCastRay V3 | ||
689 | RequiredAvailableTimeInMsInLlCastRay = 2 | ||
690 | |||
691 | ; Maximum available time in ms possible in llCastRay V3, not to get too high values with varregions | ||
692 | MaximumAvailableTimeInMsInLlCastRay = 40 | ||
693 | |||
694 | ; Use cached meshes in llCastRay V3 if true | ||
695 | ; Improves performance but uses more memory | ||
696 | UseMeshCacheInLlCastRay = true | ||
697 | |||
698 | |||
699 | [XEngine] | ||
700 | ; How many threads to keep alive even if nothing is happening | ||
701 | MinThreads = 2 | ||
702 | |||
703 | ; How many threads to start at maximum load | ||
704 | MaxThreads = 100 | ||
705 | |||
706 | ; Time a thread must be idle (in seconds) before it dies | ||
707 | IdleTimeout = 60 | ||
708 | |||
709 | ; Thread priority ("Lowest", "BelowNormal", "Normal", "AboveNormal", "Highest") | ||
710 | Priority = "BelowNormal" | ||
711 | |||
712 | ; Maximum number of events to queue for a script (excluding timers) | ||
713 | MaxScriptEventQueue = 3000 | ||
714 | |||
715 | ; Stack size per thread created | ||
716 | ThreadStackSize = 132144 | ||
717 | |||
718 | ; Set this to true to load each script into a separate | ||
719 | ; AppDomain. Setting this to false will load all script assemblies into the | ||
720 | ; current AppDomain, which will reduce the initial per-script memory overhead, | ||
721 | ; but deleted scripts stay inactive using memory. | ||
722 | ; Significantly improving script loading times. | ||
723 | ; However, setting this to false will also prevent script DLLs from being unloaded from memory if the script is deleted. | ||
724 | ; This may cause an OutOfMemory problem over time when avatars with scripted attachments move in and out of the region. | ||
725 | ; This may only be a problem if regions stay alive for a long time with lots of scripts added or edited. | ||
726 | ; At this time some mono versions seem to have problems with the true option, | ||
727 | ; so default is now false until a fix is found, to simply life of less technical skilled users. | ||
728 | AppDomainLoading = false | ||
729 | |||
730 | ; Controls whether previously compiled scripts DLLs are deleted on sim restart. | ||
731 | ; If you set this to false then startup will be considerably faster since scripts won't need to be recompiled. | ||
732 | ; It should be true on first run after updating opensim binary version | ||
733 | ; after first run you can change to false. | ||
734 | ; You can also set it to false and delete the script DLLs by hand | ||
735 | ; This does not delete cached scripts state. | ||
736 | DeleteScriptsOnStartup = true | ||
737 | |||
738 | ; CompactMemOnLoad | ||
739 | ; forces calls to memory garbage collector before loading each script DLL during region startup. | ||
740 | ; Peak memory usage is reduced and region starts with a more compacted memory allocation. | ||
741 | ; But this costs a lot of time, so region load will take a lot longer. | ||
742 | ; it is more usefull if there are no previously compiled scripts DLLs (or DeleteScriptsOnStartup = true) | ||
743 | CompactMemOnLoad = true | ||
744 | |||
745 | ; Controls whether scripts are stopped by aborting their threads externally (abort) | ||
746 | ; or by co-operative checks inserted by OpenSimulator into compiled script (co-op). | ||
747 | ; co-op will be more stable as aborting threads can cause instability. | ||
748 | ; abort was the default option in OpenSimulator 0.8 and before. | ||
749 | ; If this setting is changed between co-op and abort, then existing scripts will automatically be recompiled if necessary. | ||
750 | ; However, the setting change will not take affect until the next time you restart the simulator. | ||
751 | ; Setting changes will not affect state information stored for scripts. | ||
752 | ScriptStopStrategy = abort | ||
753 | |||
754 | ; Rate to poll for asynchronous command replies (ms) | ||
755 | ; currently unused | ||
756 | ;AsyncLLCommandLoopms = 50 | ||
757 | |||
758 | ; Compile debug info (line numbers) into the script assemblies | ||
759 | CompileWithDebugInformation = false | ||
760 | |||
761 | ; Interval (s) between background save of script states | ||
762 | SaveInterval = 120 | ||
763 | |||
764 | ; Interval (s) between maintenance runs (0 = disable) | ||
765 | MaintenanceInterval = 10 | ||
766 | |||
767 | ; Amount of time in milliseconds we will wait for an event to completely normally when a script stop is requested | ||
768 | ; before aborting the thread (such as when an object containing scripts is taken into inventory). | ||
769 | WaitForEventCompletionOnScriptStop = 1000 | ||
770 | |||
771 | ; Minimum settable timer interval. Any timer setting less than this is | ||
772 | ; rounded up to this minimum interval. | ||
773 | MinTimerInterval = 0.1 | ||
774 | |||
775 | ; Sensor settings | ||
776 | SensorMaxRange = 96.0 | ||
777 | SensorMaxResults = 16 | ||
778 | |||
779 | |||
780 | [Groups] | ||
781 | ; Groups data is cached for this number of seconds before another request is made to the groups service | ||
782 | ; Set to 0 to disable the cache. | ||
783 | ; Default is 30 seconds | ||
784 | GroupsCacheTimeout = 30 | ||
785 | |||
786 | |||
787 | [PacketPool] | ||
788 | ;RecyclePackets = true | ||
789 | ;RecycleDataBlocks = true | ||
790 | |||
791 | ; If true, then the basic packet objects used to receive data are also recycled, not just the LLUDP packets. | ||
792 | ; This reduces data churn | ||
793 | RecycleBaseUDPPackets = true | ||
794 | |||
795 | |||
796 | [InterestManagement] | ||
797 | ; This section controls how state updates are prioritized for each client | ||
798 | ; Valid values are BestAvatarResponsiveness, Time, Distance, | ||
799 | ; SimpleAngularDistance, and FrontBack | ||
800 | UpdatePrioritizationScheme = BestAvatarResponsiveness | ||
801 | ReprioritizationEnabled = true | ||
802 | ReprioritizationInterval = 2000.0 | ||
803 | RootReprioritizationDistance = 10.0 | ||
804 | ChildReprioritizationDistance = 20.0 | ||
805 | |||
806 | ; TEST OPTION KEEP AS FALSE | ||
807 | ; if true, don't send object updates if outside view range | ||
808 | ObjectsCullingByDistance = false | ||
809 | |||
810 | ; If n > 1, only every n UDP terse updates will be sent to observers of an avatar that are in the same region | ||
811 | ; 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). | ||
812 | ; n > 1 will reduce UDP traffic but will lead to laggier movement observed in other avatars. | ||
813 | RootTerseUpdatePeriod = 0 | ||
814 | |||
815 | ; If n > 1, only every n UDP terse updates will be sent to observers of an avatar that are in another region | ||
816 | ; 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. | ||
817 | ChildTerseUpdatePeriod = 0 | ||
818 | |||
819 | ; Send an update to clients if the difference from the last sent avatar position is greater than this tolerance | ||
820 | RootPositionUpdateTolerance = 0.05 | ||
821 | |||
822 | ; Send an update to clients if the euclidian difference from the last sent avatar rotation is greater than this tolerance | ||
823 | RootRotationUpdateTolerance = 0.1 | ||
824 | |||
825 | ; Send an update to clients if the difference from the last sent avatar velocity is greater than this tolerance | ||
826 | RootVelocityUpdateTolerance = 0.001 | ||
827 | |||
828 | |||
829 | [Statistics] | ||
830 | ; NumberOfFrames is used in a moving average calculation, where NumberOfFrames is the number of frames | ||
831 | ; to include in the averaging calculations | ||
832 | NumberOfFrames=10 | ||
833 | |||
834 | |||
835 | [Terrain] | ||
836 | ; If 'true' each avatar is only sent terrain patches within their view distance | ||
837 | ; This also changes the region terrain loading from 'lawn mower' to ordered around | ||
838 | ; the avatar outward. | ||
839 | SendTerrainUpdatesByViewDistance = True | ||
840 | |||
841 | |||
842 | [LandManagement] | ||
843 | ; When editing terrain or objects, parcel layer info is updated in the viewer. | ||
844 | ; This can be expensive for large regions. If this variable is 'true', only the | ||
845 | ; parcel layer data around the area of interest is sent. The parcel layer info | ||
846 | ; is sent for 'ParcelLayerViewDistance' around the interest point. | ||
847 | ; If 'ParcelLayerViewDistance' is >= 128, the operation for legacy sized regions | ||
848 | ; will be what it has always been (send the whole region's parcel layer info). | ||
849 | ; Other parcel updates (login, changing parcel ownership, ...) will still send | ||
850 | ; whole region. | ||
851 | LimitParcelLayerUpdateDistance = true | ||
852 | ParcelLayerViewDistance = 128 | ||
853 | |||
854 | |||
855 | ;; If you are using a simian grid frontend you can enable | ||
856 | ;; this module to upload tile images for the mapping fn | ||
857 | ;; | ||
858 | [SimianGridMaptiles] | ||
859 | RefreshTime = 3600 | ||
860 | |||
861 | |||
862 | ;; | ||
863 | ;; These are defaults that are overwritten below in [Architecture]. | ||
864 | ;; These defaults allow OpenSim to work out of the box with | ||
865 | ;; zero configuration | ||
866 | ;; | ||
867 | [AssetService] | ||
868 | ; Disable this to prevent the default asset set from being inserted into the | ||
869 | ; asset store each time the region starts | ||
870 | AssetLoaderEnabled = true | ||
871 | |||
872 | |||
873 | [AutoBackupModule] | ||
874 | ;; default is module is disabled at the top level | ||
875 | AutoBackupModuleEnabled = false | ||
876 | |||
877 | |||
878 | [ServiceThrottle] | ||
879 | ;; Default time interval (in ms) for the throttle service thread to wake up | ||
880 | Interval = 5000 | ||
881 | |||
882 | |||
883 | [Materials] | ||
884 | MaxMaterialsPerTransaction = 50 | ||
diff --git a/bin/config-include/SimianGrid.ini b/bin/config-include/SimianGrid.ini new file mode 100644 index 0000000..fdf7ca2 --- /dev/null +++ b/bin/config-include/SimianGrid.ini | |||
@@ -0,0 +1,77 @@ | |||
1 | ;; | ||
2 | ;; Please don't change this file. | ||
3 | ;; All optional settings are in GridCommon.ini.example, | ||
4 | ;; which you can copy and change. | ||
5 | ;; | ||
6 | |||
7 | ;; | ||
8 | ;; In GridCommon.ini, these are the URLs you would use if SimianGrid is | ||
9 | ;; installed at http://www.mygrid.com/Grid/ | ||
10 | ;; | ||
11 | ; AssetServerURI = "http://www.mygrid.com/Grid/?id=" | ||
12 | ; InventoryServerURI = "http://www.mygrid.com/Grid/" | ||
13 | ; AvatarServerURI = "http://www.mygrid.com/Grid/" | ||
14 | ; PresenceServerURI = "http://www.mygrid.com/Grid/" | ||
15 | ; UserAccountServerURI = "http://www.mygrid.com/Grid/" | ||
16 | ; AuthenticationServerURI = "http://www.mygrid.com/Grid/" | ||
17 | ; FriendsServerURI = "http://www.mygrid.com/Grid/" | ||
18 | ; GroupsServerURI = "http://www.mygrid.com/Grid/" | ||
19 | |||
20 | [Includes] | ||
21 | Include-Common = "config-include/GridCommon.ini" | ||
22 | |||
23 | [Modules] | ||
24 | GridServices = "RemoteGridServicesConnector" | ||
25 | PresenceServices = "SimianPresenceServiceConnector" | ||
26 | UserAccountServices = "SimianUserAccountServiceConnector" | ||
27 | AuthenticationServices = "SimianAuthenticationServiceConnector" | ||
28 | AssetServices = "SimianAssetServiceConnector" | ||
29 | InventoryServices = "SimianInventoryServiceConnector" | ||
30 | AvatarServices = "SimianAvatarServiceConnector" | ||
31 | |||
32 | NeighbourServices = "NeighbourServicesOutConnector" | ||
33 | SimulationServices = "RemoteSimulationConnectorModule" | ||
34 | EntityTransferModule = "BasicEntityTransferModule" | ||
35 | InventoryAccessModule = "BasicInventoryAccessModule" | ||
36 | |||
37 | LandServiceInConnector = true | ||
38 | NeighbourServiceInConnector = true | ||
39 | SimulationServiceInConnector = true | ||
40 | LibraryModule = false | ||
41 | |||
42 | AssetCaching = "FlotsamAssetCache" | ||
43 | |||
44 | [SimulationDataStore] | ||
45 | LocalServiceModule = "OpenSim.Services.SimulationService.dll:SimulationDataService" | ||
46 | |||
47 | [EstateDataStore] | ||
48 | LocalServiceModule = "OpenSim.Services.EstateService.dll:EstateDataService" | ||
49 | |||
50 | [Friends] | ||
51 | Connector = "OpenSim.Services.Connectors.dll:SimianFriendsServiceConnector" | ||
52 | |||
53 | [GridService] | ||
54 | LocalServiceModule = "OpenSim.Services.GridService.dll:GridService" | ||
55 | StorageProvider = "OpenSim.Data.Null.dll:NullRegionData" | ||
56 | NetworkConnector = "OpenSim.Services.Connectors.dll:SimianGridServiceConnector" | ||
57 | |||
58 | [LibraryService] | ||
59 | LocalServiceModule = "OpenSim.Services.InventoryService.dll:LibraryService" | ||
60 | LibraryName = "OpenSim Library" | ||
61 | DefaultLibrary = "./inventory/Libraries.xml" | ||
62 | |||
63 | [AssetService] | ||
64 | DefaultAssetLoader = "OpenSim.Framework.AssetLoader.Filesystem.dll" | ||
65 | AssetLoaderArgs = "assets/AssetSets.xml" | ||
66 | |||
67 | [Groups] | ||
68 | Enabled = true | ||
69 | Module = GroupsModule | ||
70 | DebugEnabled = false | ||
71 | NoticesEnabled = true | ||
72 | MessagingModule = GroupsMessagingModule | ||
73 | MessagingEnabled = true | ||
74 | ServicesConnectorModule = SimianGroupsServicesConnector | ||
75 | |||
76 | [Profiles] | ||
77 | Module = "SimianProfiles" | ||
diff --git a/bin/config-include/Standalone.ini b/bin/config-include/Standalone.ini new file mode 100644 index 0000000..127b073 --- /dev/null +++ b/bin/config-include/Standalone.ini | |||
@@ -0,0 +1,122 @@ | |||
1 | ;; | ||
2 | ;; Please don't change this file. | ||
3 | ;; All optional settings are in StandaloneCommon.ini.example, | ||
4 | ;; which you can copy and change. | ||
5 | ;; | ||
6 | |||
7 | [Modules] | ||
8 | AssetServices = "LocalAssetServicesConnector" | ||
9 | InventoryServices = "LocalInventoryServicesConnector" | ||
10 | NeighbourServices = "NeighbourServicesOutConnector" | ||
11 | AuthenticationServices = "LocalAuthenticationServicesConnector" | ||
12 | AuthorizationServices = "LocalAuthorizationServicesConnector" | ||
13 | GridServices = "LocalGridServicesConnector" | ||
14 | PresenceServices = "LocalPresenceServicesConnector" | ||
15 | UserProfilesServices = "LocalUserProfilesServicesConnector" | ||
16 | UserAccountServices = "LocalUserAccountServicesConnector" | ||
17 | AgentPreferencesServices= "LocalAgentPreferencesServicesConnector" | ||
18 | GridUserServices = "LocalGridUserServicesConnector" | ||
19 | SimulationServices = "LocalSimulationConnectorModule" | ||
20 | AvatarServices = "LocalAvatarServicesConnector" | ||
21 | EntityTransferModule = "BasicEntityTransferModule" | ||
22 | InventoryAccessModule = "BasicInventoryAccessModule" | ||
23 | MapImageService = "MapImageServiceModule" | ||
24 | SearchModule = "BasicSearchModule" | ||
25 | MuteListService = "LocalMuteListServicesConnector" | ||
26 | |||
27 | LibraryModule = true | ||
28 | LLLoginServiceInConnector = true | ||
29 | GridInfoServiceInConnector = true | ||
30 | MapImageServiceInConnector = true | ||
31 | |||
32 | [SimulationDataStore] | ||
33 | LocalServiceModule = "OpenSim.Services.SimulationService.dll:SimulationDataService" | ||
34 | |||
35 | [EstateDataStore] | ||
36 | LocalServiceModule = "OpenSim.Services.EstateService.dll:EstateDataService" | ||
37 | |||
38 | [AssetService] | ||
39 | LocalServiceModule = "OpenSim.Services.AssetService.dll:AssetService" | ||
40 | |||
41 | [InventoryService] | ||
42 | LocalServiceModule = "OpenSim.Services.InventoryService.dll:XInventoryService" | ||
43 | |||
44 | [LibraryService] | ||
45 | LocalServiceModule = "OpenSim.Services.InventoryService.dll:LibraryService" | ||
46 | LibraryName = "OpenSim Library" | ||
47 | DefaultLibrary = "./inventory/Libraries.xml" | ||
48 | |||
49 | [AvatarService] | ||
50 | LocalServiceModule = "OpenSim.Services.AvatarService.dll:AvatarService" | ||
51 | |||
52 | [AuthenticationService] | ||
53 | LocalServiceModule = "OpenSim.Services.AuthenticationService.dll:PasswordAuthenticationService" | ||
54 | |||
55 | [GridService] | ||
56 | LocalServiceModule = "OpenSim.Services.GridService.dll:GridService" | ||
57 | Realm = "regions" | ||
58 | StorageProvider = "OpenSim.Data.Null.dll" | ||
59 | |||
60 | [PresenceService] | ||
61 | LocalServiceModule = "OpenSim.Services.PresenceService.dll:PresenceService" | ||
62 | StorageProvider = "OpenSim.Data.Null.dll" | ||
63 | |||
64 | [UserAccountService] | ||
65 | LocalServiceModule = "OpenSim.Services.UserAccountService.dll:UserAccountService" | ||
66 | |||
67 | ;; These are for creating new accounts | ||
68 | AuthenticationService = "OpenSim.Services.AuthenticationService.dll:PasswordAuthenticationService" | ||
69 | GridUserService = "OpenSim.Services.UserAccountService.dll:GridUserService" | ||
70 | GridService = "OpenSim.Services.GridService.dll:GridService" | ||
71 | InventoryService = "OpenSim.Services.InventoryService.dll:XInventoryService" | ||
72 | AvatarService = "OpenSim.Services.AvatarService.dll:AvatarService" | ||
73 | |||
74 | ;; 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. | ||
75 | CreateDefaultAvatarEntries = true | ||
76 | |||
77 | [GridUserService] | ||
78 | LocalServiceModule = "OpenSim.Services.UserAccountService.dll:GridUserService" | ||
79 | |||
80 | [FriendsService] | ||
81 | LocalServiceModule = "OpenSim.Services.FriendsService.dll" | ||
82 | |||
83 | [Friends] | ||
84 | Connector = "OpenSim.Services.FriendsService.dll" | ||
85 | |||
86 | [AgentPreferencesService] | ||
87 | LocalServiceModule = "OpenSim.Services.UserAccountService.dll:AgentPreferencesService" | ||
88 | |||
89 | [LoginService] | ||
90 | LocalServiceModule = "OpenSim.Services.LLLoginService.dll:LLLoginService" | ||
91 | UserAccountService = "OpenSim.Services.UserAccountService.dll:UserAccountService" | ||
92 | GridUserService = "OpenSim.Services.UserAccountService.dll:GridUserService" | ||
93 | AuthenticationService = "OpenSim.Services.AuthenticationService.dll:PasswordAuthenticationService" | ||
94 | InventoryService = "OpenSim.Services.InventoryService.dll:XInventoryService" | ||
95 | PresenceService = "OpenSim.Services.PresenceService.dll:PresenceService" | ||
96 | GridService = "OpenSim.Services.GridService.dll:GridService" | ||
97 | AvatarService = "OpenSim.Services.AvatarService.dll:AvatarService" | ||
98 | FriendsService = "OpenSim.Services.FriendsService.dll:FriendsService" | ||
99 | |||
100 | WelcomeMessage = "Welcome, Avatar!" | ||
101 | |||
102 | ;# {DSTZone} {} {Override Daylight Saving Time rules} {* none local} "America/Los_Angeles;Pacific Standard Time" | ||
103 | ;; Viewers do not receive timezone information from the server - almost all (?) default to Pacific Standard Time | ||
104 | ;; However, they do rely on the server to tell them whether it's Daylight Saving Time or not. | ||
105 | ;; Hence, calculating DST based on a different timezone can result in a misleading viewer display and inconsistencies between grids. | ||
106 | ;; By default, this setting uses various timezone names to calculate DST with regards to the viewer's standard PST. | ||
107 | ;; Options are | ||
108 | ;; "none" no DST | ||
109 | ;; "local" use the server's only timezone to calculate DST. This is previous OpenSimulator behaviour. | ||
110 | ;; "America/Los_Angeles;Pacific Standard Time" use these timezone names to look up Daylight savings. | ||
111 | ;; 'America/Los_Angeles' is used on Linux/Mac systems whilst 'Pacific Standard Time' is used on Windows | ||
112 | DSTZone = "America/Los_Angeles;Pacific Standard Time" | ||
113 | |||
114 | [MapImageService] | ||
115 | LocalServiceModule = "OpenSim.Services.MapImageService.dll:MapImageService" | ||
116 | |||
117 | [MuteListService] | ||
118 | LocalServiceModule = "OpenSim.Services.MuteListService.dll:MuteListService" | ||
119 | |||
120 | ;; This should always be the very last thing on this file | ||
121 | [Includes] | ||
122 | Include-Common = "config-include/StandaloneCommon.ini" | ||
diff --git a/bin/config-include/StandaloneCommon.ini b/bin/config-include/StandaloneCommon.ini new file mode 100644 index 0000000..8da7784 --- /dev/null +++ b/bin/config-include/StandaloneCommon.ini | |||
@@ -0,0 +1,401 @@ | |||
1 | ; This is the main configuration file for an instance of OpenSim running in standalone mode | ||
2 | |||
3 | [DatabaseService] | ||
4 | ; | ||
5 | ; ### Choose the DB | ||
6 | ; | ||
7 | |||
8 | ; SQLite | ||
9 | ; Include-Storage = "config-include/storage/SQLiteStandalone.ini"; | ||
10 | |||
11 | ; MySql | ||
12 | ; Uncomment these lines if you want to use mysql storage | ||
13 | ; Change the connection string to your db details | ||
14 | ;StorageProvider = "OpenSim.Data.MySQL.dll" | ||
15 | ;ConnectionString = "Data Source=localhost;Database=opensim;User ID=opensim;Password=***;Old Guids=true;" | ||
16 | |||
17 | ; Uncomment this line if you are using MySQL and want to use a different database for estates. | ||
18 | ; The usual application for this is to allow estates to be spread out across multiple simulators by share the same database. | ||
19 | ; Most people won't need to do this so only uncomment if you know what you're doing. | ||
20 | ;EstateConnectionString = "Data Source=localhost;Database=opensim;User ID=opensim;Password=***;Old Guids=true;" | ||
21 | |||
22 | ; MSSQL | ||
23 | ; Uncomment these lines if you want to use MSSQL storage | ||
24 | ; Change the connection string to your db details | ||
25 | ; The value for server property is shown in your SQL Server Management Studio login dialog. | ||
26 | ; (This sample is the default of express edition) | ||
27 | ;StorageProvider = "OpenSim.Data.MSSQL.dll" | ||
28 | ;ConnectionString = "Server=localhost\SQLEXPRESS;Database=opensim;User Id=opensim; password=***;" | ||
29 | |||
30 | ; PGSQL | ||
31 | ; Uncomment these lines if you want to use PGSQL storage | ||
32 | ; Change the connection string to your db details | ||
33 | ;StorageProvider = "OpenSim.Data.PGSQL.dll" | ||
34 | ;ConnectionString = "Server=localhost;Database=opensim;User Id=opensim; password=***;" | ||
35 | |||
36 | StorageProvider = "${Const|DataProvider}" | ||
37 | ConnectionString = "${Const|ConnectionString}" | ||
38 | |||
39 | [Hypergrid] | ||
40 | ; Uncomment the variables in this section only if you are in | ||
41 | ; Hypergrid configuration. Otherwise, ignore. | ||
42 | |||
43 | ;# {HomeURI} {Hypergrid} {The Home URL of this world} {} | ||
44 | ;; If this is a standalone world, this is the address of this instance. | ||
45 | ;; If this is a grided simulator, this is the address of the external robust server that | ||
46 | ;; runs the UserAgentsService. | ||
47 | ;; For example http://myworld.com:9000 or http://myworld.com:8002 | ||
48 | ;; This is a default that can be overwritten in some sections. | ||
49 | ; HomeURI = "${Const|BaseURL}:${Const|PublicPort}" | ||
50 | |||
51 | ;# {GatekeeperURI} {Hypergrid} {The URL of the gatekeeper of this world} {} | ||
52 | ;; If this is a standalone world, this is the address of this instance. | ||
53 | ;; If this is a grided simulator, this is the address of the external robust server | ||
54 | ;; that runs the Gatekeeper service. | ||
55 | ;; For example http://myworld.com:9000 or http://myworld.com:8002 | ||
56 | ;; This is a default that can be overwritten in some sections. | ||
57 | ; GatekeeperURI = "${Const|BaseURL}:${Const|PublicPort}" | ||
58 | |||
59 | [Modules] | ||
60 | ;; Choose one cache module and the corresponding config file, if it exists. | ||
61 | ;; Copy the config .example file into your own .ini file and alter that | ||
62 | ;; We recommend the use of the FlotsamAssetCache since this is most actively maintained. | ||
63 | |||
64 | AssetCaching = "FlotsamAssetCache" | ||
65 | Include-FlotsamCache = "config-include/FlotsamCache.ini" | ||
66 | |||
67 | ;AssetCaching = "CenomeMemoryAssetCache" | ||
68 | ;Include-CenomeCache = "config-include/CenomeCache.ini" | ||
69 | |||
70 | ;AssetCaching = "GlynnTuckerAssetCache" | ||
71 | |||
72 | ;; Authorization is not on by default, as it depends on external php | ||
73 | ;AuthorizationServices = "LocalAuthorizationServicesConnector" | ||
74 | |||
75 | [AssetService] | ||
76 | DefaultAssetLoader = "OpenSim.Framework.AssetLoader.Filesystem.dll" | ||
77 | AssetLoaderArgs = "assets/AssetSets.xml" | ||
78 | |||
79 | [GridService] | ||
80 | ;; For in-memory region storage (default) | ||
81 | StorageProvider = "OpenSim.Data.Null.dll:NullRegionData" | ||
82 | ;;--- For MySql region storage (alternative) | ||
83 | ;StorageProvider = "OpenSim.Data.MySQL.dll:MySqlRegionData" | ||
84 | |||
85 | ;; Directory for map tile images of remote regions | ||
86 | ; MapTileDirectory = "./maptiles" | ||
87 | |||
88 | ;; Next, we can specify properties of regions, including default and fallback regions | ||
89 | ;; The syntax is: Region_<RegionName> = "<flags>" | ||
90 | ;; where <flags> can be DefaultRegion, FallbackRegion, NoDirectLogin, Persistent, LockedOut | ||
91 | ;; | ||
92 | ;; 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.) | ||
93 | ;; then this region becomes the destination. Only the first online default region will be used. If no DefaultHGRegion | ||
94 | ;; is specified then this will also be used as the region for hypergrid connections that require it (commonly because they have not specified | ||
95 | ;; an explicit region. | ||
96 | ;; | ||
97 | ;; DefaultHGRegion If an avatar connecting via the hypergrid does not specify a region, then they are placed here. Only the first online | ||
98 | ;; region will be used. | ||
99 | ;; | ||
100 | ;; FallbackRegion If the DefaultRegion is not available for a local login, then any FallbackRegions are tried instead. These are tried in the | ||
101 | ;; order specified. This only applies to local logins at this time, not Hypergrid connections. | ||
102 | ;; | ||
103 | ;; NoDirectLogin A hypergrid user cannot directly connect to this region. This does not apply to local logins. | ||
104 | ;; | ||
105 | ;; Persistent When the simulator is shutdown, the region is signalled as offline but left registered on the grid. | ||
106 | ;; | ||
107 | ;; For example: | ||
108 | Region_Welcome_Area = "DefaultRegion, FallbackRegion" | ||
109 | |||
110 | ;; Allow supporting viewers to export content | ||
111 | ;; Set to false to prevent export | ||
112 | ExportSupported = true | ||
113 | |||
114 | ; === HG ONLY === | ||
115 | ;; If you have this set under [Hypergrid], no need to set it here, leave it commented | ||
116 | ; GatekeeperURI="${Const|BaseURL}:${Const|PublicPort}" | ||
117 | |||
118 | [LibraryModule] | ||
119 | ; Set this if you want to change the name of the OpenSim Library | ||
120 | ;LibraryName = "My World's Library" | ||
121 | |||
122 | [LoginService] | ||
123 | WelcomeMessage = "Welcome, Avatar!" | ||
124 | ;; If you have GatekeeperURI set under [Hypergrid], no need to set it here, leave it commented | ||
125 | ; GatekeeperURI = "${Const|BaseURL}:${Const|PublicPort}" | ||
126 | |||
127 | SRV_HomeURI = "${Const|BaseURL}:${Const|PublicPort}" | ||
128 | SRV_InventoryServerURI = "${Const|BaseURL}:${Const|PublicPort}" | ||
129 | SRV_AssetServerURI = "${Const|BaseURL}:${Const|PublicPort}" | ||
130 | SRV_ProfileServerURI = "${Const|BaseURL}:${Const|PublicPort}" | ||
131 | SRV_FriendsServerURI = "${Const|BaseURL}:${Const|PublicPort}" | ||
132 | SRV_IMServerURI = "${Const|BaseURL}:${Const|PublicPort}" | ||
133 | |||
134 | ;; For Viewer 2 | ||
135 | MapTileURL = "${Const|BaseURL}:${Const|PublicPort}/" | ||
136 | |||
137 | ; Url to search service | ||
138 | ; SearchURL = "${Const|BaseURL}:${Const|PublicPort}"; | ||
139 | |||
140 | ; For V3 destination guide | ||
141 | ; DestinationGuide = "${Const|BaseURL}/guide" | ||
142 | |||
143 | ; The minimum user level required for a user to be able to login. 0 by default | ||
144 | ; If you disable a particular user's account then you can set their login level below this number. | ||
145 | ; You can also change this level from the console though these changes will not be persisted. | ||
146 | ; MinLoginLevel = 0 | ||
147 | |||
148 | ;; Ask co-operative viewers to use a different currency name | ||
149 | ;Currency = "" | ||
150 | |||
151 | ;; Set minimum fee to publish classified | ||
152 | ; ClassifiedFee = 0 | ||
153 | |||
154 | ; Basic Login Service Dos Protection Tweaks | ||
155 | ; ; | ||
156 | ; ; Some Grids/Users use a transparent proxy that makes use of the X-Forwarded-For HTTP Header, If you do, set this to true | ||
157 | ; ; 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 | ||
158 | ; ; get around this basic DOS protection. | ||
159 | ; DOSAllowXForwardedForHeader = false | ||
160 | ; ; | ||
161 | ; ; The protector adds up requests during this rolling period of time, default 10 seconds | ||
162 | ; DOSRequestTimeFrameMS = 10000 | ||
163 | ; ; | ||
164 | ; ; The amount of requests in the above timeframe from the same endpoint that triggers protection | ||
165 | ; DOSMaxRequestsInTimeFrame = 5 | ||
166 | ; ; | ||
167 | ; ; The amount of time that a specific endpoint is blocked. Default 2 minutes. | ||
168 | ; DOSForgiveClientAfterMS = 120000 | ||
169 | ; ; | ||
170 | ; ; To turn off basic dos protection, set the DOSMaxRequestsInTimeFrame to 0. | ||
171 | |||
172 | [FreeswitchService] | ||
173 | ;; If FreeSWITCH is not being used then you don't need to set any of these parameters | ||
174 | ;; | ||
175 | ;; The IP address of your FreeSWITCH server. The common case is for this to be the same as the server running the OpenSim standalone | ||
176 | ;; This has to be set for the FreeSWITCH service to work | ||
177 | ;; This address must be reachable by viewers. | ||
178 | ;ServerAddress = 127.0.0.1 | ||
179 | |||
180 | ;; The following configuration parameters are optional | ||
181 | |||
182 | ;; By default, this is the same as the ServerAddress | ||
183 | ; Realm = 127.0.0.1 | ||
184 | |||
185 | ;; By default, this is the same as the ServerAddress on port 5060 | ||
186 | ; SIPProxy = 127.0.0.1:5060 | ||
187 | |||
188 | ;; Default is 5000ms | ||
189 | ; DefaultTimeout = 5000 | ||
190 | |||
191 | ;; The dial plan context. Default is "default" | ||
192 | ; Context = default | ||
193 | |||
194 | ;; Currently unused | ||
195 | ; UserName = freeswitch | ||
196 | |||
197 | ;; Currently unused | ||
198 | ; Password = password | ||
199 | |||
200 | ;; The following parameters are for STUN = Simple Traversal of UDP through NATs | ||
201 | ;; See http://wiki.freeswitch.org/wiki/NAT_Traversal | ||
202 | ;; stun.freeswitch.org is not guaranteed to be running so use it in | ||
203 | ;; production at your own risk | ||
204 | ; EchoServer = 127.0.0.1 | ||
205 | ; EchoPort = 50505 | ||
206 | ; AttemptSTUN = false | ||
207 | |||
208 | [GridInfoService] | ||
209 | ; These settings are used to return information on a get_grid_info call. | ||
210 | ; Client launcher scripts and third-party clients make use of this to | ||
211 | ; autoconfigure the client and to provide a nice user experience. If you | ||
212 | ; want to facilitate that, you should configure the settings here according | ||
213 | ; to your grid or standalone setup. | ||
214 | ; | ||
215 | ; See http://opensimulator.org/wiki/GridInfo | ||
216 | |||
217 | ; login uri: for grid this is the login server URI | ||
218 | login = ${Const|BaseURL}:${Const|PublicPort}/ | ||
219 | |||
220 | ; long grid name: the long name of your grid | ||
221 | gridname = "the lost continent of hippo" | ||
222 | |||
223 | ; short grid name: the short name of your grid | ||
224 | gridnick = "hippogrid" | ||
225 | |||
226 | ; login page: optional: if it exists it will be used to tell the client to use | ||
227 | ; this as splash page. May also be served from an external web server, e.g. for | ||
228 | ; information on a standalone | ||
229 | ;welcome = ${Const|BaseURL}/welcome | ||
230 | |||
231 | ; helper uri: optional: if it exists it will be used to tell the client to use | ||
232 | ; this for all economy related things | ||
233 | ;economy = ${Const|BaseURL}/economy | ||
234 | |||
235 | ; web page of grid: optional: page providing further information about your grid | ||
236 | ;about = ${Const|BaseURL}/about | ||
237 | |||
238 | ; account creation: optional: page providing further information about obtaining | ||
239 | ; a user account on your grid | ||
240 | ;register = ${Const|BaseURL}/register | ||
241 | |||
242 | ; help: optional: page providing further assistance for users of your grid | ||
243 | ;help = ${Const|BaseURL}/help | ||
244 | |||
245 | ; password help: optional: page providing password assistance for users of your grid | ||
246 | ;password = ${Const|BaseURL}/password | ||
247 | |||
248 | ; HG address of the gatekeeper, if you have one | ||
249 | ; this is the entry point for all the regions of the world | ||
250 | ; gatekeeper = ${Const|BaseURL}:${Const|PublicPort}/ | ||
251 | |||
252 | ; HG user domain, if you have one | ||
253 | ; this is the entry point for all user-related HG services | ||
254 | ; uas = ${Const|BaseURL}:${Const|PublicPort}/ | ||
255 | |||
256 | [MapImageService] | ||
257 | ; Set this if you want to change the default | ||
258 | ; TilesStoragePath = "maptiles" | ||
259 | |||
260 | [AuthorizationService] | ||
261 | ; If you have regions with access restrictions | ||
262 | ; specify them here using the convention | ||
263 | ; Region_<Region_Name> = <flags> | ||
264 | ; Valid flags are: | ||
265 | ; DisallowForeigners -- HG visitors not allowed | ||
266 | ; DisallowResidents -- only Admins and Managers allowed | ||
267 | ; Example: | ||
268 | ; Region_Test_1 = "DisallowForeigners" | ||
269 | |||
270 | ;; | ||
271 | ;; HG configurations | ||
272 | ;; | ||
273 | [GatekeeperService] | ||
274 | ;; If you have GatekeeperURI set under [Hypergrid], no need to set it here, leave it commented | ||
275 | ; ExternalName = "${Const|BaseURL}:${Const|PublicPort}" | ||
276 | |||
277 | ; Does this grid allow incoming links to any region in it? | ||
278 | ; If false, HG TPs happen only to the Default regions specified in [GridService] section | ||
279 | AllowTeleportsToAnyRegion = true | ||
280 | |||
281 | ;; Regular expressions for controlling which client versions are accepted/denied. | ||
282 | ;; An empty string means nothing is checked. | ||
283 | ;; | ||
284 | ;; Example 1: allow only these 3 types of clients (any version of them) | ||
285 | ;; AllowedClients = "Imprudence|Hippo|Second Life" | ||
286 | ;; | ||
287 | ;; Example 2: allow all clients except these | ||
288 | ;; DeniedClients = "Twisted|Crawler|Cryolife|FuckLife|StreetLife|GreenLife|AntiLife|KORE-Phaze|Synlyfe|Purple Second Life|SecondLi |Emerald" | ||
289 | ;; | ||
290 | ;; Note that these are regular expressions, so every character counts. | ||
291 | ;; Also note that this is very weak security and should not be trusted as a reliable means | ||
292 | ;; for keeping bad clients out; modified clients can fake their identifiers. | ||
293 | ;; | ||
294 | ;; | ||
295 | ;AllowedClients = "" | ||
296 | ;DeniedClients = "" | ||
297 | |||
298 | ;; Are foreign visitors allowed? | ||
299 | ;ForeignAgentsAllowed = true | ||
300 | ;; | ||
301 | ;; If ForeignAgentsAllowed is true, make exceptions using AllowExcept. | ||
302 | ;; Leave blank or commented for no exceptions. | ||
303 | ; AllowExcept = "http://griefer.com:8002, http://enemy.com:8002" | ||
304 | ;; | ||
305 | ;; If ForeignAgentsAllowed is false, make exceptions using DisallowExcept | ||
306 | ;; Leave blank or commented for no exceptions. | ||
307 | ; DisallowExcept = "http://myfriendgrid.com:8002, http://myboss.com:8002" | ||
308 | |||
309 | [UserAgentService] | ||
310 | ;; User level required to be contacted from other grids | ||
311 | ;LevelOutsideContacts = 0 | ||
312 | |||
313 | ;; Restrictions on destinations of local users. | ||
314 | ;; Are local users allowed to visit other grids? | ||
315 | ;; What user level? Use variables of this forrm: | ||
316 | ;; ForeignTripsAllowed_Level_<UserLevel> = true | false | ||
317 | ;; (the default is true) | ||
318 | ;; For example: | ||
319 | ; ForeignTripsAllowed_Level_0 = false | ||
320 | ; ForeignTripsAllowed_Level_200 = true ; true is default, no need to say it | ||
321 | ;; | ||
322 | ;; If ForeignTripsAllowed is false, make exceptions using DisallowExcept | ||
323 | ;; Leave blank or commented for no exceptions. | ||
324 | ; DisallowExcept_Level_0 = "http://myothergrid.com:8002, http://boss.com:8002" | ||
325 | ;; | ||
326 | ;; If ForeignTripsAllowed is true, make exceptions using AllowExcept. | ||
327 | ;; Leave blank or commented for no exceptions. | ||
328 | ; AllowExcept_Level_200 = "http://griefer.com:8002, http://enemy.com:8002" | ||
329 | |||
330 | ;; This variable controls what is exposed to profiles of local users | ||
331 | ;; as seen from outside of this grid. Leave it uncommented for exposing | ||
332 | ;; UserTitle, UserFlags and the creation date. Uncomment and change to False | ||
333 | ;; to block this info from being exposed. | ||
334 | ; ShowUserDetailsInHGProfile = True | ||
335 | |||
336 | [HGInventoryService] | ||
337 | ;; If you have this set under [Hypergrid], no need to set it here, leave it commented | ||
338 | ; HomeURI = "${Const|BaseURL}:${Const|PublicPort}" | ||
339 | |||
340 | [HGAssetService] | ||
341 | ;; If you have this set under [Hypergrid], no need to set it here, leave it commented | ||
342 | ; HomeURI = "${Const|BaseURL}:${Const|PublicPort}" | ||
343 | |||
344 | ;; The asset types that this grid can export to / import from other grids. | ||
345 | ;; Comma separated. | ||
346 | ;; Valid values are all the asset types in OpenMetaverse.AssetType, namely: | ||
347 | ;; Unknown, Texture, Sound, CallingCard, Landmark, Clothing, Object, Notecard, LSLText, | ||
348 | ;; LSLBytecode, TextureTGA, Bodypart, SoundWAV, ImageTGA, ImageJPEG, Animation, Gesture, Mesh | ||
349 | ;; | ||
350 | ;; Leave blank or commented if you don't want to apply any restrictions. | ||
351 | ;; A more strict, but still reasonable, policy may be to disallow the exchange | ||
352 | ;; of scripts, like so: | ||
353 | ; DisallowExport ="LSLText" | ||
354 | ; DisallowImport ="LSLBytecode" | ||
355 | |||
356 | [HGInventoryAccessModule] | ||
357 | ;; If you have these set under [Hypergrid], no need to set it here, leave it commented | ||
358 | ; HomeURI = "${Const|BaseURL}:${Const|PublicPort}" | ||
359 | ; GatekeeperURI = "${Const|BaseURL}:${Const|PublicPort}" | ||
360 | |||
361 | ;; If you want to protect your assets from being copied by foreign visitors | ||
362 | ;; uncomment the next line. You may want to do this on sims that have licensed content. | ||
363 | ;; true = allow exports, false = disallow exports. True by default. | ||
364 | ; OutboundPermission = True | ||
365 | |||
366 | ;; Send visual reminder to local users that their inventories are unavailable while they are traveling | ||
367 | ;; and available when they return. True by default. | ||
368 | ;RestrictInventoryAccessAbroad = True | ||
369 | |||
370 | [HGFriendsModule] | ||
371 | ; User level required to be able to send friendship invitations to foreign users | ||
372 | ;LevelHGFriends = 0; | ||
373 | |||
374 | [Messaging] | ||
375 | ; === HG ONLY === | ||
376 | ;; If you have this set under [Hypergrid], no need to set it here, leave it commented | ||
377 | ; GatekeeperURI = "${Const|BaseURL}:${Const|PublicPort}" | ||
378 | |||
379 | [EntityTransfer] | ||
380 | ;; User level from which local users are allowed to HG teleport. Default 0 (all users) | ||
381 | ;LevelHGTeleport = 0 | ||
382 | |||
383 | ;; Are local users restricted from taking their appearance abroad? | ||
384 | ;; Default is no restrictions | ||
385 | ;RestrictAppearanceAbroad = false | ||
386 | |||
387 | ;; If appearance is restricted, which accounts' appearances are allowed to be exported? | ||
388 | ;; Comma-separated list of account names | ||
389 | AccountForAppearance = "Test User, Astronaut Smith" | ||
390 | |||
391 | [UserProfilesService] | ||
392 | ;; To use, set Enabled to true then configure for your site... | ||
393 | Enabled = false | ||
394 | LocalServiceModule = "OpenSim.Services.UserProfilesService.dll:UserProfilesService" | ||
395 | |||
396 | ;; Configure this for separate databse | ||
397 | ; ConnectionString = "Data Source=localhost;Database=opensim;User ID=opensim;Password=***;Old Guids=true;" | ||
398 | ; Realm = UserProfiles | ||
399 | |||
400 | UserAccountService = OpenSim.Services.UserAccountService.dll:UserAccountService | ||
401 | AuthenticationServiceModule = "OpenSim.Services.AuthenticationService.dll:PasswordAuthenticationService" | ||
diff --git a/bin/config-include/StandaloneCommon.ini.example b/bin/config-include/StandaloneCommon.ini.example new file mode 100644 index 0000000..941a2ee --- /dev/null +++ b/bin/config-include/StandaloneCommon.ini.example | |||
@@ -0,0 +1,401 @@ | |||
1 | ; This is the main configuration file for an instance of OpenSim running in standalone mode | ||
2 | |||
3 | [DatabaseService] | ||
4 | ; | ||
5 | ; ### Choose the DB | ||
6 | ; | ||
7 | |||
8 | ; SQLite | ||
9 | ;Include-Storage = "config-include/storage/SQLiteStandalone.ini"; | ||
10 | |||
11 | ; MySql | ||
12 | ; Uncomment these lines if you want to use mysql storage | ||
13 | ; Change the connection string to your db details | ||
14 | ;StorageProvider = "OpenSim.Data.MySQL.dll" | ||
15 | ;ConnectionString = "Data Source=localhost;Database=opensim;User ID=opensim;Password=***;Old Guids=true;" | ||
16 | |||
17 | ; Uncomment this line if you are using MySQL and want to use a different database for estates. | ||
18 | ; The usual application for this is to allow estates to be spread out across multiple simulators by share the same database. | ||
19 | ; Most people won't need to do this so only uncomment if you know what you're doing. | ||
20 | ;EstateConnectionString = "Data Source=localhost;Database=opensim;User ID=opensim;Password=***;Old Guids=true;" | ||
21 | |||
22 | ; MSSQL | ||
23 | ; Uncomment these lines if you want to use MSSQL storage | ||
24 | ; Change the connection string to your db details | ||
25 | ; The value for server property is shown in your SQL Server Management Studio login dialog. | ||
26 | ; (This sample is the default of express edition) | ||
27 | ;StorageProvider = "OpenSim.Data.MSSQL.dll" | ||
28 | ;ConnectionString = "Server=localhost\SQLEXPRESS;Database=opensim;User Id=opensim; password=***;" | ||
29 | |||
30 | ; PGSQL | ||
31 | ; Uncomment these lines if you want to use PGSQL storage | ||
32 | ; Change the connection string to your db details | ||
33 | ;StorageProvider = "OpenSim.Data.PGSQL.dll" | ||
34 | ;ConnectionString = "Server=localhost;Database=opensim;User Id=opensim; password=***;" | ||
35 | |||
36 | StorageProvider = "${Const|DataProvider}" | ||
37 | ConnectionString = "${Const|ConnectionString}" | ||
38 | |||
39 | [Hypergrid] | ||
40 | ; Uncomment the variables in this section only if you are in | ||
41 | ; Hypergrid configuration. Otherwise, ignore. | ||
42 | |||
43 | ;# {HomeURI} {Hypergrid} {The Home URL of this world} {} | ||
44 | ;; If this is a standalone world, this is the address of this instance. | ||
45 | ;; If this is a grided simulator, this is the address of the external robust server that | ||
46 | ;; runs the UserAgentsService. | ||
47 | ;; For example http://myworld.com:9000 or http://myworld.com:8002 | ||
48 | ;; This is a default that can be overwritten in some sections. | ||
49 | ; HomeURI = "${Const|BaseURL}:${Const|PublicPort}" | ||
50 | |||
51 | ;# {GatekeeperURI} {Hypergrid} {The URL of the gatekeeper of this world} {} | ||
52 | ;; If this is a standalone world, this is the address of this instance. | ||
53 | ;; If this is a grided simulator, this is the address of the external robust server | ||
54 | ;; that runs the Gatekeeper service. | ||
55 | ;; For example http://myworld.com:9000 or http://myworld.com:8002 | ||
56 | ;; This is a default that can be overwritten in some sections. | ||
57 | ; GatekeeperURI = "${Const|BaseURL}:${Const|PublicPort}" | ||
58 | |||
59 | [Modules] | ||
60 | ;; Choose one cache module and the corresponding config file, if it exists. | ||
61 | ;; Copy the config .example file into your own .ini file and alter that | ||
62 | ;; We recommend the use of the FlotsamAssetCache since this is most actively maintained. | ||
63 | |||
64 | AssetCaching = "FlotsamAssetCache" | ||
65 | Include-FlotsamCache = "config-include/FlotsamCache.ini" | ||
66 | |||
67 | ;AssetCaching = "CenomeMemoryAssetCache" | ||
68 | ;Include-CenomeCache = "config-include/CenomeCache.ini" | ||
69 | |||
70 | ;AssetCaching = "GlynnTuckerAssetCache" | ||
71 | |||
72 | ;; Authorization is not on by default, as it depends on external php | ||
73 | ;AuthorizationServices = "LocalAuthorizationServicesConnector" | ||
74 | |||
75 | [AssetService] | ||
76 | DefaultAssetLoader = "OpenSim.Framework.AssetLoader.Filesystem.dll" | ||
77 | AssetLoaderArgs = "assets/AssetSets.xml" | ||
78 | |||
79 | [GridService] | ||
80 | ;; For in-memory region storage (default) | ||
81 | StorageProvider = "OpenSim.Data.Null.dll:NullRegionData" | ||
82 | ;;--- For MySql region storage (alternative) | ||
83 | ;StorageProvider = "OpenSim.Data.MySQL.dll:MySqlRegionData" | ||
84 | |||
85 | ;; Directory for map tile images of remote regions | ||
86 | ; MapTileDirectory = "./maptiles" | ||
87 | |||
88 | ;; Next, we can specify properties of regions, including default and fallback regions | ||
89 | ;; The syntax is: Region_<RegionName> = "<flags>" | ||
90 | ;; where <flags> can be DefaultRegion, FallbackRegion, NoDirectLogin, Persistent, LockedOut | ||
91 | ;; | ||
92 | ;; 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.) | ||
93 | ;; then this region becomes the destination. Only the first online default region will be used. If no DefaultHGRegion | ||
94 | ;; is specified then this will also be used as the region for hypergrid connections that require it (commonly because they have not specified | ||
95 | ;; an explicit region. | ||
96 | ;; | ||
97 | ;; DefaultHGRegion If an avatar connecting via the hypergrid does not specify a region, then they are placed here. Only the first online | ||
98 | ;; region will be used. | ||
99 | ;; | ||
100 | ;; FallbackRegion If the DefaultRegion is not available for a local login, then any FallbackRegions are tried instead. These are tried in the | ||
101 | ;; order specified. This only applies to local logins at this time, not Hypergrid connections. | ||
102 | ;; | ||
103 | ;; NoDirectLogin A hypergrid user cannot directly connect to this region. This does not apply to local logins. | ||
104 | ;; | ||
105 | ;; Persistent When the simulator is shutdown, the region is signalled as offline but left registered on the grid. | ||
106 | ;; | ||
107 | ;; For example: | ||
108 | Region_Welcome_Area = "DefaultRegion, FallbackRegion" | ||
109 | |||
110 | ;; Allow supporting viewers to export content | ||
111 | ;; Set to false to prevent export | ||
112 | ExportSupported = true | ||
113 | |||
114 | ; === HG ONLY === | ||
115 | ;; If you have this set under [Hypergrid], no need to set it here, leave it commented | ||
116 | ; GatekeeperURI="${Const|BaseURL}:${Const|PublicPort}" | ||
117 | |||
118 | [LibraryModule] | ||
119 | ; Set this if you want to change the name of the OpenSim Library | ||
120 | ;LibraryName = "My World's Library" | ||
121 | |||
122 | [LoginService] | ||
123 | WelcomeMessage = "Welcome, Avatar!" | ||
124 | ;; If you have GatekeeperURI set under [Hypergrid], no need to set it here, leave it commented | ||
125 | ; GatekeeperURI = "${Const|BaseURL}:${Const|PublicPort}" | ||
126 | |||
127 | SRV_HomeURI = "${Const|BaseURL}:${Const|PublicPort}" | ||
128 | SRV_InventoryServerURI = "${Const|BaseURL}:${Const|PublicPort}" | ||
129 | SRV_AssetServerURI = "${Const|BaseURL}:${Const|PublicPort}" | ||
130 | SRV_ProfileServerURI = "${Const|BaseURL}:${Const|PublicPort}" | ||
131 | SRV_FriendsServerURI = "${Const|BaseURL}:${Const|PublicPort}" | ||
132 | SRV_IMServerURI = "${Const|BaseURL}:${Const|PublicPort}" | ||
133 | |||
134 | ;; For Viewer 2 | ||
135 | MapTileURL = "${Const|BaseURL}:${Const|PublicPort}/" | ||
136 | |||
137 | ; Url to search service | ||
138 | ; SearchURL = "${Const|BaseURL}:${Const|PublicPort}"; | ||
139 | |||
140 | ; For V3 destination guide | ||
141 | ; DestinationGuide = "${Const|BaseURL}/guide" | ||
142 | |||
143 | ; The minimum user level required for a user to be able to login. 0 by default | ||
144 | ; If you disable a particular user's account then you can set their login level below this number. | ||
145 | ; You can also change this level from the console though these changes will not be persisted. | ||
146 | ; MinLoginLevel = 0 | ||
147 | |||
148 | ;; Ask co-operative viewers to use a different currency name | ||
149 | ;Currency = "" | ||
150 | |||
151 | ;; Set minimum fee to publish classified | ||
152 | ; ClassifiedFee = 0 | ||
153 | |||
154 | ; Basic Login Service Dos Protection Tweaks | ||
155 | ; ; | ||
156 | ; ; Some Grids/Users use a transparent proxy that makes use of the X-Forwarded-For HTTP Header, If you do, set this to true | ||
157 | ; ; 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 | ||
158 | ; ; get around this basic DOS protection. | ||
159 | ; DOSAllowXForwardedForHeader = false | ||
160 | ; ; | ||
161 | ; ; The protector adds up requests during this rolling period of time, default 10 seconds | ||
162 | ; DOSRequestTimeFrameMS = 10000 | ||
163 | ; ; | ||
164 | ; ; The amount of requests in the above timeframe from the same endpoint that triggers protection | ||
165 | ; DOSMaxRequestsInTimeFrame = 5 | ||
166 | ; ; | ||
167 | ; ; The amount of time that a specific endpoint is blocked. Default 2 minutes. | ||
168 | ; DOSForgiveClientAfterMS = 120000 | ||
169 | ; ; | ||
170 | ; ; To turn off basic dos protection, set the DOSMaxRequestsInTimeFrame to 0. | ||
171 | |||
172 | [FreeswitchService] | ||
173 | ;; If FreeSWITCH is not being used then you don't need to set any of these parameters | ||
174 | ;; | ||
175 | ;; The IP address of your FreeSWITCH server. The common case is for this to be the same as the server running the OpenSim standalone | ||
176 | ;; This has to be set for the FreeSWITCH service to work | ||
177 | ;; This address must be reachable by viewers. | ||
178 | ;ServerAddress = 127.0.0.1 | ||
179 | |||
180 | ;; The following configuration parameters are optional | ||
181 | |||
182 | ;; By default, this is the same as the ServerAddress | ||
183 | ; Realm = 127.0.0.1 | ||
184 | |||
185 | ;; By default, this is the same as the ServerAddress on port 5060 | ||
186 | ; SIPProxy = 127.0.0.1:5060 | ||
187 | |||
188 | ;; Default is 5000ms | ||
189 | ; DefaultTimeout = 5000 | ||
190 | |||
191 | ;; The dial plan context. Default is "default" | ||
192 | ; Context = default | ||
193 | |||
194 | ;; Currently unused | ||
195 | ; UserName = freeswitch | ||
196 | |||
197 | ;; Currently unused | ||
198 | ; Password = password | ||
199 | |||
200 | ;; The following parameters are for STUN = Simple Traversal of UDP through NATs | ||
201 | ;; See http://wiki.freeswitch.org/wiki/NAT_Traversal | ||
202 | ;; stun.freeswitch.org is not guaranteed to be running so use it in | ||
203 | ;; production at your own risk | ||
204 | ; EchoServer = 127.0.0.1 | ||
205 | ; EchoPort = 50505 | ||
206 | ; AttemptSTUN = false | ||
207 | |||
208 | [GridInfoService] | ||
209 | ; These settings are used to return information on a get_grid_info call. | ||
210 | ; Client launcher scripts and third-party clients make use of this to | ||
211 | ; autoconfigure the client and to provide a nice user experience. If you | ||
212 | ; want to facilitate that, you should configure the settings here according | ||
213 | ; to your grid or standalone setup. | ||
214 | ; | ||
215 | ; See http://opensimulator.org/wiki/GridInfo | ||
216 | |||
217 | ; login uri: for grid this is the login server URI | ||
218 | login = ${Const|BaseURL}:${Const|PublicPort}/ | ||
219 | |||
220 | ; long grid name: the long name of your grid | ||
221 | gridname = "the lost continent of hippo" | ||
222 | |||
223 | ; short grid name: the short name of your grid | ||
224 | gridnick = "hippogrid" | ||
225 | |||
226 | ; login page: optional: if it exists it will be used to tell the client to use | ||
227 | ; this as splash page. May also be served from an external web server, e.g. for | ||
228 | ; information on a standalone | ||
229 | ;welcome = ${Const|BaseURL}/welcome | ||
230 | |||
231 | ; helper uri: optional: if it exists it will be used to tell the client to use | ||
232 | ; this for all economy related things | ||
233 | ;economy = ${Const|BaseURL}/economy | ||
234 | |||
235 | ; web page of grid: optional: page providing further information about your grid | ||
236 | ;about = ${Const|BaseURL}/about | ||
237 | |||
238 | ; account creation: optional: page providing further information about obtaining | ||
239 | ; a user account on your grid | ||
240 | ;register = ${Const|BaseURL}/register | ||
241 | |||
242 | ; help: optional: page providing further assistance for users of your grid | ||
243 | ;help = ${Const|BaseURL}/help | ||
244 | |||
245 | ; password help: optional: page providing password assistance for users of your grid | ||
246 | ;password = ${Const|BaseURL}/password | ||
247 | |||
248 | ; HG address of the gatekeeper, if you have one | ||
249 | ; this is the entry point for all the regions of the world | ||
250 | ; gatekeeper = ${Const|BaseURL}:${Const|PublicPort}/ | ||
251 | |||
252 | ; HG user domain, if you have one | ||
253 | ; this is the entry point for all user-related HG services | ||
254 | ; uas = ${Const|BaseURL}:${Const|PublicPort}/ | ||
255 | |||
256 | [MapImageService] | ||
257 | ; Set this if you want to change the default | ||
258 | ; TilesStoragePath = "maptiles" | ||
259 | |||
260 | [AuthorizationService] | ||
261 | ; If you have regions with access restrictions | ||
262 | ; specify them here using the convention | ||
263 | ; Region_<Region_Name> = <flags> | ||
264 | ; Valid flags are: | ||
265 | ; DisallowForeigners -- HG visitors not allowed | ||
266 | ; DisallowResidents -- only Admins and Managers allowed | ||
267 | ; Example: | ||
268 | ; Region_Test_1 = "DisallowForeigners" | ||
269 | |||
270 | ;; | ||
271 | ;; HG configurations | ||
272 | ;; | ||
273 | [GatekeeperService] | ||
274 | ;; If you have GatekeeperURI set under [Hypergrid], no need to set it here, leave it commented | ||
275 | ; ExternalName = "${Const|BaseURL}:${Const|PublicPort}" | ||
276 | |||
277 | ; Does this grid allow incoming links to any region in it? | ||
278 | ; If false, HG TPs happen only to the Default regions specified in [GridService] section | ||
279 | AllowTeleportsToAnyRegion = true | ||
280 | |||
281 | ;; Regular expressions for controlling which client versions are accepted/denied. | ||
282 | ;; An empty string means nothing is checked. | ||
283 | ;; | ||
284 | ;; Example 1: allow only these 3 types of clients (any version of them) | ||
285 | ;; AllowedClients = "Imprudence|Hippo|Second Life" | ||
286 | ;; | ||
287 | ;; Example 2: allow all clients except these | ||
288 | ;; DeniedClients = "Twisted|Crawler|Cryolife|FuckLife|StreetLife|GreenLife|AntiLife|KORE-Phaze|Synlyfe|Purple Second Life|SecondLi |Emerald" | ||
289 | ;; | ||
290 | ;; Note that these are regular expressions, so every character counts. | ||
291 | ;; Also note that this is very weak security and should not be trusted as a reliable means | ||
292 | ;; for keeping bad clients out; modified clients can fake their identifiers. | ||
293 | ;; | ||
294 | ;; | ||
295 | ;AllowedClients = "" | ||
296 | ;DeniedClients = "" | ||
297 | |||
298 | ;; Are foreign visitors allowed? | ||
299 | ;ForeignAgentsAllowed = true | ||
300 | ;; | ||
301 | ;; If ForeignAgentsAllowed is true, make exceptions using AllowExcept. | ||
302 | ;; Leave blank or commented for no exceptions. | ||
303 | ; AllowExcept = "http://griefer.com:8002, http://enemy.com:8002" | ||
304 | ;; | ||
305 | ;; If ForeignAgentsAllowed is false, make exceptions using DisallowExcept | ||
306 | ;; Leave blank or commented for no exceptions. | ||
307 | ; DisallowExcept = "http://myfriendgrid.com:8002, http://myboss.com:8002" | ||
308 | |||
309 | [UserAgentService] | ||
310 | ;; User level required to be contacted from other grids | ||
311 | ;LevelOutsideContacts = 0 | ||
312 | |||
313 | ;; Restrictions on destinations of local users. | ||
314 | ;; Are local users allowed to visit other grids? | ||
315 | ;; What user level? Use variables of this forrm: | ||
316 | ;; ForeignTripsAllowed_Level_<UserLevel> = true | false | ||
317 | ;; (the default is true) | ||
318 | ;; For example: | ||
319 | ; ForeignTripsAllowed_Level_0 = false | ||
320 | ; ForeignTripsAllowed_Level_200 = true ; true is default, no need to say it | ||
321 | ;; | ||
322 | ;; If ForeignTripsAllowed is false, make exceptions using DisallowExcept | ||
323 | ;; Leave blank or commented for no exceptions. | ||
324 | ; DisallowExcept_Level_0 = "http://myothergrid.com:8002, http://boss.com:8002" | ||
325 | ;; | ||
326 | ;; If ForeignTripsAllowed is true, make exceptions using AllowExcept. | ||
327 | ;; Leave blank or commented for no exceptions. | ||
328 | ; AllowExcept_Level_200 = "http://griefer.com:8002, http://enemy.com:8002" | ||
329 | |||
330 | ;; This variable controls what is exposed to profiles of local users | ||
331 | ;; as seen from outside of this grid. Leave it uncommented for exposing | ||
332 | ;; UserTitle, UserFlags and the creation date. Uncomment and change to False | ||
333 | ;; to block this info from being exposed. | ||
334 | ; ShowUserDetailsInHGProfile = True | ||
335 | |||
336 | [HGInventoryService] | ||
337 | ;; If you have this set under [Hypergrid], no need to set it here, leave it commented | ||
338 | ; HomeURI = "${Const|BaseURL}:${Const|PublicPort}" | ||
339 | |||
340 | [HGAssetService] | ||
341 | ;; If you have this set under [Hypergrid], no need to set it here, leave it commented | ||
342 | ; HomeURI = "${Const|BaseURL}:${Const|PublicPort}" | ||
343 | |||
344 | ;; The asset types that this grid can export to / import from other grids. | ||
345 | ;; Comma separated. | ||
346 | ;; Valid values are all the asset types in OpenMetaverse.AssetType, namely: | ||
347 | ;; Unknown, Texture, Sound, CallingCard, Landmark, Clothing, Object, Notecard, LSLText, | ||
348 | ;; LSLBytecode, TextureTGA, Bodypart, SoundWAV, ImageTGA, ImageJPEG, Animation, Gesture, Mesh | ||
349 | ;; | ||
350 | ;; Leave blank or commented if you don't want to apply any restrictions. | ||
351 | ;; A more strict, but still reasonable, policy may be to disallow the exchange | ||
352 | ;; of scripts, like so: | ||
353 | ; DisallowExport ="LSLText" | ||
354 | ; DisallowImport ="LSLBytecode" | ||
355 | |||
356 | [HGInventoryAccessModule] | ||
357 | ;; If you have these set under [Hypergrid], no need to set it here, leave it commented | ||
358 | ; HomeURI = "${Const|BaseURL}:${Const|PublicPort}" | ||
359 | ; GatekeeperURI = "${Const|BaseURL}:${Const|PublicPort}" | ||
360 | |||
361 | ;; If you want to protect your assets from being copied by foreign visitors | ||
362 | ;; uncomment the next line. You may want to do this on sims that have licensed content. | ||
363 | ;; true = allow exports, false = disallow exports. True by default. | ||
364 | ; OutboundPermission = True | ||
365 | |||
366 | ;; Send visual reminder to local users that their inventories are unavailable while they are traveling | ||
367 | ;; and available when they return. True by default. | ||
368 | ;RestrictInventoryAccessAbroad = True | ||
369 | |||
370 | [HGFriendsModule] | ||
371 | ; User level required to be able to send friendship invitations to foreign users | ||
372 | ;LevelHGFriends = 0; | ||
373 | |||
374 | [Messaging] | ||
375 | ; === HG ONLY === | ||
376 | ;; If you have this set under [Hypergrid], no need to set it here, leave it commented | ||
377 | ; GatekeeperURI = "${Const|BaseURL}:${Const|PublicPort}" | ||
378 | |||
379 | [EntityTransfer] | ||
380 | ;; User level from which local users are allowed to HG teleport. Default 0 (all users) | ||
381 | ;LevelHGTeleport = 0 | ||
382 | |||
383 | ;; Are local users restricted from taking their appearance abroad? | ||
384 | ;; Default is no restrictions | ||
385 | ;RestrictAppearanceAbroad = false | ||
386 | |||
387 | ;; If appearance is restricted, which accounts' appearances are allowed to be exported? | ||
388 | ;; Comma-separated list of account names | ||
389 | AccountForAppearance = "Test User, Astronaut Smith" | ||
390 | |||
391 | [UserProfilesService] | ||
392 | ;; To use, set Enabled to true then configure for your site... | ||
393 | Enabled = false | ||
394 | LocalServiceModule = "OpenSim.Services.UserProfilesService.dll:UserProfilesService" | ||
395 | |||
396 | ;; Configure this for separate databse | ||
397 | ; ConnectionString = "Data Source=localhost;Database=opensim;User ID=opensim;Password=***;Old Guids=true;" | ||
398 | ; Realm = UserProfiles | ||
399 | |||
400 | UserAccountService = OpenSim.Services.UserAccountService.dll:UserAccountService | ||
401 | AuthenticationServiceModule = "OpenSim.Services.AuthenticationService.dll:PasswordAuthenticationService" | ||
diff --git a/bin/config-include/StandaloneHypergrid.ini b/bin/config-include/StandaloneHypergrid.ini new file mode 100644 index 0000000..fbb7f0b --- /dev/null +++ b/bin/config-include/StandaloneHypergrid.ini | |||
@@ -0,0 +1,198 @@ | |||
1 | ;; | ||
2 | ;; Please don't change this file. | ||
3 | ;; All optional settings are in StandaloneCommon.ini.example, | ||
4 | ;; which you can copy and change. | ||
5 | ;; | ||
6 | |||
7 | [Startup] | ||
8 | WorldMapModule = "HGWorldMap" | ||
9 | |||
10 | [Modules] | ||
11 | AssetServices = "HGAssetBroker" | ||
12 | InventoryServices = "HGInventoryBroker" | ||
13 | NeighbourServices = "NeighbourServicesOutConnector" | ||
14 | AuthenticationServices = "LocalAuthenticationServicesConnector" | ||
15 | AuthorizationServices = "LocalAuthorizationServicesConnector" | ||
16 | GridServices = "LocalGridServicesConnector" | ||
17 | PresenceServices = "LocalPresenceServicesConnector" | ||
18 | UserAccountServices = "LocalUserAccountServicesConnector" | ||
19 | AgentPreferencesServices= "LocalAgentPreferencesServicesConnector" | ||
20 | GridUserServices = "LocalGridUserServicesConnector" | ||
21 | SimulationServices = "RemoteSimulationConnectorModule" | ||
22 | AvatarServices = "LocalAvatarServicesConnector" | ||
23 | UserProfilesServices = "LocalUserProfilesServicesConnector" | ||
24 | MapImageService = "MapImageServiceModule" | ||
25 | EntityTransferModule = "HGEntityTransferModule" | ||
26 | InventoryAccessModule = "HGInventoryAccessModule" | ||
27 | FriendsModule = "HGFriendsModule" | ||
28 | UserManagementModule = "HGUserManagementModule" | ||
29 | SearchModule = "BasicSearchModule" | ||
30 | MuteListService = "LocalMuteListServicesConnector" | ||
31 | |||
32 | InventoryServiceInConnector = true | ||
33 | AssetServiceInConnector = true | ||
34 | HypergridServiceInConnector = true | ||
35 | NeighbourServiceInConnector = true | ||
36 | LibraryModule = true | ||
37 | LLLoginServiceInConnector = true | ||
38 | GridInfoServiceInConnector = true | ||
39 | AuthenticationServiceInConnector = true | ||
40 | SimulationServiceInConnector = true | ||
41 | MapImageServiceInConnector = true | ||
42 | |||
43 | [Messaging] | ||
44 | MessageTransferModule = HGMessageTransferModule | ||
45 | |||
46 | [SimulationDataStore] | ||
47 | LocalServiceModule = "OpenSim.Services.SimulationService.dll:SimulationDataService" | ||
48 | |||
49 | [EstateDataStore] | ||
50 | LocalServiceModule = "OpenSim.Services.EstateService.dll:EstateDataService" | ||
51 | |||
52 | [AssetService] | ||
53 | LocalServiceModule = "OpenSim.Services.AssetService.dll:AssetService" | ||
54 | |||
55 | ; For HGAssetBroker | ||
56 | LocalGridAssetService = "OpenSim.Services.AssetService.dll:AssetService" | ||
57 | HypergridAssetService = "OpenSim.Services.Connectors.dll:HGAssetServiceConnector" | ||
58 | |||
59 | [InventoryService] | ||
60 | ; For HGInventoryBroker | ||
61 | LocalGridInventoryService = "OpenSim.Services.InventoryService.dll:XInventoryService" | ||
62 | |||
63 | [AvatarService] | ||
64 | LocalServiceModule = "OpenSim.Services.AvatarService.dll:AvatarService" | ||
65 | |||
66 | [LibraryService] | ||
67 | LocalServiceModule = "OpenSim.Services.InventoryService.dll:LibraryService" | ||
68 | LibraryName = "OpenSim Library" | ||
69 | DefaultLibrary = "./inventory/Libraries.xml" | ||
70 | |||
71 | [AuthenticationService] | ||
72 | LocalServiceModule = "OpenSim.Services.AuthenticationService.dll:PasswordAuthenticationService" | ||
73 | |||
74 | [GridService] | ||
75 | ; LocalGridServicesConnector needs this | ||
76 | LocalServiceModule = "OpenSim.Services.GridService.dll:GridService" | ||
77 | Realm = "regions" | ||
78 | StorageProvider = "OpenSim.Data.Null.dll" | ||
79 | |||
80 | ; Needed to display non-default map tile images for remote regions | ||
81 | AssetService = "OpenSim.Services.AssetService.dll:AssetService" | ||
82 | |||
83 | HypergridLinker = true | ||
84 | AllowHypergridMapSearch = true | ||
85 | |||
86 | [PresenceService] | ||
87 | LocalServiceModule = "OpenSim.Services.PresenceService.dll:PresenceService" | ||
88 | StorageProvider = "OpenSim.Data.Null.dll" | ||
89 | |||
90 | [UserAccountService] | ||
91 | LocalServiceModule = "OpenSim.Services.UserAccountService.dll:UserAccountService" | ||
92 | |||
93 | ;; These are for creating new accounts by the service | ||
94 | AuthenticationService = "OpenSim.Services.AuthenticationService.dll:PasswordAuthenticationService" | ||
95 | GridUserService = "OpenSim.Services.UserAccountService.dll:GridUserService" | ||
96 | GridService = "OpenSim.Services.GridService.dll:GridService" | ||
97 | InventoryService = "OpenSim.Services.InventoryService.dll:XInventoryService" | ||
98 | AvatarService = "OpenSim.Services.AvatarService.dll:AvatarService" | ||
99 | |||
100 | ;; 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. | ||
101 | CreateDefaultAvatarEntries = true | ||
102 | |||
103 | [GridUserService] | ||
104 | LocalServiceModule = "OpenSim.Services.UserAccountService.dll:GridUserService" | ||
105 | |||
106 | [FriendsService] | ||
107 | LocalServiceModule = "OpenSim.Services.FriendsService.dll" | ||
108 | |||
109 | [Friends] | ||
110 | Connector = "OpenSim.Services.FriendsService.dll" | ||
111 | |||
112 | [AgentPreferencesService] | ||
113 | LocalServiceModule = "OpenSim.Services.UserAccountService.dll:AgentPreferencesService" | ||
114 | |||
115 | [LoginService] | ||
116 | LocalServiceModule = "OpenSim.Services.LLLoginService.dll:LLLoginService" | ||
117 | UserAccountService = "OpenSim.Services.UserAccountService.dll:UserAccountService" | ||
118 | GridUserService = "OpenSim.Services.UserAccountService.dll:GridUserService" | ||
119 | UserAgentService = "OpenSim.Services.HypergridService.dll:UserAgentService" | ||
120 | AuthenticationService = "OpenSim.Services.AuthenticationService.dll:PasswordAuthenticationService" | ||
121 | InventoryService = "OpenSim.Services.InventoryService.dll:XInventoryService" | ||
122 | PresenceService = "OpenSim.Services.PresenceService.dll:PresenceService" | ||
123 | GridService = "OpenSim.Services.GridService.dll:GridService" | ||
124 | AvatarService = "OpenSim.Services.AvatarService.dll:AvatarService" | ||
125 | FriendsService = "OpenSim.Services.FriendsService.dll:FriendsService" | ||
126 | |||
127 | ; This inventory service will be used to initialize the user's inventory | ||
128 | HGInventoryServicePlugin = "OpenSim.Services.HypergridService.dll:HGSuitcaseInventoryService" | ||
129 | HGInventoryServiceConstructorArg = "HGInventoryService" | ||
130 | |||
131 | [MapImageService] | ||
132 | LocalServiceModule = "OpenSim.Services.MapImageService.dll:MapImageService" | ||
133 | |||
134 | [GatekeeperService] | ||
135 | LocalServiceModule = "OpenSim.Services.HypergridService.dll:GatekeeperService" | ||
136 | ;; for the service | ||
137 | UserAccountService = "OpenSim.Services.UserAccountService.dll:UserAccountService" | ||
138 | GridUserService = "OpenSim.Services.UserAccountService.dll:GridUserService" | ||
139 | UserAgentService = "OpenSim.Services.HypergridService.dll:UserAgentService" | ||
140 | PresenceService = "OpenSim.Services.PresenceService.dll:PresenceService" | ||
141 | GridService = "OpenSim.Services.GridService.dll:GridService" | ||
142 | AuthenticationService = "OpenSim.Services.Connectors.dll:AuthenticationServicesConnector" | ||
143 | SimulationService ="OpenSim.Services.Connectors.dll:SimulationServiceConnector" | ||
144 | |||
145 | [UserAgentService] | ||
146 | LocalServiceModule = "OpenSim.Services.HypergridService.dll:UserAgentService" | ||
147 | ;; for the service | ||
148 | GridUserService = "OpenSim.Services.UserAccountService.dll:GridUserService" | ||
149 | GridService = "OpenSim.Services.GridService.dll:GridService" | ||
150 | GatekeeperService = "OpenSim.Services.HypergridService.dll:GatekeeperService" | ||
151 | PresenceService = "OpenSim.Services.PresenceService.dll:PresenceService" | ||
152 | FriendsService = "OpenSim.Services.FriendsService.dll:FriendsService" | ||
153 | UserAccountService = "OpenSim.Services.UserAccountService.dll:UserAccountService" | ||
154 | |||
155 | ;; 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. | ||
156 | CreateDefaultAvatarEntries = true | ||
157 | |||
158 | ;; The interface that local users get when they are in other grids | ||
159 | ;; This greatly restricts the inventory operations while in other grids | ||
160 | [HGInventoryService] | ||
161 | ; For the InventoryServiceInConnector | ||
162 | LocalServiceModule = "OpenSim.Services.HypergridService.dll:HGSuitcaseInventoryService" | ||
163 | ;; alternatives: | ||
164 | ;; HG1.5, more permissive, not recommended, but still supported | ||
165 | ;LocalServiceModule = "OpenSim.Services.HypergridService.dll:HGInventoryService" | ||
166 | ;; HG1.0, totally permissive, not recommended, but OK for grids with 100% trust | ||
167 | ;LocalServiceModule = "OpenSim.Services.InventoryService.dll:XInventoryService" | ||
168 | |||
169 | UserAccountsService = "OpenSim.Services.UserAccountService.dll:UserAccountService" | ||
170 | AvatarService = "OpenSim.Services.AvatarService.dll:AvatarService" | ||
171 | |||
172 | ;; The interface that local users get when they are in other grids | ||
173 | ;; This restricts/filters the asset operations from the outside | ||
174 | [HGAssetService] | ||
175 | LocalServiceModule = "OpenSim.Services.HypergridService.dll:HGAssetService" | ||
176 | UserAccountsService = "OpenSim.Services.UserAccountService.dll:UserAccountService" | ||
177 | |||
178 | [HGFriendsService] | ||
179 | LocalServiceModule = "OpenSim.Services.HypergridService.dll:HGFriendsService" | ||
180 | UserAgentService = "OpenSim.Services.HypergridService.dll:UserAgentService" | ||
181 | FriendsService = "OpenSim.Services.FriendsService.dll:FriendsService" | ||
182 | UserAccountService = "OpenSim.Services.UserAccountService.dll:UserAccountService" | ||
183 | GridService = "OpenSim.Services.GridService.dll:GridService" | ||
184 | PresenceService = "OpenSim.Services.PresenceService.dll:PresenceService" | ||
185 | |||
186 | [HGInstantMessageService] | ||
187 | LocalServiceModule = "OpenSim.Services.HypergridService.dll:HGInstantMessageService" | ||
188 | GridService = "OpenSim.Services.GridService.dll:GridService" | ||
189 | PresenceService = "OpenSim.Services.PresenceService.dll:PresenceService" | ||
190 | UserAgentService = "OpenSim.Services.HypergridService.dll:UserAgentService" | ||
191 | InGatekeeper = True | ||
192 | |||
193 | [MuteListService] | ||
194 | LocalServiceModule = "OpenSim.Services.MuteListService.dll:MuteListService" | ||
195 | |||
196 | ;; This should always be the very last thing on this file | ||
197 | [Includes] | ||
198 | Include-Common = "config-include/StandaloneCommon.ini" | ||
diff --git a/bin/config-include/config_IG.ini b/bin/config-include/config_IG.ini new file mode 100644 index 0000000..bd809bf --- /dev/null +++ b/bin/config-include/config_IG.ini | |||
@@ -0,0 +1,105 @@ | |||
1 | ; The Const section allows us to define some basic information that we | ||
2 | ; will use throughout our configuration. We will provide examples for | ||
3 | ; setting the base url of the ROBUST server and the public and private ports | ||
4 | ; it uses. Changing the values of the constants will set the operating | ||
5 | ; parameters thoughout the configuration. Other constants that may prove | ||
6 | ; to be useful may be added to the followin section. They may be | ||
7 | ; referenced anywhere in the configuration by using ${Const|Name}. One | ||
8 | ; such use is providing a base path for setting locations that ROBUST | ||
9 | ; uses to write data. | ||
10 | |||
11 | ; Also put grid specific stuff here. | ||
12 | |||
13 | |||
14 | [Paths] | ||
15 | AssetsPath = "../../AssetFiles" | ||
16 | BackupPath = "../../backups" | ||
17 | CachePath = "../../caches" | ||
18 | ConfigPath = "../../config" | ||
19 | DbPath = "../../db" | ||
20 | LogPath = "../../logs" | ||
21 | WebPath = "../../web" | ||
22 | |||
23 | [Const] | ||
24 | MOTD = "onefang needs a little coding or sysadmin work to keep IG going. Please help me find some." | ||
25 | |||
26 | GridName = "Infinite Grid" | ||
27 | ShortGridName = "IG" | ||
28 | |||
29 | ; For a grid these will usually be the externally accessible IP/DNS | ||
30 | ; name and use default public port 8002 and default private port 8003 | ||
31 | ; For a standalone this will usually be the externally accessible IP/DNS | ||
32 | ; name and use default public port 9000. The private port is not used | ||
33 | ; in the configuration for a standalone. | ||
34 | BaseHostname = "http://grid.infinitegrid.org" | ||
35 | HostName = "grid.infinitegrid.org" | ||
36 | BaseURL = ${Const|BaseHostname} | ||
37 | GridURL = ${Const|BaseHostname} | ||
38 | SSLURL = "https://${Const|HostName}" | ||
39 | |||
40 | PublicPort = "8002" | ||
41 | PrivatePort = "8003" | ||
42 | PublicSSLPort = "8443" | ||
43 | |||
44 | ; The public port of the ROBUST asset server, which might be different. | ||
45 | AssetServerPort = "8003" | ||
46 | |||
47 | ; Database credentials. | ||
48 | DataProvider = "OpenSim.Data.MySQL.dll" | ||
49 | ConnectionString = "Data Source=MYSQL_HOST;Database=MYSQL_DB;User ID=MYSQL_USER;Password=MYSQL_PASSWORD;Old Guids=true;" | ||
50 | |||
51 | [AuthorizationService] | ||
52 | DefaultRegionAccess = "DisallowForeigners" | ||
53 | ; If you have regions with access restrictions | ||
54 | ; specify them here using the convention | ||
55 | ; Region_<Region_Name> = <flags> | ||
56 | ; Valid flags are: | ||
57 | ; DisallowForeigners -- HG visitors not allowed | ||
58 | ; DisallowResidents -- only Admins and Managers allowed | ||
59 | ; None -- No restrictions. | ||
60 | |||
61 | Region_Kellietown = "None" | ||
62 | Region_Sandbox = "None" | ||
63 | Region_Welcome = "None" | ||
64 | |||
65 | [Groups] | ||
66 | AddDefaultGroup = "Infinite Grid chat|Infinite Grid support" | ||
67 | AddHGDefaultGroup_misfitzgrid.com = "Infinite Grid support" | ||
68 | |||
69 | [Permissions] | ||
70 | region_owner_is_god = true | ||
71 | region_manager_is_god = true | ||
72 | parcel_owner_is_god = false | ||
73 | |||
74 | [GodNames] | ||
75 | Enabled = true | ||
76 | FullNames = "Infinite BootsFang,Infinite Crush,infinite onefang,Infinite Riseon" | ||
77 | FirstNames = "Infinite,infinite" | ||
78 | ; Surnames = "Kryztlsk" | ||
79 | |||
80 | [GridService] | ||
81 | Region_Welcome = "DefaultRegion, FallbackRegion, Persistent" | ||
82 | Region_Sandbox = "DefaultRegion, FallbackRegion, Persistent" | ||
83 | Region_Kellietown = "DefaultRegion, FallbackRegion, Persistent" | ||
84 | |||
85 | [GridInfoService] | ||
86 | ; login page: optional: if it exists it will be used to tell the client to use | ||
87 | ; this as splash page | ||
88 | welcome = ${Const|BaseURL}/drupal/loginpage | ||
89 | |||
90 | ; helper uri: optional: if it exists it will be used to tell the client to use | ||
91 | ; this for all economy related things | ||
92 | ;economy = ${Const|BaseURL}/economy | ||
93 | |||
94 | ; web page of grid: optional: page providing further information about your grid | ||
95 | about = ${Const|BaseURL}/drupal/ | ||
96 | |||
97 | ; account creation: optional: page providing further information about obtaining | ||
98 | ; a user account on your grid | ||
99 | register = ${Const|BaseURL}/drupal/content/How_to_join | ||
100 | |||
101 | ; help: optional: page providing further assistance for users of your grid | ||
102 | help = ${Const|BaseURL}/drupal/Tags/help | ||
103 | |||
104 | ; password help: optional: page providing password assistance for users of your grid | ||
105 | password = ${Const|BaseURL}/drupal | ||
diff --git a/bin/config-include/config_MG.ini b/bin/config-include/config_MG.ini new file mode 100644 index 0000000..862f7b8 --- /dev/null +++ b/bin/config-include/config_MG.ini | |||
@@ -0,0 +1,125 @@ | |||
1 | ; The Const section allows us to define some basic information that we | ||
2 | ; will use throughout our configuration. We will provide examples for | ||
3 | ; setting the base url of the ROBUST server and the public and private ports | ||
4 | ; it uses. Changing the values of the constants will set the operating | ||
5 | ; parameters thoughout the configuration. Other constants that may prove | ||
6 | ; to be useful may be added to the followin section. They may be | ||
7 | ; referenced anywhere in the configuration by using ${Const|Name}. One | ||
8 | ; such use is providing a base path for setting locations that ROBUST | ||
9 | ; uses to write data. | ||
10 | |||
11 | ; Also put grid specific stuff here. | ||
12 | |||
13 | |||
14 | [Paths] | ||
15 | AssetsPath = "../../AssetFiles" | ||
16 | BackupPath = "../../backups" | ||
17 | CachePath = "../../caches" | ||
18 | ConfigPath = "../../config" | ||
19 | DbPath = "../../db" | ||
20 | LogPath = "../../logs" | ||
21 | WebPath = "../../web" | ||
22 | |||
23 | [Const] | ||
24 | MOTD = "All of the World is a Stage, and Everyone's a Critic." | ||
25 | |||
26 | GridName = "Misfitz Grid" | ||
27 | ShortGridName = "MG" | ||
28 | |||
29 | ; For a grid these will usually be the externally accessible IP/DNS | ||
30 | ; name and use default public port 8002 and default private port 8003 | ||
31 | ; For a standalone this will usually be the externally accessible IP/DNS | ||
32 | ; name and use default public port 9000. The private port is not used | ||
33 | ; in the configuration for a standalone. | ||
34 | BaseHostname = "http://misfitzgrid.com" | ||
35 | HostName = "misfitzgrid.com" | ||
36 | BaseURL = ${Const|BaseHostname} | ||
37 | GridURL = ${Const|BaseHostname} | ||
38 | SSLURL = "https://${Const|HostName}" | ||
39 | |||
40 | PublicPort = "8002" | ||
41 | PrivatePort = "8003" | ||
42 | PublicSSLPort = "8443" | ||
43 | |||
44 | ; The public port of the ROBUST asset server, which might be different. | ||
45 | AssetServerPort = "8003" | ||
46 | |||
47 | ; Database credentials. | ||
48 | DataProvider = "OpenSim.Data.MySQL.dll" | ||
49 | ConnectionString = "Data Source=MYSQL_HOST;Database=MYSQL_DB;User ID=MYSQL_USER;Password=MYSQL_PASSWORD;Old Guids=true;" | ||
50 | |||
51 | ; jOpenSim URL | ||
52 | jOpensimURL = "http://misfitzgrid.com/members" | ||
53 | |||
54 | [AuthorizationService] | ||
55 | DefaultRegionAccess = "DisallowForeigners" | ||
56 | ; If you have regions with access restrictions | ||
57 | ; specify them here using the convention | ||
58 | ; Region_<Region_Name> = <flags> | ||
59 | ; Valid flags are: | ||
60 | ; DisallowForeigners -- HG visitors not allowed | ||
61 | ; DisallowResidents -- only Admins and Managers allowed | ||
62 | ; None -- No restrictions. | ||
63 | |||
64 | Region_Blue_Moon = "None" | ||
65 | Region_MisFitz_ = "None" | ||
66 | Region_MisFitz_Continuum = "None" | ||
67 | Region_MisFitz_Dev = "None" | ||
68 | Region_MisFitz_Getaway = "None" | ||
69 | Region_MisFitz_Hyperport = "None" | ||
70 | Region_MisFitz_Motion = "None" | ||
71 | Region_Misfitz_Nature = "None" | ||
72 | Region_MisFitz_Residents1 = "None" | ||
73 | Region_MisFitz_Residents2 = "None" | ||
74 | Region_MisFitz_Sandbox = "None" | ||
75 | Region_MisFitz_Shopping = "None" | ||
76 | Region_MisFitz_Welcome = "None" | ||
77 | Region_MisFitz_Welcome_Beta = "None" | ||
78 | Region_White_Harbor = "None" | ||
79 | |||
80 | Region_Infinite_Grid_Sandbox = "None" | ||
81 | Region_Infinite_Grid_Welcome = "None" | ||
82 | Region_Kellietown = "None" | ||
83 | Region_Life,_the_universe,_and_everything = "None" | ||
84 | Region_Naughtie_Nautical = "None" | ||
85 | Region_Play_Island = "None" | ||
86 | |||
87 | [Groups] | ||
88 | ;# {SecretKey} {ServicesConnectorModule:Groups Remote Service Connector} {Secret key between sim and remote group service} {} "" | ||
89 | ;; Used for V2 in Remote only. | ||
90 | SecretKey = "Kensentm3" | ||
91 | AddDefaultGroup = "MisFitz Grid Residents" | ||
92 | |||
93 | [GodNames] | ||
94 | Enabled = true | ||
95 | FullNames = "Fr0zenHawk Chillsmoke,Korgi Silvercloud,Max Zephyr" | ||
96 | ; Surnames = "Kryztlsk" | ||
97 | |||
98 | [GridService] | ||
99 | Region_MisFitz_Welcome = "DefaultRegion, FallbackRegion" | ||
100 | Region_MisFitz_Shopping = "FallbackRegion" | ||
101 | Region_MisFitz_HyperPort = "FallbackRegion" | ||
102 | Region_MisFitz_Sandbox = "FallbackRegion" | ||
103 | Region_MisFitz_Continuum= "DefaultHGRegion" | ||
104 | |||
105 | [GridInfoService] | ||
106 | ; login page: optional: if it exists it will be used to tell the client to use | ||
107 | ; this as splash page | ||
108 | welcome = ${Const|jOpensimURL}/index.php?option=com_opensim | ||
109 | |||
110 | ; helper uri: optional: if it exists it will be used to tell the client to use | ||
111 | ; this for all economy related things | ||
112 | economy = ${Const|BaseURL}/_tools/helper/ | ||
113 | |||
114 | ; web page of grid: optional: page providing further information about your grid | ||
115 | ;about = ${Const|BaseURL}/about | ||
116 | |||
117 | ; account creation: optional: page providing further information about obtaining | ||
118 | ; a user account on your grid | ||
119 | ;register = ${Const|BaseURL}/register | ||
120 | |||
121 | ; help: optional: page providing further assistance for users of your grid | ||
122 | ;help = ${Const|BaseURL}/help | ||
123 | |||
124 | ; password help: optional: page providing password assistance for users of your grid | ||
125 | ;password = ${Const|BaseURL}/password | ||
diff --git a/bin/config-include/config_localhost.ini b/bin/config-include/config_localhost.ini new file mode 100644 index 0000000..501a1f4 --- /dev/null +++ b/bin/config-include/config_localhost.ini | |||
@@ -0,0 +1,49 @@ | |||
1 | ; The Const section allows us to define some basic information that we | ||
2 | ; will use throughout our configuration. We will provide examples for | ||
3 | ; setting the base url of the ROBUST server and the public and private ports | ||
4 | ; it uses. Changing the values of the constants will set the operating | ||
5 | ; parameters thoughout the configuration. Other constants that may prove | ||
6 | ; to be useful may be added to the followin section. They may be | ||
7 | ; referenced anywhere in the configuration by using ${Const|Name}. One | ||
8 | ; such use is providing a base path for setting locations that ROBUST | ||
9 | ; uses to write data. | ||
10 | |||
11 | ; Also put grid specific stuff here. | ||
12 | |||
13 | |||
14 | [Paths] | ||
15 | AssetsPath = "../../AssetFiles" | ||
16 | BackupPath = "../../backups" | ||
17 | CachePath = "../../caches" | ||
18 | ConfigPath = "../../config" | ||
19 | DbPath = "../../db" | ||
20 | LogPath = "../../logs" | ||
21 | WebPath = "../../web" | ||
22 | |||
23 | [Const] | ||
24 | MOTD = "Welcome to your local grid." | ||
25 | |||
26 | GridName = "localhost Grid" | ||
27 | ShortGridName = "lg" | ||
28 | |||
29 | ; For a grid these will usually be the externally accessible IP/DNS | ||
30 | ; name and use default public port 8002 and default private port 8003 | ||
31 | ; For a standalone this will usually be the externally accessible IP/DNS | ||
32 | ; name and use default public port 9000. The private port is not used | ||
33 | ; in the configuration for a standalone. | ||
34 | BaseHostname = "http://127.0.0.1" | ||
35 | HostName = "localhost" | ||
36 | BaseURL = ${Const|BaseHostname} | ||
37 | GridURL = ${Const|BaseHostname} | ||
38 | SSLURL = "https://${Const|HostName}" | ||
39 | |||
40 | PublicPort = "8002" | ||
41 | PrivatePort = "8003" | ||
42 | PublicSSLPort = "8443" | ||
43 | |||
44 | ; The public port of the ROBUST asset server, which might be different. | ||
45 | AssetServerPort = "8003" | ||
46 | |||
47 | ; Database credentials. | ||
48 | DataProvider = "OpenSim.Data.MySQL.dll" | ||
49 | ConnectionString = "Data Source=MYSQL_HOST;Database=MYSQL_DB;User ID=MYSQL_USER;Password=MYSQL_PASSWORD;Old Guids=true;" | ||
diff --git a/bin/config-include/extra_MG.ini b/bin/config-include/extra_MG.ini new file mode 100644 index 0000000..a811d54 --- /dev/null +++ b/bin/config-include/extra_MG.ini | |||
@@ -0,0 +1,51 @@ | |||
1 | [Network] | ||
2 | ;# {ExternalHostNameForLSL} {} {Hostname to use for HTTP-IN URLs. This should be reachable from the internet.} {} | ||
3 | ;; Hostname to use in llRequestURL/llRequestSecureURL | ||
4 | ;; if not defined - llRequestURL/llRequestSecureURL are disabled | ||
5 | ExternalHostNameForLSL = "server2.misfitzgrid.com" | ||
6 | |||
7 | [Messaging] | ||
8 | ;# {OfflineMessageModule} {} {Module to use for offline message storage} {OfflineMessageModule "Offline Message Module V2" *} | ||
9 | ;; Module to handle offline messaging. The core module requires an external | ||
10 | ;; web service to do this. See OpenSim wiki. | ||
11 | OfflineMessageModule = OfflineMessageModule | ||
12 | ;; Or, alternatively, use this one, which works for both standalones and grids | ||
13 | ; OfflineMessageModule = "Offline Message Module V2" | ||
14 | |||
15 | ;# {OfflineMessageURL} {OfflineMessageModule:OfflineMessageModule Offline Message Module V2:Offline Message Module V2} {URL of offline messaging service} {} | ||
16 | ;; URL of web service for offline message storage. Leave it commented if your service is local to the sim. | ||
17 | ; OfflineMessageURL = ${Const|BaseURL}/Offline.php | ||
18 | OfflineMessageURL = ${Const|jOpensimURL}/components/com_opensim/interface.php | ||
19 | |||
20 | [DataSnapshot] | ||
21 | ;# {index_sims} {} {Enable data snapshotting (search)?} {true false} false | ||
22 | ;; The following set of configs pertains to search. | ||
23 | ;; Set index_sims to true to enable search engines to index your | ||
24 | ;; searchable data. | ||
25 | ;; If false, no data will be exposed, DataSnapshot module will be off, | ||
26 | ;; and you can ignore the rest of these search-related configs. | ||
27 | index_sims = true | ||
28 | |||
29 | ;# {data_exposure} {index_sims:true} {How much data should be exposed?} {minimum all} minimum | ||
30 | ;; The variable data_exposure controls what the regions expose: | ||
31 | ;; minimum: exposes only things explicitly marked for search | ||
32 | ;; all: exposes everything | ||
33 | data_exposure = all | ||
34 | |||
35 | ;; [Supported, but obsolete] | ||
36 | ;# {data_services} {index_sims:true} {Data service URLs to register with?} {} http://metaverseink.com/cgi-bin/register.py | ||
37 | ; This semicolon-separated string serves to notify specific data services | ||
38 | ; about the existence of this sim. Uncomment if you want to index your | ||
39 | ; data with this and/or other search providers. | ||
40 | data_services="${Const|jOpensimURL}/components/com_opensim/registersearch.php" | ||
41 | |||
42 | [Search] | ||
43 | SearchURL = ${Const|jOpensimURL}/components/com_opensim/interface.php | ||
44 | |||
45 | [Profile] | ||
46 | |||
47 | ProfileServiceURL = ${Const|jOpensimURL}/components/com_opensim/interface.php | ||
48 | Module = "jOpenSimProfile" | ||
49 | |||
50 | ; Optional: | ||
51 | Debug = true | ||
diff --git a/bin/config-include/osslEnable.ini b/bin/config-include/osslEnable.ini new file mode 100644 index 0000000..1828da1 --- /dev/null +++ b/bin/config-include/osslEnable.ini | |||
@@ -0,0 +1,272 @@ | |||
1 | ; Enable OSSL functions. | ||
2 | ; Including this file in a region's set of INI files, causes the OpenSimulator | ||
3 | ; specific functions to be enabled. | ||
4 | ; See http://opensimulator.org/wiki/OSSL for a description of OSSL functions and | ||
5 | ; refer to http://opensimulator.org/wiki/OSSL_Implemented for a list of functions. | ||
6 | |||
7 | ; The below file lists all the functions and specifies who has permission to | ||
8 | ; execute the function. Some of the functions are for maintainance or can be | ||
9 | ; mis-used so the permission to execute a function can be limited. Ability to | ||
10 | ; execute a function is based on the owner of the prim holding the script. | ||
11 | |||
12 | [XEngine] | ||
13 | ; Allow the use of os* functions (some are dangerous) | ||
14 | AllowOSFunctions = true | ||
15 | |||
16 | ; Allow the user of mod* functions. This allows a script to pass messages | ||
17 | ; to a region module via the modSendCommand() function and is used by some | ||
18 | ; modules to extend the scripting language. | ||
19 | AllowMODFunctions = true | ||
20 | |||
21 | ; Allow the use of LightShare functions. | ||
22 | ; The setting enable_windlight = true must also be enabled in the [LightShare] section. | ||
23 | AllowLightShareFunctions = true | ||
24 | |||
25 | ; Threat level to allow. One of None, VeryLow, Low, Moderate, High, VeryHigh, Severe. | ||
26 | ; See http://opensimulator.org/wiki/Threat_level for more information on these levels. | ||
27 | ; This is the default level and can be overridden with the Allow_ specifications. | ||
28 | ; Blanket enabling the ossl functions is dangerous and we do not recommend setting higher | ||
29 | ; than 'Low' unless you have a high level of trust in all the users that can run scripts | ||
30 | ; in your simulator. It is safer to explicitly allow certain types of user to run | ||
31 | ; higher threat level OSSL functions, as detailed later on. | ||
32 | OSFunctionThreatLevel = Moderate | ||
33 | |||
34 | ; Some of the OSSL functions can be enabled or disabled individually. | ||
35 | ; To disable, set the value to 'false'. | ||
36 | ; To enable for everyone, set the value to 'true'. | ||
37 | ; To enable for individuals or groups, set it to a comma separated list. This checks | ||
38 | ; against the owner of the object containing the script. | ||
39 | ; The comma separated entries in the list may be one of: | ||
40 | ; "GRID_GOD" -- enable for users with UserLevel >= 200 | ||
41 | ; "GOD" -- enable for users with rights to be god (local or grid) | ||
42 | ; "ACTIVE_GOD" -- enable for users that are present and with active god power | ||
43 | ; "ESTATE_MANAGER" -- enable for estate manager | ||
44 | ; "ESTATE_OWNER" -- enable for estate owner | ||
45 | ; "PARCEL_OWNER" -- enable for parcel owner | ||
46 | ; "PARCEL_GROUP_MEMBER" -- enable for any member of the parcel group | ||
47 | ; uuid -- enable for specified ID (may be avatar or group ID) | ||
48 | ; from this we can also create macros that can be include in the list as | ||
49 | ; ${XEngine|macroname} see examples below | ||
50 | |||
51 | ; parcel macros | ||
52 | ; Allowing ossl functions for anyone owning a parcel can be dangerous especially if | ||
53 | ; a region is selling or otherwise giving away parcel ownership. By default, parcel | ||
54 | ; ownership or group membership does not enable OSSL functions. Uncomment the | ||
55 | ; appropriate line below to allow parcel ownership and groups to do restricted | ||
56 | ; OSSL functions. It might be better to check the list below and edit the ones | ||
57 | ; to enable individually. | ||
58 | osslParcelO = "PARCEL_OWNER," | ||
59 | osslParcelOG = "PARCEL_GROUP_MEMBER,PARCEL_OWNER," | ||
60 | |||
61 | ; NPC macros | ||
62 | ; These can be mis-used so limit use to those you can trust. | ||
63 | osslNPC = ${XEngine|osslParcelOG}ESTATE_MANAGER,ESTATE_OWNER | ||
64 | |||
65 | ; The OSSL function name is prepended with "Allow_" and it checks against | ||
66 | ; the owners of the containing prim. There can also be entries beginning with | ||
67 | ; 'Creators_". The 'Creators_" parameters can only be a list of UUIDs and it is | ||
68 | ; checked against the creator of the script itself. | ||
69 | |||
70 | ; ************************************************* | ||
71 | |||
72 | ; ThreatLevel None | ||
73 | ; Commented functions are out of Threat level control (for reference only) | ||
74 | ; Allow_osCheckODE = true | ||
75 | ; Allow_osClearInertia = true | ||
76 | ; Allow_osCollisionSound = true | ||
77 | Allow_osDie = true | ||
78 | ; Allow_osDrawEllipse = true | ||
79 | ; Allow_osDrawFilledEllipse = true | ||
80 | ; Allow_osDrawFilledPolygon = true | ||
81 | ; Allow_osDrawFilledRectangle = true | ||
82 | ; Allow_osDrawImage = true | ||
83 | ; Allow_osDrawLine = true | ||
84 | ; Allow_osDrawPolygon = true | ||
85 | ; Allow_osDrawRectangle = true | ||
86 | ; Allow_osDrawResetTransform = true | ||
87 | ; Allow_osDrawRotationTransform = true | ||
88 | ; Allow_osDrawScaleTransform = true | ||
89 | ; Allow_osDrawText = true | ||
90 | ; Allow_osDrawTranslationTransform = true | ||
91 | Allow_osFormatString = true | ||
92 | ; Allow_osGetCurrentSunHour = true | ||
93 | Allow_osGetAgents = true | ||
94 | Allow_osGetAvatarList = true | ||
95 | ; Allow_osGetDrawStringSize = true | ||
96 | Allow_osGetGender = true | ||
97 | Allow_osGetGridCustom = true | ||
98 | Allow_osGetGridHomeURI = true | ||
99 | Allow_osGetGridLoginURI = true | ||
100 | Allow_osGetGridName = true | ||
101 | Allow_osGetGridNick = true | ||
102 | Allow_osGetHealth = true | ||
103 | Allow_osGetHealRate = true | ||
104 | ; Allow_osGetInertiaData = true | ||
105 | ; Allow_osGetInventoryDesc = true | ||
106 | ; Allow_osGetLinkNumber = true | ||
107 | ; Allow_osGetMapTexture = true | ||
108 | ; The notecard functions can cause a lot of load on the region if over used. | ||
109 | ; So can any LSL loop. Pffft | ||
110 | Allow_osGetNotecard = true | ||
111 | Allow_osGetNotecardLine = true | ||
112 | Allow_osGetNumberOfNotecardLines = true | ||
113 | Allow_osMakeNotecard = true | ||
114 | Allow_osGetNPCList = true | ||
115 | ; Allow_osGetPhysicsEngineName = true | ||
116 | Allow_osGetPhysicsEngineType = true | ||
117 | |||
118 | Allow_osGetRegionMapTexture = true | ||
119 | ; Allow_osGetRegionSize = true | ||
120 | Allow_osGetRezzingObject = true | ||
121 | Allow_osGetScriptEngineName = true | ||
122 | Allow_osGetSimulatorVersion = true | ||
123 | ; Allow_osGetSunParam = true | ||
124 | ; Allow_osGetTerrainHeight = true | ||
125 | Allow_osGetWindParam = true | ||
126 | ; Allow_osIsNpc = true | ||
127 | ; Allow_osIsUUID = true | ||
128 | Allow_osKey2Name = true | ||
129 | ; Allow_osList2Double = true | ||
130 | Allow_osListenRegex = true | ||
131 | Allow_osLoadedCreationDate = true | ||
132 | Allow_osLoadedCreationID = true | ||
133 | Allow_osLoadedCreationTime = true | ||
134 | Allow_osMatchString = true | ||
135 | ; Allow_osMax = true | ||
136 | ; Allow_osMin = true | ||
137 | Allow_osMessageObject = true | ||
138 | ; Allow_osMovePen = true | ||
139 | Allow_osNpcCreate = true | ||
140 | Allow_osNpcGetOwner = true | ||
141 | Allow_osNpcGetPos = true | ||
142 | Allow_osNpcGetRot = true | ||
143 | Allow_osNpcLoadAppearance = true | ||
144 | Allow_osNpcMoveTo = true | ||
145 | Allow_osNpcMoveToTarget = true | ||
146 | Allow_osNpcPlayAnimation = true | ||
147 | Allow_osNpcRemove = true | ||
148 | Allow_osNpcSaveAppearance = true | ||
149 | Allow_osNpcSay = true | ||
150 | Allow_osNpcSetProfileAbout = true | ||
151 | Allow_osNpcSetProfileImage = true | ||
152 | Allow_osNpcSetRot = true | ||
153 | Allow_osNpcShout = true | ||
154 | Allow_osNpcSit = true | ||
155 | Allow_osNpcStand = true | ||
156 | Allow_osNpcStopAnimation = true | ||
157 | Allow_osNpcStopMoveToTarget = true | ||
158 | Allow_osNpcTouch = true | ||
159 | Allow_osNpcWhisper = true | ||
160 | Allow_osOwnerSaveAppearance = true | ||
161 | Allow_osParseJSON = true | ||
162 | Allow_osParseJSONNew = true | ||
163 | Allow_osRegexIsMatch = true | ||
164 | Allow_osReplaceString = true | ||
165 | Allow_osSetDynamicTextureData = true | ||
166 | Allow_osSetDynamicTextureDataFace = true | ||
167 | Allow_osSetDynamicTextureDataBlend = true | ||
168 | Allow_osSetDynamicTextureDataBlendFace = true | ||
169 | Allow_osSetDynamicTextureURL = true | ||
170 | Allow_osSetDynamicTextureURLBlend = true | ||
171 | Allow_osSetDynamicTextureURLBlendFace = true | ||
172 | ; Allow_osSetFontName = true | ||
173 | ; Allow_osSetFontSize = true | ||
174 | ; Allow_osSetInertia = true | ||
175 | ; Allow_osSetInertiaAsBox = true | ||
176 | ; Allow_osSetInertiaAsSphere = true | ||
177 | ; Allow_osSetInertiaAsCylinder = true | ||
178 | ; Allow_osSetPenCap = true | ||
179 | ; Allow_osSetPenColor = true | ||
180 | ; Allow_osSetPenSize = true | ||
181 | Allow_osSetPrimitiveParams = true | ||
182 | ; Allow_osVolumeDetect = true | ||
183 | Allow_osTeleportOwner = true | ||
184 | Allow_osWindActiveModelPluginName = true | ||
185 | Allow_osUnixTimeToTimestamp = true | ||
186 | |||
187 | |||
188 | |||
189 | ; ThreatLevel Nuisance | ||
190 | Allow_osSetEstateSunSettings = ESTATE_MANAGER,ESTATE_OWNER | ||
191 | Allow_osSetRegionSunSettings = ESTATE_MANAGER,ESTATE_OWNER | ||
192 | Allow_osSetSunParam = ${XEngine|osslParcelOG}ESTATE_MANAGER,ESTATE_OWNER | ||
193 | Allow_osSetWindParam = ${XEngine|osslParcelOG}ESTATE_MANAGER,ESTATE_OWNER | ||
194 | |||
195 | ; ThreatLevel VeryLow | ||
196 | Allow_osEjectFromGroup = ${XEngine|osslParcelOG}ESTATE_MANAGER,ESTATE_OWNER | ||
197 | Allow_osForceBreakAllLinks = ${XEngine|osslParcelOG}ESTATE_MANAGER,ESTATE_OWNER | ||
198 | Allow_osForceBreakLink = ${XEngine|osslParcelOG}ESTATE_MANAGER,ESTATE_OWNER | ||
199 | Allow_osForceCreateLink = ${XEngine|osslParcelOG}ESTATE_MANAGER,ESTATE_OWNER | ||
200 | Allow_osGetLinkPrimitiveParams = ${XEngine|osslParcelOG}ESTATE_MANAGER,ESTATE_OWNER | ||
201 | Allow_osGetPrimitiveParams = ${XEngine|osslParcelOG}ESTATE_MANAGER,ESTATE_OWNER | ||
202 | Allow_osInviteToGroup = ${XEngine|osslParcelOG}ESTATE_MANAGER,ESTATE_OWNER | ||
203 | Allow_osSetParcelMediaURL = ${XEngine|osslParcelOG}ESTATE_MANAGER,ESTATE_OWNER | ||
204 | Allow_osSetParcelSIPAddress = ${XEngine|osslParcelOG}ESTATE_MANAGER,ESTATE_OWNER | ||
205 | Allow_osSetPrimFloatOnWater = true | ||
206 | Allow_osTerrainFlush = ESTATE_MANAGER,ESTATE_OWNER | ||
207 | |||
208 | ; ThreatLevel Low | ||
209 | Allow_osAvatarName2Key = ${XEngine|osslParcelO}ESTATE_MANAGER,ESTATE_OWNER | ||
210 | Allow_osGetAvatarHomeURI = ${XEngine|osslParcelOG}ESTATE_MANAGER,ESTATE_OWNER | ||
211 | |||
212 | ; ThreatLevel Moderate | ||
213 | Allow_osDropAttachment = ${XEngine|osslParcelO}ESTATE_MANAGER,ESTATE_OWNER | ||
214 | Allow_osDropAttachmentAt = ${XEngine|osslParcelO}ESTATE_MANAGER,ESTATE_OWNER | ||
215 | Allow_osGetGridGatekeeperURI = ${XEngine|osslParcelO}ESTATE_MANAGER,ESTATE_OWNER | ||
216 | Allow_osGetNumberOfAttachments = ${XEngine|osslParcelO}ESTATE_MANAGER,ESTATE_OWNER | ||
217 | Allow_osGetRegionStats = ${XEngine|osslParcelO}ESTATE_MANAGER,ESTATE_OWNER | ||
218 | Allow_osGetSimulatorMemory = ${XEngine|osslParcelO}ESTATE_MANAGER,ESTATE_OWNER | ||
219 | Allow_osGetSimulatorMemoryKB = ${XEngine|osslParcelO}ESTATE_MANAGER,ESTATE_OWNER | ||
220 | Allow_osMessageAttachments = true | ||
221 | Allow_osRequestURL = true | ||
222 | Allow_osRequestSecureURL = true | ||
223 | Allow_osSetSpeed = true | ||
224 | |||
225 | ; ThreatLevel High | ||
226 | Allow_osCauseDamage = ESTATE_MANAGER,ESTATE_OWNER | ||
227 | Allow_osCauseHealing = ${XEngine|osslParcelO}ESTATE_MANAGER,ESTATE_OWNER | ||
228 | Allow_osSetHealth = ${XEngine|osslParcelO}ESTATE_MANAGER,ESTATE_OWNER | ||
229 | Allow_osSetHealRate = ${XEngine|osslParcelO}ESTATE_MANAGER,ESTATE_OWNER | ||
230 | Allow_osForceAttachToAvatar = ${XEngine|osslParcelO}ESTATE_MANAGER,ESTATE_OWNER | ||
231 | Allow_osForceAttachToAvatarFromInventory = ${XEngine|osslParcelO}ESTATE_MANAGER,ESTATE_OWNER | ||
232 | Allow_osForceDropAttachment = ${XEngine|osslParcelO}ESTATE_MANAGER,ESTATE_OWNER | ||
233 | Allow_osForceDropAttachmentAt = ${XEngine|osslParcelO}ESTATE_MANAGER,ESTATE_OWNER | ||
234 | Allow_osParcelJoin = ESTATE_MANAGER,ESTATE_OWNER | ||
235 | Allow_osParcelSetDetails = ESTATE_MANAGER,ESTATE_OWNER | ||
236 | Allow_osParcelSubdivide = ESTATE_MANAGER,ESTATE_OWNER | ||
237 | Allow_osRegionRestart = ESTATE_MANAGER,ESTATE_OWNER | ||
238 | Allow_osSetContentType = ${XEngine|osslParcelO}ESTATE_MANAGER,ESTATE_OWNER | ||
239 | Allow_osSetParcelDetails = ${XEngine|osslParcelO}ESTATE_MANAGER,ESTATE_OWNER | ||
240 | Allow_osSetProjectionParams = ${XEngine|osslParcelOG}ESTATE_MANAGER,ESTATE_OWNER | ||
241 | Allow_osSetRegionWaterHeight = ESTATE_MANAGER,ESTATE_OWNER | ||
242 | Allow_osSetStateEvents = false ; deprecated | ||
243 | Allow_osSetTerrainHeight = ESTATE_MANAGER,ESTATE_OWNER | ||
244 | Allow_osSetTerrainTexture = ESTATE_MANAGER,ESTATE_OWNER | ||
245 | Allow_osSetTerrainTextureHeight = ESTATE_MANAGER,ESTATE_OWNER | ||
246 | |||
247 | ; ThreatLevel VeryHigh | ||
248 | Allow_osAgentSaveAppearance = ESTATE_MANAGER,ESTATE_OWNER | ||
249 | ; Warning: The next function allows scripts to force animations on avatars without the user giving permission. | ||
250 | ; Enabling this can allow forced animations which can trigger traumatic episodes in vulnerable populations. | ||
251 | ; Similar things can be said for several of the 'force' functions. Enable with care and control. | ||
252 | ; Some of these were added as early functionality for NPCs. This has been replaced with the NPC functions. | ||
253 | Allow_osAvatarPlayAnimation = true | ||
254 | Allow_osAvatarStopAnimation = true | ||
255 | Allow_osForceAttachToOtherAvatarFromInventory = false | ||
256 | Allow_osForceDetachFromAvatar = false | ||
257 | Allow_osForceOtherSit = false | ||
258 | Allow_osRegionNotice = ESTATE_MANAGER,ESTATE_OWNER | ||
259 | Allow_osSetRot = ESTATE_OWNER, ESTATE_MANAGER | ||
260 | |||
261 | ; ThreatLevel Severe | ||
262 | Allow_osConsoleCommand = false | ||
263 | Allow_osGrantScriptPermissions = false | ||
264 | Allow_osKickAvatar = ${XEngine|osslParcelO}ESTATE_MANAGER,ESTATE_OWNER | ||
265 | Allow_osRevokeScriptPermissions = false | ||
266 | Allow_osTeleportAgent = ${XEngine|osslParcelO}ESTATE_MANAGER,ESTATE_OWNER | ||
267 | Allow_osTeleportObject = ${XEngine|osslParcelO}ESTATE_MANAGER,ESTATE_OWNER | ||
268 | |||
269 | ; ThreatLevel Severe with additional internal restrictions | ||
270 | Allow_osGetAgentIP = true ; always restricted to Administrators (true or false to disable) | ||
271 | |||
272 | |||
diff --git a/bin/config-include/storage/SQLiteStandalone.ini b/bin/config-include/storage/SQLiteStandalone.ini new file mode 100644 index 0000000..67d98ff --- /dev/null +++ b/bin/config-include/storage/SQLiteStandalone.ini | |||
@@ -0,0 +1,39 @@ | |||
1 | ; These are the initialization settings for running OpenSim Standalone with an SQLite database | ||
2 | |||
3 | [DatabaseService] | ||
4 | StorageProvider = "OpenSim.Data.SQLite.dll" | ||
5 | ConnectionString = "URI=file:OpenSim.db,version=3,UseUTF16Encoding=True" | ||
6 | |||
7 | [AssetService] | ||
8 | ConnectionString = "URI=file:Asset.db,version=3" | ||
9 | |||
10 | ; The HGAssetService section controls the connection given to the AssetService in a Hypergrid configuration. | ||
11 | ; This has to be separate from [AssetService] because the Hypergrid facing connector uses [HGAssetService] for its config data instead. | ||
12 | ; However, the internal asset service will still use the [AssetService] section. | ||
13 | ; Therefore, you will almost certainly want the ConnectionString in [HGAssetService] to be the same as in [AssetService] | ||
14 | ; so that they both access the same database. | ||
15 | ; This issue does not apply to normal MySQL/MSSQL configurations, since by default they use the settings in [DatabaseService] and | ||
16 | ; do not have separate connection strings for different services. | ||
17 | [HGAssetService] | ||
18 | ConnectionString = "URI=file:Asset.db,version=3" | ||
19 | |||
20 | [InventoryService] | ||
21 | ;ConnectionString = "URI=file:inventory.db,version=3" | ||
22 | ; if you have a legacy inventory store use the connection string below | ||
23 | ConnectionString = "URI=file:inventory.db,version=3,UseUTF16Encoding=True" | ||
24 | |||
25 | [AvatarService] | ||
26 | ConnectionString = "URI=file:avatars.db,version=3" | ||
27 | |||
28 | [AuthenticationService] | ||
29 | ConnectionString = "URI=file:auth.db,version=3" | ||
30 | |||
31 | [UserAccountService] | ||
32 | ConnectionString = "URI=file:userprofiles.db,version=3" | ||
33 | |||
34 | [GridUserService] | ||
35 | ConnectionString = "URI=file:griduser.db,version=3" | ||
36 | |||
37 | [FriendsService] | ||
38 | ConnectionString = "URI=file:friends.db,version=3" | ||
39 | |||