aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
-rw-r--r--OpenSim/Framework/Servers/BaseOpenSimServer.cs26
-rw-r--r--OpenSim/Framework/Watchdog.cs14
-rw-r--r--OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs6
-rw-r--r--OpenSim/Region/ClientStack/LindenUDP/LLUDPServer.cs10
-rw-r--r--OpenSim/Region/CoreModules/Avatar/Assets/GetTextureModule.cs10
-rw-r--r--OpenSim/Region/CoreModules/Avatar/Attachments/AttachmentsModule.cs30
-rw-r--r--OpenSim/Region/CoreModules/Avatar/AvatarFactory/AvatarFactoryModule.cs2
-rw-r--r--OpenSim/Region/Framework/Interfaces/IAttachmentsModule.cs11
-rw-r--r--OpenSim/Region/Framework/Scenes/Scene.cs7
-rw-r--r--OpenSim/Region/Framework/Scenes/SceneGraph.cs10
-rw-r--r--OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs6
-rw-r--r--OpenSim/Region/Framework/Scenes/ScenePresence.cs6
-rw-r--r--OpenSim/Tests/ConfigurationLoaderTest.cs2
-rw-r--r--bin/OpenSimDefaults.ini1299
-rw-r--r--bin/config-include/storage/SQLiteLegacyStandalone.ini17
-rw-r--r--bin/config-include/storage/SQLiteStandalone.ini26
16 files changed, 1414 insertions, 68 deletions
diff --git a/OpenSim/Framework/Servers/BaseOpenSimServer.cs b/OpenSim/Framework/Servers/BaseOpenSimServer.cs
index f0f8d01..cbab2db 100644
--- a/OpenSim/Framework/Servers/BaseOpenSimServer.cs
+++ b/OpenSim/Framework/Servers/BaseOpenSimServer.cs
@@ -37,6 +37,7 @@ using log4net;
37using log4net.Appender; 37using log4net.Appender;
38using log4net.Core; 38using log4net.Core;
39using log4net.Repository; 39using log4net.Repository;
40using OpenSim.Framework;
40using OpenSim.Framework.Console; 41using OpenSim.Framework.Console;
41using OpenSim.Framework.Servers; 42using OpenSim.Framework.Servers;
42using OpenSim.Framework.Servers.HttpServer; 43using OpenSim.Framework.Servers.HttpServer;
@@ -234,26 +235,19 @@ namespace OpenSim.Framework.Servers
234 protected string GetThreadsReport() 235 protected string GetThreadsReport()
235 { 236 {
236 StringBuilder sb = new StringBuilder(); 237 StringBuilder sb = new StringBuilder();
238 Watchdog.ThreadWatchdogInfo[] threads = Watchdog.GetThreads();
237 239
238 ProcessThreadCollection threads = ThreadTracker.GetThreads(); 240 sb.Append(threads.Length + " threads are being tracked:" + Environment.NewLine);
239 if (threads == null) 241 foreach (Watchdog.ThreadWatchdogInfo twi in threads)
240 { 242 {
241 sb.Append("OpenSim thread tracking is only enabled in DEBUG mode."); 243 Thread t = twi.Thread;
244
245 sb.Append(
246 "ID: " + t.ManagedThreadId + ", Name: " + t.Name + ", TimeRunning: "
247 + "Pri: " + t.Priority + ", State: " + t.ThreadState);
248 sb.Append(Environment.NewLine);
242 } 249 }
243 else
244 {
245 sb.Append(threads.Count + " threads are being tracked:" + Environment.NewLine);
246 foreach (ProcessThread t in threads)
247 {
248 sb.Append("ID: " + t.Id + ", TotalProcessorTime: " + t.TotalProcessorTime + ", TimeRunning: " +
249 (DateTime.Now - t.StartTime) + ", Pri: " + t.CurrentPriority + ", State: " + t.ThreadState);
250 if (t.ThreadState == System.Diagnostics.ThreadState.Wait)
251 sb.Append(", Reason: " + t.WaitReason + Environment.NewLine);
252 else
253 sb.Append(Environment.NewLine);
254 250
255 }
256 }
257 int workers = 0, ports = 0, maxWorkers = 0, maxPorts = 0; 251 int workers = 0, ports = 0, maxWorkers = 0, maxPorts = 0;
258 ThreadPool.GetAvailableThreads(out workers, out ports); 252 ThreadPool.GetAvailableThreads(out workers, out ports);
259 ThreadPool.GetMaxThreads(out maxWorkers, out maxPorts); 253 ThreadPool.GetMaxThreads(out maxWorkers, out maxPorts);
diff --git a/OpenSim/Framework/Watchdog.cs b/OpenSim/Framework/Watchdog.cs
index bc19dd1..9baf3a0 100644
--- a/OpenSim/Framework/Watchdog.cs
+++ b/OpenSim/Framework/Watchdog.cs
@@ -1,4 +1,4 @@
1/* 1/*
2 * Copyright (c) Contributors, http://opensimulator.org/ 2 * Copyright (c) Contributors, http://opensimulator.org/
3 * See CONTRIBUTORS.TXT for a full list of copyright holders. 3 * See CONTRIBUTORS.TXT for a full list of copyright holders.
4 * 4 *
@@ -27,6 +27,7 @@
27 27
28using System; 28using System;
29using System.Collections.Generic; 29using System.Collections.Generic;
30using System.Linq;
30using System.Threading; 31using System.Threading;
31using log4net; 32using log4net;
32 33
@@ -43,7 +44,7 @@ namespace OpenSim.Framework
43 const int WATCHDOG_TIMEOUT_MS = 5000; 44 const int WATCHDOG_TIMEOUT_MS = 5000;
44 45
45 [System.Diagnostics.DebuggerDisplay("{Thread.Name}")] 46 [System.Diagnostics.DebuggerDisplay("{Thread.Name}")]
46 private class ThreadWatchdogInfo 47 public class ThreadWatchdogInfo
47 { 48 {
48 public Thread Thread; 49 public Thread Thread;
49 public int LastTick; 50 public int LastTick;
@@ -149,6 +150,15 @@ namespace OpenSim.Framework
149 } 150 }
150 catch { } 151 catch { }
151 } 152 }
153
154 /// <summary>
155 /// Get currently watched threads for diagnostic purposes
156 /// </summary>
157 /// <returns></returns>
158 public static ThreadWatchdogInfo[] GetThreads()
159 {
160 return m_threads.Values.ToArray();
161 }
152 162
153 private static void WatchdogTimerElapsed(object sender, System.Timers.ElapsedEventArgs e) 163 private static void WatchdogTimerElapsed(object sender, System.Timers.ElapsedEventArgs e)
154 { 164 {
diff --git a/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs b/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs
index 0e17496..393cd03 100644
--- a/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs
+++ b/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs
@@ -5222,11 +5222,13 @@ namespace OpenSim.Region.ClientStack.LindenUDP
5222 } 5222 }
5223 catch (Exception e) 5223 catch (Exception e)
5224 { 5224 {
5225 m_log.Error("[GENERICMESSAGE] " + e); 5225 m_log.ErrorFormat(
5226 "[LLCLIENTVIEW]: Exeception when handling generic message {0}{1}", e.Message, e.StackTrace);
5226 } 5227 }
5227 } 5228 }
5228 } 5229 }
5229 m_log.Error("[GENERICMESSAGE] Not handling GenericMessage with method-type of: " + method); 5230
5231 //m_log.Debug("[LLCLIENTVIEW]: Not handling GenericMessage with method-type of: " + method);
5230 return false; 5232 return false;
5231 } 5233 }
5232 5234
diff --git a/OpenSim/Region/ClientStack/LindenUDP/LLUDPServer.cs b/OpenSim/Region/ClientStack/LindenUDP/LLUDPServer.cs
index 209e35c..5aeca83 100644
--- a/OpenSim/Region/ClientStack/LindenUDP/LLUDPServer.cs
+++ b/OpenSim/Region/ClientStack/LindenUDP/LLUDPServer.cs
@@ -695,9 +695,13 @@ namespace OpenSim.Region.ClientStack.LindenUDP
695 if (packet.Header.Reliable && !udpClient.PacketArchive.TryEnqueue(packet.Header.Sequence)) 695 if (packet.Header.Reliable && !udpClient.PacketArchive.TryEnqueue(packet.Header.Sequence))
696 { 696 {
697 if (packet.Header.Resent) 697 if (packet.Header.Resent)
698 m_log.Debug("[LLUDPSERVER]: Received a resend of already processed packet #" + packet.Header.Sequence + ", type: " + packet.Type); 698 m_log.DebugFormat(
699 else 699 "[LLUDPSERVER]: Received a resend of already processed packet #{0}, type {1} from {2}",
700 m_log.Warn("[LLUDPSERVER]: Received a duplicate (not marked as resend) of packet #" + packet.Header.Sequence + ", type: " + packet.Type); 700 packet.Header.Sequence, packet.Type, client.Name);
701 else
702 m_log.WarnFormat(
703 "[LLUDPSERVER]: Received a duplicate (not marked as resend) of packet #{0}, type {1} from {2}",
704 packet.Header.Sequence, packet.Type, client.Name);
701 705
702 // Avoid firing a callback twice for the same packet 706 // Avoid firing a callback twice for the same packet
703 return; 707 return;
diff --git a/OpenSim/Region/CoreModules/Avatar/Assets/GetTextureModule.cs b/OpenSim/Region/CoreModules/Avatar/Assets/GetTextureModule.cs
index 8aa87fd..a3238df 100644
--- a/OpenSim/Region/CoreModules/Avatar/Assets/GetTextureModule.cs
+++ b/OpenSim/Region/CoreModules/Avatar/Assets/GetTextureModule.cs
@@ -187,18 +187,20 @@ namespace OpenSim.Region.CoreModules.Avatar.ObjectCaps
187 int start, end; 187 int start, end;
188 if (TryParseRange(range, out start, out end)) 188 if (TryParseRange(range, out start, out end))
189 { 189 {
190 end = Utils.Clamp(end, 1, texture.Data.Length); 190 end = Utils.Clamp(end, 1, texture.Data.Length - 1);
191 start = Utils.Clamp(start, 0, end - 1); 191 start = Utils.Clamp(start, 0, end - 1);
192 int len = end - start + 1;
192 193
193 //m_log.Debug("Serving " + start + " to " + end + " of " + texture.Data.Length + " bytes for texture " + texture.ID); 194 //m_log.Debug("Serving " + start + " to " + end + " of " + texture.Data.Length + " bytes for texture " + texture.ID);
194 195
195 if (end - start < texture.Data.Length) 196 if (len < texture.Data.Length)
196 response.StatusCode = (int)System.Net.HttpStatusCode.PartialContent; 197 response.StatusCode = (int)System.Net.HttpStatusCode.PartialContent;
197 198
198 response.ContentLength = end - start; 199 response.ContentLength = len;
199 response.ContentType = texture.Metadata.ContentType; 200 response.ContentType = texture.Metadata.ContentType;
201 response.AddHeader("Content-Range", String.Format("bytes {0}-{1}/{2}", start, end, texture.Data.Length));
200 202
201 response.Body.Write(texture.Data, start, end - start); 203 response.Body.Write(texture.Data, start, len);
202 } 204 }
203 else 205 else
204 { 206 {
diff --git a/OpenSim/Region/CoreModules/Avatar/Attachments/AttachmentsModule.cs b/OpenSim/Region/CoreModules/Avatar/Attachments/AttachmentsModule.cs
index e1c0949..5378930 100644
--- a/OpenSim/Region/CoreModules/Avatar/Attachments/AttachmentsModule.cs
+++ b/OpenSim/Region/CoreModules/Avatar/Attachments/AttachmentsModule.cs
@@ -191,7 +191,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Attachments
191 itemID = group.GetFromItemID(); 191 itemID = group.GetFromItemID();
192 } 192 }
193 193
194 SetAttachmentInventoryStatus(remoteClient, AttachmentPt, itemID, group); 194 ShowAttachInUserInventory(remoteClient, AttachmentPt, itemID, group);
195 195
196 AttachToAgent(sp, group, AttachmentPt, attachPos, silent); 196 AttachToAgent(sp, group, AttachmentPt, attachPos, silent);
197 } 197 }
@@ -219,8 +219,6 @@ namespace OpenSim.Region.CoreModules.Avatar.Attachments
219 219
220 public UUID RezSingleAttachmentFromInventory(IClientAPI remoteClient, UUID itemID, uint AttachmentPt) 220 public UUID RezSingleAttachmentFromInventory(IClientAPI remoteClient, UUID itemID, uint AttachmentPt)
221 { 221 {
222 m_log.DebugFormat("[ATTACHMENTS MODULE]: Rezzing single attachment from item {0} for {1}", itemID, remoteClient.Name);
223
224 return RezSingleAttachmentFromInventory(remoteClient, itemID, AttachmentPt, true); 222 return RezSingleAttachmentFromInventory(remoteClient, itemID, AttachmentPt, true);
225 } 223 }
226 224
@@ -238,11 +236,9 @@ namespace OpenSim.Region.CoreModules.Avatar.Attachments
238 if (updateInventoryStatus) 236 if (updateInventoryStatus)
239 { 237 {
240 if (att == null) 238 if (att == null)
241 {
242 ShowDetachInUserInventory(itemID, remoteClient); 239 ShowDetachInUserInventory(itemID, remoteClient);
243 } 240 else
244 241 ShowAttachInUserInventory(att, remoteClient, itemID, AttachmentPt);
245 SetAttachmentInventoryStatus(att, remoteClient, itemID, AttachmentPt);
246 } 242 }
247 243
248 if (null == att) 244 if (null == att)
@@ -313,12 +309,20 @@ namespace OpenSim.Region.CoreModules.Avatar.Attachments
313 return null; 309 return null;
314 } 310 }
315 311
316 public UUID SetAttachmentInventoryStatus( 312 /// <summary>
313 /// Update the user inventory to the attachment of an item
314 /// </summary>
315 /// <param name="att"></param>
316 /// <param name="remoteClient"></param>
317 /// <param name="itemID"></param>
318 /// <param name="AttachmentPt"></param>
319 /// <returns></returns>
320 protected UUID ShowAttachInUserInventory(
317 SceneObjectGroup att, IClientAPI remoteClient, UUID itemID, uint AttachmentPt) 321 SceneObjectGroup att, IClientAPI remoteClient, UUID itemID, uint AttachmentPt)
318 { 322 {
319 m_log.DebugFormat( 323// m_log.DebugFormat(
320 "[ATTACHMENTS MODULE]: Updating inventory of {0} to show attachment of {1} (item ID {2})", 324// "[ATTACHMENTS MODULE]: Updating inventory of {0} to show attachment of {1} (item ID {2})",
321 remoteClient.Name, att.Name, itemID); 325// remoteClient.Name, att.Name, itemID);
322 326
323 if (!att.IsDeleted) 327 if (!att.IsDeleted)
324 AttachmentPt = att.RootPart.AttachmentPoint; 328 AttachmentPt = att.RootPart.AttachmentPoint;
@@ -343,7 +347,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Attachments
343 /// <param name="AttachmentPt"></param> 347 /// <param name="AttachmentPt"></param>
344 /// <param name="itemID"></param> 348 /// <param name="itemID"></param>
345 /// <param name="att"></param> 349 /// <param name="att"></param>
346 public void SetAttachmentInventoryStatus( 350 protected void ShowAttachInUserInventory(
347 IClientAPI remoteClient, uint AttachmentPt, UUID itemID, SceneObjectGroup att) 351 IClientAPI remoteClient, uint AttachmentPt, UUID itemID, SceneObjectGroup att)
348 { 352 {
349// m_log.DebugFormat( 353// m_log.DebugFormat(
@@ -407,7 +411,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Attachments
407 // Save avatar attachment information 411 // Save avatar attachment information
408 if (m_scene.AvatarFactory != null) 412 if (m_scene.AvatarFactory != null)
409 { 413 {
410 m_log.Debug("[ATTACHMENTS MODULE]: Dettaching from UserID: " + remoteClient.AgentId + ", ItemID: " + itemID); 414 m_log.Debug("[ATTACHMENTS MODULE]: Detaching from UserID: " + remoteClient.AgentId + ", ItemID: " + itemID);
411 m_scene.AvatarFactory.UpdateDatabase(remoteClient.AgentId, presence.Appearance); 415 m_scene.AvatarFactory.UpdateDatabase(remoteClient.AgentId, presence.Appearance);
412 } 416 }
413 } 417 }
diff --git a/OpenSim/Region/CoreModules/Avatar/AvatarFactory/AvatarFactoryModule.cs b/OpenSim/Region/CoreModules/Avatar/AvatarFactory/AvatarFactoryModule.cs
index 7e5a8ec..22c8937 100644
--- a/OpenSim/Region/CoreModules/Avatar/AvatarFactory/AvatarFactoryModule.cs
+++ b/OpenSim/Region/CoreModules/Avatar/AvatarFactory/AvatarFactoryModule.cs
@@ -198,7 +198,7 @@ namespace OpenSim.Region.CoreModules.Avatar.AvatarFactory
198 198
199 public void UpdateDatabase(UUID user, AvatarAppearance appearance) 199 public void UpdateDatabase(UUID user, AvatarAppearance appearance)
200 { 200 {
201 m_log.DebugFormat("[APPEARANCE]: UpdateDatabase"); 201 //m_log.DebugFormat("[APPEARANCE]: UpdateDatabase");
202 AvatarData adata = new AvatarData(appearance); 202 AvatarData adata = new AvatarData(appearance);
203 m_scene.AvatarService.SetAvatar(user, adata); 203 m_scene.AvatarService.SetAvatar(user, adata);
204 } 204 }
diff --git a/OpenSim/Region/Framework/Interfaces/IAttachmentsModule.cs b/OpenSim/Region/Framework/Interfaces/IAttachmentsModule.cs
index 6a0fb63..a675928 100644
--- a/OpenSim/Region/Framework/Interfaces/IAttachmentsModule.cs
+++ b/OpenSim/Region/Framework/Interfaces/IAttachmentsModule.cs
@@ -114,17 +114,6 @@ namespace OpenSim.Region.Framework.Interfaces
114 /// <param name="itemID"></param> 114 /// <param name="itemID"></param>
115 /// <param name="remoteClient"></param> 115 /// <param name="remoteClient"></param>
116 void DetachSingleAttachmentToGround(UUID itemID, IClientAPI remoteClient); 116 void DetachSingleAttachmentToGround(UUID itemID, IClientAPI remoteClient);
117
118 /// <summary>
119 /// Update the user inventory to the attachment of an item
120 /// </summary>
121 /// <param name="att"></param>
122 /// <param name="remoteClient"></param>
123 /// <param name="itemID"></param>
124 /// <param name="AttachmentPt"></param>
125 /// <returns></returns>
126 UUID SetAttachmentInventoryStatus(
127 SceneObjectGroup att, IClientAPI remoteClient, UUID itemID, uint AttachmentPt);
128 117
129 /// <summary> 118 /// <summary>
130 /// Update the user inventory to show a detach. 119 /// Update the user inventory to show a detach.
diff --git a/OpenSim/Region/Framework/Scenes/Scene.cs b/OpenSim/Region/Framework/Scenes/Scene.cs
index 0e1b4b1..abec699 100644
--- a/OpenSim/Region/Framework/Scenes/Scene.cs
+++ b/OpenSim/Region/Framework/Scenes/Scene.cs
@@ -1348,11 +1348,15 @@ namespace OpenSim.Region.Framework.Scenes
1348 if (m_frame % m_update_presences == 0) 1348 if (m_frame % m_update_presences == 0)
1349 m_sceneGraph.UpdatePresences(); 1349 m_sceneGraph.UpdatePresences();
1350 1350
1351<<<<<<< HEAD:OpenSim/Region/Framework/Scenes/Scene.cs
1351 // Update SceneObjectGroups that have scheduled themselves for updates 1352 // Update SceneObjectGroups that have scheduled themselves for updates
1352 // Objects queue their updates onto all scene presences 1353 // Objects queue their updates onto all scene presences
1353 if (m_frame % m_update_objects == 0) 1354 if (m_frame % m_update_objects == 0)
1354 m_sceneGraph.UpdateObjectGroups(); 1355 m_sceneGraph.UpdateObjectGroups();
1355 1356
1357=======
1358 // Coarse locations relate to positions of green dots on the mini-map (on a SecondLife client)
1359>>>>>>> master:OpenSim/Region/Framework/Scenes/Scene.cs
1356 if (m_frame % m_update_coarse_locations == 0) 1360 if (m_frame % m_update_coarse_locations == 0)
1357 { 1361 {
1358 List<Vector3> coarseLocations; 1362 List<Vector3> coarseLocations;
@@ -1370,9 +1374,12 @@ namespace OpenSim.Region.Framework.Scenes
1370 m_sceneGraph.UpdatePreparePhysics(); 1374 m_sceneGraph.UpdatePreparePhysics();
1371 physicsMS2 = Util.EnvironmentTickCountSubtract(tmpPhysicsMS2); 1375 physicsMS2 = Util.EnvironmentTickCountSubtract(tmpPhysicsMS2);
1372 1376
1377 // Apply any pending avatar force input to the avatar's velocity
1373 if (m_frame % m_update_entitymovement == 0) 1378 if (m_frame % m_update_entitymovement == 0)
1374 m_sceneGraph.UpdateScenePresenceMovement(); 1379 m_sceneGraph.UpdateScenePresenceMovement();
1375 1380
1381 // Perform the main physics update. This will do the actual work of moving objects and avatars according to their
1382 // velocity
1376 int tmpPhysicsMS = Util.EnvironmentTickCount(); 1383 int tmpPhysicsMS = Util.EnvironmentTickCount();
1377 if (m_frame % m_update_physics == 0) 1384 if (m_frame % m_update_physics == 0)
1378 { 1385 {
diff --git a/OpenSim/Region/Framework/Scenes/SceneGraph.cs b/OpenSim/Region/Framework/Scenes/SceneGraph.cs
index 6246400..9c3486e 100644
--- a/OpenSim/Region/Framework/Scenes/SceneGraph.cs
+++ b/OpenSim/Region/Framework/Scenes/SceneGraph.cs
@@ -568,16 +568,6 @@ namespace OpenSim.Region.Framework.Scenes
568 m_parentScene.AttachmentsModule.DetachSingleAttachmentToGround(group.UUID, remoteClient); 568 m_parentScene.AttachmentsModule.DetachSingleAttachmentToGround(group.UUID, remoteClient);
569 } 569 }
570 570
571 protected internal void DetachObject(uint objectLocalID, IClientAPI remoteClient)
572 {
573 SceneObjectGroup group = GetGroupByPrim(objectLocalID);
574 if (group != null)
575 {
576 //group.DetachToGround();
577 m_parentScene.AttachmentsModule.ShowDetachInUserInventory(group.GetFromItemID(), remoteClient);
578 }
579 }
580
581 protected internal void HandleUndo(IClientAPI remoteClient, UUID primId) 571 protected internal void HandleUndo(IClientAPI remoteClient, UUID primId)
582 { 572 {
583 if (primId != UUID.Zero) 573 if (primId != UUID.Zero)
diff --git a/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs b/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs
index 37630e0..5b610d3 100644
--- a/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs
+++ b/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs
@@ -1796,9 +1796,9 @@ namespace OpenSim.Region.Framework.Scenes
1796 m_scene.PhysicsScene.AddPhysicsActorTaint(m_rootPart.PhysActor); 1796 m_scene.PhysicsScene.AddPhysicsActorTaint(m_rootPart.PhysActor);
1797 } 1797 }
1798 } 1798 }
1799 // m_log.DebugFormat( 1799// m_log.DebugFormat(
1800 // "[SCENE]: Storing {0}, {1} in {2}", 1800// "[SCENE]: Storing {0}, {1} in {2}",
1801 // Name, UUID, m_scene.RegionInfo.RegionName); 1801// Name, UUID, m_scene.RegionInfo.RegionName);
1802 1802
1803 SceneObjectGroup backup_group = Copy(false); 1803 SceneObjectGroup backup_group = Copy(false);
1804 backup_group.RootPart.Velocity = RootPart.Velocity; 1804 backup_group.RootPart.Velocity = RootPart.Velocity;
diff --git a/OpenSim/Region/Framework/Scenes/ScenePresence.cs b/OpenSim/Region/Framework/Scenes/ScenePresence.cs
index 6d0ecf0..caf376b 100644
--- a/OpenSim/Region/Framework/Scenes/ScenePresence.cs
+++ b/OpenSim/Region/Framework/Scenes/ScenePresence.cs
@@ -1663,6 +1663,8 @@ namespace OpenSim.Region.Framework.Scenes
1663 } 1663 }
1664 } 1664 }
1665 1665
1666 // If the agent update does move the avatar, then calculate the force ready for the velocity update,
1667 // which occurs later in the main scene loop
1666 if (update_movementflag || (update_rotation && DCFlagKeyPressed)) 1668 if (update_movementflag || (update_rotation && DCFlagKeyPressed))
1667 { 1669 {
1668 // m_log.DebugFormat("{0} {1}", update_movementflag, (update_rotation && DCFlagKeyPressed)); 1670 // m_log.DebugFormat("{0} {1}", update_movementflag, (update_rotation && DCFlagKeyPressed));
@@ -4294,8 +4296,8 @@ if (m_animator.m_jumping) force.Z = m_animator.m_jumpVelocity; // add for ju
4294 return; 4296 return;
4295 4297
4296 UUID itemID = m_appearance.GetAttachedItem(p); 4298 UUID itemID = m_appearance.GetAttachedItem(p);
4297 UUID assetID = m_appearance.GetAttachedAsset(p);
4298 4299
4300 //UUID assetID = m_appearance.GetAttachedAsset(p);
4299 // For some reason assetIDs are being written as Zero's in the DB -- need to track tat down 4301 // For some reason assetIDs are being written as Zero's in the DB -- need to track tat down
4300 // But they're not used anyway, the item is being looked up for now, so let's proceed. 4302 // But they're not used anyway, the item is being looked up for now, so let's proceed.
4301 //if (UUID.Zero == assetID) 4303 //if (UUID.Zero == assetID)
@@ -4333,7 +4335,7 @@ if (m_animator.m_jumping) force.Z = m_animator.m_jumpVelocity; // add for ju
4333 } 4335 }
4334 catch (Exception e) 4336 catch (Exception e)
4335 { 4337 {
4336 m_log.ErrorFormat("[ATTACHMENT]: Unable to rez attachment: {0}", e.ToString()); 4338 m_log.ErrorFormat("[ATTACHMENT]: Unable to rez attachment: {0}{1}", e.Message, e.StackTrace);
4337 } 4339 }
4338 } 4340 }
4339 } 4341 }
diff --git a/OpenSim/Tests/ConfigurationLoaderTest.cs b/OpenSim/Tests/ConfigurationLoaderTest.cs
index 4262c95..c777acc 100644
--- a/OpenSim/Tests/ConfigurationLoaderTest.cs
+++ b/OpenSim/Tests/ConfigurationLoaderTest.cs
@@ -69,7 +69,7 @@ namespace OpenSim.Tests
69 [Test] 69 [Test]
70 public void IncludeTests() 70 public void IncludeTests()
71 { 71 {
72 const string mainIniFile = "OpenSim.ini"; 72 const string mainIniFile = "OpenSimDefaults.ini";
73 m_config = new IniConfigSource(); 73 m_config = new IniConfigSource();
74 74
75 // Create ini files in a directory structure 75 // Create ini files in a directory structure
diff --git a/bin/OpenSimDefaults.ini b/bin/OpenSimDefaults.ini
new file mode 100644
index 0000000..8d714ce
--- /dev/null
+++ b/bin/OpenSimDefaults.ini
@@ -0,0 +1,1299 @@
1[Startup]
2 ; Set this to true if you want to log crashes to disk
3 ; this can be useful when submitting bug reports.
4 save_crashes = false
5
6 ; Directory to save crashes to if above is enabled
7 ; (default is /opensimdir/crashes/*.txt or C:\opensim\crashes\*.txt)
8 crash_dir = "crashes"
9
10 ; Place to create a PID file
11 ; PIDFile = "/tmp/my.pid"
12
13 ; Http proxy support for llHTTPRequest and dynamic texture loading
14 ; Set HttpProxy to the URL for your proxy server if you would like
15 ; to proxy llHTTPRequests through a firewall
16 ; HttpProxy = "http://proxy.com"
17 ; Set HttpProxyExceptions to a list of regular expressions for
18 ; URLs that you don't want going through the proxy such as servers
19 ; inside your firewall, separate patterns with a ';'
20 ; HttpProxyExceptions = ".mydomain.com;localhost"
21
22 startup_console_commands_file = "startup_commands.txt"
23 shutdown_console_commands_file = "shutdown_commands.txt"
24
25 ; To run a script every few minutes, set the script filename here
26 ; timer_Script = "filename"
27
28 ; ##
29 ; ## SYSTEM
30 ; ##
31
32 ; Sets the method that OpenSim will use to fire asynchronous
33 ; events. Valid values are UnsafeQueueUserWorkItem,
34 ; QueueUserWorkItem, BeginInvoke, SmartThreadPool, and Thread.
35 ; SmartThreadPool is reported to work well on Mono/Linux, but
36 ; UnsafeQueueUserWorkItem has been benchmarked with better
37 ; performance on .NET/Windows
38 async_call_method = SmartThreadPool
39
40 ; Max threads to allocate on the FireAndForget thread pool
41 ; when running with the SmartThreadPool option above
42 MaxPoolThreads = 15
43
44 ; ##
45 ; ## CLIENTS
46 ; ##
47
48 ; Enables EventQueueGet Service.
49 EventQueue = true
50
51 ; Set this to the DLL containing the client stack to use.
52 clientstack_plugin="OpenSim.Region.ClientStack.LindenUDP.dll"
53
54 ; ##
55 ; ## REGIONS
56 ; ##
57
58 ; Determine where OpenSimulator looks for the files which tell it which regions to server
59 ; Defaults to "filesystem" if this setting isn't present
60 region_info_source = "filesystem"
61 ; region_info_source = "web"
62
63 ; Determines where the region XML files are stored if you are loading these from the filesystem.
64 ; Defaults to bin/Regions in your OpenSimulator installation directory
65 ; regionload_regionsdir="C:\somewhere\xmlfiles\"
66
67 ; Determines the page from which regions xml is retrieved if you are loading these from the web
68 ; The XML here has the same format as it does on the filesystem (including the <Root> tag),
69 ; except that everything is also enclosed in a <Regions> tag.
70 ; regionload_webserver_url = "http://example.com/regions.xml";
71
72 ; Draw objects on maptile. This step might take a long time if you've got a large number of
73 ; objects, so you can turn it off here if you'd like.
74 DrawPrimOnMapTile = true
75 ; Use terrain texture for maptiles if true, use shaded green if false
76 TextureOnMapTile = false
77
78 ; Maximum total size, and maximum size where a prim can be physical
79 NonPhysicalPrimMax = 256
80 PhysicalPrimMax = 10 ; (I think this was moved to the Regions.ini!)
81 ClampPrimSize = false
82
83 ; Allow scripts to cross region boundaries. These are recompiled on the new region.
84 AllowScriptCrossing = false
85
86 ; Allow compiled script binary code to cross region boundaries.
87 ; If you set this to "true", any region that can teleport to you can
88 ; inject ARBITRARY BINARY CODE into your system. Use at your own risk.
89 ; YOU HAVE BEEN WARNED!!!
90 TrustBinaries = false
91
92 ; Combine all contiguous regions into one large megaregion
93 ; Order your regions from South to North, West to East in your regions.ini and then set this to true
94 ; Warning! Don't use this with regions that have existing content!, This will likely break them
95 CombineContiguousRegions = false
96
97 ; If you have only one region in an instance, or to avoid the many bugs
98 ; that you can trigger in modules by restarting a region, set this to
99 ; true to make the entire instance exit instead of restarting the region.
100 ; This is meant to be used on systems where some external system like
101 ; Monit will restart any instance that exits, thereby making the shutdown
102 ; into a restart.
103 ;InworldRestartShutsDown = false
104
105 ; ##
106 ; ## PRIM STORAGE
107 ; ##
108
109 ; Persistence of changed objects happens during regular sweeps. The following control that behaviour to
110 ; prevent frequently changing objects from heavily loading the region data store.
111 ; If both of these values are set to zero then persistence of all changed objects will happen on every sweep.
112 ;
113 ; Objects will be considered for persistance in the next sweep when they have not changed for this number of seconds
114 MinimumTimeBeforePersistenceConsidered = 60
115 ; Objects will always be considered for persistance in the next sweep if the first change occurred this number of seconds ago
116 MaximumTimeBeforePersistenceConsidered = 600
117
118 ; Should avatars in neighbor sims see objects in this sim?
119 see_into_this_sim_from_neighbor = true
120
121 ; ##
122 ; ## PHYSICS
123 ; ##
124
125 ; if you would like to allow prims to be physical and move by physics with the physical checkbox in the client set this to true.
126 physical_prim = true
127
128 ; Select a mesher here.
129 ;
130 ; Meshmerizer properly handles complex prims by using triangle meshes.
131 ; Note that only the ODE physics engine currently deals with meshed prims in a satisfactory way
132 ;
133 ; ZeroMesher is faster but leaves the physics engine to model the mesh using the basic shapes that it supports
134 ; Usually this is only a box
135
136 meshing = Meshmerizer
137 ;meshing = ZeroMesher
138
139 ; Choose one of the physics engines below
140 ; OpenDynamicsEngine is by some distance the most developed physics engine
141 ; basicphysics effectively does not model physics at all, making all objects phantom
142
143 physics = OpenDynamicsEngine
144 ;physics = basicphysics
145 ;physics = POS
146 ;physics = modified_BulletX
147
148 ; ##
149 ; ## PERMISSIONS
150 ; ##
151
152 ;permissionmodules = "DefaultPermissionsModule"
153
154 ; If set to false, then, in theory, the server never carries out permission checks (allowing anybody to copy
155 ; any item, etc. This may not yet be implemented uniformally.
156 ; If set to true, then all permissions checks are carried out
157 ; Default is false
158 serverside_object_permissions = false
159
160 allow_grid_gods = false
161
162 ; This allows somne control over permissions
163 ; please note that this still doesn't duplicate SL, and is not intended to
164 ;region_owner_is_god = true
165 ;region_manager_is_god = false
166 ;parcel_owner_is_god = true
167
168 ; Control user types that are allowed to create new scripts
169 ; Only enforced if serviceside_object_permissions is true
170 ;
171 ; Current possible values are
172 ; all - anyone can create scripts (subject to normal permissions)
173 ; gods - only administrators can create scripts (as long as allow_grid_gods is true)
174 ; Default value is all
175 ; allowed_script_creators = all
176
177 ; Control user types that are allowed to edit (save) scripts
178 ; Only enforced if serviceside_object_permissions is true
179 ;
180 ; Current possible values are
181 ; all - anyone can edit scripts (subject to normal permissions)
182 ; gods - only administrators can edit scripts (as long as allow_grid_gods is true)
183 ; Default value is all
184 ; allowed_script_editors = all
185
186 ; ##
187 ; ## SCRIPT ENGINE
188 ; ##
189
190 DefaultScriptEngine = "XEngine"
191
192 ; ##
193 ; ## WORLD MAP
194 ; ##
195
196 ;WorldMapModule = "WorldMap"
197 ;MapImageModule = "MapImageModule"
198 ; Set to false to not generate any maptiles
199 ;GenerateMaptiles = "true"
200 ; Refresh (in seconds) the map tile periodically
201 ;MaptileRefresh = 0
202 ; If not generating maptiles, use this static texture asset ID
203 ;MaptileStaticUUID = "00000000-0000-0000-0000-000000000000"
204
205 ; ##
206 ; ## EMAIL MODULE
207 ; ##
208
209 ;emailmodule = DefaultEmailModule
210
211 ; ##
212 ; ## ANIMATIONS
213 ; ##
214
215 ; If enabled, enableFlySlow will change the primary fly state to
216 ; FLYSLOW, and the "always run" state will be the regular fly.
217
218 enableflyslow = false
219
220 ; PreJump is an additional animation state, but it probably
221 ; won't look right until the physics engine supports it
222 ; (i.e delays takeoff for a moment)
223
224 ; This is commented so it will come on automatically once it's
225 ; supported.
226
227 ; enableprejump = true
228
229 ; Simulator Stats URI
230 ; Enable JSON simulator data by setting a URI name (case sensitive)
231 ; Stats_URI = "jsonSimStats"
232
233 ; Make OpenSim start all regions woth logins disabled. They will need
234 ; to be enabled from the console if this is set
235 ; StartDisabled = false
236
237 ; Image decoding. Use CSJ2K for layer boundary decoding if true,
238 ; OpenJPEG if false
239 ; UseCSJ2K = true
240
241[SMTP]
242 enabled=false
243
244 ;enabled=true
245 ;internal_object_host=lsl.opensim.local
246 ;host_domain_header_from=127.0.0.1
247 ;SMTP_SERVER_HOSTNAME=127.0.0.1
248 ;SMTP_SERVER_PORT=25
249 ;SMTP_SERVER_LOGIN=foo
250 ;SMTP_SERVER_PASSWORD=bar
251
252[Network]
253 ConsoleUser = "Test"
254 ConsolePass = "secret"
255 http_listener_port = 9000
256 console_port = 0
257
258 ; ssl config: Experimental! The auto https config only really works definately on windows XP now
259 ; you need a Cert Request/Signed pair installed in the MY store with the CN specified below
260 ; you can use https on other platforms, but you'll need to configure the httpapi yourself for now
261 http_listener_ssl = false ; Also create a SSL server
262 http_listener_cn = "localhost" ; Use the cert with the common name
263 http_listener_sslport = 9001 ; Use this port for SSL connections
264 http_listener_ssl_cert = "" ; Currently unused, but will be used for OSHttpServer
265
266 ; Hostname to use in llRequestURL/llRequestSecureURL
267 ; if not defined - default machine name is being used
268 ; (on Windows this mean NETBIOS name - useably only inside local network)
269 ; ExternalHostNameForLSL=127.0.0.1
270
271 ; What is reported as the "X-Secondlife-Shard"
272 ; Defaults to the user server url if not set
273 ; The old default is "OpenSim", set here for compatibility
274 shard = "OpenSim"
275
276 ; What is reported as the "User-Agent" when using llHTTPRequest
277 ; Defaults to not sent if not set here. See the notes section in the wiki at
278 ; http://wiki.secondlife.com/wiki/LlHTTPRequest for comments on adding
279 ; " (Mozilla Compatible)" to the text where there are problems with a web server
280 ;user_agent = "OpenSim LSL (Mozilla Compatible)"
281
282[XMLRPC]
283 ; ##
284 ; ## Scripting XMLRPC mapper
285 ; ##
286
287 ; If enabled, this will post an event, "xmlrpc_uri(string)" to the
288 ; script concurrently with the first remote_data event.
289 ; This will contain the fully qualified URI an external site needs
290 ; to use to send XMLRPC requests to that script
291
292 ;XmlRpcRouterModule = "XmlRpcRouterModule"
293 ;XmlRpcPort = 20800
294
295[ClientStack.LindenUDP]
296 ; Set this to true to process incoming packets asynchronously. Networking is
297 ; already separated from packet handling with a queue, so this will only
298 ; affect whether networking internals such as packet decoding and
299 ; acknowledgement accounting are done synchronously or asynchronously
300 ;
301 ;async_packet_handling = false
302
303 ; The client socket receive buffer size determines how many
304 ; incoming requests we can process; the default on .NET is 8192
305 ; which is about 2 4k-sized UDP datagrams. On mono this is
306 ; whatever the underlying operating system has as default; for
307 ; example, ubuntu 8.04 or SLES11 have about 111k, which is about
308 ; 27 4k-sized UDP datagrams (on linux platforms you can [as root]
309 ; do "sysctl net.core.rmem_default" to find out what your system
310 ; uses a default socket receive buffer size.
311 ;
312 ; client_socket_rcvbuf_size allows you to specify the receive
313 ; buffer size LLUDPServer should use. NOTE: this will be limited
314 ; by the system's settings for the maximum client receive buffer
315 ; size (on linux systems you can set that with "sysctl -w
316 ; net.core.rmem_max=X")
317 ;
318 ;client_socket_rcvbuf_size = 8388608
319
320 ; Maximum outbound bytes per second for a single scene. This can be used to
321 ; throttle total outbound UDP traffic for a simulator. The default value is
322 ; 0, meaning no throttling at the scene level. The example given here is
323 ; 20 megabits
324 ;
325 ;scene_throttle_max_bps = 2621440
326
327 ; Maximum bits per second to send to any single client. This will override
328 ; the user's viewer preference settings. The default value is 0, meaning no
329 ; aggregate throttling on clients (only per-category throttling). The
330 ; example given here is 1.5 megabits
331 ;
332 ;client_throttle_max_bps = 196608
333
334 ; Per-client bytes per second rates for the various throttle categories.
335 ; These are default values that will be overriden by clients
336 ;
337 ;resend_default = 12500
338 ;land_default = 1000
339 ;wind_default = 1000
340 ;cloud_default = 1000
341 ;task_default = 1000
342 ;texture_default = 1000
343 ;asset_default = 1000
344 ;state_default = 1000
345
346 ; Per-client maximum burst rates in bytes per second for the various
347 ; throttle categories. These are default values that will be overriden by
348 ; clients
349 ;
350 ;resend_limit = 18750
351 ;land_limit = 29750
352 ;wind_limit = 18750
353 ;cloud_limit = 18750
354 ;task_limit = 18750
355 ;texture_limit = 55750
356 ;asset_limit = 27500
357 ;state_limit = 37000
358
359 ; Configures how ObjectUpdates are aggregated. These numbers
360 ; do not literally mean how many updates will be put in each
361 ; packet that goes over the wire, as packets are
362 ; automatically split on a 1400 byte boundary. These control
363 ; the balance between responsiveness of interest list updates
364 ; and total throughput. Higher numbers will ensure more full-
365 ; sized packets and faster sending of data, but more delay in
366 ; updating interest lists
367 ;
368 ;PrimTerseUpdatesPerPacket = 25
369 ;AvatarTerseUpdatesPerPacket = 10
370 ;PrimFullUpdatesPerPacket = 100
371
372 ; TextureSendLimit determines how many packets will be put on
373 ; the outgoing queue each cycle. Like the settings above, this
374 ; is a balance between responsiveness to priority updates and
375 ; total throughput. Higher numbers will give a better
376 ; throughput at the cost of reduced responsiveness to client
377 ; priority changes or transfer aborts
378 ;
379 ;TextureSendLimit = 20
380
381 ; Quash and remove any light properties from attachments not on the
382 ; hands. This allows flashlights and lanterns to function, but kills
383 ; silly vanity "Facelights" dead. Sorry, head mounted miner's lamps
384 ; will also be affected.
385 ;
386 ;DisableFacelights = "false"
387
388[Chat]
389 ; Controls whether the chat module is enabled. Default is true.
390 enabled = true;
391
392 ; Distance in meters that whispers should travel. Default is 10m
393 whisper_distance = 10
394
395 ; Distance in meters that ordinary chat should travel. Default is 30m
396 say_distance = 30
397
398 ; Distance in meters that shouts should travel. Default is 100m
399 shout_distance = 100
400
401
402[Messaging]
403 ; Control which region module is used for instant messaging.
404 ; Default is InstantMessageModule (this is the name of the core IM module as well as the setting)
405 InstantMessageModule = InstantMessageModule
406 ; MessageTransferModule = MessageTransferModule
407 ; OfflineMessageModule = OfflineMessageModule
408 ; OfflineMessageURL = http://yourserver/Offline.php
409 ; MuteListModule = MuteListModule
410 ; MuteListURL = http://yourserver/Mute.php
411
412 ; Control whether group messages are forwarded to offline users. Default is true.
413 ; ForwardOfflineGroupMessages = true
414
415
416[ODEPhysicsSettings]
417 ;##
418 ;## World Settings
419 ;##
420
421 ;Gravity. Feel like falling up? change world_gravityz to 9.8 instead of -9.8. m/s
422 world_gravityx = 0
423 world_gravityy = 0
424 world_gravityz = -9.8
425
426 ; World Step size. (warning these are dangerous. Changing these will probably cause your scene to explode dramatically)
427 ; reference: fps = (0.09375/ODE_STEPSIZE) * 1000;
428 world_stepsize = 0.020
429 world_internal_steps_without_collisions = 10
430
431 ;World Space settings. Affects memory consumption vs Collider CPU time for avatar and physical prim
432 world_hashspace_size_low = -4
433 world_hashSpace_size_high = 128
434
435 ;Dynamic space settings Affects memory consumption vs Collider CPU time for static prim
436 meters_in_small_space = 29.9
437 small_hashspace_size_low = -4
438 small_hashspace_size_high = 66
439
440 ; ##
441 ; ## Contact properties. (the stuff that happens when things come in contact with each other)
442 ; ##
443
444 ; surface layer around geometries other geometries can sink into before generating a contact
445 world_contact_surface_layer = 0.001
446
447 ; Filtering collisions helps keep things stable physics wise, but sometimes
448 ; it can be overzealous. If you notice bouncing, chances are it's that.
449 filter_collisions = false
450
451 ; Non Moving Terrain Contact (avatar isn't moving)
452 nm_terraincontact_friction = 255.0
453 nm_terraincontact_bounce = 0.1
454 nm_terraincontact_erp = 0.1025
455
456 ; Moving Terrain Contact (avatar is moving)
457 m_terraincontact_friction = 75.0
458 m_terraincontact_bounce = 0.05
459 m_terrainContact_erp = 0.05025
460
461 ; Moving Avatar to object Contact
462 m_avatarobjectcontact_friction = 75.0
463 m_avatarobjectcontact_bounce = 0.1
464
465 ; Object to Object Contact and Non-Moving Avatar to object
466 objectcontact_friction = 250.0
467 objectcontact_bounce = 0.2
468
469 ; ##
470 ; ## Avatar Control
471 ; ##
472
473 ; PID Controller Settings. These affect the math that causes the avatar to reach the
474 ; desired velocity
475 ; See http://en.wikipedia.org/wiki/PID_controller
476
477 av_pid_derivative_linux = 2200.0
478 av_pid_proportional_linux = 900.0;
479
480 av_pid_derivative_win = 2200.0
481 av_pid_proportional_win = 900.0;
482
483 ;girth of the avatar. Adds radius to the height also
484 av_capsule_radius = 0.37
485
486 ; Max force permissible to use to keep the avatar standing up straight
487 av_capsule_standup_tensor_win = 550000
488 av_capsule_standup_tensor_linux = 550000
489
490 ; specifies if the capsule should be tilted (=true; old compatibility mode)
491 ; or straight up-and-down (=false; better and more consistent physics behavior)
492 av_capsule_tilted = false
493
494 ; used to calculate mass of avatar.
495 ; float AVvolume = (float) (Math.PI*Math.Pow(CAPSULE_RADIUS, 2)*CAPSULE_LENGTH);
496 ; av_density * AVvolume;
497 av_density = 80
498
499 ; use this value to cut 52% of the height the sim gives us
500 av_height_fudge_factor = 0.52
501
502 ; Movement. Smaller is faster.
503
504 ; speed of movement with Always Run off
505 av_movement_divisor_walk = 1.3
506
507 ; speed of movement with Always Run on
508 av_movement_divisor_run = 0.8
509
510 ; When the avatar flies, it will be moved up by this amount off the ground (in meters)
511 minimum_ground_flight_offset = 3.0
512
513 ; ##
514 ; ## Object options
515 ; ##
516
517 ; used in the mass calculation.
518 geometry_default_density = 10.000006836
519
520 ; amount of ODE steps where object is non moving for ODE to automatically put it to sleep
521 body_frames_auto_disable = 20
522
523 ; used to control llMove2Target
524 body_pid_derivative = 35
525 body_pid_gain = 25
526
527 ; maximum number of contact points to generate per collision
528 contacts_per_collision = 80
529
530 ; amount of time a geom/body will try to cross a region border before it gets disabled
531 geom_crossing_failures_before_outofbounds = 5
532
533 ; start throttling the object updates if object comes in contact with 3 or more other objects
534 geom_contactpoints_start_throttling = 3
535
536 ; send 1 update for every x updates below when throttled
537 geom_updates_before_throttled_update = 15
538
539 ; Used for llSetStatus. How rigid the object rotation is held on the axis specified
540 body_motor_joint_maxforce_tensor_linux = 5
541 body_motor_joint_maxforce_tensor_win = 5
542
543 ; Maximum mass an object can be before it is clamped
544 maximum_mass_object = 10000.01
545
546 ; ##
547 ; ## Sculpted Prim settings
548 ; ##
549
550 ; Do we want to mesh sculpted prim to collide like they look?
551 mesh_sculpted_prim = true
552
553 ; number^2 non-physical level of detail of the sculpt texture. 32x32 - 1024 verticies
554 mesh_lod = 32
555
556 ; number^2 physical level of detail of the sculpt texture. 16x16 - 256 verticies
557 mesh_physical_lod = 16
558
559 ; ##
560 ; ## Physics logging settings - logfiles are saved to *.DIF files
561 ; ##
562
563 ; default is false
564 ;physics_logging = true
565 ;; every n simulation iterations, the physics snapshot file is updated
566 ;physics_logging_interval = 50
567 ;; append to existing physics logfile, or overwrite existing logfiles?
568 ;physics_logging_append_existing_logfile = true
569
570 ; ##
571 ; ## Joint support
572 ; ##
573
574 ; if you would like physics joints to be enabled through a special naming convention in the client, set this to true.
575 ; (see NINJA Physics documentation, http://opensimulator.org/wiki/NINJA_Physics)
576 ; default is false
577 ;use_NINJA_physics_joints = true
578
579 ; ##
580 ; ## additional meshing options
581 ; ##
582
583 ; physical collision mesh proxies are normally created for complex prim shapes, and collisions for simple boxes and
584 ; spheres are computed algorithmically. If you would rather have mesh proxies for simple prims, you can set this to
585 ; true. Note that this will increase memory usage and region startup time. Default is false.
586 ;force_simple_prim_meshing = true
587
588
589[RemoteAdmin]
590 enabled = false
591
592 ; Set this to a nonzero value to have remote admin use a different port
593 port = 0
594
595 ; This password is required to make any XMLRPC call (should be set as the "password" parameter)
596 access_password = unknown
597
598 ; set this variable to true if you want the create_region XmlRpc
599 ; call to unconditionally enable voice on all parcels for a newly
600 ; created region [default: false]
601 create_region_enable_voice = false
602
603 ; set this variable to false if you want the create_region XmlRpc
604 ; call to create all regions as private per default (can be
605 ; overridden in the XmlRpc call) [default: true]
606 create_region_public = false
607
608 ; the create_region XmlRpc call uses region_file_template to generate
609 ; the file name of newly create regions (if they are created
610 ; persistent). the parameter available are:
611 ; {0} - X location
612 ; {1} - Y location
613 ; {2} - region UUID
614 ; {3} - region port
615 ; {4} - region name with " ", ":", "/" mapped to "_"
616 region_file_template = "{0}x{1}-{2}.ini"
617
618 ; we can limit the number of regions that XmlRpcCreateRegion will
619 ; allow by setting this to a positive, non-0 number: as long as the
620 ; number of regions is below region_limits, XmlRpcCreateRegion will
621 ; succeed. setting region_limit to 0 disables the check.
622 ; default is 0
623 ;region_limit = 0
624
625 ; enable only those methods you deem to be appropriate using a | delimited whitelist
626 ; for example, enabled_methods = admin_broadcast|admin_region_query|admin_save_oar|admin_save_xml
627 ; if this parameter is not specified but enabled = true, all methods will be available
628 enabled_methods = all
629
630 ; specify the default appearance for an avatar created through the remote admin interface
631 ; This will only take effect is the file specified by the default_appearance setting below exists
632 ;default_male = Default Male
633 ;default_female = Default Female
634
635 ; update appearance copies inventory items and wearables of default avatars. if this value is false
636 ; (default), just worn assets are copied to the Clothes folder; if true, all Clothes and Bodyparts
637 ; subfolders are copied. the receiver will wear the same items the default avatar did wear.
638 ;copy_folders = false
639
640 ; path to default appearance XML file that specifies the look of the default avatars
641 ;default_appearance = default_appearance.xml
642
643[RestPlugins]
644 ; Change this to true to enable REST Plugins. This must be true if you wish to use
645 ; REST Region or REST Asset and Inventory Plugins
646 enabled = false
647 god_key = SECRET
648 prefix = /admin
649
650
651[RestRegionPlugin]
652 ; Change this to true to enable the REST Region Plugin
653 enabled = false
654
655
656[RestHandler]
657 ; Change this to true to enable the REST Asset and Inventory Plugin
658 enabled = false
659 authenticate = true
660 secured = true
661 extended-escape = true
662 realm = OpenSim REST
663 dump-asset = false
664 path-fill = true
665 dump-line-size = 32
666 flush-on-error = true
667
668
669; Uncomment the following for IRC bridge
670; experimental, so if it breaks... keep both parts... yada yada
671; also, not good error detection when it fails
672;[IRC]
673 ;enabled = true ; you need to set this otherwise it won't connect
674 ;server = name.of.irc.server.on.the.net
675 ;; user password - only use this if the server requires one
676 ;password = mypass
677 ;nick = OpenSimBotNameProbablyMakeThisShorter
678 ;channel = #the_irc_channel_you_want_to_connect_to
679 ;user = "USER OpenSimBot 8 * :I'm an OpenSim to IRC bot"
680 ;port = 6667
681 ;; channel to listen for configuration commands
682 ;commands_enabled = false
683 ;command_channel = 2777
684 ;report_clients = true
685 ;; relay private chat connections
686 ;; relay_private_channels = true: will relay IRC chat from/to private in-world channels
687 ;; relay_private_channel_out -- channel to send messages out to the IRC bridge
688 ;; relay_private_channel_in -- channel to receive message from the IRC bridge
689 ;; relay_chat = false: IRC bridge will not relay normal chat
690 ;; access_password -- simple security device
691 ;;
692 ;; so, to just relay chat from an IRC channel to in-world region and vice versa:
693 ;;
694 ;; relay_private_channels = false
695 ;; relay_chat = true
696 ;;
697 ;; to relay chat only to/from private in-world channels:
698 ;;
699 ;; relay_chat = false
700 ;; relay_private_channels = true
701 ;; relay_private_channel_in = 2226
702 ;; relay_private_channel_out = 2225
703 ;;
704 ;; in this example, all chat coming in from IRC will be send out via
705 ;; in-world channel 2226, and all chat from in-world channel 2225 will
706 ;; be relayed to the IRC channel.
707 ;;
708 ;relay_private_channels = false
709 ;relay_private_channel_in = 2226
710 ;relay_private_channel_out = 2225
711 ;relay_chat = true
712 ;access_password = foobar
713
714 ;;fallback_region = name of "default" region
715 ;;MSGformat fields : 0=botnick, 1=user, 2=region, 3=message
716 ;; must start with "PRIVMSG {0} : " or irc server will get upset
717 ;;for <bot>:<user in region> :<message>
718 ;;msgformat = "PRIVMSG {0} :<{1} in {2}>: {3}"
719 ;;for <bot>:<message> - <user of region> :
720 ;msgformat = "PRIVMSG {0} : {3} - {1} of {2}"
721 ;;for <bot>:<message> - from <user> :
722 ;;msgformat = "PRIVMSG {0} : {3} - from {1}"
723
724 ;; exclude_list allows you to stop the IRC connector from announcing the
725 ;;arrival and departure of certain users. For example: admins, bots.
726
727 ;exclude_list=User 1,User 2,User 3
728
729
730;[CMS]
731 ;enabled = true
732 ;channel = 345
733
734
735; Uncomment the following to control the progression of daytime
736; in the Sim. The defaults are what is shown below
737;[Sun]
738 ; number of wall clock hours for an opensim day. 24.0 would mean realtime
739 ;day_length = 4
740 ; Year length in days
741 ;year_length = 60
742 ; Day to Night Ratio
743 ;day_night_offset = 0.45
744 ; send a Sun update every update_interval # of frames. A lower number will
745 ; make for smoother sun transition at the cost of network
746 ;update_interval = 100
747
748
749[Wind]
750 ; Enables the wind module. Default is true
751 enabled = true
752
753 ; How often should wind be updated, as a function of world frames. Approximately 50 frames a second
754 wind_update_rate = 150
755
756 ; The Default Wind Plugin to load
757 wind_plugin = SimpleRandomWind
758
759 ; These settings are specific to the ConfigurableWind plugin
760 ; To use ConfigurableWind as the default, simply change wind_plugin to ConfigurableWind and uncomment the following.
761 ; avg_strength = 5.0
762 ; avg_direction = 0.0
763 ; var_strength = 0.0
764 ; var_direction = 0.0
765 ; rate_change = 1.0
766
767 ; This setting is specific to the SimpleRandomWind plugin
768 ; Adjusts wind strength. 0.0 = no wind, 1.0 = normal wind. Default is 1.0
769 strength = 1.0
770
771
772[Cloud]
773 ; Enable this to generate classic particle clouds above the sim.
774 ; default is disabled - turn it on here
775 enabled = false
776
777 ; Density of cloud cover 0.0 to 1.0 Defult 0.5
778 density = 0.5
779
780 ; update interval for the cloud cover data returned by llCloud().
781 ; default is 1000
782 cloud_update_rate = 1000
783
784[LightShare]
785
786 ; This enables the transmission of Windlight scenes to supporting clients, such as the Meta7 viewer.
787 ; It has no ill effect on viewers which do not support server-side windlight settings.
788 ; Currently we only have support for MySQL databases.
789 enable_windlight = false;
790
791[Trees]
792 ; Enable this to allow the tree module to manage your sim trees, including growing, reproducing and dying
793 ; default is false
794 active_trees = false
795
796 ; Density of tree population
797 tree_density = 1000.0
798
799
800[VectorRender]
801
802 ; the font to use for rendering text (default: Arial)
803 ; font_name = "Arial"
804
805
806[LL-Functions]
807 ; Set the following to true to allow administrator owned scripts to execute console commands
808 ; currently unused
809 ; AllowosConsoleCommand=false
810
811 AllowGodFunctions = false
812
813 ; Maximum number of llListen events we allow per script
814 ; Set this to 0 to have no limit imposed.
815 max_listens_per_script = 64
816
817
818[DataSnapshot]
819 ; The following set of configs pertains to search.
820 ; Set index_sims to true to enable search engines to index your searchable data
821 ; If false, no data will be exposed, DataSnapshot module will be off, and you can ignore the rest of these search-related configs
822 ; default is false
823 index_sims = false
824
825 ; The variable data_exposure controls what the regions expose:
826 ; minimum: exposes only things explicitly marked for search
827 ; all: exposes everything
828 data_exposure = minimum
829
830 ; If search is on, change this to your grid name; will be ignored for standalones
831 gridname = "OSGrid"
832
833 ; Period between data snapshots, in seconds. 20 minutes, for starters, so that you see the initial changes fast.
834 ; Later, you may want to increase this to 3600 (1 hour) or more
835 default_snapshot_period = 1200
836
837 ; This will be created in bin, if it doesn't exist already. It will hold the data snapshots.
838 snapshot_cache_directory = "DataSnapshot"
839
840 ; This semicolon-separated string serves to notify specific data services about the existence
841 ; of this sim. Uncomment if you want to index your data with this and/or other search providers.
842 ;data_services="http://metaverseink.com/cgi-bin/register.py"
843
844
845[Economy]
846 ; These economy values get used in the BetaGridLikeMoneyModule. - This module is for demonstration only -
847
848 ; Enables selling things for $0
849 SellEnabled = "false"
850
851 ; 45000 is the highest value that the sim could possibly report because of protocol constraints
852 ObjectCapacity = 45000
853
854 ; Money Unit fee to upload textures, animations etc
855 PriceUpload = 0
856
857 ; Money Unit fee to create groups
858 PriceGroupCreate = 0
859
860 ; We don't really know what the rest of these values do. These get sent to the client
861 ; These taken from Agni at a Public Telehub. Change at your own risk.
862 ObjectCount = 0
863 PriceEnergyUnit = 100
864 PriceObjectClaim = 10
865 PricePublicObjectDecay = 4
866 PricePublicObjectDelete = 4
867 PriceParcelClaim = 1
868 PriceParcelClaimFactor = 1
869
870 PriceRentLight = 5
871 TeleportMinPrice = 2
872 TeleportPriceExponent = 2
873 EnergyEfficiency = 1
874 PriceObjectRent = 1
875 PriceObjectScaleFactor = 10
876 PriceParcelRent = 1
877
878
879[SVN]
880 Enabled = false
881 Directory = SVNmodule\repo
882 URL = "svn://your.repo.here/"
883 Username = "user"
884 Password = "password"
885 ImportOnStartup = false
886 Autosave = false
887 AutoSavePeriod = 15 ; Number of minutes between autosave backups
888
889
890[XEngine]
891 ; Enable this engine in this OpenSim instance
892 Enabled = true
893
894 ; How many threads to keep alive even if nothing is happening
895 MinThreads = 2
896
897 ; How many threads to start at maximum load
898 MaxThreads = 100
899
900 ; Time a thread must be idle (in seconds) before it dies
901 IdleTimeout = 60
902
903 ; Thread priority ("Lowest", "BelowNormal", "Normal", "AboveNormal", "Highest")
904 Priority = "BelowNormal"
905
906 ; Maximum number of events to queue for a script (excluding timers)
907 MaxScriptEventQueue = 300
908
909 ; Stack size per thread created
910 ThreadStackSize = 262144
911
912 ; Set this to true (the default) to load each script into a separate
913 ; AppDomain. Setting this to false will load all script assemblies into the
914 ; current AppDomain, which will reduce the per-script overhead at the
915 ; expense of reduced security and the inability to garbage collect the
916 ; script assemblies
917 AppDomainLoading = true
918
919 ; Rate to poll for asynchronous command replies (ms)
920 ; currently unused
921 ;AsyncLLCommandLoopms = 50
922
923 ; Save the source of all compiled scripts
924 WriteScriptSourceToDebugFile = false
925
926 ; Default language for scripts
927 DefaultCompileLanguage = lsl
928
929 ; List of allowed languages (lsl,vb,js,cs)
930 ; AllowedCompilers=lsl,cs,js,vb.
931 ; *warning*, non lsl languages have access to static methods such as System.IO.File. Enable at your own risk.
932 AllowedCompilers=lsl
933
934 ; Compile debug info (line numbers) into the script assemblies
935 CompileWithDebugInformation = true
936
937 ; Allow the user of mod* functions. This allows a script to pass messages
938 ; to a region module via the modSendCommand() function
939 ; Default is false
940 AllowMODFunctions = false
941
942 ; Allow the use of os* functions (some are dangerous)
943 AllowOSFunctions = false
944
945 ; Allow the user of LightShare functions
946 AllowLightShareFunctions = false
947
948 ; Threat level to allow, one of None, VeryLow, Low, Moderate, High, VeryHigh, Severe
949 OSFunctionThreatLevel = VeryLow
950
951 ; Interval (s) between background save of script states
952 SaveInterval = 120
953
954 ; Interval (s) between maintenance runs (0 = disable)
955 MaintenanceInterval = 10
956
957 ; Time a script can spend in an event handler before it is interrupted
958 EventLimit = 30
959
960 ; If a script overruns it's event limit, kill the script?
961 KillTimedOutScripts = false
962
963 ; Sets the multiplier for the scripting delays
964 ScriptDelayFactor = 1.0
965
966 ; The factor the 10 m distances llimits are multiplied by
967 ScriptDistanceLimitFactor = 1.0
968
969 ; Maximum length of notecard line read
970 ; Increasing this to large values potentially opens
971 ; up the system to malicious scripters
972 ; NotecardLineReadCharsMax = 255
973
974 ; Sensor settings
975 SensorMaxRange = 96.0
976 SensorMaxResults = 16
977
978 ; OS Functions enable/disable
979 ; For each function, you can add one line, as shown
980 ; The default for all functions allows them if below threat level
981
982 ; true allows the use of the function unconditionally
983 ; Allow_osSetRegionWaterHeight = true
984
985 ; false disables the function completely
986 ; Allow_osSetRegionWaterHeight = false
987
988 ; Comma separated list of UUIDS allows the function for that list of UUIDS
989 ; Allow_osSetRegionWaterHeight = 888760cb-a3cf-43ac-8ea4-8732fd3ee2bb
990
991 ; You can also use script creators as the uuid
992 ; Creators_osSetRegionWaterHeight = <uuid>, ...
993
994 ; If both Allow_ and Creators_ are given, effective permissions
995 ; are the union of the two.
996
997 ; Allow for llCreateLink and llBreakLink to work without asking for permission
998 ; only enable this in a trusted environment otherwise you may be subject to hijacking
999 ; AutomaticLinkPermission = false
1000
1001 ; Disable underground movement of prims (default true); set to
1002 ; false to allow script controlled underground positioning of
1003 ; prims
1004 ; DisableUndergroundMovement = true
1005
1006
1007[OpenGridProtocol]
1008 ;These are the settings for the Open Grid Protocol.. the Agent Domain, Region Domain, you know..
1009 ;On/true or Off/false
1010 ogp_enabled=false
1011
1012 ;Name Prefix/suffix when using OGP
1013 ogp_firstname_prefix=""
1014 ogp_lastname_suffix="_EXTERNAL"
1015
1016
1017[Concierge]
1018 ; Enable concierge module
1019 ; Default is false
1020 enabled = false
1021
1022 ; name of the concierge
1023 whoami = "jeeves"
1024
1025 ; password for updating the welcome message templates via XmlRpc
1026 password = SECRET
1027
1028 ; regex specifying for which regions concierge service is desired; if
1029 ; empty, then for all
1030 regions = "^MeetingSpace-"
1031
1032 ; for each region that matches the regions regexp you can provide
1033 ; (optionally) a welcome template using format substitution:
1034 ; {0} is replaced with the name of the avatar entering the region
1035 ; {1} is replaced with the name of the region
1036 ; {2} is replaced with the name of the concierge (whoami variable above)
1037
1038 welcomes = /path/to/welcome/template/directory
1039
1040 ; Concierge can send attendee lists to an event broker whenever an
1041 ; avatar enters or leaves a concierged region. the URL is subject
1042 ; to format substitution:
1043 ; {0} is replaced with the region's name
1044 ; {1} is replaced with the region's UUID
1045 broker = "http://broker.place.com/{1}"
1046
1047
1048[RegionReady]
1049 ; Enable this module to get notified once all items and scripts in the region have been completely loaded and compiled
1050 ; default is false
1051 enabled = false
1052
1053 ; Channel on which to signal region readiness through a message
1054 ; formatted as follows: "{server_startup|oar_file_load},{0|1},n,[oar error]"
1055 ; - the first field indicating whether this is an initial server startup
1056 ; - the second field is a number indicating whether the OAR file loaded ok (1 == ok, 0 == error)
1057 ; - the third field is a number indicating how many scripts failed to compile
1058 ; - "oar error" if supplied, provides the error message from the OAR load
1059 channel_notify = -800
1060
1061
1062[MRM]
1063 ; Enables the Mini Region Modules Script Engine.
1064 ; default is false
1065 Enabled = false
1066
1067 ; Runs MRM in a Security Sandbox
1068 ; WARNING: DISABLING IS A SECURITY RISK.
1069 Sandboxed = true
1070
1071 ; The level sandbox to use, adjust at your OWN RISK.
1072 ; Valid values are:
1073 ; * FullTrust
1074 ; * SkipVerification
1075 ; * Execution
1076 ; * Nothing
1077 ; * LocalIntranet
1078 ; * Internet
1079 ; * Everything
1080 SandboxLevel = "Internet"
1081
1082 ; Only allow Region Owners to run MRMs
1083 ; May represent a security risk if you disable this.
1084 OwnerOnly = true
1085
1086[Hypergrid]
1087 ; Keep it false for now. Making it true requires the use of a special client in order to access inventory
1088 safemode = false
1089
1090[VivoxVoice]
1091 ; The VivoxVoice module will allow you to provide voice on your
1092 ; region(s). It uses the same voice technology as the LL grid and
1093 ; works with recent LL clients (we have tested 1.22.9.110075, so
1094 ; anything later ought to be fine as well).
1095 ;
1096 ; For this to work you need to obtain an admin account from Vivox
1097 ; that allows you to create voice accounts and region channels.
1098
1099 enabled = false
1100
1101 ; vivox voice server
1102 vivox_server = www.foobar.vivox.com
1103
1104 ; vivox SIP URI
1105 vivox_sip_uri = foobar.vivox.com
1106
1107 ; vivox admin user name
1108 vivox_admin_user = DeepThroat
1109
1110 ; vivox admin password
1111 vivox_admin_password = VoiceG4te
1112
1113 ; channel type: "channel" or "positional"
1114 ; - positional: spatial sound (default)
1115 ; - channel: normal "conference call", no spatial sound
1116 ;vivox_channel_type = positional
1117
1118 ; channel characteristics (unless you know what you are doing, i'd
1119 ; leave them as they are --- now you WILL muck around with them,
1120 ; huh? sigh)
1121
1122 ; channel distance model:
1123 ; 0 - no attenuation
1124 ; 1 - inverse distance attenuation
1125 ; 2 - linear attenuation (default)
1126 ; 3 - exponential attenuation
1127 ;vivox_channel_distance_model = 2
1128
1129 ; channel mode:
1130 ; - "open" (default)
1131 ; - "lecture"
1132 ; - "presentation"
1133 ; - "auditorium"
1134 ;vivox_channel_mode = "open"
1135
1136 ; channel roll off: rate of attenuation
1137 ; - a value between 1.0 and 4.0, default is 2.0
1138 ;vivox_channel_roll_off = 2.0
1139
1140 ; channel max range: distance at which channel is silent
1141 ; - a value between 0 and 160, default is 80
1142 ;vivox_channel_max_range = 80
1143
1144 ; channel clamping distance: distance before attenuation applies
1145 ; - a value between 0 and 160, default is 10
1146 ;vivox_channel_clamping_distance = 10
1147
1148[FreeSwitchVoice]
1149 ; In order for this to work you need a functioning FreeSWITCH PBX set up.
1150 ; Configuration details at http://opensimulator.org/wiki/Freeswitch_Module
1151 enabled = false
1152 ; FreeSWITCH server is going to contact us and ask us all sorts of things
1153 freeswitch_server_user = freeswitch
1154 freeswitch_server_pass = password
1155 freeswitch_api_prefix = /api
1156 ; external IP address of your OpenSim voice enabled region
1157 ; note: all regions running on same OpenSim.exe will be enabled
1158 freeswitch_service_server = ip.address.of.your.sim
1159 ; this should be the same port the region listens on
1160 freeswitch_service_port = 9000
1161 freeswitch_realm = ip.address.of.freeswitch.server
1162 freeswitch_sip_proxy = ip.address.of.freeswitch.server:5060
1163 ; STUN = Simple Traversal of UDP through NATs
1164 ; See http://wiki.freeswitch.org/wiki/NAT_Traversal
1165 ; stun.freeswitch.org is not guaranteed to be running so use it in production at your own risk
1166 freeswitch_attempt_stun = false
1167 freeswitch_stun_server = ip.address.of.stun.server
1168 freeswitch_echo_server = ip.address.of.freeswitch.server
1169 freeswitch_echo_port = 50505
1170 freeswitch_well_known_ip = ip.address.of.freeswitch.server
1171 ;
1172 ; Type the address of your http server here, hostname is allowed. This is provided so you can specify a hostname
1173 ; This is used by client for account verification. By default, it's the same as the freeswitch service server.
1174 ;
1175 ; opensim_well_known_http_address = Address_Of_Your_SIM_HTTP_Server_Hostname_Allowed
1176 ;
1177 freeswitch_default_timeout = 5000
1178 freeswitch_subscribe_retry = 120
1179 ; freeswitch_password_reset_url =
1180
1181[Groups]
1182 Enabled = false
1183
1184 ; This is the current groups stub in Region.CoreModules.Avatar.Groups. All the other settings below only really
1185 ; apply to the Flotsam/SimianGrid GroupsModule
1186 Module = Default
1187
1188 ; This module can use a PHP XmlRpc server from the Flotsam project at http://code.google.com/p/flotsam/
1189 ; or from the SimianGrid project at http://code.google.com/p/openmetaverse
1190 ;Module = GroupsModule
1191
1192 ; Enable Group Notices
1193 ;NoticesEnabled = true
1194
1195 ; This makes the Groups modules very chatty on the console.
1196 DebugEnabled = false
1197
1198 ; Specify which messaging module to use for groups messaging and if it's enabled
1199 ;MessagingModule = GroupsMessagingModule
1200 ;MessagingEnabled = true
1201
1202 ; Service connectors to the Groups Service. Select one depending on whether you're using a Flotsam XmlRpc backend or a SimianGrid backend
1203
1204 ; SimianGrid Service for Groups
1205 ;ServicesConnectorModule = SimianGroupsServicesConnector
1206 ;GroupsServerURI = http://mygridserver.com:82/Grid/
1207
1208 ; Flotsam XmlRpc Service for Groups
1209 ;ServicesConnectorModule = XmlRpcGroupsServicesConnector
1210 ;GroupsServerURI = http://yourxmlrpcserver.com/xmlrpc.php
1211
1212 ; XmlRpc Security settings. These must match those set on your backend groups service.
1213 ;XmlRpcServiceReadKey = 1234
1214 ;XmlRpcServiceWriteKey = 1234
1215
1216 ; Disables HTTP Keep-Alive for XmlRpcGroupsServicesConnector HTTP Requests,
1217 ; this is a work around fora problem discovered on some Windows based region servers.
1218 ; Only disable keep alive if you see a large number (dozens) of the following Exceptions:
1219 ; System.Net.WebException: The request was aborted: The request was canceled.
1220 ; XmlRpcDisableKeepAlive = false
1221
1222
1223[PacketPool]
1224 ; Enables the experimental packet pool. Yes, we've been here before.
1225 ;RecyclePackets = true;
1226 ;RecycleDataBlocks = true;
1227
1228
1229[InterestManagement]
1230 ; This section controls how state updates are prioritized for each client
1231 ; Valid values are Time, Distance, SimpleAngularDistance, and FrontBack
1232 UpdatePrioritizationScheme = FrontBack
1233 ReprioritizationEnabled = true
1234 ReprioritizationInterval = 2000.0
1235 RootReprioritizationDistance = 10.0
1236 ChildReprioritizationDistance = 20.0
1237
1238
1239[WebStats]
1240; View region statistics via a web page
1241; See http://opensimulator.org/wiki/FAQ#Region_Statistics_on_a_Web_Page
1242; Use a web browser and type in the "Login URI" + "/SStats/"
1243; For example- http://127.0.0.1:9000/SStats/
1244; enabled=false
1245
1246
1247[MediaOnAPrim]
1248 ; Enable media on a prim facilities
1249 Enabled = true;
1250
1251
1252;;
1253;; These are defaults that are overwritten below in [Architecture].
1254;; These defaults allow OpenSim to work out of the box with
1255;; zero configuration
1256;;
1257[AssetService]
1258 DefaultAssetLoader = "OpenSim.Framework.AssetLoader.Filesystem.dll"
1259 AssetLoaderArgs = "assets/AssetSets.xml"
1260
1261 ; Disable this to prevent the default asset set from being inserted into the
1262 ; asset store each time the region starts
1263 AssetLoaderEnabled = true
1264
1265[GridService]
1266 ;; default standalone, overridable in StandaloneCommon.ini
1267 StorageProvider = "OpenSim.Data.Null.dll:NullRegionData"
1268
1269 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1270 ;; The following is the configuration section for the new style services
1271 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1272[Architecture]
1273 ; Choose exactly one and only one of the architectures below.
1274
1275 Include-Standalone = "config-include/Standalone.ini"
1276 ;Include-HGStandalone = "config-include/StandaloneHypergrid.ini"
1277 ;Include-Grid = "config-include/Grid.ini"
1278 ;Include-HGGrid = "config-include/GridHypergrid.ini"
1279 ;Include-SimianGrid = "config-include/SimianGrid.ini"
1280 ;Include-HyperSimianGrid = "config-include/HyperSimianGrid.ini"
1281
1282 ; Then choose
1283 ; config-include/StandaloneCommon.ini.example (if you're in standlone) OR
1284 ; config-include/GridCommon.ini.example (if you're connected to a grid)
1285 ; Copy to your own .ini there (without .example extension) and edit it
1286 ; to customize your data
1287
1288
1289 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1290 ;; The below pulls in optional module config files
1291 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1292[Modules]
1293 Include-modules = "addon-modules/*/config/*.ini"
1294
1295
1296;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1297;; ENSURE [Architecture] and [Modules] Sections with their "includes"
1298;; are last to allow for overrides
1299;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
diff --git a/bin/config-include/storage/SQLiteLegacyStandalone.ini b/bin/config-include/storage/SQLiteLegacyStandalone.ini
new file mode 100644
index 0000000..facbbd6
--- /dev/null
+++ b/bin/config-include/storage/SQLiteLegacyStandalone.ini
@@ -0,0 +1,17 @@
1; These are the initialization settings for running OpenSim Standalone with an SQLite database
2
3[DatabaseService]
4 StorageProvider = "OpenSim.Data.SQLiteLegacy.dll"
5 ConnectionString = "URI=file:OpenSim.db,version=3,UseUTF16Encoding=True"
6
7[AvatarService]
8 ConnectionString = "URI=file:avatars.db,version=3"
9
10[AuthenticationService]
11 ConnectionString = "URI=file:auth.db,version=3"
12
13[UserAccountService]
14 ConnectionString = "URI=file:userprofiles.db,version=3"
15
16[FriendsService]
17 ConnectionString = "URI=file:friends.db,version=3"
diff --git a/bin/config-include/storage/SQLiteStandalone.ini b/bin/config-include/storage/SQLiteStandalone.ini
new file mode 100644
index 0000000..10e6991
--- /dev/null
+++ b/bin/config-include/storage/SQLiteStandalone.ini
@@ -0,0 +1,26 @@
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[InventoryService]
8 ;ConnectionString = "URI=file:inventory.db,version=3"
9 ; if you have a legacy inventory store use the connection string below
10 ConnectionString = "URI=file:inventory.db,version=3,UseUTF16Encoding=True"
11
12[AvatarService]
13 ConnectionString = "URI=file:avatars.db,version=3"
14
15[AuthenticationService]
16 ConnectionString = "URI=file:auth.db,version=3"
17
18[UserAccountService]
19 ConnectionString = "URI=file:userprofiles.db,version=3"
20
21[GridUserService]
22 ConnectionString = "URI=file:griduser.db,version=3"
23
24[FriendsService]
25 ConnectionString = "URI=file:friends.db,version=3"
26