Setting Up Mega-Regions

From OpenSim

Jump to: navigation, search

Contents

Introduction

Megaregions are an experimental feature of OpenSimulator that allow multiple 256 x 256 meter regions to be combined in to a single larger region, such that there is no border transition between regions and moving into the various regions will return position co-ordinates greater than 256.

Megaregions are a hack that make use of existing SL protocol mechanisms, and so do not require the viewer to be explicitly aware of the fact that a region is actually larger than 256 x 256. As such, there are aspects of megaregions that do not work very well. For example, teleporting into a megaregion may require the simulator to execute a double teleport for that client (one teleport after another) since the viewer cannot directly teleport into other parts of the megaregion except for the 256 x 256 part in the south-west corner. It may be possible to resolve these with time if viewers implement explicit support for megaregions.

Also, megaregion support has a number of bugs (e.g. terrain issues) which mean that it can only be considered experimental. These are simulator-side bugs that can be fixed (slowly) over time.

A newer way of supporting large regions is called Varregion. Unlike megaregions, this requires explicit viewer support. However, this support means that it does not need to rely on fragile hacks to work and will be much more functional and stable in the future.

Layout Diagram

Here is a diagram of possible configurations. This is not all inclusive but is a good example of layout for the regions.

SPECIAL NOTE - Some Viewers still suffer the 4096 Teleport Bug where people cannot teleport more than 4096 regions away. OSGrid is centered @ 10000 10000. Some Viewers, such as MeerKat or Imprudence, have addressed this recently, others will likely follow suit. This bug applies to HyperGrided regions as well as Non-Hypergrid regions.

Do not place Mega regions and normal regions any closer than 2 regions spaces apart, as they WILL interfere with each other.


Mega region Layout Example

Steps

Step 0: Back Up Regions

If your OpenSimulator instance doesn't have currently any contents, then skip to #Step 1: Edit the File "OpenSim.ini".

If your regions have existing content, joining them may be dangerous -- you risk losing content. By way of precaution,

  1. Make a backup of your database. See Backups for instructions.
  2. Make an OAR for EACH REGION which you intend integrate into a megaregion. See OpenSim Archives for instructions.

Step 1: Edit the File "OpenSim.ini"

Modify your OpenSim.ini. In [Startup] section, change

; CombineContiguousRegions = false

to

CombineContiguousRegions = true

Step 2: Edit the File "Regions.ini"

Edit the file Region.ini which is located in "bin/Regions".

The example provided in #Example of Regions.ini File below is for a Mega-Region consists of 3x3, 9 simulator. Fill in the correct information in all the required fields. Remember to order your regions from South-West to North-East in your Regions.ini.

Step 3 : Start OpenSimulator Instance

Start Opensimulator. If your regions have no contents, then you already have it! If not,

  1. You will see a number of error messages -- ignore them.
  2. Wait for a while before console activity stopping, then type: fix-phantoms
  3. Wait before process completing. It can take several minutes for the backup thread to store everything.
  4. When the console activity stops, type: backup (This will persist the data into the Database again as a precaution).
  5. Restart Opensim, and check that all the objects are in their right places.

See Also: Importing OARs into megaregions (Diva's blog post)

Example of Regions.ini File

; 9 Simulator 3x3 Mega-Region Example
; Supply a unique UUID for each region
; Unique InternalPort for Each Region
; 
;************************************************
[RegionName_SW]
RegionUUID = 00000000-0000-0000-0000-000000000000
Location = 5000,5000
InternalAddress = 0.0.0.0
InternalPort = 9001
AllowAlternatePorts = False
ExternalHostName = YourIP_DNSname
;
;NonphysicalPrimMax = 0
;PhysicalPrimMax = 0
ClampPrimSize = False
;MaxPrims = 15000
;
;ScopeID = 00000000-0000-0000-0000-000000000000
;************************************************
[RegionName_W]
RegionUUID = 00000000-0000-0000-0000-000000000000
Location = 5000,5001
InternalAddress = 0.0.0.0
InternalPort = 9002
AllowAlternatePorts = False
ExternalHostName = YourIP_DNSname
;
;NonphysicalPrimMax = 0
;PhysicalPrimMax = 0
ClampPrimSize = False
;MaxPrims = 15000
; 
;ScopeID = 00000000-0000-0000-0000-000000000000
;************************************************
[RegionName_NW]
RegionUUID = 84b41485-6884-412d-b4a2-2f6941559924
Location = 5000,5002
InternalAddress = 0.0.0.0
InternalPort = 9003
AllowAlternatePorts = False
ExternalHostName = YourIP_DNSname
; 
;NonphysicalPrimMax = 0
;PhysicalPrimMax = 0
ClampPrimSize = False
;MaxPrims = 15000
; 
;ScopeID = 00000000-0000-0000-0000-000000000000
;
;************************************************
[RegionName_S]
RegionUUID = 00000000-0000-0000-0000-000000000000
Location = 5001,5000
InternalAddress = 0.0.0.0
InternalPort = 9004
AllowAlternatePorts = False
ExternalHostName = YourIP_DNSname
; 
;NonphysicalPrimMax = 0
;PhysicalPrimMax = 0
ClampPrimSize = False
;MaxPrims = 15000
; 
;ScopeID = 00000000-0000-0000-0000-000000000000
;
;************************************************
[RegionName_Centre]
RegionUUID = 00000000-0000-0000-0000-000000000000
Location = 5001,5001
InternalAddress = 0.0.0.0
InternalPort = 9005
AllowAlternatePorts = False
ExternalHostName = YourIP_DNSname
; 
;NonphysicalPrimMax = 0
;PhysicalPrimMax = 0
ClampPrimSize = False
;MaxPrims = 15000
; 
;ScopeID = 00000000-0000-0000-0000-000000000000
;************************************************
[RegionName_N]
RegionUUID = 00000000-0000-0000-0000-000000000000
Location = 5001,5002
InternalAddress = 0.0.0.0
InternalPort = 9006
AllowAlternatePorts = False
ExternalHostName = YourIP_DNSname
; 
;NonphysicalPrimMax = 0
;PhysicalPrimMax = 0
ClampPrimSize = False
;MaxPrims = 15000
;ScopeID = 00000000-0000-0000-0000-000000000000
;
;************************************************
;
[RegionName_SE]
RegionUUID = 00000000-0000-0000-0000-000000000000
Location = 5002,5000
InternalAddress = 0.0.0.0
InternalPort = 9007
AllowAlternatePorts = False
ExternalHostName = YourIP_DNSname
; 
;NonphysicalPrimMax = 0
;PhysicalPrimMax = 0
ClampPrimSize = False
;MaxPrims = 15000
; 
;ScopeID = 00000000-0000-0000-0000-000000000000
;
;************************************************
[RegionName_E]
RegionUUID = 00000000-0000-0000-0000-000000000000
Location = 5002,5001
InternalAddress = 0.0.0.0
InternalPort = 9008
AllowAlternatePorts = False
ExternalHostName = YourIP_DNSname
;
;NonphysicalPrimMax = 0
;PhysicalPrimMax = 0
ClampPrimSize = False
;MaxPrims = 15000
; 
;ScopeID = 00000000-0000-0000-0000-000000000000
;
;************************************************
[RegionName_NE]
RegionUUID = 00000000-0000-0000-0000-000000000000
Location = 5002,5002
InternalAddress = 0.0.0.0
InternalPort = 9009
AllowAlternatePorts = False
ExternalHostName = YourIP_DNSname
; 
;NonphysicalPrimMax = 0
;PhysicalPrimMax = 0
ClampPrimSize = False
;MaxPrims = 15000
; 
;ScopeID = 00000000-0000-0000-0000-000000000000
;
;************************************************
Personal tools
About This Wiki