<?xml version="1.0"?>
<?xml-stylesheet type="text/css" href="http://opensimulator.org/skins/common/feed.css?303"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>http://opensimulator.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Rich43</id>
		<title>OpenSimulator - User contributions [en]</title>
		<link rel="self" type="application/atom+xml" href="http://opensimulator.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Rich43"/>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/Special:Contributions/Rich43"/>
		<updated>2026-05-11T21:47:36Z</updated>
		<subtitle>User contributions</subtitle>
		<generator>MediaWiki 1.19.9</generator>

	<entry>
		<id>http://opensimulator.org/wiki/Configuration</id>
		<title>Configuration</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/Configuration"/>
				<updated>2008-09-11T22:12:17Z</updated>
		
		<summary type="html">&lt;p&gt;Rich43: /* Multiple regions */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==OpenSim configuration file==&lt;br /&gt;
The simulator configuration is managed using a file called [[OpenSim.ini]]. This file is used regardless of whether the sim is running in standalone or grid mode. Detailed information on the options available for setttings in this file can be found [[OpenSim.ini|here]].&lt;br /&gt;
&lt;br /&gt;
==Database==&lt;br /&gt;
Opensim's supports the following database-engines:&lt;br /&gt;
* SQLite (default - a lightweight database that comes bundled with OpenSim and can be used without requiring any extra configuration.  It is mostly intended to get you up and running quickly, not for production use.)&lt;br /&gt;
* MySQL (fully supported)&lt;br /&gt;
* MSSQL (partially supported - some recent OpenSim features may not yet be implemented)&lt;br /&gt;
&lt;br /&gt;
More information on database support can be found on the [[OpenSim Database support]] page.&lt;br /&gt;
&lt;br /&gt;
==Standalone vs. Grid==&lt;br /&gt;
We recommend that you first get OpenSim running in standalone mode before you attempt to connect it to a grid, either your own grid or a public grid.  An OpenSim configuration consists of regions (run by region simulators) and 5 core backend services (which manage users, the grid, assets, inventories, and grid-wide messaging, collectively known as UGAIM).&lt;br /&gt;
&lt;br /&gt;
A system running in '''standalone mode''' (that is, one  with OpenSim.ini configured such that gridmode = false) -- also known as &amp;quot;sandbox mode&amp;quot; -- runs everything (all UGAIM services and one or more regions) in a single executable (OpenSim.exe).  External regions cannot be added to an OpenSim running in this mode.&lt;br /&gt;
&lt;br /&gt;
In '''grid mode''', the five ugaim services are each started as separate executables.  This means that they can be run either on the same machine or spread out across multiple computers.  In this mode, OpenSim.exe serves one or more regions, which communicate with the core servers.  This mode even allows region servers run by other people on their own machines to connect, if you wish.&lt;br /&gt;
&lt;br /&gt;
Naturally, this means that running in grid mode is somewhat more complicated than running in standalone mode.  It requires an understanding of UUID, X,Y location, server handshake passwords, master avatars, and a couple of other settings. These are not difficult, but do require a little more care in setting things up.&lt;br /&gt;
&lt;br /&gt;
If you want to run a grid of your own (either private or public) you would start the core services up before connecting a region simulator.  If you want to connect your region server to a grid that someone else is running, you need only start the region server in grid mode (with the necessary security keys and location information mentioned in the last paragraph).&lt;br /&gt;
&lt;br /&gt;
OpenSim.exe responds to various command line arguments. These include &amp;quot;-inifile&amp;quot;, &amp;quot;-configfile&amp;quot;, &amp;quot;-gridmode&amp;quot;, &amp;quot;-physics&amp;quot;, &amp;quot;-config&amp;quot; &amp;amp; &amp;quot;-noverbose&amp;quot;. When starting OpenSim in either Windows or Linux, one could, for example, add &amp;quot;-physics=OpenDynamicsEngine&amp;quot; to run the OpenDynamicsEngine instead of basicphysics, or use &amp;quot;-gridmode=true&amp;quot; to force opensim.exe to run as a region server (the rest of the grid services have their own executables).  As many of these settings are normally controlled by OpenSim.ini, most users (especially in standalone mode) will not add any command line arguments.&lt;br /&gt;
&lt;br /&gt;
===Standalone mode===&lt;br /&gt;
&lt;br /&gt;
When you start OpenSim in standalone mode, it will ask you several questions at the console. The first set of prompts that start with &amp;quot;NETWORK SERVERS INFO&amp;quot;, you can just hit return to accept the defaults if you will be running in standalone mode. The prompts that start with &amp;quot;DEFAULT REGION CONFIG&amp;quot; are where you need to start paying attention. Some are self-explanatory. Here are explanations for the others:&amp;lt;br&amp;gt;&lt;br /&gt;
* Grid Location. OpenSim regions can be placed anywhere on a 65536 by 65536 grid. In standalone mode, it is safe to leave these X and Y locations at their defaults for the first region (additional regions will need different coordinates, of course).&lt;br /&gt;
* Filename for local storage. Safe to leave at default.&lt;br /&gt;
* Internal IP address; This should always be 0.0.0.0 (0.0.0.0 means &amp;quot;listen for connections on any interface&amp;quot;, basically a wildcard)&lt;br /&gt;
* Internal IP port for incoming UDP client connection. You can make this any port you want, but it is safe to leave at the default 9000.&lt;br /&gt;
* External host name. If you will only be attaching to your sim from a SecondLife client on the same machine, you can leave this at the default 127.0.0.1. If you will be wanting to connect to it from a client on another machine, this should be the IP address or hostname of the machine you are running this sim on. N.B - It appears that this must actually be the External Host IP Address, not the Domain Name.&lt;br /&gt;
To connect to your new sim, start up secondlife with the following command line switches:&lt;br /&gt;
 -loginuri http://127.0.0.1:9000/ -loginpage http://127.0.0.1:9000/?method=login &lt;br /&gt;
This assumes you are running the secondlife client on the same box. If you are running it on a separate box, substitute the IP address of your sim machine.&amp;lt;br&amp;gt;&lt;br /&gt;
To create a user:&amp;lt;br&amp;gt;&lt;br /&gt;
type ''create user &amp;lt;first&amp;gt; &amp;lt;last&amp;gt; &amp;lt;password&amp;gt; &amp;lt;x_loc&amp;gt; &amp;lt;y_loc&amp;gt;'' in the server console.&lt;br /&gt;
&lt;br /&gt;
===Grid mode===&lt;br /&gt;
You want to run your own grid. Great! Assuming that you already got your sim running in standalone mode, here is what you need to do:&amp;lt;br&amp;gt;&lt;br /&gt;
1. Current builds of OpenSim grid mode are using mysql to store the grid information. You must have this installed and configured if you want to run your own grid. See [[mysql-config]] for more information.&amp;lt;br&amp;gt;&lt;br /&gt;
2. Four of the servers should be started in a certain order. UGAI: UserServer, GridServer, AssetServer, InventoryServer. The MessagingServer can be started at any point after the GridServer, and the RegionServer(s) should always come last.  These are all found in the bin directory. In windows, you can just double-click on the executables to start them. In Linux and Mac OS X type &amp;quot;mono filename&amp;quot; from a prompt. The executable names, in order, are:&lt;br /&gt;
 OpenSim.Grid.UserServer.exe&lt;br /&gt;
 OpenSim.Grid.GridServer.exe&lt;br /&gt;
 OpenSim.Grid.AssetServer.exe&lt;br /&gt;
 OpenSim.Grid.InventoryServer.exe&lt;br /&gt;
 OpenSim.Grid.MessagingServer.exe&lt;br /&gt;
 OpenSim.exe&lt;br /&gt;
3. Start the UserServer. If you will be running the GridServer on the same box, hit enter to accept the defaults, until it gives you the prompt&lt;br /&gt;
 OpenUser#&lt;br /&gt;
This is the main prompt for the user server. If you will be running the GridServer on another box, change the Default Grid Server URI as appropriate.&amp;lt;br&amp;gt;&lt;br /&gt;
4. Start the GridServer. Again, you can hit return at all the prompts if you are running them all on the same machine. If not, change the URIs for the Asset Server and User server to point to where you are running them. You will finally get to the console prompt for the GridServer which looks like this:&lt;br /&gt;
 OpenGrid#&lt;br /&gt;
5. Start the AssetServer. The console prompt for this server will be:&lt;br /&gt;
 OpenAsset#&lt;br /&gt;
6. Start the InventoryServer. The console prompt for this server will be:&lt;br /&gt;
 INVENTORY#&lt;br /&gt;
7. Start the MessagingServer.  The console prompt for this is:&lt;br /&gt;
 Messaging#&lt;br /&gt;
8. If you are running all of these servers on the same box, which would be the normal configuration, you should be ready to start up your sim.  The mode that OpenSim.exe starts in is normally controlled by a setting in your OpenSim.ini.  It defaults to standalone mode if that setting is not specified or the file is not found.  If you wish, you can force opensim to start in gridmode on the command line as follows:&lt;br /&gt;
 OpenSim.exe -gridmode=true&lt;br /&gt;
or:&lt;br /&gt;
 mono OpenSim.exe -gridmode=true&lt;br /&gt;
With any luck, everything will come up without too many errors.&amp;lt;br&amp;gt;&lt;br /&gt;
9. Go to the UserServer console, and type 'create user' to create a new avatar. It will prompt you for the name and password, and the X and Y of the sim that should be his home location. Use 1000 and 1000, or wherever you told your sim to live when you brought it up in standalone mode. At the console of any of these servers, you should be able to type 'help' to get a list of commands.&lt;br /&gt;
&lt;br /&gt;
You should now be able to connect to your new grid with your secondlife client. You need to tell your client to point at the UserServer rather than directly at the sim, though:&lt;br /&gt;
 secondlife -loginuri http://127.0.0.1:8002/&lt;br /&gt;
8002 is the default port for the UserServer, and that IP address should be changed to the server you are running the UserServer on, if they are not all on the same box.  Happy OpenSimming!&amp;lt;br&amp;gt;&lt;br /&gt;
''Note: if you are using Windows Vista, remember to start servers as Admin. If not it will prompt you an error in console like &amp;quot;Error - Access denied&amp;quot;''&lt;br /&gt;
&lt;br /&gt;
==Multiple regions==&lt;br /&gt;
&lt;br /&gt;
Using Physical Prim with the OpenDynamicsEngine on *nix, it's recommended that you set your stack reserve level higher then default with the following command;&lt;br /&gt;
&amp;lt;tt&amp;gt;ulimit -s 262144&amp;lt;/tt&amp;gt; Or, run the opensim-ode.sh to start up OpenSimulator.&lt;br /&gt;
&lt;br /&gt;
A powerful region generator is available at: [[RegionGenerator]]&lt;br /&gt;
&lt;br /&gt;
For running multiple regions on the same box, you simply make multiple copies of the 'default.xml' file inside the &amp;lt;tt&amp;gt;bin/Regions/&amp;lt;/tt&amp;gt; directory.  You can do this using the script &amp;lt;tt&amp;gt;make.php&amp;lt;/tt&amp;gt; in &amp;lt;tt&amp;gt;share/regions&amp;lt;/tt&amp;gt;, or you can generate the files by hand.&lt;br /&gt;
&lt;br /&gt;
If you want to create the files by hand:&lt;br /&gt;
&lt;br /&gt;
:first copy the default.xml file in the &amp;lt;tt&amp;gt;bin/Regions&amp;lt;/tt&amp;gt; directory, and name them anything you want (I name mine region.x.y.xml, where region is the name of the region, and x and y are the grid coords.)&lt;br /&gt;
:Open each xml file and edit the uuid (a generator can be found at [http://www.famkruithof.net/uuid/uuidgen uuidgen webpage] or on unix, use the uuidgen command), region name, x &amp;amp; y positions, and internal ip port. IMPORTANT!  The UUID, name, and grid coordinates ''must'' be unique for each region on a grid.  The port assignment must be unique for each region that is running on a particular machine.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note that &amp;lt;tt&amp;gt;sim_location_x&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;sim_location_y&amp;lt;/tt&amp;gt; should be adjacent integers if you want your regions to be adjacent, so you can run back and forth between them.  '''IMPORTANT: THESE GRID COORDINATES ARE ''NOT'' IN METERS.  THEY ARE SIM POSITIONS.'''  (1000, 1000) is next to (1001,1000), (1000, 1001), and so forth.  1256, 2000, 2048 and similar values are '''not''' adjacent to 1000, they are very far away, so you would not see your sims from one another.&lt;br /&gt;
&lt;br /&gt;
Once you have 2 or more xml files in the bin/Regions folder, running a ''single'' copy of &amp;lt;tt&amp;gt;OpenSim.exe&amp;lt;/tt&amp;gt; will start up all of your sims! If you come across any errors, there is most likely an error in your xml files.&lt;br /&gt;
&lt;br /&gt;
As of 6-Feb-2008, take care NOT to leave editor backup copies of the files in this directory e.g. emacs style backup names like Regionname.xml~. These are loaded by opensim.exe as if they are legitimate region descriptions, and will therefore give errors indicating you are trying to re-use the socket for that region.&lt;br /&gt;
&lt;br /&gt;
==Attaching your sim to someone else's grid==&lt;br /&gt;
To set up the region server (i.e., &amp;lt;tt&amp;gt;OpenSim.exe&amp;lt;/tt&amp;gt;) to connect to an external grid, you should edit the &amp;lt;tt&amp;gt;OpenSim.ini&amp;lt;/tt&amp;gt; file in the &amp;lt;tt&amp;gt;bin&amp;lt;/tt&amp;gt; directory.  In that file, there is a &amp;lt;tt&amp;gt;[Network]&amp;lt;/tt&amp;gt; section with URLs for the grid, user, and asset servers, as well as send and receive keys (for a basic level of security).  The addresses and send/receive keys will vary depending on the grid you are connecting to, and the grid operator should tell you what values to use.&lt;br /&gt;
&lt;br /&gt;
The other file you may have to change is in your &amp;lt;tt&amp;gt;bin/Regions&amp;lt;/tt&amp;gt; directory. This is where your individual region config files are. If you only have one region, it will by default be called &amp;lt;tt&amp;gt;default.xml&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
This can be edited with any text editor. The grid owner may tell you what X and Y location you can place your sim at (you can't have multiple sims at the same location on the grid). If so, the fields you will need to change in this file are &amp;lt;tt&amp;gt;sim_location_x&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;sim_location_y&amp;lt;/tt&amp;gt;.  And the &amp;lt;tt&amp;gt;external_host_name&amp;lt;/tt&amp;gt; should be set to the hostname or IP address of your simulation server (i.e., the machine that is running &amp;lt;tt&amp;gt;OpenSim.exe&amp;lt;/tt&amp;gt;).&lt;br /&gt;
A list of public grids that you can attach your sim to is at [[OpenSim: Grids]]&lt;br /&gt;
&lt;br /&gt;
==Running==&lt;br /&gt;
&lt;br /&gt;
===StandAlone===&lt;br /&gt;
'''&amp;lt;u&amp;gt;Windows&amp;lt;/u&amp;gt;'''&lt;br /&gt;
 cd bin&lt;br /&gt;
 OpenSim.exe&lt;br /&gt;
On Windows Vista, it may be necessary to explicitly &amp;quot;Run as administrator&amp;quot; for opensim.exe to accept connections from a client, even when running as an administrator user. Navigate to the opensim\bin directory, right click opensim.exe, and select &amp;quot;Run as administrator&amp;quot;.&lt;br /&gt;
Connect: opensim://localhost:9000 , or opensim://127.0.0.1:9000, or opensim://myipadress:9000&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;u&amp;gt;Linux&amp;lt;/u&amp;gt;'''&lt;br /&gt;
 cd bin&lt;br /&gt;
 mono OpenSim.exe&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;u&amp;gt;OSX&amp;lt;/u&amp;gt;'''&lt;br /&gt;
 cd bin&lt;br /&gt;
 mono OpenSim.exe&lt;br /&gt;
&lt;br /&gt;
===Local Grid===&lt;br /&gt;
'''&amp;lt;u&amp;gt;Windows&amp;lt;/u&amp;gt;'''&lt;br /&gt;
 cd bin&lt;br /&gt;
 OpenSim.Grid.UserServer.exe&lt;br /&gt;
 OpenSim.Grid.GridServer.exe&lt;br /&gt;
 OpenSim.Grid.AssetServer.exe&lt;br /&gt;
 OpenSim.Grid.InventoryServer.exe&lt;br /&gt;
 OpenSim.Grid.MessagingServer.exe&lt;br /&gt;
 OpenSim.exe&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;u&amp;gt;Linux&amp;lt;/u&amp;gt;'''&lt;br /&gt;
 cd bin&lt;br /&gt;
 mono OpenSim.Grid.UserServer.exe&lt;br /&gt;
 mono OpenSim.Grid.GridServer.exe&lt;br /&gt;
 mono OpenSim.Grid.AssetServer.exe&lt;br /&gt;
 mono OpenSim.Grid.InventoryServer.exe&lt;br /&gt;
 mono OpenSim.Grid.MessagingServer.exe&lt;br /&gt;
 mono OpenSim.exe&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;u&amp;gt;OSX&amp;lt;/u&amp;gt;''''&lt;br /&gt;
 cd bin&lt;br /&gt;
 mono OpenSim.Grid.UserServer.exe&lt;br /&gt;
 mono OpenSim.Grid.GridServer.exe&lt;br /&gt;
 mono OpenSim.Grid.AssetServer.exe&lt;br /&gt;
 mono OpenSim.Grid.InventoryServer.exe&lt;br /&gt;
 mono OpenSim.Grid.MessagingServer.exe&lt;br /&gt;
 mono OpenSim.exe&lt;br /&gt;
Connect: opensim://myipaddress:9000&lt;/div&gt;</summary>
		<author><name>Rich43</name></author>	</entry>

	<entry>
		<id>http://opensimulator.org/wiki/Configuration</id>
		<title>Configuration</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/Configuration"/>
				<updated>2008-09-11T22:11:49Z</updated>
		
		<summary type="html">&lt;p&gt;Rich43: /* Multiple regions */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==OpenSim configuration file==&lt;br /&gt;
The simulator configuration is managed using a file called [[OpenSim.ini]]. This file is used regardless of whether the sim is running in standalone or grid mode. Detailed information on the options available for setttings in this file can be found [[OpenSim.ini|here]].&lt;br /&gt;
&lt;br /&gt;
==Database==&lt;br /&gt;
Opensim's supports the following database-engines:&lt;br /&gt;
* SQLite (default - a lightweight database that comes bundled with OpenSim and can be used without requiring any extra configuration.  It is mostly intended to get you up and running quickly, not for production use.)&lt;br /&gt;
* MySQL (fully supported)&lt;br /&gt;
* MSSQL (partially supported - some recent OpenSim features may not yet be implemented)&lt;br /&gt;
&lt;br /&gt;
More information on database support can be found on the [[OpenSim Database support]] page.&lt;br /&gt;
&lt;br /&gt;
==Standalone vs. Grid==&lt;br /&gt;
We recommend that you first get OpenSim running in standalone mode before you attempt to connect it to a grid, either your own grid or a public grid.  An OpenSim configuration consists of regions (run by region simulators) and 5 core backend services (which manage users, the grid, assets, inventories, and grid-wide messaging, collectively known as UGAIM).&lt;br /&gt;
&lt;br /&gt;
A system running in '''standalone mode''' (that is, one  with OpenSim.ini configured such that gridmode = false) -- also known as &amp;quot;sandbox mode&amp;quot; -- runs everything (all UGAIM services and one or more regions) in a single executable (OpenSim.exe).  External regions cannot be added to an OpenSim running in this mode.&lt;br /&gt;
&lt;br /&gt;
In '''grid mode''', the five ugaim services are each started as separate executables.  This means that they can be run either on the same machine or spread out across multiple computers.  In this mode, OpenSim.exe serves one or more regions, which communicate with the core servers.  This mode even allows region servers run by other people on their own machines to connect, if you wish.&lt;br /&gt;
&lt;br /&gt;
Naturally, this means that running in grid mode is somewhat more complicated than running in standalone mode.  It requires an understanding of UUID, X,Y location, server handshake passwords, master avatars, and a couple of other settings. These are not difficult, but do require a little more care in setting things up.&lt;br /&gt;
&lt;br /&gt;
If you want to run a grid of your own (either private or public) you would start the core services up before connecting a region simulator.  If you want to connect your region server to a grid that someone else is running, you need only start the region server in grid mode (with the necessary security keys and location information mentioned in the last paragraph).&lt;br /&gt;
&lt;br /&gt;
OpenSim.exe responds to various command line arguments. These include &amp;quot;-inifile&amp;quot;, &amp;quot;-configfile&amp;quot;, &amp;quot;-gridmode&amp;quot;, &amp;quot;-physics&amp;quot;, &amp;quot;-config&amp;quot; &amp;amp; &amp;quot;-noverbose&amp;quot;. When starting OpenSim in either Windows or Linux, one could, for example, add &amp;quot;-physics=OpenDynamicsEngine&amp;quot; to run the OpenDynamicsEngine instead of basicphysics, or use &amp;quot;-gridmode=true&amp;quot; to force opensim.exe to run as a region server (the rest of the grid services have their own executables).  As many of these settings are normally controlled by OpenSim.ini, most users (especially in standalone mode) will not add any command line arguments.&lt;br /&gt;
&lt;br /&gt;
===Standalone mode===&lt;br /&gt;
&lt;br /&gt;
When you start OpenSim in standalone mode, it will ask you several questions at the console. The first set of prompts that start with &amp;quot;NETWORK SERVERS INFO&amp;quot;, you can just hit return to accept the defaults if you will be running in standalone mode. The prompts that start with &amp;quot;DEFAULT REGION CONFIG&amp;quot; are where you need to start paying attention. Some are self-explanatory. Here are explanations for the others:&amp;lt;br&amp;gt;&lt;br /&gt;
* Grid Location. OpenSim regions can be placed anywhere on a 65536 by 65536 grid. In standalone mode, it is safe to leave these X and Y locations at their defaults for the first region (additional regions will need different coordinates, of course).&lt;br /&gt;
* Filename for local storage. Safe to leave at default.&lt;br /&gt;
* Internal IP address; This should always be 0.0.0.0 (0.0.0.0 means &amp;quot;listen for connections on any interface&amp;quot;, basically a wildcard)&lt;br /&gt;
* Internal IP port for incoming UDP client connection. You can make this any port you want, but it is safe to leave at the default 9000.&lt;br /&gt;
* External host name. If you will only be attaching to your sim from a SecondLife client on the same machine, you can leave this at the default 127.0.0.1. If you will be wanting to connect to it from a client on another machine, this should be the IP address or hostname of the machine you are running this sim on. N.B - It appears that this must actually be the External Host IP Address, not the Domain Name.&lt;br /&gt;
To connect to your new sim, start up secondlife with the following command line switches:&lt;br /&gt;
 -loginuri http://127.0.0.1:9000/ -loginpage http://127.0.0.1:9000/?method=login &lt;br /&gt;
This assumes you are running the secondlife client on the same box. If you are running it on a separate box, substitute the IP address of your sim machine.&amp;lt;br&amp;gt;&lt;br /&gt;
To create a user:&amp;lt;br&amp;gt;&lt;br /&gt;
type ''create user &amp;lt;first&amp;gt; &amp;lt;last&amp;gt; &amp;lt;password&amp;gt; &amp;lt;x_loc&amp;gt; &amp;lt;y_loc&amp;gt;'' in the server console.&lt;br /&gt;
&lt;br /&gt;
===Grid mode===&lt;br /&gt;
You want to run your own grid. Great! Assuming that you already got your sim running in standalone mode, here is what you need to do:&amp;lt;br&amp;gt;&lt;br /&gt;
1. Current builds of OpenSim grid mode are using mysql to store the grid information. You must have this installed and configured if you want to run your own grid. See [[mysql-config]] for more information.&amp;lt;br&amp;gt;&lt;br /&gt;
2. Four of the servers should be started in a certain order. UGAI: UserServer, GridServer, AssetServer, InventoryServer. The MessagingServer can be started at any point after the GridServer, and the RegionServer(s) should always come last.  These are all found in the bin directory. In windows, you can just double-click on the executables to start them. In Linux and Mac OS X type &amp;quot;mono filename&amp;quot; from a prompt. The executable names, in order, are:&lt;br /&gt;
 OpenSim.Grid.UserServer.exe&lt;br /&gt;
 OpenSim.Grid.GridServer.exe&lt;br /&gt;
 OpenSim.Grid.AssetServer.exe&lt;br /&gt;
 OpenSim.Grid.InventoryServer.exe&lt;br /&gt;
 OpenSim.Grid.MessagingServer.exe&lt;br /&gt;
 OpenSim.exe&lt;br /&gt;
3. Start the UserServer. If you will be running the GridServer on the same box, hit enter to accept the defaults, until it gives you the prompt&lt;br /&gt;
 OpenUser#&lt;br /&gt;
This is the main prompt for the user server. If you will be running the GridServer on another box, change the Default Grid Server URI as appropriate.&amp;lt;br&amp;gt;&lt;br /&gt;
4. Start the GridServer. Again, you can hit return at all the prompts if you are running them all on the same machine. If not, change the URIs for the Asset Server and User server to point to where you are running them. You will finally get to the console prompt for the GridServer which looks like this:&lt;br /&gt;
 OpenGrid#&lt;br /&gt;
5. Start the AssetServer. The console prompt for this server will be:&lt;br /&gt;
 OpenAsset#&lt;br /&gt;
6. Start the InventoryServer. The console prompt for this server will be:&lt;br /&gt;
 INVENTORY#&lt;br /&gt;
7. Start the MessagingServer.  The console prompt for this is:&lt;br /&gt;
 Messaging#&lt;br /&gt;
8. If you are running all of these servers on the same box, which would be the normal configuration, you should be ready to start up your sim.  The mode that OpenSim.exe starts in is normally controlled by a setting in your OpenSim.ini.  It defaults to standalone mode if that setting is not specified or the file is not found.  If you wish, you can force opensim to start in gridmode on the command line as follows:&lt;br /&gt;
 OpenSim.exe -gridmode=true&lt;br /&gt;
or:&lt;br /&gt;
 mono OpenSim.exe -gridmode=true&lt;br /&gt;
With any luck, everything will come up without too many errors.&amp;lt;br&amp;gt;&lt;br /&gt;
9. Go to the UserServer console, and type 'create user' to create a new avatar. It will prompt you for the name and password, and the X and Y of the sim that should be his home location. Use 1000 and 1000, or wherever you told your sim to live when you brought it up in standalone mode. At the console of any of these servers, you should be able to type 'help' to get a list of commands.&lt;br /&gt;
&lt;br /&gt;
You should now be able to connect to your new grid with your secondlife client. You need to tell your client to point at the UserServer rather than directly at the sim, though:&lt;br /&gt;
 secondlife -loginuri http://127.0.0.1:8002/&lt;br /&gt;
8002 is the default port for the UserServer, and that IP address should be changed to the server you are running the UserServer on, if they are not all on the same box.  Happy OpenSimming!&amp;lt;br&amp;gt;&lt;br /&gt;
''Note: if you are using Windows Vista, remember to start servers as Admin. If not it will prompt you an error in console like &amp;quot;Error - Access denied&amp;quot;''&lt;br /&gt;
&lt;br /&gt;
==Multiple regions==&lt;br /&gt;
&lt;br /&gt;
Using Physical Prim with the OpenDynamicsEngine on *nix, it's recommended that you set your stack reserve level higher then default with the following command;&lt;br /&gt;
&amp;lt;tt&amp;gt;ulimit -s 262144&amp;lt;/tt&amp;gt; Or, run the opensim-ode.sh to start up OpenSimulator.&lt;br /&gt;
&lt;br /&gt;
A powerful region generator is available at: [[RegionGenerator]&lt;br /&gt;
&lt;br /&gt;
For running multiple regions on the same box, you simply make multiple copies of the 'default.xml' file inside the &amp;lt;tt&amp;gt;bin/Regions/&amp;lt;/tt&amp;gt; directory.  You can do this using the script &amp;lt;tt&amp;gt;make.php&amp;lt;/tt&amp;gt; in &amp;lt;tt&amp;gt;share/regions&amp;lt;/tt&amp;gt;, or you can generate the files by hand.&lt;br /&gt;
&lt;br /&gt;
If you want to create the files by hand:&lt;br /&gt;
&lt;br /&gt;
:first copy the default.xml file in the &amp;lt;tt&amp;gt;bin/Regions&amp;lt;/tt&amp;gt; directory, and name them anything you want (I name mine region.x.y.xml, where region is the name of the region, and x and y are the grid coords.)&lt;br /&gt;
:Open each xml file and edit the uuid (a generator can be found at [http://www.famkruithof.net/uuid/uuidgen uuidgen webpage] or on unix, use the uuidgen command), region name, x &amp;amp; y positions, and internal ip port. IMPORTANT!  The UUID, name, and grid coordinates ''must'' be unique for each region on a grid.  The port assignment must be unique for each region that is running on a particular machine.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note that &amp;lt;tt&amp;gt;sim_location_x&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;sim_location_y&amp;lt;/tt&amp;gt; should be adjacent integers if you want your regions to be adjacent, so you can run back and forth between them.  '''IMPORTANT: THESE GRID COORDINATES ARE ''NOT'' IN METERS.  THEY ARE SIM POSITIONS.'''  (1000, 1000) is next to (1001,1000), (1000, 1001), and so forth.  1256, 2000, 2048 and similar values are '''not''' adjacent to 1000, they are very far away, so you would not see your sims from one another.&lt;br /&gt;
&lt;br /&gt;
Once you have 2 or more xml files in the bin/Regions folder, running a ''single'' copy of &amp;lt;tt&amp;gt;OpenSim.exe&amp;lt;/tt&amp;gt; will start up all of your sims! If you come across any errors, there is most likely an error in your xml files.&lt;br /&gt;
&lt;br /&gt;
As of 6-Feb-2008, take care NOT to leave editor backup copies of the files in this directory e.g. emacs style backup names like Regionname.xml~. These are loaded by opensim.exe as if they are legitimate region descriptions, and will therefore give errors indicating you are trying to re-use the socket for that region.&lt;br /&gt;
&lt;br /&gt;
==Attaching your sim to someone else's grid==&lt;br /&gt;
To set up the region server (i.e., &amp;lt;tt&amp;gt;OpenSim.exe&amp;lt;/tt&amp;gt;) to connect to an external grid, you should edit the &amp;lt;tt&amp;gt;OpenSim.ini&amp;lt;/tt&amp;gt; file in the &amp;lt;tt&amp;gt;bin&amp;lt;/tt&amp;gt; directory.  In that file, there is a &amp;lt;tt&amp;gt;[Network]&amp;lt;/tt&amp;gt; section with URLs for the grid, user, and asset servers, as well as send and receive keys (for a basic level of security).  The addresses and send/receive keys will vary depending on the grid you are connecting to, and the grid operator should tell you what values to use.&lt;br /&gt;
&lt;br /&gt;
The other file you may have to change is in your &amp;lt;tt&amp;gt;bin/Regions&amp;lt;/tt&amp;gt; directory. This is where your individual region config files are. If you only have one region, it will by default be called &amp;lt;tt&amp;gt;default.xml&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
This can be edited with any text editor. The grid owner may tell you what X and Y location you can place your sim at (you can't have multiple sims at the same location on the grid). If so, the fields you will need to change in this file are &amp;lt;tt&amp;gt;sim_location_x&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;sim_location_y&amp;lt;/tt&amp;gt;.  And the &amp;lt;tt&amp;gt;external_host_name&amp;lt;/tt&amp;gt; should be set to the hostname or IP address of your simulation server (i.e., the machine that is running &amp;lt;tt&amp;gt;OpenSim.exe&amp;lt;/tt&amp;gt;).&lt;br /&gt;
A list of public grids that you can attach your sim to is at [[OpenSim: Grids]]&lt;br /&gt;
&lt;br /&gt;
==Running==&lt;br /&gt;
&lt;br /&gt;
===StandAlone===&lt;br /&gt;
'''&amp;lt;u&amp;gt;Windows&amp;lt;/u&amp;gt;'''&lt;br /&gt;
 cd bin&lt;br /&gt;
 OpenSim.exe&lt;br /&gt;
On Windows Vista, it may be necessary to explicitly &amp;quot;Run as administrator&amp;quot; for opensim.exe to accept connections from a client, even when running as an administrator user. Navigate to the opensim\bin directory, right click opensim.exe, and select &amp;quot;Run as administrator&amp;quot;.&lt;br /&gt;
Connect: opensim://localhost:9000 , or opensim://127.0.0.1:9000, or opensim://myipadress:9000&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;u&amp;gt;Linux&amp;lt;/u&amp;gt;'''&lt;br /&gt;
 cd bin&lt;br /&gt;
 mono OpenSim.exe&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;u&amp;gt;OSX&amp;lt;/u&amp;gt;'''&lt;br /&gt;
 cd bin&lt;br /&gt;
 mono OpenSim.exe&lt;br /&gt;
&lt;br /&gt;
===Local Grid===&lt;br /&gt;
'''&amp;lt;u&amp;gt;Windows&amp;lt;/u&amp;gt;'''&lt;br /&gt;
 cd bin&lt;br /&gt;
 OpenSim.Grid.UserServer.exe&lt;br /&gt;
 OpenSim.Grid.GridServer.exe&lt;br /&gt;
 OpenSim.Grid.AssetServer.exe&lt;br /&gt;
 OpenSim.Grid.InventoryServer.exe&lt;br /&gt;
 OpenSim.Grid.MessagingServer.exe&lt;br /&gt;
 OpenSim.exe&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;u&amp;gt;Linux&amp;lt;/u&amp;gt;'''&lt;br /&gt;
 cd bin&lt;br /&gt;
 mono OpenSim.Grid.UserServer.exe&lt;br /&gt;
 mono OpenSim.Grid.GridServer.exe&lt;br /&gt;
 mono OpenSim.Grid.AssetServer.exe&lt;br /&gt;
 mono OpenSim.Grid.InventoryServer.exe&lt;br /&gt;
 mono OpenSim.Grid.MessagingServer.exe&lt;br /&gt;
 mono OpenSim.exe&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;u&amp;gt;OSX&amp;lt;/u&amp;gt;''''&lt;br /&gt;
 cd bin&lt;br /&gt;
 mono OpenSim.Grid.UserServer.exe&lt;br /&gt;
 mono OpenSim.Grid.GridServer.exe&lt;br /&gt;
 mono OpenSim.Grid.AssetServer.exe&lt;br /&gt;
 mono OpenSim.Grid.InventoryServer.exe&lt;br /&gt;
 mono OpenSim.Grid.MessagingServer.exe&lt;br /&gt;
 mono OpenSim.exe&lt;br /&gt;
Connect: opensim://myipaddress:9000&lt;/div&gt;</summary>
		<author><name>Rich43</name></author>	</entry>

	<entry>
		<id>http://opensimulator.org/wiki/Using_L3DT</id>
		<title>Using L3DT</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/Using_L3DT"/>
				<updated>2008-07-23T16:34:37Z</updated>
		
		<summary type="html">&lt;p&gt;Rich43: /* About L3DT */ ITS A COMPATABILITY LAYER!&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== About L3DT ==&lt;br /&gt;
L3DT can be used to generate terrains. The program runs natively under Windows, and can be run under Linux using the Wine compatibility layer(Only the [http://www.bundysoft.com/L3DT/downloads/standard/dev/L3DT_SE_dev-2.5.3.0.exe development] version!).&lt;br /&gt;
&lt;br /&gt;
== Quick intro on creating a terrain with L3DT==&lt;br /&gt;
&lt;br /&gt;
To create a terrain for a single region:&lt;br /&gt;
&lt;br /&gt;
1. Create a NEW MAP by clicking on that icon in the title bar.&amp;lt;br&amp;gt;&lt;br /&gt;
2. Highlight Design/Inflate, and click Next.&amp;lt;br&amp;gt;&lt;br /&gt;
3. Make the size X=4, y=4. This will give you a 256x256 terrain, the same size as a region. Click Next.&amp;lt;br&amp;gt;&lt;br /&gt;
4. Play with the sliders in the parameters window. You can just leave the defaults to start with. Click Next.&amp;lt;br&amp;gt;&lt;br /&gt;
5. Check Design Map, and click OK.&amp;lt;br&amp;gt;&lt;br /&gt;
6. Now click the CALC icon in the menu bar, then click OK.&amp;lt;br&amp;gt;&lt;br /&gt;
7. You now have your terrain. If you don't like it, start over and play with the settings.&amp;lt;br&amp;gt;&lt;br /&gt;
8. To save it: File=&amp;gt;Export=&amp;gt;Export Map.&amp;lt;br&amp;gt;&lt;br /&gt;
9. Highlight Heightfield, and then click OK.&amp;lt;br&amp;gt;&lt;br /&gt;
10. Choose File Format RAW, then click the Options button.&amp;lt;br&amp;gt;&lt;br /&gt;
11. Double click &amp;quot;Mode&amp;quot;, and select &amp;quot;float (meters)&amp;quot;, then click OK, and OK again.&amp;lt;br&amp;gt;&lt;br /&gt;
12. Name the file whatever you want, and click OK to save it.&amp;lt;br&amp;gt;&lt;br /&gt;
*** UPDATE New Terrain system requires L3DT export files to have a file extension of .r32 *IMPORTANT*&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
To load the terrain into opensim:&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Assume your file is called &amp;quot;terrain.r32&amp;quot;.At the region console, type:&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
terrain load terrain.r32&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
You now have your new terrain! You can at this point use the terrain add, terrain scale, or terrain multiply to rescale it to your liking.&lt;br /&gt;
[[Category:Users]]&lt;br /&gt;
[[Category:Getting Started]]&lt;/div&gt;</summary>
		<author><name>Rich43</name></author>	</entry>

	<entry>
		<id>http://opensimulator.org/wiki/RegionGenerator</id>
		<title>RegionGenerator</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/RegionGenerator"/>
				<updated>2008-07-15T01:47:30Z</updated>
		
		<summary type="html">&lt;p&gt;Rich43: /* Download */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Region Generator ==&lt;br /&gt;
&lt;br /&gt;
=== About ===&lt;br /&gt;
This is the all new version 2.1 of Region Generator.&lt;br /&gt;
&lt;br /&gt;
2.1 Features:&lt;br /&gt;
* Fixed big bug preventing windows version from working.&lt;br /&gt;
&lt;br /&gt;
2.00 Features:&lt;br /&gt;
* It now features support for multiple regions.&lt;br /&gt;
* The password is also now optional in 2.00.&lt;br /&gt;
&lt;br /&gt;
It generates a square piece of land.&lt;br /&gt;
&lt;br /&gt;
You can feed it the from-to X Postion and from-to Y position then it makes the xml files for you.&lt;br /&gt;
&lt;br /&gt;
=== Download ===&lt;br /&gt;
I have made a .exe version of this program for windows, you can get it from these locations:&lt;br /&gt;
&lt;br /&gt;
http://www.mediafire.com/?0mdvexdgmxu&lt;br /&gt;
&lt;br /&gt;
http://4rensics.com/regiongen21.zip&lt;br /&gt;
&lt;br /&gt;
=== How to use ===&lt;br /&gt;
If using windows version&lt;br /&gt;
* Extract to somewhere on your computer, i.e. The desktop.&lt;br /&gt;
* Edit the regionconfig.py file.&lt;br /&gt;
** You can Remove or Add as many regions as you like in this file. Region Generator 2.00 supports multiple regions.&lt;br /&gt;
** The password is optional, when connecting into grids like osgrid, it is normally not needed. You need to decide if you need it or not, experiment!&lt;br /&gt;
** If you give one region port 9000, give the next 9100 for example.&lt;br /&gt;
* Run regiongen.exe&lt;br /&gt;
* Copy the Regions folder to your opensim/bin folder.&lt;br /&gt;
* If you run it again, it will update the regions but it will not delete the files. If you made a big screw up, delete the Regions folder.&lt;br /&gt;
&lt;br /&gt;
If using the python source code (Linux, mac etc), make sure you have the cheetah and python 2.5 dependency's installed and edit the configuration in regionconfig.py then run :)&lt;br /&gt;
&lt;br /&gt;
=== Errors ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Traceback (most recent call last):&lt;br /&gt;
File &amp;quot;regiongen.py&amp;quot;, line xx, in &amp;lt;module&amp;gt;&lt;br /&gt;
ImportError: No module named regionconfig&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You are missing the regiongen config file, you can find it at the bottom of thispage&lt;br /&gt;
&lt;br /&gt;
=== Source Code ===&lt;br /&gt;
&lt;br /&gt;
It requires the Cheetah Templating module and python 2.5.&lt;br /&gt;
&lt;br /&gt;
You can get cheetah from http://www.cheetahtemplate.org/&lt;br /&gt;
&lt;br /&gt;
You can get python from http://www.python.org/download/&lt;br /&gt;
&lt;br /&gt;
==== regiongen.py ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/usr/bin/python&lt;br /&gt;
# REGION GEN 2.1&lt;br /&gt;
import os&lt;br /&gt;
import sys&lt;br /&gt;
sys.path.append(os.getcwd())&lt;br /&gt;
from Cheetah.Template import Template&lt;br /&gt;
import uuid&lt;br /&gt;
import pickle&lt;br /&gt;
import regionconfig&lt;br /&gt;
&lt;br /&gt;
regionsdir = 'Regions'&lt;br /&gt;
&lt;br /&gt;
template = &amp;quot;&amp;quot;&amp;quot;&amp;lt;Root&amp;gt;&lt;br /&gt;
&amp;lt;Config sim_UUID=&amp;quot;$uuid&amp;quot; sim_name=&amp;quot;$regionname&amp;quot; sim_location_x=&amp;quot;$x&amp;quot; sim_location_y=&amp;quot;$y&amp;quot; internal_ip_address=&amp;quot;$s.internalip&amp;quot; internal_ip_port=&amp;quot;$port&amp;quot; allow_alternate_ports=&amp;quot;false&amp;quot; external_host_name=&amp;quot;$s.externalhost&amp;quot; master_avatar_uuid=&amp;quot;$s.useruuid&amp;quot; estate_covenant_uuid=&amp;quot;00000000-0000-0000-0000-000000000000&amp;quot; lastmap_refresh=&amp;quot;0&amp;quot; master_avatar_first=&amp;quot;$s.firstname&amp;quot; master_avatar_last=&amp;quot;$s.lastname&amp;quot; $password /&amp;gt;&lt;br /&gt;
&amp;lt;/Root&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
savefile = &amp;quot;regiongen_save.pkl&amp;quot;&lt;br /&gt;
&lt;br /&gt;
def maketemplate(regionname, x, y, port, uid, password=None):&lt;br /&gt;
    t = Template(template)&lt;br /&gt;
    t.s = s&lt;br /&gt;
    t.uuid = uid&lt;br /&gt;
    t.password = password&lt;br /&gt;
    t.regionname = regionname&lt;br /&gt;
    t.x = x&lt;br /&gt;
    t.y = y&lt;br /&gt;
    t.port = port&lt;br /&gt;
    return str(t)&lt;br /&gt;
&lt;br /&gt;
# Make directory to put regions in if not there&lt;br /&gt;
try:&lt;br /&gt;
    os.mkdir(regionsdir)&lt;br /&gt;
except OSError:&lt;br /&gt;
    pass&lt;br /&gt;
&lt;br /&gt;
settings = {}&lt;br /&gt;
&lt;br /&gt;
# Load settings file&lt;br /&gt;
try:&lt;br /&gt;
    settingsfile = open(savefile)&lt;br /&gt;
    settings = pickle.load(settingsfile)&lt;br /&gt;
    settingsfile.close()&lt;br /&gt;
except IOError:&lt;br /&gt;
    pass&lt;br /&gt;
    &lt;br /&gt;
for s in regionconfig.configlist:&lt;br /&gt;
    print s&lt;br /&gt;
    counter = 0&lt;br /&gt;
    for xnum in range(s['x'][0], s['x'][1]):&lt;br /&gt;
        for ynum in range(s['y'][0], s['y'][1]):&lt;br /&gt;
            counter += 1&lt;br /&gt;
            default = False&lt;br /&gt;
            &lt;br /&gt;
            # Figure out region name&lt;br /&gt;
            if counter == 1:&lt;br /&gt;
                default = True&lt;br /&gt;
                regionname = s['regionname']&lt;br /&gt;
            else:&lt;br /&gt;
                regionname = s['regionname'] + str(counter)&lt;br /&gt;
                &lt;br /&gt;
            # Figure out password&lt;br /&gt;
            if s.has_key('password'):&lt;br /&gt;
                password = &amp;quot;master_avatar_pass=\&amp;quot;%s\&amp;quot;&amp;quot; % s['password']&lt;br /&gt;
            else:&lt;br /&gt;
                password = ''&lt;br /&gt;
                &lt;br /&gt;
            # Figure out paths&lt;br /&gt;
            path = os.path.join(regionsdir,&amp;quot;%s.%s.%s.xml&amp;quot; % \&lt;br /&gt;
                        (regionname, xnum, ynum))&lt;br /&gt;
            &lt;br /&gt;
            # Calculate port&lt;br /&gt;
            port = s['startport'] + (counter - 1)&lt;br /&gt;
            &lt;br /&gt;
            # Try to get UUID from settings&lt;br /&gt;
            # Generate + Save if not found&lt;br /&gt;
            if settings.has_key(regionname):&lt;br /&gt;
                uid = settings[regionname]&lt;br /&gt;
            else:&lt;br /&gt;
                uid = str(uuid.uuid1())&lt;br /&gt;
                settings[regionname] = uid&lt;br /&gt;
                &lt;br /&gt;
            # Make template&lt;br /&gt;
            tmpldata = maketemplate(regionname, xnum, ynum, port, uid, password)&lt;br /&gt;
            &lt;br /&gt;
            # Save file&lt;br /&gt;
            tmplfile = open(path, 'w')&lt;br /&gt;
            tmplfile.write(tmpldata)&lt;br /&gt;
            tmplfile.close()&lt;br /&gt;
            &lt;br /&gt;
            # Print progress&lt;br /&gt;
            print regionname&lt;br /&gt;
&lt;br /&gt;
# Save settings file&lt;br /&gt;
try:&lt;br /&gt;
    settingsfile = open(savefile, 'w')&lt;br /&gt;
    pickle.dump(settings, settingsfile)&lt;br /&gt;
    settingsfile.close()&lt;br /&gt;
except IOError:&lt;br /&gt;
    pass&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== regionconfig.py ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# REGIONGEN 2.00 + 2.10 CONFIGURATION FILE&lt;br /&gt;
configlist = [] # Dont touch this&lt;br /&gt;
&lt;br /&gt;
# START OF REGION&lt;br /&gt;
s = {}                          # Dont touch this&lt;br /&gt;
# Region Configuration&lt;br /&gt;
s['regionname'] = &amp;quot;RegionSetOne&amp;quot; # Type the name of your island&lt;br /&gt;
s['x'] = [5100,5105]            # X Position... From &amp;lt;------&amp;gt; To&lt;br /&gt;
s['y'] = [5100,5105]            # Y Position... From &amp;lt;------&amp;gt; To&lt;br /&gt;
&lt;br /&gt;
# User Configuration&lt;br /&gt;
s['firstname'] = &amp;quot;Tom&amp;quot;   # Your First Name&lt;br /&gt;
s['lastname'] = &amp;quot;Jones&amp;quot;      # Your Last Name&lt;br /&gt;
s['useruuid'] = 'get your clients uuid'  # Your UUID, You can use a script in game to get this&lt;br /&gt;
#s['password'] = 'pass'     # This is optional, it is commented out by default.&lt;br /&gt;
&lt;br /&gt;
# Network Configuration&lt;br /&gt;
s['startport'] = 9000               # We recommend leaving this at 9000 for opensim&lt;br /&gt;
                                    # unless this isnt the first region.&lt;br /&gt;
s['internalip'] = &amp;quot;123.123.123.123&amp;quot;   # You need to get this to a internal wired/wireless lan ip address&lt;br /&gt;
s['externalhost'] = &amp;quot;example.org&amp;quot;  # This is the address that people connect from the outside world to&lt;br /&gt;
configlist.append(s)                # Dont touch this&lt;br /&gt;
# END OF REGION&lt;br /&gt;
# YOU MAY COPY AND PASTE MORE CONFIGURATIONS INTO THIS FILE TO ADD MORE REGIONS.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# START OF REGION&lt;br /&gt;
s = {}                          # Dont touch this&lt;br /&gt;
# Region Configuration&lt;br /&gt;
s['regionname'] = &amp;quot;RegionSetTwo&amp;quot; # Type the name of your island&lt;br /&gt;
s['x'] = [5200,5205]            # X Position... From &amp;lt;------&amp;gt; To&lt;br /&gt;
s['y'] = [5200,5205]            # Y Position... From &amp;lt;------&amp;gt; To&lt;br /&gt;
&lt;br /&gt;
# User Configuration&lt;br /&gt;
s['firstname'] = &amp;quot;Tom&amp;quot;   # Your First Name&lt;br /&gt;
s['lastname'] = &amp;quot;Jones&amp;quot;      # Your Last Name&lt;br /&gt;
s['useruuid'] = 'get your clients uuid'  # Your UUID, You can use a script in game to get this&lt;br /&gt;
#s['password'] = 'pass'     # This is optional, it is commented out by default.&lt;br /&gt;
&lt;br /&gt;
# Network Configuration&lt;br /&gt;
s['startport'] = 9100               # We recommend leaving this at 9000 for opensim&lt;br /&gt;
                                    # unless this isnt the first region.&lt;br /&gt;
s['internalip'] = &amp;quot;123.123.123.123&amp;quot;   # You need to get this to a internal wired/wireless lan ip address&lt;br /&gt;
s['externalhost'] = &amp;quot;example.org&amp;quot;  # This is the address that people connect from the outside world to&lt;br /&gt;
configlist.append(s)                # Dont touch this&lt;br /&gt;
# END OF REGION&lt;br /&gt;
# YOU MAY COPY AND PASTE MORE CONFIGURATIONS INTO THIS FILE TO ADD MORE REGIONS.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Rich43</name></author>	</entry>

	<entry>
		<id>http://opensimulator.org/wiki/RegionGenerator</id>
		<title>RegionGenerator</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/RegionGenerator"/>
				<updated>2008-07-15T01:47:09Z</updated>
		
		<summary type="html">&lt;p&gt;Rich43: /* Region Generator */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Region Generator ==&lt;br /&gt;
&lt;br /&gt;
=== About ===&lt;br /&gt;
This is the all new version 2.1 of Region Generator.&lt;br /&gt;
&lt;br /&gt;
2.1 Features:&lt;br /&gt;
* Fixed big bug preventing windows version from working.&lt;br /&gt;
&lt;br /&gt;
2.00 Features:&lt;br /&gt;
* It now features support for multiple regions.&lt;br /&gt;
* The password is also now optional in 2.00.&lt;br /&gt;
&lt;br /&gt;
It generates a square piece of land.&lt;br /&gt;
&lt;br /&gt;
You can feed it the from-to X Postion and from-to Y position then it makes the xml files for you.&lt;br /&gt;
&lt;br /&gt;
=== Download ===&lt;br /&gt;
I have made a .exe version of this program for windows, you can get it from these locations:&lt;br /&gt;
&lt;br /&gt;
http://www.mediafire.com/?yzzj11lbdon&lt;br /&gt;
&lt;br /&gt;
http://4rensics.com/regiongen21.zip&lt;br /&gt;
&lt;br /&gt;
=== How to use ===&lt;br /&gt;
If using windows version&lt;br /&gt;
* Extract to somewhere on your computer, i.e. The desktop.&lt;br /&gt;
* Edit the regionconfig.py file.&lt;br /&gt;
** You can Remove or Add as many regions as you like in this file. Region Generator 2.00 supports multiple regions.&lt;br /&gt;
** The password is optional, when connecting into grids like osgrid, it is normally not needed. You need to decide if you need it or not, experiment!&lt;br /&gt;
** If you give one region port 9000, give the next 9100 for example.&lt;br /&gt;
* Run regiongen.exe&lt;br /&gt;
* Copy the Regions folder to your opensim/bin folder.&lt;br /&gt;
* If you run it again, it will update the regions but it will not delete the files. If you made a big screw up, delete the Regions folder.&lt;br /&gt;
&lt;br /&gt;
If using the python source code (Linux, mac etc), make sure you have the cheetah and python 2.5 dependency's installed and edit the configuration in regionconfig.py then run :)&lt;br /&gt;
&lt;br /&gt;
=== Errors ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Traceback (most recent call last):&lt;br /&gt;
File &amp;quot;regiongen.py&amp;quot;, line xx, in &amp;lt;module&amp;gt;&lt;br /&gt;
ImportError: No module named regionconfig&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You are missing the regiongen config file, you can find it at the bottom of thispage&lt;br /&gt;
&lt;br /&gt;
=== Source Code ===&lt;br /&gt;
&lt;br /&gt;
It requires the Cheetah Templating module and python 2.5.&lt;br /&gt;
&lt;br /&gt;
You can get cheetah from http://www.cheetahtemplate.org/&lt;br /&gt;
&lt;br /&gt;
You can get python from http://www.python.org/download/&lt;br /&gt;
&lt;br /&gt;
==== regiongen.py ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/usr/bin/python&lt;br /&gt;
# REGION GEN 2.1&lt;br /&gt;
import os&lt;br /&gt;
import sys&lt;br /&gt;
sys.path.append(os.getcwd())&lt;br /&gt;
from Cheetah.Template import Template&lt;br /&gt;
import uuid&lt;br /&gt;
import pickle&lt;br /&gt;
import regionconfig&lt;br /&gt;
&lt;br /&gt;
regionsdir = 'Regions'&lt;br /&gt;
&lt;br /&gt;
template = &amp;quot;&amp;quot;&amp;quot;&amp;lt;Root&amp;gt;&lt;br /&gt;
&amp;lt;Config sim_UUID=&amp;quot;$uuid&amp;quot; sim_name=&amp;quot;$regionname&amp;quot; sim_location_x=&amp;quot;$x&amp;quot; sim_location_y=&amp;quot;$y&amp;quot; internal_ip_address=&amp;quot;$s.internalip&amp;quot; internal_ip_port=&amp;quot;$port&amp;quot; allow_alternate_ports=&amp;quot;false&amp;quot; external_host_name=&amp;quot;$s.externalhost&amp;quot; master_avatar_uuid=&amp;quot;$s.useruuid&amp;quot; estate_covenant_uuid=&amp;quot;00000000-0000-0000-0000-000000000000&amp;quot; lastmap_refresh=&amp;quot;0&amp;quot; master_avatar_first=&amp;quot;$s.firstname&amp;quot; master_avatar_last=&amp;quot;$s.lastname&amp;quot; $password /&amp;gt;&lt;br /&gt;
&amp;lt;/Root&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
savefile = &amp;quot;regiongen_save.pkl&amp;quot;&lt;br /&gt;
&lt;br /&gt;
def maketemplate(regionname, x, y, port, uid, password=None):&lt;br /&gt;
    t = Template(template)&lt;br /&gt;
    t.s = s&lt;br /&gt;
    t.uuid = uid&lt;br /&gt;
    t.password = password&lt;br /&gt;
    t.regionname = regionname&lt;br /&gt;
    t.x = x&lt;br /&gt;
    t.y = y&lt;br /&gt;
    t.port = port&lt;br /&gt;
    return str(t)&lt;br /&gt;
&lt;br /&gt;
# Make directory to put regions in if not there&lt;br /&gt;
try:&lt;br /&gt;
    os.mkdir(regionsdir)&lt;br /&gt;
except OSError:&lt;br /&gt;
    pass&lt;br /&gt;
&lt;br /&gt;
settings = {}&lt;br /&gt;
&lt;br /&gt;
# Load settings file&lt;br /&gt;
try:&lt;br /&gt;
    settingsfile = open(savefile)&lt;br /&gt;
    settings = pickle.load(settingsfile)&lt;br /&gt;
    settingsfile.close()&lt;br /&gt;
except IOError:&lt;br /&gt;
    pass&lt;br /&gt;
    &lt;br /&gt;
for s in regionconfig.configlist:&lt;br /&gt;
    print s&lt;br /&gt;
    counter = 0&lt;br /&gt;
    for xnum in range(s['x'][0], s['x'][1]):&lt;br /&gt;
        for ynum in range(s['y'][0], s['y'][1]):&lt;br /&gt;
            counter += 1&lt;br /&gt;
            default = False&lt;br /&gt;
            &lt;br /&gt;
            # Figure out region name&lt;br /&gt;
            if counter == 1:&lt;br /&gt;
                default = True&lt;br /&gt;
                regionname = s['regionname']&lt;br /&gt;
            else:&lt;br /&gt;
                regionname = s['regionname'] + str(counter)&lt;br /&gt;
                &lt;br /&gt;
            # Figure out password&lt;br /&gt;
            if s.has_key('password'):&lt;br /&gt;
                password = &amp;quot;master_avatar_pass=\&amp;quot;%s\&amp;quot;&amp;quot; % s['password']&lt;br /&gt;
            else:&lt;br /&gt;
                password = ''&lt;br /&gt;
                &lt;br /&gt;
            # Figure out paths&lt;br /&gt;
            path = os.path.join(regionsdir,&amp;quot;%s.%s.%s.xml&amp;quot; % \&lt;br /&gt;
                        (regionname, xnum, ynum))&lt;br /&gt;
            &lt;br /&gt;
            # Calculate port&lt;br /&gt;
            port = s['startport'] + (counter - 1)&lt;br /&gt;
            &lt;br /&gt;
            # Try to get UUID from settings&lt;br /&gt;
            # Generate + Save if not found&lt;br /&gt;
            if settings.has_key(regionname):&lt;br /&gt;
                uid = settings[regionname]&lt;br /&gt;
            else:&lt;br /&gt;
                uid = str(uuid.uuid1())&lt;br /&gt;
                settings[regionname] = uid&lt;br /&gt;
                &lt;br /&gt;
            # Make template&lt;br /&gt;
            tmpldata = maketemplate(regionname, xnum, ynum, port, uid, password)&lt;br /&gt;
            &lt;br /&gt;
            # Save file&lt;br /&gt;
            tmplfile = open(path, 'w')&lt;br /&gt;
            tmplfile.write(tmpldata)&lt;br /&gt;
            tmplfile.close()&lt;br /&gt;
            &lt;br /&gt;
            # Print progress&lt;br /&gt;
            print regionname&lt;br /&gt;
&lt;br /&gt;
# Save settings file&lt;br /&gt;
try:&lt;br /&gt;
    settingsfile = open(savefile, 'w')&lt;br /&gt;
    pickle.dump(settings, settingsfile)&lt;br /&gt;
    settingsfile.close()&lt;br /&gt;
except IOError:&lt;br /&gt;
    pass&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== regionconfig.py ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# REGIONGEN 2.00 + 2.10 CONFIGURATION FILE&lt;br /&gt;
configlist = [] # Dont touch this&lt;br /&gt;
&lt;br /&gt;
# START OF REGION&lt;br /&gt;
s = {}                          # Dont touch this&lt;br /&gt;
# Region Configuration&lt;br /&gt;
s['regionname'] = &amp;quot;RegionSetOne&amp;quot; # Type the name of your island&lt;br /&gt;
s['x'] = [5100,5105]            # X Position... From &amp;lt;------&amp;gt; To&lt;br /&gt;
s['y'] = [5100,5105]            # Y Position... From &amp;lt;------&amp;gt; To&lt;br /&gt;
&lt;br /&gt;
# User Configuration&lt;br /&gt;
s['firstname'] = &amp;quot;Tom&amp;quot;   # Your First Name&lt;br /&gt;
s['lastname'] = &amp;quot;Jones&amp;quot;      # Your Last Name&lt;br /&gt;
s['useruuid'] = 'get your clients uuid'  # Your UUID, You can use a script in game to get this&lt;br /&gt;
#s['password'] = 'pass'     # This is optional, it is commented out by default.&lt;br /&gt;
&lt;br /&gt;
# Network Configuration&lt;br /&gt;
s['startport'] = 9000               # We recommend leaving this at 9000 for opensim&lt;br /&gt;
                                    # unless this isnt the first region.&lt;br /&gt;
s['internalip'] = &amp;quot;123.123.123.123&amp;quot;   # You need to get this to a internal wired/wireless lan ip address&lt;br /&gt;
s['externalhost'] = &amp;quot;example.org&amp;quot;  # This is the address that people connect from the outside world to&lt;br /&gt;
configlist.append(s)                # Dont touch this&lt;br /&gt;
# END OF REGION&lt;br /&gt;
# YOU MAY COPY AND PASTE MORE CONFIGURATIONS INTO THIS FILE TO ADD MORE REGIONS.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# START OF REGION&lt;br /&gt;
s = {}                          # Dont touch this&lt;br /&gt;
# Region Configuration&lt;br /&gt;
s['regionname'] = &amp;quot;RegionSetTwo&amp;quot; # Type the name of your island&lt;br /&gt;
s['x'] = [5200,5205]            # X Position... From &amp;lt;------&amp;gt; To&lt;br /&gt;
s['y'] = [5200,5205]            # Y Position... From &amp;lt;------&amp;gt; To&lt;br /&gt;
&lt;br /&gt;
# User Configuration&lt;br /&gt;
s['firstname'] = &amp;quot;Tom&amp;quot;   # Your First Name&lt;br /&gt;
s['lastname'] = &amp;quot;Jones&amp;quot;      # Your Last Name&lt;br /&gt;
s['useruuid'] = 'get your clients uuid'  # Your UUID, You can use a script in game to get this&lt;br /&gt;
#s['password'] = 'pass'     # This is optional, it is commented out by default.&lt;br /&gt;
&lt;br /&gt;
# Network Configuration&lt;br /&gt;
s['startport'] = 9100               # We recommend leaving this at 9000 for opensim&lt;br /&gt;
                                    # unless this isnt the first region.&lt;br /&gt;
s['internalip'] = &amp;quot;123.123.123.123&amp;quot;   # You need to get this to a internal wired/wireless lan ip address&lt;br /&gt;
s['externalhost'] = &amp;quot;example.org&amp;quot;  # This is the address that people connect from the outside world to&lt;br /&gt;
configlist.append(s)                # Dont touch this&lt;br /&gt;
# END OF REGION&lt;br /&gt;
# YOU MAY COPY AND PASTE MORE CONFIGURATIONS INTO THIS FILE TO ADD MORE REGIONS.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Rich43</name></author>	</entry>

	<entry>
		<id>http://opensimulator.org/wiki/RegionGenerator</id>
		<title>RegionGenerator</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/RegionGenerator"/>
				<updated>2008-07-15T01:42:32Z</updated>
		
		<summary type="html">&lt;p&gt;Rich43: /* Region Generator */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Region Generator ==&lt;br /&gt;
&lt;br /&gt;
=== About ===&lt;br /&gt;
This is the all new version 2.00 of Region Generator.&lt;br /&gt;
It now features support for multiple regions.&lt;br /&gt;
The password is also now optional in 2.00.&lt;br /&gt;
&lt;br /&gt;
It generates a square piece of land.&lt;br /&gt;
&lt;br /&gt;
You can feed it the from-to X Postion and from-to Y position then it makes the xml files for you.&lt;br /&gt;
&lt;br /&gt;
=== Download ===&lt;br /&gt;
I have made a .exe version of this program for windows, you can get it from these locations:&lt;br /&gt;
&lt;br /&gt;
http://www.mediafire.com/?yzzj11lbdon&lt;br /&gt;
&lt;br /&gt;
http://4rensics.com/regiongen2.zip&lt;br /&gt;
&lt;br /&gt;
=== How to use ===&lt;br /&gt;
If using windows version&lt;br /&gt;
* Extract to somewhere on your computer, i.e. The desktop.&lt;br /&gt;
* Edit the regionconfig.py file.&lt;br /&gt;
** You can Remove or Add as many regions as you like in this file. Region Generator 2.00 supports multiple regions.&lt;br /&gt;
** The password is optional, when connecting into grids like osgrid, it is normally not needed. You need to decide if you need it or not, experiment!&lt;br /&gt;
** If you give one region port 9000, give the next 9100 for example.&lt;br /&gt;
* Run regiongen.exe&lt;br /&gt;
* Copy the Regions folder to your opensim/bin folder.&lt;br /&gt;
* If you run it again, it will update the regions but it will not delete the files. If you made a big screw up, delete the Regions folder.&lt;br /&gt;
&lt;br /&gt;
If using the python source code (Linux, mac etc), make sure you have the cheetah and python 2.5 dependency's installed and edit the configuration in regionconfig.py then run :)&lt;br /&gt;
&lt;br /&gt;
=== Errors ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Traceback (most recent call last):&lt;br /&gt;
File &amp;quot;regiongen.py&amp;quot;, line xx, in &amp;lt;module&amp;gt;&lt;br /&gt;
ImportError: No module named regionconfig&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You are missing the regiongen config file, you can find it at the bottom of thispage&lt;br /&gt;
&lt;br /&gt;
=== Source Code ===&lt;br /&gt;
&lt;br /&gt;
It requires the Cheetah Templating module and python 2.5.&lt;br /&gt;
&lt;br /&gt;
You can get cheetah from http://www.cheetahtemplate.org/&lt;br /&gt;
&lt;br /&gt;
You can get python from http://www.python.org/download/&lt;br /&gt;
&lt;br /&gt;
==== regiongen.py ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/usr/bin/python&lt;br /&gt;
# REGIONGEN 2.00 BY RICHIE WARD&lt;br /&gt;
from Cheetah.Template import Template&lt;br /&gt;
import uuid&lt;br /&gt;
import os&lt;br /&gt;
import pickle&lt;br /&gt;
import regionconfig&lt;br /&gt;
&lt;br /&gt;
regionsdir = 'Regions'&lt;br /&gt;
&lt;br /&gt;
template = &amp;quot;&amp;quot;&amp;quot;&amp;lt;Root&amp;gt;&lt;br /&gt;
&amp;lt;Config sim_UUID=&amp;quot;$uuid&amp;quot; sim_name=&amp;quot;$regionname&amp;quot; sim_location_x=&amp;quot;$x&amp;quot; sim_location_y=&amp;quot;$y&amp;quot; internal_ip_address=&amp;quot;$s.internalip&amp;quot; internal_ip_port=&amp;quot;$port&amp;quot; allow_alternate_ports=&amp;quot;false&amp;quot; external_host_name=&amp;quot;$s.externalhost&amp;quot; master_avatar_uuid=&amp;quot;$s.useruuid&amp;quot; estate_covenant_uuid=&amp;quot;00000000-0000-0000-0000-000000000000&amp;quot; lastmap_refresh=&amp;quot;0&amp;quot; master_avatar_first=&amp;quot;$s.firstname&amp;quot; master_avatar_last=&amp;quot;$s.lastname&amp;quot; $password /&amp;gt;&lt;br /&gt;
&amp;lt;/Root&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
savefile = &amp;quot;regiongen_save.pkl&amp;quot;&lt;br /&gt;
&lt;br /&gt;
def maketemplate(regionname, x, y, port, uid, password=None):&lt;br /&gt;
    t = Template(template)&lt;br /&gt;
    t.s = s&lt;br /&gt;
    t.uuid = uid&lt;br /&gt;
    t.password = password&lt;br /&gt;
    t.regionname = regionname&lt;br /&gt;
    t.x = x&lt;br /&gt;
    t.y = y&lt;br /&gt;
    t.port = port&lt;br /&gt;
    return str(t)&lt;br /&gt;
&lt;br /&gt;
# Make directory to put regions in if not there&lt;br /&gt;
try:&lt;br /&gt;
    os.mkdir(regionsdir)&lt;br /&gt;
except OSError:&lt;br /&gt;
    pass&lt;br /&gt;
&lt;br /&gt;
settings = {}&lt;br /&gt;
&lt;br /&gt;
# Load settings file&lt;br /&gt;
try:&lt;br /&gt;
    settingsfile = open(savefile)&lt;br /&gt;
    settings = pickle.load(settingsfile)&lt;br /&gt;
    settingsfile.close()&lt;br /&gt;
except IOError:&lt;br /&gt;
    pass&lt;br /&gt;
    &lt;br /&gt;
for s in regionconfig.configlist:&lt;br /&gt;
    print s&lt;br /&gt;
    counter = 0&lt;br /&gt;
    for xnum in range(s['x'][0], s['x'][1]):&lt;br /&gt;
        for ynum in range(s['y'][0], s['y'][1]):&lt;br /&gt;
            counter += 1&lt;br /&gt;
            default = False&lt;br /&gt;
            &lt;br /&gt;
            # Figure out region name&lt;br /&gt;
            if counter == 1:&lt;br /&gt;
                default = True&lt;br /&gt;
                regionname = s['regionname']&lt;br /&gt;
            else:&lt;br /&gt;
                regionname = s['regionname'] + str(counter)&lt;br /&gt;
                &lt;br /&gt;
            # Figure out password&lt;br /&gt;
            if s.has_key('password'):&lt;br /&gt;
                password = &amp;quot;master_avatar_pass=\&amp;quot;%s\&amp;quot;&amp;quot; % s['password']&lt;br /&gt;
            else:&lt;br /&gt;
                password = ''&lt;br /&gt;
                &lt;br /&gt;
            # Figure out paths&lt;br /&gt;
            path = os.path.join(regionsdir,&amp;quot;%s.%s.%s.xml&amp;quot; % \&lt;br /&gt;
                        (regionname, xnum, ynum))&lt;br /&gt;
            &lt;br /&gt;
            # Calculate port&lt;br /&gt;
            port = s['startport'] + (counter - 1)&lt;br /&gt;
            &lt;br /&gt;
            # Try to get UUID from settings&lt;br /&gt;
            # Generate + Save if not found&lt;br /&gt;
            if settings.has_key(regionname):&lt;br /&gt;
                uid = settings[regionname]&lt;br /&gt;
            else:&lt;br /&gt;
                uid = str(uuid.uuid1())&lt;br /&gt;
                settings[regionname] = uid&lt;br /&gt;
                &lt;br /&gt;
            # Make template&lt;br /&gt;
            tmpldata = maketemplate(regionname, xnum, ynum, port, uid, password)&lt;br /&gt;
            &lt;br /&gt;
            # Save file&lt;br /&gt;
            tmplfile = open(path, 'w')&lt;br /&gt;
            tmplfile.write(tmpldata)&lt;br /&gt;
            tmplfile.close()&lt;br /&gt;
            &lt;br /&gt;
            # Print progress&lt;br /&gt;
            print regionname&lt;br /&gt;
&lt;br /&gt;
# Save settings file&lt;br /&gt;
try:&lt;br /&gt;
    settingsfile = open(savefile, 'w')&lt;br /&gt;
    pickle.dump(settings, settingsfile)&lt;br /&gt;
    settingsfile.close()&lt;br /&gt;
except IOError:&lt;br /&gt;
    pass&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== regionconfig.py ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# REGIONGEN 2.00 CONFIGURATION FILE&lt;br /&gt;
configlist = [] # Dont touch this&lt;br /&gt;
&lt;br /&gt;
# START OF REGION&lt;br /&gt;
s = {}                          # Dont touch this&lt;br /&gt;
# Region Configuration&lt;br /&gt;
s['regionname'] = &amp;quot;RegionSetOne&amp;quot; # Type the name of your island&lt;br /&gt;
s['x'] = [5100,5105]            # X Position... From &amp;lt;------&amp;gt; To&lt;br /&gt;
s['y'] = [5100,5105]            # Y Position... From &amp;lt;------&amp;gt; To&lt;br /&gt;
&lt;br /&gt;
# User Configuration&lt;br /&gt;
s['firstname'] = &amp;quot;Tom&amp;quot;   # Your First Name&lt;br /&gt;
s['lastname'] = &amp;quot;Jones&amp;quot;      # Your Last Name&lt;br /&gt;
s['useruuid'] = 'get your clients uuid'  # Your UUID, You can use a script in game to get this&lt;br /&gt;
#s['password'] = 'pass'     # This is optional, it is commented out by default.&lt;br /&gt;
&lt;br /&gt;
# Network Configuration&lt;br /&gt;
s['startport'] = 9000               # We recommend leaving this at 9000 for opensim&lt;br /&gt;
                                    # unless this isnt the first region.&lt;br /&gt;
s['internalip'] = &amp;quot;123.123.123.123&amp;quot;   # You need to get this to a internal wired/wireless lan ip address&lt;br /&gt;
s['externalhost'] = &amp;quot;example.org&amp;quot;  # This is the address that people connect from the outside world to&lt;br /&gt;
configlist.append(s)                # Dont touch this&lt;br /&gt;
# END OF REGION&lt;br /&gt;
# YOU MAY COPY AND PASTE MORE CONFIGURATIONS INTO THIS FILE TO ADD MORE REGIONS.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# START OF REGION&lt;br /&gt;
s = {}                          # Dont touch this&lt;br /&gt;
# Region Configuration&lt;br /&gt;
s['regionname'] = &amp;quot;RegionSetTwo&amp;quot; # Type the name of your island&lt;br /&gt;
s['x'] = [5200,5205]            # X Position... From &amp;lt;------&amp;gt; To&lt;br /&gt;
s['y'] = [5200,5205]            # Y Position... From &amp;lt;------&amp;gt; To&lt;br /&gt;
&lt;br /&gt;
# User Configuration&lt;br /&gt;
s['firstname'] = &amp;quot;Tom&amp;quot;   # Your First Name&lt;br /&gt;
s['lastname'] = &amp;quot;Jones&amp;quot;      # Your Last Name&lt;br /&gt;
s['useruuid'] = 'get your clients uuid'  # Your UUID, You can use a script in game to get this&lt;br /&gt;
#s['password'] = 'pass'     # This is optional, it is commented out by default.&lt;br /&gt;
&lt;br /&gt;
# Network Configuration&lt;br /&gt;
s['startport'] = 9100               # We recommend leaving this at 9000 for opensim&lt;br /&gt;
                                    # unless this isnt the first region.&lt;br /&gt;
s['internalip'] = &amp;quot;123.123.123.123&amp;quot;   # You need to get this to a internal wired/wireless lan ip address&lt;br /&gt;
s['externalhost'] = &amp;quot;example.org&amp;quot;  # This is the address that people connect from the outside world to&lt;br /&gt;
configlist.append(s)                # Dont touch this&lt;br /&gt;
# END OF REGION&lt;br /&gt;
# YOU MAY COPY AND PASTE MORE CONFIGURATIONS INTO THIS FILE TO ADD MORE REGIONS.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Rich43</name></author>	</entry>

	<entry>
		<id>http://opensimulator.org/wiki/RegionGenerator</id>
		<title>RegionGenerator</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/RegionGenerator"/>
				<updated>2008-07-15T01:41:48Z</updated>
		
		<summary type="html">&lt;p&gt;Rich43: /* Region Generator */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Region Generator ==&lt;br /&gt;
&lt;br /&gt;
=== About ===&lt;br /&gt;
This is the all new version 2.00 of Region Generator.&lt;br /&gt;
It now features support for multiple regions.&lt;br /&gt;
The password is also now optional in 2.00.&lt;br /&gt;
&lt;br /&gt;
It generates a square piece of land.&lt;br /&gt;
&lt;br /&gt;
You can feed it the from-to X Postion and from-to Y position then it makes the xml files for you.&lt;br /&gt;
&lt;br /&gt;
=== Download ===&lt;br /&gt;
I have made a .exe version of this program for windows, you can get it from these locations:&lt;br /&gt;
&lt;br /&gt;
http://www.mediafire.com/?yzzj11lbdon&lt;br /&gt;
&lt;br /&gt;
http://4rensics.com/regiongen2.zip&lt;br /&gt;
&lt;br /&gt;
=== How to use ===&lt;br /&gt;
If using windows version&lt;br /&gt;
* Extract to somewhere on your computer, i.e. The desktop.&lt;br /&gt;
* Edit the regionconfig.py file.&lt;br /&gt;
** You can Remove or Add as many regions as you like in this file. Region Generator 2.00 supports multiple regions.&lt;br /&gt;
** The password is optional, when connecting into grids like osgrid, it is normally not needed. You need to decide if you need it or not, experiment!&lt;br /&gt;
** If you give one region port 9000, give the next 9100 for example.&lt;br /&gt;
* Run regiongen.exe&lt;br /&gt;
* Copy the Regions folder to your opensim/bin folder.&lt;br /&gt;
* If you run it again, it will update the regions but it will not delete the files. If you made a big screw up, delete the Regions folder.&lt;br /&gt;
&lt;br /&gt;
If using the python source code (Linux, mac etc), make sure you have the cheetah and python 2.5 dependency's installed and edit the configuration in regionconfig.py then run :)&lt;br /&gt;
&lt;br /&gt;
=== Source Code ===&lt;br /&gt;
It requires the Cheetah Templating module and python 2.5.&lt;br /&gt;
&lt;br /&gt;
You can get cheetah from http://www.cheetahtemplate.org/&lt;br /&gt;
&lt;br /&gt;
You can get python from http://www.python.org/download/&lt;br /&gt;
&lt;br /&gt;
=== Errors ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Traceback (most recent call last):&lt;br /&gt;
File &amp;quot;regiongen.py&amp;quot;, line xx, in &amp;lt;module&amp;gt;&lt;br /&gt;
ImportError: No module named regionconfig&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You are missing the regiongen config file, you can find it at the bottom of thispage&lt;br /&gt;
&lt;br /&gt;
=== Source Code ===&lt;br /&gt;
==== regiongen.py ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/usr/bin/python&lt;br /&gt;
# REGIONGEN 2.00 BY RICHIE WARD&lt;br /&gt;
from Cheetah.Template import Template&lt;br /&gt;
import uuid&lt;br /&gt;
import os&lt;br /&gt;
import pickle&lt;br /&gt;
import regionconfig&lt;br /&gt;
&lt;br /&gt;
regionsdir = 'Regions'&lt;br /&gt;
&lt;br /&gt;
template = &amp;quot;&amp;quot;&amp;quot;&amp;lt;Root&amp;gt;&lt;br /&gt;
&amp;lt;Config sim_UUID=&amp;quot;$uuid&amp;quot; sim_name=&amp;quot;$regionname&amp;quot; sim_location_x=&amp;quot;$x&amp;quot; sim_location_y=&amp;quot;$y&amp;quot; internal_ip_address=&amp;quot;$s.internalip&amp;quot; internal_ip_port=&amp;quot;$port&amp;quot; allow_alternate_ports=&amp;quot;false&amp;quot; external_host_name=&amp;quot;$s.externalhost&amp;quot; master_avatar_uuid=&amp;quot;$s.useruuid&amp;quot; estate_covenant_uuid=&amp;quot;00000000-0000-0000-0000-000000000000&amp;quot; lastmap_refresh=&amp;quot;0&amp;quot; master_avatar_first=&amp;quot;$s.firstname&amp;quot; master_avatar_last=&amp;quot;$s.lastname&amp;quot; $password /&amp;gt;&lt;br /&gt;
&amp;lt;/Root&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
savefile = &amp;quot;regiongen_save.pkl&amp;quot;&lt;br /&gt;
&lt;br /&gt;
def maketemplate(regionname, x, y, port, uid, password=None):&lt;br /&gt;
    t = Template(template)&lt;br /&gt;
    t.s = s&lt;br /&gt;
    t.uuid = uid&lt;br /&gt;
    t.password = password&lt;br /&gt;
    t.regionname = regionname&lt;br /&gt;
    t.x = x&lt;br /&gt;
    t.y = y&lt;br /&gt;
    t.port = port&lt;br /&gt;
    return str(t)&lt;br /&gt;
&lt;br /&gt;
# Make directory to put regions in if not there&lt;br /&gt;
try:&lt;br /&gt;
    os.mkdir(regionsdir)&lt;br /&gt;
except OSError:&lt;br /&gt;
    pass&lt;br /&gt;
&lt;br /&gt;
settings = {}&lt;br /&gt;
&lt;br /&gt;
# Load settings file&lt;br /&gt;
try:&lt;br /&gt;
    settingsfile = open(savefile)&lt;br /&gt;
    settings = pickle.load(settingsfile)&lt;br /&gt;
    settingsfile.close()&lt;br /&gt;
except IOError:&lt;br /&gt;
    pass&lt;br /&gt;
    &lt;br /&gt;
for s in regionconfig.configlist:&lt;br /&gt;
    print s&lt;br /&gt;
    counter = 0&lt;br /&gt;
    for xnum in range(s['x'][0], s['x'][1]):&lt;br /&gt;
        for ynum in range(s['y'][0], s['y'][1]):&lt;br /&gt;
            counter += 1&lt;br /&gt;
            default = False&lt;br /&gt;
            &lt;br /&gt;
            # Figure out region name&lt;br /&gt;
            if counter == 1:&lt;br /&gt;
                default = True&lt;br /&gt;
                regionname = s['regionname']&lt;br /&gt;
            else:&lt;br /&gt;
                regionname = s['regionname'] + str(counter)&lt;br /&gt;
                &lt;br /&gt;
            # Figure out password&lt;br /&gt;
            if s.has_key('password'):&lt;br /&gt;
                password = &amp;quot;master_avatar_pass=\&amp;quot;%s\&amp;quot;&amp;quot; % s['password']&lt;br /&gt;
            else:&lt;br /&gt;
                password = ''&lt;br /&gt;
                &lt;br /&gt;
            # Figure out paths&lt;br /&gt;
            path = os.path.join(regionsdir,&amp;quot;%s.%s.%s.xml&amp;quot; % \&lt;br /&gt;
                        (regionname, xnum, ynum))&lt;br /&gt;
            &lt;br /&gt;
            # Calculate port&lt;br /&gt;
            port = s['startport'] + (counter - 1)&lt;br /&gt;
            &lt;br /&gt;
            # Try to get UUID from settings&lt;br /&gt;
            # Generate + Save if not found&lt;br /&gt;
            if settings.has_key(regionname):&lt;br /&gt;
                uid = settings[regionname]&lt;br /&gt;
            else:&lt;br /&gt;
                uid = str(uuid.uuid1())&lt;br /&gt;
                settings[regionname] = uid&lt;br /&gt;
                &lt;br /&gt;
            # Make template&lt;br /&gt;
            tmpldata = maketemplate(regionname, xnum, ynum, port, uid, password)&lt;br /&gt;
            &lt;br /&gt;
            # Save file&lt;br /&gt;
            tmplfile = open(path, 'w')&lt;br /&gt;
            tmplfile.write(tmpldata)&lt;br /&gt;
            tmplfile.close()&lt;br /&gt;
            &lt;br /&gt;
            # Print progress&lt;br /&gt;
            print regionname&lt;br /&gt;
&lt;br /&gt;
# Save settings file&lt;br /&gt;
try:&lt;br /&gt;
    settingsfile = open(savefile, 'w')&lt;br /&gt;
    pickle.dump(settings, settingsfile)&lt;br /&gt;
    settingsfile.close()&lt;br /&gt;
except IOError:&lt;br /&gt;
    pass&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== regionconfig.py ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# REGIONGEN 2.00 CONFIGURATION FILE&lt;br /&gt;
configlist = [] # Dont touch this&lt;br /&gt;
&lt;br /&gt;
# START OF REGION&lt;br /&gt;
s = {}                          # Dont touch this&lt;br /&gt;
# Region Configuration&lt;br /&gt;
s['regionname'] = &amp;quot;RegionSetOne&amp;quot; # Type the name of your island&lt;br /&gt;
s['x'] = [5100,5105]            # X Position... From &amp;lt;------&amp;gt; To&lt;br /&gt;
s['y'] = [5100,5105]            # Y Position... From &amp;lt;------&amp;gt; To&lt;br /&gt;
&lt;br /&gt;
# User Configuration&lt;br /&gt;
s['firstname'] = &amp;quot;Tom&amp;quot;   # Your First Name&lt;br /&gt;
s['lastname'] = &amp;quot;Jones&amp;quot;      # Your Last Name&lt;br /&gt;
s['useruuid'] = 'get your clients uuid'  # Your UUID, You can use a script in game to get this&lt;br /&gt;
#s['password'] = 'pass'     # This is optional, it is commented out by default.&lt;br /&gt;
&lt;br /&gt;
# Network Configuration&lt;br /&gt;
s['startport'] = 9000               # We recommend leaving this at 9000 for opensim&lt;br /&gt;
                                    # unless this isnt the first region.&lt;br /&gt;
s['internalip'] = &amp;quot;123.123.123.123&amp;quot;   # You need to get this to a internal wired/wireless lan ip address&lt;br /&gt;
s['externalhost'] = &amp;quot;example.org&amp;quot;  # This is the address that people connect from the outside world to&lt;br /&gt;
configlist.append(s)                # Dont touch this&lt;br /&gt;
# END OF REGION&lt;br /&gt;
# YOU MAY COPY AND PASTE MORE CONFIGURATIONS INTO THIS FILE TO ADD MORE REGIONS.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# START OF REGION&lt;br /&gt;
s = {}                          # Dont touch this&lt;br /&gt;
# Region Configuration&lt;br /&gt;
s['regionname'] = &amp;quot;RegionSetTwo&amp;quot; # Type the name of your island&lt;br /&gt;
s['x'] = [5200,5205]            # X Position... From &amp;lt;------&amp;gt; To&lt;br /&gt;
s['y'] = [5200,5205]            # Y Position... From &amp;lt;------&amp;gt; To&lt;br /&gt;
&lt;br /&gt;
# User Configuration&lt;br /&gt;
s['firstname'] = &amp;quot;Tom&amp;quot;   # Your First Name&lt;br /&gt;
s['lastname'] = &amp;quot;Jones&amp;quot;      # Your Last Name&lt;br /&gt;
s['useruuid'] = 'get your clients uuid'  # Your UUID, You can use a script in game to get this&lt;br /&gt;
#s['password'] = 'pass'     # This is optional, it is commented out by default.&lt;br /&gt;
&lt;br /&gt;
# Network Configuration&lt;br /&gt;
s['startport'] = 9100               # We recommend leaving this at 9000 for opensim&lt;br /&gt;
                                    # unless this isnt the first region.&lt;br /&gt;
s['internalip'] = &amp;quot;123.123.123.123&amp;quot;   # You need to get this to a internal wired/wireless lan ip address&lt;br /&gt;
s['externalhost'] = &amp;quot;example.org&amp;quot;  # This is the address that people connect from the outside world to&lt;br /&gt;
configlist.append(s)                # Dont touch this&lt;br /&gt;
# END OF REGION&lt;br /&gt;
# YOU MAY COPY AND PASTE MORE CONFIGURATIONS INTO THIS FILE TO ADD MORE REGIONS.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Rich43</name></author>	</entry>

	<entry>
		<id>http://opensimulator.org/wiki/RegionGenerator</id>
		<title>RegionGenerator</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/RegionGenerator"/>
				<updated>2008-07-15T01:41:10Z</updated>
		
		<summary type="html">&lt;p&gt;Rich43: /* Region Generator */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Region Generator ==&lt;br /&gt;
&lt;br /&gt;
=== About ===&lt;br /&gt;
This is the all new version 2.00 of Region Generator.&lt;br /&gt;
It now features support for multiple regions.&lt;br /&gt;
The password is also now optional in 2.00.&lt;br /&gt;
&lt;br /&gt;
It generates a square piece of land.&lt;br /&gt;
&lt;br /&gt;
You can feed it the from-to X Postion and from-to Y position then it makes the xml files for you.&lt;br /&gt;
&lt;br /&gt;
=== Download ===&lt;br /&gt;
I have made a .exe version of this program for windows, you can get it from these locations:&lt;br /&gt;
&lt;br /&gt;
http://www.mediafire.com/?yzzj11lbdon&lt;br /&gt;
&lt;br /&gt;
http://4rensics.com/regiongen2.zip&lt;br /&gt;
&lt;br /&gt;
=== How to use ===&lt;br /&gt;
If using windows version&lt;br /&gt;
* Extract to somewhere on your computer, i.e. The desktop.&lt;br /&gt;
* Edit the regionconfig.py file.&lt;br /&gt;
** You can Remove or Add as many regions as you like in this file. Region Generator 2.00 supports multiple regions.&lt;br /&gt;
** The password is optional, when connecting into grids like osgrid, it is normally not needed. You need to decide if you need it or not, experiment!&lt;br /&gt;
** If you give one region port 9000, give the next 9100 for example.&lt;br /&gt;
* Run regiongen.exe&lt;br /&gt;
* Copy the Regions folder to your opensim/bin folder.&lt;br /&gt;
* If you run it again, it will update the regions but it will not delete the files. If you made a big screw up, delete the Regions folder.&lt;br /&gt;
&lt;br /&gt;
If using the python source code (Linux, mac etc), make sure you have the cheetah and python 2.5 dependency's installed and edit the configuration in regionconfig.py then run :)&lt;br /&gt;
&lt;br /&gt;
=== Source Code ===&lt;br /&gt;
It requires the Cheetah Templating module and python 2.5.&lt;br /&gt;
&lt;br /&gt;
You can get cheetah from http://www.cheetahtemplate.org/&lt;br /&gt;
&lt;br /&gt;
You can get python from http://www.python.org/download/&lt;br /&gt;
&lt;br /&gt;
=== Errors ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Traceback (most recent call last):&lt;br /&gt;
File &amp;quot;regiongen.py&amp;quot;, line xx, in &amp;lt;module&amp;gt;&lt;br /&gt;
ImportError: No module named regionconfig&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You are missing the regiongen config file, you can find it at the bottom of thispage&lt;br /&gt;
&lt;br /&gt;
==== regiongen.py ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/usr/bin/python&lt;br /&gt;
# REGIONGEN 2.00 BY RICHIE WARD&lt;br /&gt;
from Cheetah.Template import Template&lt;br /&gt;
import uuid&lt;br /&gt;
import os&lt;br /&gt;
import pickle&lt;br /&gt;
import regionconfig&lt;br /&gt;
&lt;br /&gt;
regionsdir = 'Regions'&lt;br /&gt;
&lt;br /&gt;
template = &amp;quot;&amp;quot;&amp;quot;&amp;lt;Root&amp;gt;&lt;br /&gt;
&amp;lt;Config sim_UUID=&amp;quot;$uuid&amp;quot; sim_name=&amp;quot;$regionname&amp;quot; sim_location_x=&amp;quot;$x&amp;quot; sim_location_y=&amp;quot;$y&amp;quot; internal_ip_address=&amp;quot;$s.internalip&amp;quot; internal_ip_port=&amp;quot;$port&amp;quot; allow_alternate_ports=&amp;quot;false&amp;quot; external_host_name=&amp;quot;$s.externalhost&amp;quot; master_avatar_uuid=&amp;quot;$s.useruuid&amp;quot; estate_covenant_uuid=&amp;quot;00000000-0000-0000-0000-000000000000&amp;quot; lastmap_refresh=&amp;quot;0&amp;quot; master_avatar_first=&amp;quot;$s.firstname&amp;quot; master_avatar_last=&amp;quot;$s.lastname&amp;quot; $password /&amp;gt;&lt;br /&gt;
&amp;lt;/Root&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
savefile = &amp;quot;regiongen_save.pkl&amp;quot;&lt;br /&gt;
&lt;br /&gt;
def maketemplate(regionname, x, y, port, uid, password=None):&lt;br /&gt;
    t = Template(template)&lt;br /&gt;
    t.s = s&lt;br /&gt;
    t.uuid = uid&lt;br /&gt;
    t.password = password&lt;br /&gt;
    t.regionname = regionname&lt;br /&gt;
    t.x = x&lt;br /&gt;
    t.y = y&lt;br /&gt;
    t.port = port&lt;br /&gt;
    return str(t)&lt;br /&gt;
&lt;br /&gt;
# Make directory to put regions in if not there&lt;br /&gt;
try:&lt;br /&gt;
    os.mkdir(regionsdir)&lt;br /&gt;
except OSError:&lt;br /&gt;
    pass&lt;br /&gt;
&lt;br /&gt;
settings = {}&lt;br /&gt;
&lt;br /&gt;
# Load settings file&lt;br /&gt;
try:&lt;br /&gt;
    settingsfile = open(savefile)&lt;br /&gt;
    settings = pickle.load(settingsfile)&lt;br /&gt;
    settingsfile.close()&lt;br /&gt;
except IOError:&lt;br /&gt;
    pass&lt;br /&gt;
    &lt;br /&gt;
for s in regionconfig.configlist:&lt;br /&gt;
    print s&lt;br /&gt;
    counter = 0&lt;br /&gt;
    for xnum in range(s['x'][0], s['x'][1]):&lt;br /&gt;
        for ynum in range(s['y'][0], s['y'][1]):&lt;br /&gt;
            counter += 1&lt;br /&gt;
            default = False&lt;br /&gt;
            &lt;br /&gt;
            # Figure out region name&lt;br /&gt;
            if counter == 1:&lt;br /&gt;
                default = True&lt;br /&gt;
                regionname = s['regionname']&lt;br /&gt;
            else:&lt;br /&gt;
                regionname = s['regionname'] + str(counter)&lt;br /&gt;
                &lt;br /&gt;
            # Figure out password&lt;br /&gt;
            if s.has_key('password'):&lt;br /&gt;
                password = &amp;quot;master_avatar_pass=\&amp;quot;%s\&amp;quot;&amp;quot; % s['password']&lt;br /&gt;
            else:&lt;br /&gt;
                password = ''&lt;br /&gt;
                &lt;br /&gt;
            # Figure out paths&lt;br /&gt;
            path = os.path.join(regionsdir,&amp;quot;%s.%s.%s.xml&amp;quot; % \&lt;br /&gt;
                        (regionname, xnum, ynum))&lt;br /&gt;
            &lt;br /&gt;
            # Calculate port&lt;br /&gt;
            port = s['startport'] + (counter - 1)&lt;br /&gt;
            &lt;br /&gt;
            # Try to get UUID from settings&lt;br /&gt;
            # Generate + Save if not found&lt;br /&gt;
            if settings.has_key(regionname):&lt;br /&gt;
                uid = settings[regionname]&lt;br /&gt;
            else:&lt;br /&gt;
                uid = str(uuid.uuid1())&lt;br /&gt;
                settings[regionname] = uid&lt;br /&gt;
                &lt;br /&gt;
            # Make template&lt;br /&gt;
            tmpldata = maketemplate(regionname, xnum, ynum, port, uid, password)&lt;br /&gt;
            &lt;br /&gt;
            # Save file&lt;br /&gt;
            tmplfile = open(path, 'w')&lt;br /&gt;
            tmplfile.write(tmpldata)&lt;br /&gt;
            tmplfile.close()&lt;br /&gt;
            &lt;br /&gt;
            # Print progress&lt;br /&gt;
            print regionname&lt;br /&gt;
&lt;br /&gt;
# Save settings file&lt;br /&gt;
try:&lt;br /&gt;
    settingsfile = open(savefile, 'w')&lt;br /&gt;
    pickle.dump(settings, settingsfile)&lt;br /&gt;
    settingsfile.close()&lt;br /&gt;
except IOError:&lt;br /&gt;
    pass&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== regionconfig.py ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# REGIONGEN 2.00 CONFIGURATION FILE&lt;br /&gt;
configlist = [] # Dont touch this&lt;br /&gt;
&lt;br /&gt;
# START OF REGION&lt;br /&gt;
s = {}                          # Dont touch this&lt;br /&gt;
# Region Configuration&lt;br /&gt;
s['regionname'] = &amp;quot;RegionSetOne&amp;quot; # Type the name of your island&lt;br /&gt;
s['x'] = [5100,5105]            # X Position... From &amp;lt;------&amp;gt; To&lt;br /&gt;
s['y'] = [5100,5105]            # Y Position... From &amp;lt;------&amp;gt; To&lt;br /&gt;
&lt;br /&gt;
# User Configuration&lt;br /&gt;
s['firstname'] = &amp;quot;Tom&amp;quot;   # Your First Name&lt;br /&gt;
s['lastname'] = &amp;quot;Jones&amp;quot;      # Your Last Name&lt;br /&gt;
s['useruuid'] = 'get your clients uuid'  # Your UUID, You can use a script in game to get this&lt;br /&gt;
#s['password'] = 'pass'     # This is optional, it is commented out by default.&lt;br /&gt;
&lt;br /&gt;
# Network Configuration&lt;br /&gt;
s['startport'] = 9000               # We recommend leaving this at 9000 for opensim&lt;br /&gt;
                                    # unless this isnt the first region.&lt;br /&gt;
s['internalip'] = &amp;quot;123.123.123.123&amp;quot;   # You need to get this to a internal wired/wireless lan ip address&lt;br /&gt;
s['externalhost'] = &amp;quot;example.org&amp;quot;  # This is the address that people connect from the outside world to&lt;br /&gt;
configlist.append(s)                # Dont touch this&lt;br /&gt;
# END OF REGION&lt;br /&gt;
# YOU MAY COPY AND PASTE MORE CONFIGURATIONS INTO THIS FILE TO ADD MORE REGIONS.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# START OF REGION&lt;br /&gt;
s = {}                          # Dont touch this&lt;br /&gt;
# Region Configuration&lt;br /&gt;
s['regionname'] = &amp;quot;RegionSetTwo&amp;quot; # Type the name of your island&lt;br /&gt;
s['x'] = [5200,5205]            # X Position... From &amp;lt;------&amp;gt; To&lt;br /&gt;
s['y'] = [5200,5205]            # Y Position... From &amp;lt;------&amp;gt; To&lt;br /&gt;
&lt;br /&gt;
# User Configuration&lt;br /&gt;
s['firstname'] = &amp;quot;Tom&amp;quot;   # Your First Name&lt;br /&gt;
s['lastname'] = &amp;quot;Jones&amp;quot;      # Your Last Name&lt;br /&gt;
s['useruuid'] = 'get your clients uuid'  # Your UUID, You can use a script in game to get this&lt;br /&gt;
#s['password'] = 'pass'     # This is optional, it is commented out by default.&lt;br /&gt;
&lt;br /&gt;
# Network Configuration&lt;br /&gt;
s['startport'] = 9100               # We recommend leaving this at 9000 for opensim&lt;br /&gt;
                                    # unless this isnt the first region.&lt;br /&gt;
s['internalip'] = &amp;quot;123.123.123.123&amp;quot;   # You need to get this to a internal wired/wireless lan ip address&lt;br /&gt;
s['externalhost'] = &amp;quot;example.org&amp;quot;  # This is the address that people connect from the outside world to&lt;br /&gt;
configlist.append(s)                # Dont touch this&lt;br /&gt;
# END OF REGION&lt;br /&gt;
# YOU MAY COPY AND PASTE MORE CONFIGURATIONS INTO THIS FILE TO ADD MORE REGIONS.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Rich43</name></author>	</entry>

	<entry>
		<id>http://opensimulator.org/wiki/Talk:RegionGenerator</id>
		<title>Talk:RegionGenerator</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/Talk:RegionGenerator"/>
				<updated>2008-07-15T01:19:37Z</updated>
		
		<summary type="html">&lt;p&gt;Rich43: New page: Write your thanks messages :)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Write your thanks messages :)&lt;/div&gt;</summary>
		<author><name>Rich43</name></author>	</entry>

	<entry>
		<id>http://opensimulator.org/wiki/RegionGenerator</id>
		<title>RegionGenerator</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/RegionGenerator"/>
				<updated>2008-07-15T01:12:32Z</updated>
		
		<summary type="html">&lt;p&gt;Rich43: /* How to use */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Region Generator ==&lt;br /&gt;
&lt;br /&gt;
=== About ===&lt;br /&gt;
This is the all new version 2.00 of Region Generator.&lt;br /&gt;
It now features support for multiple regions.&lt;br /&gt;
The password is also now optional in 2.00.&lt;br /&gt;
&lt;br /&gt;
It generates a square piece of land.&lt;br /&gt;
&lt;br /&gt;
You can feed it the from-to X Postion and from-to Y position then it makes the xml files for you.&lt;br /&gt;
&lt;br /&gt;
=== Download ===&lt;br /&gt;
I have made a .exe version of this program for windows, you can get it from these locations:&lt;br /&gt;
&lt;br /&gt;
http://www.mediafire.com/?yzzj11lbdon&lt;br /&gt;
&lt;br /&gt;
http://4rensics.com/regiongen2.zip&lt;br /&gt;
&lt;br /&gt;
=== How to use ===&lt;br /&gt;
If using windows version&lt;br /&gt;
* Extract to somewhere on your computer, i.e. The desktop.&lt;br /&gt;
* Edit the regionconfig.py file.&lt;br /&gt;
** You can Remove or Add as many regions as you like in this file. Region Generator 2.00 supports multiple regions.&lt;br /&gt;
** The password is optional, when connecting into grids like osgrid, it is normally not needed. You need to decide if you need it or not, experiment!&lt;br /&gt;
** If you give one region port 9000, give the next 9100 for example.&lt;br /&gt;
* Run regiongen.exe&lt;br /&gt;
* Copy the Regions folder to your opensim/bin folder.&lt;br /&gt;
* If you run it again, it will update the regions but it will not delete the files. If you made a big screw up, delete the Regions folder.&lt;br /&gt;
&lt;br /&gt;
If using the python source code (Linux, mac etc), make sure you have the cheetah and python 2.5 dependency's installed and edit the configuration in regionconfig.py then run :)&lt;br /&gt;
&lt;br /&gt;
=== Source Code ===&lt;br /&gt;
It requires the Cheetah Templating module and python 2.5.&lt;br /&gt;
&lt;br /&gt;
You can get cheetah from http://www.cheetahtemplate.org/&lt;br /&gt;
&lt;br /&gt;
You can get python from http://www.python.org/download/&lt;br /&gt;
&lt;br /&gt;
==== regiongen.py ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/usr/bin/python&lt;br /&gt;
# REGIONGEN 2.00 BY RICHIE WARD&lt;br /&gt;
from Cheetah.Template import Template&lt;br /&gt;
import uuid&lt;br /&gt;
import os&lt;br /&gt;
import pickle&lt;br /&gt;
import regionconfig&lt;br /&gt;
&lt;br /&gt;
regionsdir = 'Regions'&lt;br /&gt;
&lt;br /&gt;
template = &amp;quot;&amp;quot;&amp;quot;&amp;lt;Root&amp;gt;&lt;br /&gt;
&amp;lt;Config sim_UUID=&amp;quot;$uuid&amp;quot; sim_name=&amp;quot;$regionname&amp;quot; sim_location_x=&amp;quot;$x&amp;quot; sim_location_y=&amp;quot;$y&amp;quot; internal_ip_address=&amp;quot;$s.internalip&amp;quot; internal_ip_port=&amp;quot;$port&amp;quot; allow_alternate_ports=&amp;quot;false&amp;quot; external_host_name=&amp;quot;$s.externalhost&amp;quot; master_avatar_uuid=&amp;quot;$s.useruuid&amp;quot; estate_covenant_uuid=&amp;quot;00000000-0000-0000-0000-000000000000&amp;quot; lastmap_refresh=&amp;quot;0&amp;quot; master_avatar_first=&amp;quot;$s.firstname&amp;quot; master_avatar_last=&amp;quot;$s.lastname&amp;quot; $password /&amp;gt;&lt;br /&gt;
&amp;lt;/Root&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
savefile = &amp;quot;regiongen_save.pkl&amp;quot;&lt;br /&gt;
&lt;br /&gt;
def maketemplate(regionname, x, y, port, uid, password=None):&lt;br /&gt;
    t = Template(template)&lt;br /&gt;
    t.s = s&lt;br /&gt;
    t.uuid = uid&lt;br /&gt;
    t.password = password&lt;br /&gt;
    t.regionname = regionname&lt;br /&gt;
    t.x = x&lt;br /&gt;
    t.y = y&lt;br /&gt;
    t.port = port&lt;br /&gt;
    return str(t)&lt;br /&gt;
&lt;br /&gt;
# Make directory to put regions in if not there&lt;br /&gt;
try:&lt;br /&gt;
    os.mkdir(regionsdir)&lt;br /&gt;
except OSError:&lt;br /&gt;
    pass&lt;br /&gt;
&lt;br /&gt;
settings = {}&lt;br /&gt;
&lt;br /&gt;
# Load settings file&lt;br /&gt;
try:&lt;br /&gt;
    settingsfile = open(savefile)&lt;br /&gt;
    settings = pickle.load(settingsfile)&lt;br /&gt;
    settingsfile.close()&lt;br /&gt;
except IOError:&lt;br /&gt;
    pass&lt;br /&gt;
    &lt;br /&gt;
for s in regionconfig.configlist:&lt;br /&gt;
    print s&lt;br /&gt;
    counter = 0&lt;br /&gt;
    for xnum in range(s['x'][0], s['x'][1]):&lt;br /&gt;
        for ynum in range(s['y'][0], s['y'][1]):&lt;br /&gt;
            counter += 1&lt;br /&gt;
            default = False&lt;br /&gt;
            &lt;br /&gt;
            # Figure out region name&lt;br /&gt;
            if counter == 1:&lt;br /&gt;
                default = True&lt;br /&gt;
                regionname = s['regionname']&lt;br /&gt;
            else:&lt;br /&gt;
                regionname = s['regionname'] + str(counter)&lt;br /&gt;
                &lt;br /&gt;
            # Figure out password&lt;br /&gt;
            if s.has_key('password'):&lt;br /&gt;
                password = &amp;quot;master_avatar_pass=\&amp;quot;%s\&amp;quot;&amp;quot; % s['password']&lt;br /&gt;
            else:&lt;br /&gt;
                password = ''&lt;br /&gt;
                &lt;br /&gt;
            # Figure out paths&lt;br /&gt;
            path = os.path.join(regionsdir,&amp;quot;%s.%s.%s.xml&amp;quot; % \&lt;br /&gt;
                        (regionname, xnum, ynum))&lt;br /&gt;
            &lt;br /&gt;
            # Calculate port&lt;br /&gt;
            port = s['startport'] + (counter - 1)&lt;br /&gt;
            &lt;br /&gt;
            # Try to get UUID from settings&lt;br /&gt;
            # Generate + Save if not found&lt;br /&gt;
            if settings.has_key(regionname):&lt;br /&gt;
                uid = settings[regionname]&lt;br /&gt;
            else:&lt;br /&gt;
                uid = str(uuid.uuid1())&lt;br /&gt;
                settings[regionname] = uid&lt;br /&gt;
                &lt;br /&gt;
            # Make template&lt;br /&gt;
            tmpldata = maketemplate(regionname, xnum, ynum, port, uid, password)&lt;br /&gt;
            &lt;br /&gt;
            # Save file&lt;br /&gt;
            tmplfile = open(path, 'w')&lt;br /&gt;
            tmplfile.write(tmpldata)&lt;br /&gt;
            tmplfile.close()&lt;br /&gt;
            &lt;br /&gt;
            # Print progress&lt;br /&gt;
            print regionname&lt;br /&gt;
&lt;br /&gt;
# Save settings file&lt;br /&gt;
try:&lt;br /&gt;
    settingsfile = open(savefile, 'w')&lt;br /&gt;
    pickle.dump(settings, settingsfile)&lt;br /&gt;
    settingsfile.close()&lt;br /&gt;
except IOError:&lt;br /&gt;
    pass&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== regionconfig.py ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# REGIONGEN 2.00 CONFIGURATION FILE&lt;br /&gt;
configlist = [] # Dont touch this&lt;br /&gt;
&lt;br /&gt;
# START OF REGION&lt;br /&gt;
s = {}                          # Dont touch this&lt;br /&gt;
# Region Configuration&lt;br /&gt;
s['regionname'] = &amp;quot;RegionSetOne&amp;quot; # Type the name of your island&lt;br /&gt;
s['x'] = [5100,5105]            # X Position... From &amp;lt;------&amp;gt; To&lt;br /&gt;
s['y'] = [5100,5105]            # Y Position... From &amp;lt;------&amp;gt; To&lt;br /&gt;
&lt;br /&gt;
# User Configuration&lt;br /&gt;
s['firstname'] = &amp;quot;Tom&amp;quot;   # Your First Name&lt;br /&gt;
s['lastname'] = &amp;quot;Jones&amp;quot;      # Your Last Name&lt;br /&gt;
s['useruuid'] = 'get your clients uuid'  # Your UUID, You can use a script in game to get this&lt;br /&gt;
#s['password'] = 'pass'     # This is optional, it is commented out by default.&lt;br /&gt;
&lt;br /&gt;
# Network Configuration&lt;br /&gt;
s['startport'] = 9000               # We recommend leaving this at 9000 for opensim&lt;br /&gt;
                                    # unless this isnt the first region.&lt;br /&gt;
s['internalip'] = &amp;quot;123.123.123.123&amp;quot;   # You need to get this to a internal wired/wireless lan ip address&lt;br /&gt;
s['externalhost'] = &amp;quot;example.org&amp;quot;  # This is the address that people connect from the outside world to&lt;br /&gt;
configlist.append(s)                # Dont touch this&lt;br /&gt;
# END OF REGION&lt;br /&gt;
# YOU MAY COPY AND PASTE MORE CONFIGURATIONS INTO THIS FILE TO ADD MORE REGIONS.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# START OF REGION&lt;br /&gt;
s = {}                          # Dont touch this&lt;br /&gt;
# Region Configuration&lt;br /&gt;
s['regionname'] = &amp;quot;RegionSetTwo&amp;quot; # Type the name of your island&lt;br /&gt;
s['x'] = [5200,5205]            # X Position... From &amp;lt;------&amp;gt; To&lt;br /&gt;
s['y'] = [5200,5205]            # Y Position... From &amp;lt;------&amp;gt; To&lt;br /&gt;
&lt;br /&gt;
# User Configuration&lt;br /&gt;
s['firstname'] = &amp;quot;Tom&amp;quot;   # Your First Name&lt;br /&gt;
s['lastname'] = &amp;quot;Jones&amp;quot;      # Your Last Name&lt;br /&gt;
s['useruuid'] = 'get your clients uuid'  # Your UUID, You can use a script in game to get this&lt;br /&gt;
#s['password'] = 'pass'     # This is optional, it is commented out by default.&lt;br /&gt;
&lt;br /&gt;
# Network Configuration&lt;br /&gt;
s['startport'] = 9100               # We recommend leaving this at 9000 for opensim&lt;br /&gt;
                                    # unless this isnt the first region.&lt;br /&gt;
s['internalip'] = &amp;quot;123.123.123.123&amp;quot;   # You need to get this to a internal wired/wireless lan ip address&lt;br /&gt;
s['externalhost'] = &amp;quot;example.org&amp;quot;  # This is the address that people connect from the outside world to&lt;br /&gt;
configlist.append(s)                # Dont touch this&lt;br /&gt;
# END OF REGION&lt;br /&gt;
# YOU MAY COPY AND PASTE MORE CONFIGURATIONS INTO THIS FILE TO ADD MORE REGIONS.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Rich43</name></author>	</entry>

	<entry>
		<id>http://opensimulator.org/wiki/RegionGenerator</id>
		<title>RegionGenerator</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/RegionGenerator"/>
				<updated>2008-07-15T01:09:04Z</updated>
		
		<summary type="html">&lt;p&gt;Rich43: /* About */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Region Generator ==&lt;br /&gt;
&lt;br /&gt;
=== About ===&lt;br /&gt;
This is the all new version 2.00 of Region Generator.&lt;br /&gt;
It now features support for multiple regions.&lt;br /&gt;
The password is also now optional in 2.00.&lt;br /&gt;
&lt;br /&gt;
It generates a square piece of land.&lt;br /&gt;
&lt;br /&gt;
You can feed it the from-to X Postion and from-to Y position then it makes the xml files for you.&lt;br /&gt;
&lt;br /&gt;
=== Download ===&lt;br /&gt;
I have made a .exe version of this program for windows, you can get it from these locations:&lt;br /&gt;
&lt;br /&gt;
http://www.mediafire.com/?yzzj11lbdon&lt;br /&gt;
&lt;br /&gt;
http://4rensics.com/regiongen2.zip&lt;br /&gt;
&lt;br /&gt;
=== How to use ===&lt;br /&gt;
If using windows version&lt;br /&gt;
* Extract to somewhere on your computer, i.e. The desktop.&lt;br /&gt;
* Edit the regionconfig.py file.&lt;br /&gt;
** You can Remove or Add as many regions as you like in this file. Region Generator 2.00 supports multiple regions.&lt;br /&gt;
** The password is optional, when connecting into grids like osgrid, it is normally not needed. You need to decide if you need it or not, experiment!&lt;br /&gt;
* Run regiongen.exe&lt;br /&gt;
* Copy the Regions folder to your opensim/bin folder.&lt;br /&gt;
* If you run it again, it will update the regions but it will not delete the files. If you made a big screw up, delete the Regions folder.&lt;br /&gt;
&lt;br /&gt;
If using the python source code (Linux, mac etc), make sure you have the cheetah and python 2.5 dependency's installed and edit the configuration in regionconfig.py then run :)&lt;br /&gt;
&lt;br /&gt;
=== Source Code ===&lt;br /&gt;
It requires the Cheetah Templating module and python 2.5.&lt;br /&gt;
&lt;br /&gt;
You can get cheetah from http://www.cheetahtemplate.org/&lt;br /&gt;
&lt;br /&gt;
You can get python from http://www.python.org/download/&lt;br /&gt;
&lt;br /&gt;
==== regiongen.py ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/usr/bin/python&lt;br /&gt;
# REGIONGEN 2.00 BY RICHIE WARD&lt;br /&gt;
from Cheetah.Template import Template&lt;br /&gt;
import uuid&lt;br /&gt;
import os&lt;br /&gt;
import pickle&lt;br /&gt;
import regionconfig&lt;br /&gt;
&lt;br /&gt;
regionsdir = 'Regions'&lt;br /&gt;
&lt;br /&gt;
template = &amp;quot;&amp;quot;&amp;quot;&amp;lt;Root&amp;gt;&lt;br /&gt;
&amp;lt;Config sim_UUID=&amp;quot;$uuid&amp;quot; sim_name=&amp;quot;$regionname&amp;quot; sim_location_x=&amp;quot;$x&amp;quot; sim_location_y=&amp;quot;$y&amp;quot; internal_ip_address=&amp;quot;$s.internalip&amp;quot; internal_ip_port=&amp;quot;$port&amp;quot; allow_alternate_ports=&amp;quot;false&amp;quot; external_host_name=&amp;quot;$s.externalhost&amp;quot; master_avatar_uuid=&amp;quot;$s.useruuid&amp;quot; estate_covenant_uuid=&amp;quot;00000000-0000-0000-0000-000000000000&amp;quot; lastmap_refresh=&amp;quot;0&amp;quot; master_avatar_first=&amp;quot;$s.firstname&amp;quot; master_avatar_last=&amp;quot;$s.lastname&amp;quot; $password /&amp;gt;&lt;br /&gt;
&amp;lt;/Root&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
savefile = &amp;quot;regiongen_save.pkl&amp;quot;&lt;br /&gt;
&lt;br /&gt;
def maketemplate(regionname, x, y, port, uid, password=None):&lt;br /&gt;
    t = Template(template)&lt;br /&gt;
    t.s = s&lt;br /&gt;
    t.uuid = uid&lt;br /&gt;
    t.password = password&lt;br /&gt;
    t.regionname = regionname&lt;br /&gt;
    t.x = x&lt;br /&gt;
    t.y = y&lt;br /&gt;
    t.port = port&lt;br /&gt;
    return str(t)&lt;br /&gt;
&lt;br /&gt;
# Make directory to put regions in if not there&lt;br /&gt;
try:&lt;br /&gt;
    os.mkdir(regionsdir)&lt;br /&gt;
except OSError:&lt;br /&gt;
    pass&lt;br /&gt;
&lt;br /&gt;
settings = {}&lt;br /&gt;
&lt;br /&gt;
# Load settings file&lt;br /&gt;
try:&lt;br /&gt;
    settingsfile = open(savefile)&lt;br /&gt;
    settings = pickle.load(settingsfile)&lt;br /&gt;
    settingsfile.close()&lt;br /&gt;
except IOError:&lt;br /&gt;
    pass&lt;br /&gt;
    &lt;br /&gt;
for s in regionconfig.configlist:&lt;br /&gt;
    print s&lt;br /&gt;
    counter = 0&lt;br /&gt;
    for xnum in range(s['x'][0], s['x'][1]):&lt;br /&gt;
        for ynum in range(s['y'][0], s['y'][1]):&lt;br /&gt;
            counter += 1&lt;br /&gt;
            default = False&lt;br /&gt;
            &lt;br /&gt;
            # Figure out region name&lt;br /&gt;
            if counter == 1:&lt;br /&gt;
                default = True&lt;br /&gt;
                regionname = s['regionname']&lt;br /&gt;
            else:&lt;br /&gt;
                regionname = s['regionname'] + str(counter)&lt;br /&gt;
                &lt;br /&gt;
            # Figure out password&lt;br /&gt;
            if s.has_key('password'):&lt;br /&gt;
                password = &amp;quot;master_avatar_pass=\&amp;quot;%s\&amp;quot;&amp;quot; % s['password']&lt;br /&gt;
            else:&lt;br /&gt;
                password = ''&lt;br /&gt;
                &lt;br /&gt;
            # Figure out paths&lt;br /&gt;
            path = os.path.join(regionsdir,&amp;quot;%s.%s.%s.xml&amp;quot; % \&lt;br /&gt;
                        (regionname, xnum, ynum))&lt;br /&gt;
            &lt;br /&gt;
            # Calculate port&lt;br /&gt;
            port = s['startport'] + (counter - 1)&lt;br /&gt;
            &lt;br /&gt;
            # Try to get UUID from settings&lt;br /&gt;
            # Generate + Save if not found&lt;br /&gt;
            if settings.has_key(regionname):&lt;br /&gt;
                uid = settings[regionname]&lt;br /&gt;
            else:&lt;br /&gt;
                uid = str(uuid.uuid1())&lt;br /&gt;
                settings[regionname] = uid&lt;br /&gt;
                &lt;br /&gt;
            # Make template&lt;br /&gt;
            tmpldata = maketemplate(regionname, xnum, ynum, port, uid, password)&lt;br /&gt;
            &lt;br /&gt;
            # Save file&lt;br /&gt;
            tmplfile = open(path, 'w')&lt;br /&gt;
            tmplfile.write(tmpldata)&lt;br /&gt;
            tmplfile.close()&lt;br /&gt;
            &lt;br /&gt;
            # Print progress&lt;br /&gt;
            print regionname&lt;br /&gt;
&lt;br /&gt;
# Save settings file&lt;br /&gt;
try:&lt;br /&gt;
    settingsfile = open(savefile, 'w')&lt;br /&gt;
    pickle.dump(settings, settingsfile)&lt;br /&gt;
    settingsfile.close()&lt;br /&gt;
except IOError:&lt;br /&gt;
    pass&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== regionconfig.py ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# REGIONGEN 2.00 CONFIGURATION FILE&lt;br /&gt;
configlist = [] # Dont touch this&lt;br /&gt;
&lt;br /&gt;
# START OF REGION&lt;br /&gt;
s = {}                          # Dont touch this&lt;br /&gt;
# Region Configuration&lt;br /&gt;
s['regionname'] = &amp;quot;RegionSetOne&amp;quot; # Type the name of your island&lt;br /&gt;
s['x'] = [5100,5105]            # X Position... From &amp;lt;------&amp;gt; To&lt;br /&gt;
s['y'] = [5100,5105]            # Y Position... From &amp;lt;------&amp;gt; To&lt;br /&gt;
&lt;br /&gt;
# User Configuration&lt;br /&gt;
s['firstname'] = &amp;quot;Tom&amp;quot;   # Your First Name&lt;br /&gt;
s['lastname'] = &amp;quot;Jones&amp;quot;      # Your Last Name&lt;br /&gt;
s['useruuid'] = 'get your clients uuid'  # Your UUID, You can use a script in game to get this&lt;br /&gt;
#s['password'] = 'pass'     # This is optional, it is commented out by default.&lt;br /&gt;
&lt;br /&gt;
# Network Configuration&lt;br /&gt;
s['startport'] = 9000               # We recommend leaving this at 9000 for opensim&lt;br /&gt;
                                    # unless this isnt the first region.&lt;br /&gt;
s['internalip'] = &amp;quot;123.123.123.123&amp;quot;   # You need to get this to a internal wired/wireless lan ip address&lt;br /&gt;
s['externalhost'] = &amp;quot;example.org&amp;quot;  # This is the address that people connect from the outside world to&lt;br /&gt;
configlist.append(s)                # Dont touch this&lt;br /&gt;
# END OF REGION&lt;br /&gt;
# YOU MAY COPY AND PASTE MORE CONFIGURATIONS INTO THIS FILE TO ADD MORE REGIONS.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# START OF REGION&lt;br /&gt;
s = {}                          # Dont touch this&lt;br /&gt;
# Region Configuration&lt;br /&gt;
s['regionname'] = &amp;quot;RegionSetTwo&amp;quot; # Type the name of your island&lt;br /&gt;
s['x'] = [5200,5205]            # X Position... From &amp;lt;------&amp;gt; To&lt;br /&gt;
s['y'] = [5200,5205]            # Y Position... From &amp;lt;------&amp;gt; To&lt;br /&gt;
&lt;br /&gt;
# User Configuration&lt;br /&gt;
s['firstname'] = &amp;quot;Tom&amp;quot;   # Your First Name&lt;br /&gt;
s['lastname'] = &amp;quot;Jones&amp;quot;      # Your Last Name&lt;br /&gt;
s['useruuid'] = 'get your clients uuid'  # Your UUID, You can use a script in game to get this&lt;br /&gt;
#s['password'] = 'pass'     # This is optional, it is commented out by default.&lt;br /&gt;
&lt;br /&gt;
# Network Configuration&lt;br /&gt;
s['startport'] = 9100               # We recommend leaving this at 9000 for opensim&lt;br /&gt;
                                    # unless this isnt the first region.&lt;br /&gt;
s['internalip'] = &amp;quot;123.123.123.123&amp;quot;   # You need to get this to a internal wired/wireless lan ip address&lt;br /&gt;
s['externalhost'] = &amp;quot;example.org&amp;quot;  # This is the address that people connect from the outside world to&lt;br /&gt;
configlist.append(s)                # Dont touch this&lt;br /&gt;
# END OF REGION&lt;br /&gt;
# YOU MAY COPY AND PASTE MORE CONFIGURATIONS INTO THIS FILE TO ADD MORE REGIONS.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Rich43</name></author>	</entry>

	<entry>
		<id>http://opensimulator.org/wiki/RegionGenerator</id>
		<title>RegionGenerator</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/RegionGenerator"/>
				<updated>2008-07-15T01:07:43Z</updated>
		
		<summary type="html">&lt;p&gt;Rich43: /* How to use */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Region Generator ==&lt;br /&gt;
&lt;br /&gt;
=== About ===&lt;br /&gt;
It generates a square piece of land.&lt;br /&gt;
&lt;br /&gt;
You can feed it the from-to X Postion and from-to Y position then it makes the xml files for you.&lt;br /&gt;
&lt;br /&gt;
=== Download ===&lt;br /&gt;
I have made a .exe version of this program for windows, you can get it from these locations:&lt;br /&gt;
&lt;br /&gt;
http://www.mediafire.com/?yzzj11lbdon&lt;br /&gt;
&lt;br /&gt;
http://4rensics.com/regiongen2.zip&lt;br /&gt;
&lt;br /&gt;
=== How to use ===&lt;br /&gt;
If using windows version&lt;br /&gt;
* Extract to somewhere on your computer, i.e. The desktop.&lt;br /&gt;
* Edit the regionconfig.py file.&lt;br /&gt;
** You can Remove or Add as many regions as you like in this file. Region Generator 2.00 supports multiple regions.&lt;br /&gt;
** The password is optional, when connecting into grids like osgrid, it is normally not needed. You need to decide if you need it or not, experiment!&lt;br /&gt;
* Run regiongen.exe&lt;br /&gt;
* Copy the Regions folder to your opensim/bin folder.&lt;br /&gt;
* If you run it again, it will update the regions but it will not delete the files. If you made a big screw up, delete the Regions folder.&lt;br /&gt;
&lt;br /&gt;
If using the python source code (Linux, mac etc), make sure you have the cheetah and python 2.5 dependency's installed and edit the configuration in regionconfig.py then run :)&lt;br /&gt;
&lt;br /&gt;
=== Source Code ===&lt;br /&gt;
It requires the Cheetah Templating module and python 2.5.&lt;br /&gt;
&lt;br /&gt;
You can get cheetah from http://www.cheetahtemplate.org/&lt;br /&gt;
&lt;br /&gt;
You can get python from http://www.python.org/download/&lt;br /&gt;
&lt;br /&gt;
==== regiongen.py ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/usr/bin/python&lt;br /&gt;
# REGIONGEN 2.00 BY RICHIE WARD&lt;br /&gt;
from Cheetah.Template import Template&lt;br /&gt;
import uuid&lt;br /&gt;
import os&lt;br /&gt;
import pickle&lt;br /&gt;
import regionconfig&lt;br /&gt;
&lt;br /&gt;
regionsdir = 'Regions'&lt;br /&gt;
&lt;br /&gt;
template = &amp;quot;&amp;quot;&amp;quot;&amp;lt;Root&amp;gt;&lt;br /&gt;
&amp;lt;Config sim_UUID=&amp;quot;$uuid&amp;quot; sim_name=&amp;quot;$regionname&amp;quot; sim_location_x=&amp;quot;$x&amp;quot; sim_location_y=&amp;quot;$y&amp;quot; internal_ip_address=&amp;quot;$s.internalip&amp;quot; internal_ip_port=&amp;quot;$port&amp;quot; allow_alternate_ports=&amp;quot;false&amp;quot; external_host_name=&amp;quot;$s.externalhost&amp;quot; master_avatar_uuid=&amp;quot;$s.useruuid&amp;quot; estate_covenant_uuid=&amp;quot;00000000-0000-0000-0000-000000000000&amp;quot; lastmap_refresh=&amp;quot;0&amp;quot; master_avatar_first=&amp;quot;$s.firstname&amp;quot; master_avatar_last=&amp;quot;$s.lastname&amp;quot; $password /&amp;gt;&lt;br /&gt;
&amp;lt;/Root&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
savefile = &amp;quot;regiongen_save.pkl&amp;quot;&lt;br /&gt;
&lt;br /&gt;
def maketemplate(regionname, x, y, port, uid, password=None):&lt;br /&gt;
    t = Template(template)&lt;br /&gt;
    t.s = s&lt;br /&gt;
    t.uuid = uid&lt;br /&gt;
    t.password = password&lt;br /&gt;
    t.regionname = regionname&lt;br /&gt;
    t.x = x&lt;br /&gt;
    t.y = y&lt;br /&gt;
    t.port = port&lt;br /&gt;
    return str(t)&lt;br /&gt;
&lt;br /&gt;
# Make directory to put regions in if not there&lt;br /&gt;
try:&lt;br /&gt;
    os.mkdir(regionsdir)&lt;br /&gt;
except OSError:&lt;br /&gt;
    pass&lt;br /&gt;
&lt;br /&gt;
settings = {}&lt;br /&gt;
&lt;br /&gt;
# Load settings file&lt;br /&gt;
try:&lt;br /&gt;
    settingsfile = open(savefile)&lt;br /&gt;
    settings = pickle.load(settingsfile)&lt;br /&gt;
    settingsfile.close()&lt;br /&gt;
except IOError:&lt;br /&gt;
    pass&lt;br /&gt;
    &lt;br /&gt;
for s in regionconfig.configlist:&lt;br /&gt;
    print s&lt;br /&gt;
    counter = 0&lt;br /&gt;
    for xnum in range(s['x'][0], s['x'][1]):&lt;br /&gt;
        for ynum in range(s['y'][0], s['y'][1]):&lt;br /&gt;
            counter += 1&lt;br /&gt;
            default = False&lt;br /&gt;
            &lt;br /&gt;
            # Figure out region name&lt;br /&gt;
            if counter == 1:&lt;br /&gt;
                default = True&lt;br /&gt;
                regionname = s['regionname']&lt;br /&gt;
            else:&lt;br /&gt;
                regionname = s['regionname'] + str(counter)&lt;br /&gt;
                &lt;br /&gt;
            # Figure out password&lt;br /&gt;
            if s.has_key('password'):&lt;br /&gt;
                password = &amp;quot;master_avatar_pass=\&amp;quot;%s\&amp;quot;&amp;quot; % s['password']&lt;br /&gt;
            else:&lt;br /&gt;
                password = ''&lt;br /&gt;
                &lt;br /&gt;
            # Figure out paths&lt;br /&gt;
            path = os.path.join(regionsdir,&amp;quot;%s.%s.%s.xml&amp;quot; % \&lt;br /&gt;
                        (regionname, xnum, ynum))&lt;br /&gt;
            &lt;br /&gt;
            # Calculate port&lt;br /&gt;
            port = s['startport'] + (counter - 1)&lt;br /&gt;
            &lt;br /&gt;
            # Try to get UUID from settings&lt;br /&gt;
            # Generate + Save if not found&lt;br /&gt;
            if settings.has_key(regionname):&lt;br /&gt;
                uid = settings[regionname]&lt;br /&gt;
            else:&lt;br /&gt;
                uid = str(uuid.uuid1())&lt;br /&gt;
                settings[regionname] = uid&lt;br /&gt;
                &lt;br /&gt;
            # Make template&lt;br /&gt;
            tmpldata = maketemplate(regionname, xnum, ynum, port, uid, password)&lt;br /&gt;
            &lt;br /&gt;
            # Save file&lt;br /&gt;
            tmplfile = open(path, 'w')&lt;br /&gt;
            tmplfile.write(tmpldata)&lt;br /&gt;
            tmplfile.close()&lt;br /&gt;
            &lt;br /&gt;
            # Print progress&lt;br /&gt;
            print regionname&lt;br /&gt;
&lt;br /&gt;
# Save settings file&lt;br /&gt;
try:&lt;br /&gt;
    settingsfile = open(savefile, 'w')&lt;br /&gt;
    pickle.dump(settings, settingsfile)&lt;br /&gt;
    settingsfile.close()&lt;br /&gt;
except IOError:&lt;br /&gt;
    pass&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== regionconfig.py ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# REGIONGEN 2.00 CONFIGURATION FILE&lt;br /&gt;
configlist = [] # Dont touch this&lt;br /&gt;
&lt;br /&gt;
# START OF REGION&lt;br /&gt;
s = {}                          # Dont touch this&lt;br /&gt;
# Region Configuration&lt;br /&gt;
s['regionname'] = &amp;quot;RegionSetOne&amp;quot; # Type the name of your island&lt;br /&gt;
s['x'] = [5100,5105]            # X Position... From &amp;lt;------&amp;gt; To&lt;br /&gt;
s['y'] = [5100,5105]            # Y Position... From &amp;lt;------&amp;gt; To&lt;br /&gt;
&lt;br /&gt;
# User Configuration&lt;br /&gt;
s['firstname'] = &amp;quot;Tom&amp;quot;   # Your First Name&lt;br /&gt;
s['lastname'] = &amp;quot;Jones&amp;quot;      # Your Last Name&lt;br /&gt;
s['useruuid'] = 'get your clients uuid'  # Your UUID, You can use a script in game to get this&lt;br /&gt;
#s['password'] = 'pass'     # This is optional, it is commented out by default.&lt;br /&gt;
&lt;br /&gt;
# Network Configuration&lt;br /&gt;
s['startport'] = 9000               # We recommend leaving this at 9000 for opensim&lt;br /&gt;
                                    # unless this isnt the first region.&lt;br /&gt;
s['internalip'] = &amp;quot;123.123.123.123&amp;quot;   # You need to get this to a internal wired/wireless lan ip address&lt;br /&gt;
s['externalhost'] = &amp;quot;example.org&amp;quot;  # This is the address that people connect from the outside world to&lt;br /&gt;
configlist.append(s)                # Dont touch this&lt;br /&gt;
# END OF REGION&lt;br /&gt;
# YOU MAY COPY AND PASTE MORE CONFIGURATIONS INTO THIS FILE TO ADD MORE REGIONS.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# START OF REGION&lt;br /&gt;
s = {}                          # Dont touch this&lt;br /&gt;
# Region Configuration&lt;br /&gt;
s['regionname'] = &amp;quot;RegionSetTwo&amp;quot; # Type the name of your island&lt;br /&gt;
s['x'] = [5200,5205]            # X Position... From &amp;lt;------&amp;gt; To&lt;br /&gt;
s['y'] = [5200,5205]            # Y Position... From &amp;lt;------&amp;gt; To&lt;br /&gt;
&lt;br /&gt;
# User Configuration&lt;br /&gt;
s['firstname'] = &amp;quot;Tom&amp;quot;   # Your First Name&lt;br /&gt;
s['lastname'] = &amp;quot;Jones&amp;quot;      # Your Last Name&lt;br /&gt;
s['useruuid'] = 'get your clients uuid'  # Your UUID, You can use a script in game to get this&lt;br /&gt;
#s['password'] = 'pass'     # This is optional, it is commented out by default.&lt;br /&gt;
&lt;br /&gt;
# Network Configuration&lt;br /&gt;
s['startport'] = 9100               # We recommend leaving this at 9000 for opensim&lt;br /&gt;
                                    # unless this isnt the first region.&lt;br /&gt;
s['internalip'] = &amp;quot;123.123.123.123&amp;quot;   # You need to get this to a internal wired/wireless lan ip address&lt;br /&gt;
s['externalhost'] = &amp;quot;example.org&amp;quot;  # This is the address that people connect from the outside world to&lt;br /&gt;
configlist.append(s)                # Dont touch this&lt;br /&gt;
# END OF REGION&lt;br /&gt;
# YOU MAY COPY AND PASTE MORE CONFIGURATIONS INTO THIS FILE TO ADD MORE REGIONS.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Rich43</name></author>	</entry>

	<entry>
		<id>http://opensimulator.org/wiki/RegionGenerator</id>
		<title>RegionGenerator</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/RegionGenerator"/>
				<updated>2008-07-15T01:06:22Z</updated>
		
		<summary type="html">&lt;p&gt;Rich43: /* How to use */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Region Generator ==&lt;br /&gt;
&lt;br /&gt;
=== About ===&lt;br /&gt;
It generates a square piece of land.&lt;br /&gt;
&lt;br /&gt;
You can feed it the from-to X Postion and from-to Y position then it makes the xml files for you.&lt;br /&gt;
&lt;br /&gt;
=== Download ===&lt;br /&gt;
I have made a .exe version of this program for windows, you can get it from these locations:&lt;br /&gt;
&lt;br /&gt;
http://www.mediafire.com/?yzzj11lbdon&lt;br /&gt;
&lt;br /&gt;
http://4rensics.com/regiongen2.zip&lt;br /&gt;
&lt;br /&gt;
=== How to use ===&lt;br /&gt;
If using windows version&lt;br /&gt;
* Extract to somewhere on your computer, i.e. The desktop.&lt;br /&gt;
* Edit the regionconfig.py file.&lt;br /&gt;
** You can Remove or Add as many regions as you like in this file. Region Generator 2.00 supports multiple regions.&lt;br /&gt;
** The password is optional, when connecting into grids like osgrid, it is normally not needed. You need to decide if you need it or not, experiment!&lt;br /&gt;
* Run regiongen.exe&lt;br /&gt;
* Copy the Regions folder to your opensim/bin folder.&lt;br /&gt;
* If you run it again, it will update the regions but it will not delete the files. If you made a big screw up, delete the Regions folder.&lt;br /&gt;
&lt;br /&gt;
If using the python source code (Linux, mac etc), make sure you have the cheetah and python 2.5 dependency's installed and edit the configuration in the header, then run :)&lt;br /&gt;
&lt;br /&gt;
=== Source Code ===&lt;br /&gt;
It requires the Cheetah Templating module and python 2.5.&lt;br /&gt;
&lt;br /&gt;
You can get cheetah from http://www.cheetahtemplate.org/&lt;br /&gt;
&lt;br /&gt;
You can get python from http://www.python.org/download/&lt;br /&gt;
&lt;br /&gt;
==== regiongen.py ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/usr/bin/python&lt;br /&gt;
# REGIONGEN 2.00 BY RICHIE WARD&lt;br /&gt;
from Cheetah.Template import Template&lt;br /&gt;
import uuid&lt;br /&gt;
import os&lt;br /&gt;
import pickle&lt;br /&gt;
import regionconfig&lt;br /&gt;
&lt;br /&gt;
regionsdir = 'Regions'&lt;br /&gt;
&lt;br /&gt;
template = &amp;quot;&amp;quot;&amp;quot;&amp;lt;Root&amp;gt;&lt;br /&gt;
&amp;lt;Config sim_UUID=&amp;quot;$uuid&amp;quot; sim_name=&amp;quot;$regionname&amp;quot; sim_location_x=&amp;quot;$x&amp;quot; sim_location_y=&amp;quot;$y&amp;quot; internal_ip_address=&amp;quot;$s.internalip&amp;quot; internal_ip_port=&amp;quot;$port&amp;quot; allow_alternate_ports=&amp;quot;false&amp;quot; external_host_name=&amp;quot;$s.externalhost&amp;quot; master_avatar_uuid=&amp;quot;$s.useruuid&amp;quot; estate_covenant_uuid=&amp;quot;00000000-0000-0000-0000-000000000000&amp;quot; lastmap_refresh=&amp;quot;0&amp;quot; master_avatar_first=&amp;quot;$s.firstname&amp;quot; master_avatar_last=&amp;quot;$s.lastname&amp;quot; $password /&amp;gt;&lt;br /&gt;
&amp;lt;/Root&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
savefile = &amp;quot;regiongen_save.pkl&amp;quot;&lt;br /&gt;
&lt;br /&gt;
def maketemplate(regionname, x, y, port, uid, password=None):&lt;br /&gt;
    t = Template(template)&lt;br /&gt;
    t.s = s&lt;br /&gt;
    t.uuid = uid&lt;br /&gt;
    t.password = password&lt;br /&gt;
    t.regionname = regionname&lt;br /&gt;
    t.x = x&lt;br /&gt;
    t.y = y&lt;br /&gt;
    t.port = port&lt;br /&gt;
    return str(t)&lt;br /&gt;
&lt;br /&gt;
# Make directory to put regions in if not there&lt;br /&gt;
try:&lt;br /&gt;
    os.mkdir(regionsdir)&lt;br /&gt;
except OSError:&lt;br /&gt;
    pass&lt;br /&gt;
&lt;br /&gt;
settings = {}&lt;br /&gt;
&lt;br /&gt;
# Load settings file&lt;br /&gt;
try:&lt;br /&gt;
    settingsfile = open(savefile)&lt;br /&gt;
    settings = pickle.load(settingsfile)&lt;br /&gt;
    settingsfile.close()&lt;br /&gt;
except IOError:&lt;br /&gt;
    pass&lt;br /&gt;
    &lt;br /&gt;
for s in regionconfig.configlist:&lt;br /&gt;
    print s&lt;br /&gt;
    counter = 0&lt;br /&gt;
    for xnum in range(s['x'][0], s['x'][1]):&lt;br /&gt;
        for ynum in range(s['y'][0], s['y'][1]):&lt;br /&gt;
            counter += 1&lt;br /&gt;
            default = False&lt;br /&gt;
            &lt;br /&gt;
            # Figure out region name&lt;br /&gt;
            if counter == 1:&lt;br /&gt;
                default = True&lt;br /&gt;
                regionname = s['regionname']&lt;br /&gt;
            else:&lt;br /&gt;
                regionname = s['regionname'] + str(counter)&lt;br /&gt;
                &lt;br /&gt;
            # Figure out password&lt;br /&gt;
            if s.has_key('password'):&lt;br /&gt;
                password = &amp;quot;master_avatar_pass=\&amp;quot;%s\&amp;quot;&amp;quot; % s['password']&lt;br /&gt;
            else:&lt;br /&gt;
                password = ''&lt;br /&gt;
                &lt;br /&gt;
            # Figure out paths&lt;br /&gt;
            path = os.path.join(regionsdir,&amp;quot;%s.%s.%s.xml&amp;quot; % \&lt;br /&gt;
                        (regionname, xnum, ynum))&lt;br /&gt;
            &lt;br /&gt;
            # Calculate port&lt;br /&gt;
            port = s['startport'] + (counter - 1)&lt;br /&gt;
            &lt;br /&gt;
            # Try to get UUID from settings&lt;br /&gt;
            # Generate + Save if not found&lt;br /&gt;
            if settings.has_key(regionname):&lt;br /&gt;
                uid = settings[regionname]&lt;br /&gt;
            else:&lt;br /&gt;
                uid = str(uuid.uuid1())&lt;br /&gt;
                settings[regionname] = uid&lt;br /&gt;
                &lt;br /&gt;
            # Make template&lt;br /&gt;
            tmpldata = maketemplate(regionname, xnum, ynum, port, uid, password)&lt;br /&gt;
            &lt;br /&gt;
            # Save file&lt;br /&gt;
            tmplfile = open(path, 'w')&lt;br /&gt;
            tmplfile.write(tmpldata)&lt;br /&gt;
            tmplfile.close()&lt;br /&gt;
            &lt;br /&gt;
            # Print progress&lt;br /&gt;
            print regionname&lt;br /&gt;
&lt;br /&gt;
# Save settings file&lt;br /&gt;
try:&lt;br /&gt;
    settingsfile = open(savefile, 'w')&lt;br /&gt;
    pickle.dump(settings, settingsfile)&lt;br /&gt;
    settingsfile.close()&lt;br /&gt;
except IOError:&lt;br /&gt;
    pass&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== regionconfig.py ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# REGIONGEN 2.00 CONFIGURATION FILE&lt;br /&gt;
configlist = [] # Dont touch this&lt;br /&gt;
&lt;br /&gt;
# START OF REGION&lt;br /&gt;
s = {}                          # Dont touch this&lt;br /&gt;
# Region Configuration&lt;br /&gt;
s['regionname'] = &amp;quot;RegionSetOne&amp;quot; # Type the name of your island&lt;br /&gt;
s['x'] = [5100,5105]            # X Position... From &amp;lt;------&amp;gt; To&lt;br /&gt;
s['y'] = [5100,5105]            # Y Position... From &amp;lt;------&amp;gt; To&lt;br /&gt;
&lt;br /&gt;
# User Configuration&lt;br /&gt;
s['firstname'] = &amp;quot;Tom&amp;quot;   # Your First Name&lt;br /&gt;
s['lastname'] = &amp;quot;Jones&amp;quot;      # Your Last Name&lt;br /&gt;
s['useruuid'] = 'get your clients uuid'  # Your UUID, You can use a script in game to get this&lt;br /&gt;
#s['password'] = 'pass'     # This is optional, it is commented out by default.&lt;br /&gt;
&lt;br /&gt;
# Network Configuration&lt;br /&gt;
s['startport'] = 9000               # We recommend leaving this at 9000 for opensim&lt;br /&gt;
                                    # unless this isnt the first region.&lt;br /&gt;
s['internalip'] = &amp;quot;123.123.123.123&amp;quot;   # You need to get this to a internal wired/wireless lan ip address&lt;br /&gt;
s['externalhost'] = &amp;quot;example.org&amp;quot;  # This is the address that people connect from the outside world to&lt;br /&gt;
configlist.append(s)                # Dont touch this&lt;br /&gt;
# END OF REGION&lt;br /&gt;
# YOU MAY COPY AND PASTE MORE CONFIGURATIONS INTO THIS FILE TO ADD MORE REGIONS.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# START OF REGION&lt;br /&gt;
s = {}                          # Dont touch this&lt;br /&gt;
# Region Configuration&lt;br /&gt;
s['regionname'] = &amp;quot;RegionSetTwo&amp;quot; # Type the name of your island&lt;br /&gt;
s['x'] = [5200,5205]            # X Position... From &amp;lt;------&amp;gt; To&lt;br /&gt;
s['y'] = [5200,5205]            # Y Position... From &amp;lt;------&amp;gt; To&lt;br /&gt;
&lt;br /&gt;
# User Configuration&lt;br /&gt;
s['firstname'] = &amp;quot;Tom&amp;quot;   # Your First Name&lt;br /&gt;
s['lastname'] = &amp;quot;Jones&amp;quot;      # Your Last Name&lt;br /&gt;
s['useruuid'] = 'get your clients uuid'  # Your UUID, You can use a script in game to get this&lt;br /&gt;
#s['password'] = 'pass'     # This is optional, it is commented out by default.&lt;br /&gt;
&lt;br /&gt;
# Network Configuration&lt;br /&gt;
s['startport'] = 9100               # We recommend leaving this at 9000 for opensim&lt;br /&gt;
                                    # unless this isnt the first region.&lt;br /&gt;
s['internalip'] = &amp;quot;123.123.123.123&amp;quot;   # You need to get this to a internal wired/wireless lan ip address&lt;br /&gt;
s['externalhost'] = &amp;quot;example.org&amp;quot;  # This is the address that people connect from the outside world to&lt;br /&gt;
configlist.append(s)                # Dont touch this&lt;br /&gt;
# END OF REGION&lt;br /&gt;
# YOU MAY COPY AND PASTE MORE CONFIGURATIONS INTO THIS FILE TO ADD MORE REGIONS.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Rich43</name></author>	</entry>

	<entry>
		<id>http://opensimulator.org/wiki/RegionGenerator</id>
		<title>RegionGenerator</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/RegionGenerator"/>
				<updated>2008-07-15T01:05:43Z</updated>
		
		<summary type="html">&lt;p&gt;Rich43: /* How to use */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Region Generator ==&lt;br /&gt;
&lt;br /&gt;
=== About ===&lt;br /&gt;
It generates a square piece of land.&lt;br /&gt;
&lt;br /&gt;
You can feed it the from-to X Postion and from-to Y position then it makes the xml files for you.&lt;br /&gt;
&lt;br /&gt;
=== Download ===&lt;br /&gt;
I have made a .exe version of this program for windows, you can get it from these locations:&lt;br /&gt;
&lt;br /&gt;
http://www.mediafire.com/?yzzj11lbdon&lt;br /&gt;
&lt;br /&gt;
http://4rensics.com/regiongen2.zip&lt;br /&gt;
&lt;br /&gt;
=== How to use ===&lt;br /&gt;
If using windows version&lt;br /&gt;
* Extract to somewhere on your computer, i.e. The desktop.&lt;br /&gt;
* Edit the regionconfig.py file.&lt;br /&gt;
 * You can Remove or Add as many regions as you like in this file. Region Generator 2.00 supports multiple regions.&lt;br /&gt;
 * The password is optional, when connecting into grids like osgrid, it is normally not needed. You need to decide if you need it or not, experiment!&lt;br /&gt;
* Run regiongen.exe&lt;br /&gt;
* Copy the Regions folder to your opensim/bin folder.&lt;br /&gt;
* If you run it again, it will update the regions but it will not delete the files. If you made a big screw up, delete the Regions folder.&lt;br /&gt;
&lt;br /&gt;
If using the python source code (Linux, mac etc), make sure you have the cheetah and python 2.5 dependency's installed and edit the configuration in the header, then run :)&lt;br /&gt;
&lt;br /&gt;
=== Source Code ===&lt;br /&gt;
It requires the Cheetah Templating module and python 2.5.&lt;br /&gt;
&lt;br /&gt;
You can get cheetah from http://www.cheetahtemplate.org/&lt;br /&gt;
&lt;br /&gt;
You can get python from http://www.python.org/download/&lt;br /&gt;
&lt;br /&gt;
==== regiongen.py ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/usr/bin/python&lt;br /&gt;
# REGIONGEN 2.00 BY RICHIE WARD&lt;br /&gt;
from Cheetah.Template import Template&lt;br /&gt;
import uuid&lt;br /&gt;
import os&lt;br /&gt;
import pickle&lt;br /&gt;
import regionconfig&lt;br /&gt;
&lt;br /&gt;
regionsdir = 'Regions'&lt;br /&gt;
&lt;br /&gt;
template = &amp;quot;&amp;quot;&amp;quot;&amp;lt;Root&amp;gt;&lt;br /&gt;
&amp;lt;Config sim_UUID=&amp;quot;$uuid&amp;quot; sim_name=&amp;quot;$regionname&amp;quot; sim_location_x=&amp;quot;$x&amp;quot; sim_location_y=&amp;quot;$y&amp;quot; internal_ip_address=&amp;quot;$s.internalip&amp;quot; internal_ip_port=&amp;quot;$port&amp;quot; allow_alternate_ports=&amp;quot;false&amp;quot; external_host_name=&amp;quot;$s.externalhost&amp;quot; master_avatar_uuid=&amp;quot;$s.useruuid&amp;quot; estate_covenant_uuid=&amp;quot;00000000-0000-0000-0000-000000000000&amp;quot; lastmap_refresh=&amp;quot;0&amp;quot; master_avatar_first=&amp;quot;$s.firstname&amp;quot; master_avatar_last=&amp;quot;$s.lastname&amp;quot; $password /&amp;gt;&lt;br /&gt;
&amp;lt;/Root&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
savefile = &amp;quot;regiongen_save.pkl&amp;quot;&lt;br /&gt;
&lt;br /&gt;
def maketemplate(regionname, x, y, port, uid, password=None):&lt;br /&gt;
    t = Template(template)&lt;br /&gt;
    t.s = s&lt;br /&gt;
    t.uuid = uid&lt;br /&gt;
    t.password = password&lt;br /&gt;
    t.regionname = regionname&lt;br /&gt;
    t.x = x&lt;br /&gt;
    t.y = y&lt;br /&gt;
    t.port = port&lt;br /&gt;
    return str(t)&lt;br /&gt;
&lt;br /&gt;
# Make directory to put regions in if not there&lt;br /&gt;
try:&lt;br /&gt;
    os.mkdir(regionsdir)&lt;br /&gt;
except OSError:&lt;br /&gt;
    pass&lt;br /&gt;
&lt;br /&gt;
settings = {}&lt;br /&gt;
&lt;br /&gt;
# Load settings file&lt;br /&gt;
try:&lt;br /&gt;
    settingsfile = open(savefile)&lt;br /&gt;
    settings = pickle.load(settingsfile)&lt;br /&gt;
    settingsfile.close()&lt;br /&gt;
except IOError:&lt;br /&gt;
    pass&lt;br /&gt;
    &lt;br /&gt;
for s in regionconfig.configlist:&lt;br /&gt;
    print s&lt;br /&gt;
    counter = 0&lt;br /&gt;
    for xnum in range(s['x'][0], s['x'][1]):&lt;br /&gt;
        for ynum in range(s['y'][0], s['y'][1]):&lt;br /&gt;
            counter += 1&lt;br /&gt;
            default = False&lt;br /&gt;
            &lt;br /&gt;
            # Figure out region name&lt;br /&gt;
            if counter == 1:&lt;br /&gt;
                default = True&lt;br /&gt;
                regionname = s['regionname']&lt;br /&gt;
            else:&lt;br /&gt;
                regionname = s['regionname'] + str(counter)&lt;br /&gt;
                &lt;br /&gt;
            # Figure out password&lt;br /&gt;
            if s.has_key('password'):&lt;br /&gt;
                password = &amp;quot;master_avatar_pass=\&amp;quot;%s\&amp;quot;&amp;quot; % s['password']&lt;br /&gt;
            else:&lt;br /&gt;
                password = ''&lt;br /&gt;
                &lt;br /&gt;
            # Figure out paths&lt;br /&gt;
            path = os.path.join(regionsdir,&amp;quot;%s.%s.%s.xml&amp;quot; % \&lt;br /&gt;
                        (regionname, xnum, ynum))&lt;br /&gt;
            &lt;br /&gt;
            # Calculate port&lt;br /&gt;
            port = s['startport'] + (counter - 1)&lt;br /&gt;
            &lt;br /&gt;
            # Try to get UUID from settings&lt;br /&gt;
            # Generate + Save if not found&lt;br /&gt;
            if settings.has_key(regionname):&lt;br /&gt;
                uid = settings[regionname]&lt;br /&gt;
            else:&lt;br /&gt;
                uid = str(uuid.uuid1())&lt;br /&gt;
                settings[regionname] = uid&lt;br /&gt;
                &lt;br /&gt;
            # Make template&lt;br /&gt;
            tmpldata = maketemplate(regionname, xnum, ynum, port, uid, password)&lt;br /&gt;
            &lt;br /&gt;
            # Save file&lt;br /&gt;
            tmplfile = open(path, 'w')&lt;br /&gt;
            tmplfile.write(tmpldata)&lt;br /&gt;
            tmplfile.close()&lt;br /&gt;
            &lt;br /&gt;
            # Print progress&lt;br /&gt;
            print regionname&lt;br /&gt;
&lt;br /&gt;
# Save settings file&lt;br /&gt;
try:&lt;br /&gt;
    settingsfile = open(savefile, 'w')&lt;br /&gt;
    pickle.dump(settings, settingsfile)&lt;br /&gt;
    settingsfile.close()&lt;br /&gt;
except IOError:&lt;br /&gt;
    pass&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== regionconfig.py ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# REGIONGEN 2.00 CONFIGURATION FILE&lt;br /&gt;
configlist = [] # Dont touch this&lt;br /&gt;
&lt;br /&gt;
# START OF REGION&lt;br /&gt;
s = {}                          # Dont touch this&lt;br /&gt;
# Region Configuration&lt;br /&gt;
s['regionname'] = &amp;quot;RegionSetOne&amp;quot; # Type the name of your island&lt;br /&gt;
s['x'] = [5100,5105]            # X Position... From &amp;lt;------&amp;gt; To&lt;br /&gt;
s['y'] = [5100,5105]            # Y Position... From &amp;lt;------&amp;gt; To&lt;br /&gt;
&lt;br /&gt;
# User Configuration&lt;br /&gt;
s['firstname'] = &amp;quot;Tom&amp;quot;   # Your First Name&lt;br /&gt;
s['lastname'] = &amp;quot;Jones&amp;quot;      # Your Last Name&lt;br /&gt;
s['useruuid'] = 'get your clients uuid'  # Your UUID, You can use a script in game to get this&lt;br /&gt;
#s['password'] = 'pass'     # This is optional, it is commented out by default.&lt;br /&gt;
&lt;br /&gt;
# Network Configuration&lt;br /&gt;
s['startport'] = 9000               # We recommend leaving this at 9000 for opensim&lt;br /&gt;
                                    # unless this isnt the first region.&lt;br /&gt;
s['internalip'] = &amp;quot;123.123.123.123&amp;quot;   # You need to get this to a internal wired/wireless lan ip address&lt;br /&gt;
s['externalhost'] = &amp;quot;example.org&amp;quot;  # This is the address that people connect from the outside world to&lt;br /&gt;
configlist.append(s)                # Dont touch this&lt;br /&gt;
# END OF REGION&lt;br /&gt;
# YOU MAY COPY AND PASTE MORE CONFIGURATIONS INTO THIS FILE TO ADD MORE REGIONS.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# START OF REGION&lt;br /&gt;
s = {}                          # Dont touch this&lt;br /&gt;
# Region Configuration&lt;br /&gt;
s['regionname'] = &amp;quot;RegionSetTwo&amp;quot; # Type the name of your island&lt;br /&gt;
s['x'] = [5200,5205]            # X Position... From &amp;lt;------&amp;gt; To&lt;br /&gt;
s['y'] = [5200,5205]            # Y Position... From &amp;lt;------&amp;gt; To&lt;br /&gt;
&lt;br /&gt;
# User Configuration&lt;br /&gt;
s['firstname'] = &amp;quot;Tom&amp;quot;   # Your First Name&lt;br /&gt;
s['lastname'] = &amp;quot;Jones&amp;quot;      # Your Last Name&lt;br /&gt;
s['useruuid'] = 'get your clients uuid'  # Your UUID, You can use a script in game to get this&lt;br /&gt;
#s['password'] = 'pass'     # This is optional, it is commented out by default.&lt;br /&gt;
&lt;br /&gt;
# Network Configuration&lt;br /&gt;
s['startport'] = 9100               # We recommend leaving this at 9000 for opensim&lt;br /&gt;
                                    # unless this isnt the first region.&lt;br /&gt;
s['internalip'] = &amp;quot;123.123.123.123&amp;quot;   # You need to get this to a internal wired/wireless lan ip address&lt;br /&gt;
s['externalhost'] = &amp;quot;example.org&amp;quot;  # This is the address that people connect from the outside world to&lt;br /&gt;
configlist.append(s)                # Dont touch this&lt;br /&gt;
# END OF REGION&lt;br /&gt;
# YOU MAY COPY AND PASTE MORE CONFIGURATIONS INTO THIS FILE TO ADD MORE REGIONS.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Rich43</name></author>	</entry>

	<entry>
		<id>http://opensimulator.org/wiki/RegionGenerator</id>
		<title>RegionGenerator</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/RegionGenerator"/>
				<updated>2008-07-15T01:03:33Z</updated>
		
		<summary type="html">&lt;p&gt;Rich43: /* Download */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Region Generator ==&lt;br /&gt;
&lt;br /&gt;
=== About ===&lt;br /&gt;
It generates a square piece of land.&lt;br /&gt;
&lt;br /&gt;
You can feed it the from-to X Postion and from-to Y position then it makes the xml files for you.&lt;br /&gt;
&lt;br /&gt;
=== Download ===&lt;br /&gt;
I have made a .exe version of this program for windows, you can get it from these locations:&lt;br /&gt;
&lt;br /&gt;
http://www.mediafire.com/?yzzj11lbdon&lt;br /&gt;
&lt;br /&gt;
http://4rensics.com/regiongen2.zip&lt;br /&gt;
&lt;br /&gt;
=== How to use ===&lt;br /&gt;
If using windows version&lt;br /&gt;
* Extract to somewhere on your computer, i.e. The desktop.&lt;br /&gt;
* Edit the regionconfig.py file.&lt;br /&gt;
* Run regiongen.exe&lt;br /&gt;
* Copy the Regions folder to your opensim/bin folder.&lt;br /&gt;
* If you run it again, it will update the regions but it will not delete the files. If you made a big screw up, delete the Regions folder.&lt;br /&gt;
&lt;br /&gt;
If using the python source code (Linux, mac etc), make sure you have the cheetah and python 2.5 dependency's installed and edit the configuration in the header, then run :)&lt;br /&gt;
&lt;br /&gt;
=== Source Code ===&lt;br /&gt;
It requires the Cheetah Templating module and python 2.5.&lt;br /&gt;
&lt;br /&gt;
You can get cheetah from http://www.cheetahtemplate.org/&lt;br /&gt;
&lt;br /&gt;
You can get python from http://www.python.org/download/&lt;br /&gt;
&lt;br /&gt;
==== regiongen.py ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/usr/bin/python&lt;br /&gt;
# REGIONGEN 2.00 BY RICHIE WARD&lt;br /&gt;
from Cheetah.Template import Template&lt;br /&gt;
import uuid&lt;br /&gt;
import os&lt;br /&gt;
import pickle&lt;br /&gt;
import regionconfig&lt;br /&gt;
&lt;br /&gt;
regionsdir = 'Regions'&lt;br /&gt;
&lt;br /&gt;
template = &amp;quot;&amp;quot;&amp;quot;&amp;lt;Root&amp;gt;&lt;br /&gt;
&amp;lt;Config sim_UUID=&amp;quot;$uuid&amp;quot; sim_name=&amp;quot;$regionname&amp;quot; sim_location_x=&amp;quot;$x&amp;quot; sim_location_y=&amp;quot;$y&amp;quot; internal_ip_address=&amp;quot;$s.internalip&amp;quot; internal_ip_port=&amp;quot;$port&amp;quot; allow_alternate_ports=&amp;quot;false&amp;quot; external_host_name=&amp;quot;$s.externalhost&amp;quot; master_avatar_uuid=&amp;quot;$s.useruuid&amp;quot; estate_covenant_uuid=&amp;quot;00000000-0000-0000-0000-000000000000&amp;quot; lastmap_refresh=&amp;quot;0&amp;quot; master_avatar_first=&amp;quot;$s.firstname&amp;quot; master_avatar_last=&amp;quot;$s.lastname&amp;quot; $password /&amp;gt;&lt;br /&gt;
&amp;lt;/Root&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
savefile = &amp;quot;regiongen_save.pkl&amp;quot;&lt;br /&gt;
&lt;br /&gt;
def maketemplate(regionname, x, y, port, uid, password=None):&lt;br /&gt;
    t = Template(template)&lt;br /&gt;
    t.s = s&lt;br /&gt;
    t.uuid = uid&lt;br /&gt;
    t.password = password&lt;br /&gt;
    t.regionname = regionname&lt;br /&gt;
    t.x = x&lt;br /&gt;
    t.y = y&lt;br /&gt;
    t.port = port&lt;br /&gt;
    return str(t)&lt;br /&gt;
&lt;br /&gt;
# Make directory to put regions in if not there&lt;br /&gt;
try:&lt;br /&gt;
    os.mkdir(regionsdir)&lt;br /&gt;
except OSError:&lt;br /&gt;
    pass&lt;br /&gt;
&lt;br /&gt;
settings = {}&lt;br /&gt;
&lt;br /&gt;
# Load settings file&lt;br /&gt;
try:&lt;br /&gt;
    settingsfile = open(savefile)&lt;br /&gt;
    settings = pickle.load(settingsfile)&lt;br /&gt;
    settingsfile.close()&lt;br /&gt;
except IOError:&lt;br /&gt;
    pass&lt;br /&gt;
    &lt;br /&gt;
for s in regionconfig.configlist:&lt;br /&gt;
    print s&lt;br /&gt;
    counter = 0&lt;br /&gt;
    for xnum in range(s['x'][0], s['x'][1]):&lt;br /&gt;
        for ynum in range(s['y'][0], s['y'][1]):&lt;br /&gt;
            counter += 1&lt;br /&gt;
            default = False&lt;br /&gt;
            &lt;br /&gt;
            # Figure out region name&lt;br /&gt;
            if counter == 1:&lt;br /&gt;
                default = True&lt;br /&gt;
                regionname = s['regionname']&lt;br /&gt;
            else:&lt;br /&gt;
                regionname = s['regionname'] + str(counter)&lt;br /&gt;
                &lt;br /&gt;
            # Figure out password&lt;br /&gt;
            if s.has_key('password'):&lt;br /&gt;
                password = &amp;quot;master_avatar_pass=\&amp;quot;%s\&amp;quot;&amp;quot; % s['password']&lt;br /&gt;
            else:&lt;br /&gt;
                password = ''&lt;br /&gt;
                &lt;br /&gt;
            # Figure out paths&lt;br /&gt;
            path = os.path.join(regionsdir,&amp;quot;%s.%s.%s.xml&amp;quot; % \&lt;br /&gt;
                        (regionname, xnum, ynum))&lt;br /&gt;
            &lt;br /&gt;
            # Calculate port&lt;br /&gt;
            port = s['startport'] + (counter - 1)&lt;br /&gt;
            &lt;br /&gt;
            # Try to get UUID from settings&lt;br /&gt;
            # Generate + Save if not found&lt;br /&gt;
            if settings.has_key(regionname):&lt;br /&gt;
                uid = settings[regionname]&lt;br /&gt;
            else:&lt;br /&gt;
                uid = str(uuid.uuid1())&lt;br /&gt;
                settings[regionname] = uid&lt;br /&gt;
                &lt;br /&gt;
            # Make template&lt;br /&gt;
            tmpldata = maketemplate(regionname, xnum, ynum, port, uid, password)&lt;br /&gt;
            &lt;br /&gt;
            # Save file&lt;br /&gt;
            tmplfile = open(path, 'w')&lt;br /&gt;
            tmplfile.write(tmpldata)&lt;br /&gt;
            tmplfile.close()&lt;br /&gt;
            &lt;br /&gt;
            # Print progress&lt;br /&gt;
            print regionname&lt;br /&gt;
&lt;br /&gt;
# Save settings file&lt;br /&gt;
try:&lt;br /&gt;
    settingsfile = open(savefile, 'w')&lt;br /&gt;
    pickle.dump(settings, settingsfile)&lt;br /&gt;
    settingsfile.close()&lt;br /&gt;
except IOError:&lt;br /&gt;
    pass&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== regionconfig.py ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# REGIONGEN 2.00 CONFIGURATION FILE&lt;br /&gt;
configlist = [] # Dont touch this&lt;br /&gt;
&lt;br /&gt;
# START OF REGION&lt;br /&gt;
s = {}                          # Dont touch this&lt;br /&gt;
# Region Configuration&lt;br /&gt;
s['regionname'] = &amp;quot;RegionSetOne&amp;quot; # Type the name of your island&lt;br /&gt;
s['x'] = [5100,5105]            # X Position... From &amp;lt;------&amp;gt; To&lt;br /&gt;
s['y'] = [5100,5105]            # Y Position... From &amp;lt;------&amp;gt; To&lt;br /&gt;
&lt;br /&gt;
# User Configuration&lt;br /&gt;
s['firstname'] = &amp;quot;Tom&amp;quot;   # Your First Name&lt;br /&gt;
s['lastname'] = &amp;quot;Jones&amp;quot;      # Your Last Name&lt;br /&gt;
s['useruuid'] = 'get your clients uuid'  # Your UUID, You can use a script in game to get this&lt;br /&gt;
#s['password'] = 'pass'     # This is optional, it is commented out by default.&lt;br /&gt;
&lt;br /&gt;
# Network Configuration&lt;br /&gt;
s['startport'] = 9000               # We recommend leaving this at 9000 for opensim&lt;br /&gt;
                                    # unless this isnt the first region.&lt;br /&gt;
s['internalip'] = &amp;quot;123.123.123.123&amp;quot;   # You need to get this to a internal wired/wireless lan ip address&lt;br /&gt;
s['externalhost'] = &amp;quot;example.org&amp;quot;  # This is the address that people connect from the outside world to&lt;br /&gt;
configlist.append(s)                # Dont touch this&lt;br /&gt;
# END OF REGION&lt;br /&gt;
# YOU MAY COPY AND PASTE MORE CONFIGURATIONS INTO THIS FILE TO ADD MORE REGIONS.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# START OF REGION&lt;br /&gt;
s = {}                          # Dont touch this&lt;br /&gt;
# Region Configuration&lt;br /&gt;
s['regionname'] = &amp;quot;RegionSetTwo&amp;quot; # Type the name of your island&lt;br /&gt;
s['x'] = [5200,5205]            # X Position... From &amp;lt;------&amp;gt; To&lt;br /&gt;
s['y'] = [5200,5205]            # Y Position... From &amp;lt;------&amp;gt; To&lt;br /&gt;
&lt;br /&gt;
# User Configuration&lt;br /&gt;
s['firstname'] = &amp;quot;Tom&amp;quot;   # Your First Name&lt;br /&gt;
s['lastname'] = &amp;quot;Jones&amp;quot;      # Your Last Name&lt;br /&gt;
s['useruuid'] = 'get your clients uuid'  # Your UUID, You can use a script in game to get this&lt;br /&gt;
#s['password'] = 'pass'     # This is optional, it is commented out by default.&lt;br /&gt;
&lt;br /&gt;
# Network Configuration&lt;br /&gt;
s['startport'] = 9100               # We recommend leaving this at 9000 for opensim&lt;br /&gt;
                                    # unless this isnt the first region.&lt;br /&gt;
s['internalip'] = &amp;quot;123.123.123.123&amp;quot;   # You need to get this to a internal wired/wireless lan ip address&lt;br /&gt;
s['externalhost'] = &amp;quot;example.org&amp;quot;  # This is the address that people connect from the outside world to&lt;br /&gt;
configlist.append(s)                # Dont touch this&lt;br /&gt;
# END OF REGION&lt;br /&gt;
# YOU MAY COPY AND PASTE MORE CONFIGURATIONS INTO THIS FILE TO ADD MORE REGIONS.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Rich43</name></author>	</entry>

	<entry>
		<id>http://opensimulator.org/wiki/RegionGenerator</id>
		<title>RegionGenerator</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/RegionGenerator"/>
				<updated>2008-07-15T00:51:40Z</updated>
		
		<summary type="html">&lt;p&gt;Rich43: /* Source Code */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Region Generator ==&lt;br /&gt;
&lt;br /&gt;
=== About ===&lt;br /&gt;
It generates a square piece of land.&lt;br /&gt;
&lt;br /&gt;
You can feed it the from-to X Postion and from-to Y position then it makes the xml files for you.&lt;br /&gt;
&lt;br /&gt;
=== Download ===&lt;br /&gt;
I have made a .exe version of this program for windows, you can get it from these locations:&lt;br /&gt;
&lt;br /&gt;
http://www.mediafire.com/?xred9vm0ent&lt;br /&gt;
&lt;br /&gt;
http://4rensics.com/regiongen.zip&lt;br /&gt;
&lt;br /&gt;
=== How to use ===&lt;br /&gt;
If using windows version&lt;br /&gt;
* Extract to somewhere on your computer, i.e. The desktop.&lt;br /&gt;
* Edit the regionconfig.py file.&lt;br /&gt;
* Run regiongen.exe&lt;br /&gt;
* Copy the Regions folder to your opensim/bin folder.&lt;br /&gt;
* If you run it again, it will update the regions but it will not delete the files. If you made a big screw up, delete the Regions folder.&lt;br /&gt;
&lt;br /&gt;
If using the python source code (Linux, mac etc), make sure you have the cheetah and python 2.5 dependency's installed and edit the configuration in the header, then run :)&lt;br /&gt;
&lt;br /&gt;
=== Source Code ===&lt;br /&gt;
It requires the Cheetah Templating module and python 2.5.&lt;br /&gt;
&lt;br /&gt;
You can get cheetah from http://www.cheetahtemplate.org/&lt;br /&gt;
&lt;br /&gt;
You can get python from http://www.python.org/download/&lt;br /&gt;
&lt;br /&gt;
==== regiongen.py ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/usr/bin/python&lt;br /&gt;
# REGIONGEN 2.00 BY RICHIE WARD&lt;br /&gt;
from Cheetah.Template import Template&lt;br /&gt;
import uuid&lt;br /&gt;
import os&lt;br /&gt;
import pickle&lt;br /&gt;
import regionconfig&lt;br /&gt;
&lt;br /&gt;
regionsdir = 'Regions'&lt;br /&gt;
&lt;br /&gt;
template = &amp;quot;&amp;quot;&amp;quot;&amp;lt;Root&amp;gt;&lt;br /&gt;
&amp;lt;Config sim_UUID=&amp;quot;$uuid&amp;quot; sim_name=&amp;quot;$regionname&amp;quot; sim_location_x=&amp;quot;$x&amp;quot; sim_location_y=&amp;quot;$y&amp;quot; internal_ip_address=&amp;quot;$s.internalip&amp;quot; internal_ip_port=&amp;quot;$port&amp;quot; allow_alternate_ports=&amp;quot;false&amp;quot; external_host_name=&amp;quot;$s.externalhost&amp;quot; master_avatar_uuid=&amp;quot;$s.useruuid&amp;quot; estate_covenant_uuid=&amp;quot;00000000-0000-0000-0000-000000000000&amp;quot; lastmap_refresh=&amp;quot;0&amp;quot; master_avatar_first=&amp;quot;$s.firstname&amp;quot; master_avatar_last=&amp;quot;$s.lastname&amp;quot; $password /&amp;gt;&lt;br /&gt;
&amp;lt;/Root&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
savefile = &amp;quot;regiongen_save.pkl&amp;quot;&lt;br /&gt;
&lt;br /&gt;
def maketemplate(regionname, x, y, port, uid, password=None):&lt;br /&gt;
    t = Template(template)&lt;br /&gt;
    t.s = s&lt;br /&gt;
    t.uuid = uid&lt;br /&gt;
    t.password = password&lt;br /&gt;
    t.regionname = regionname&lt;br /&gt;
    t.x = x&lt;br /&gt;
    t.y = y&lt;br /&gt;
    t.port = port&lt;br /&gt;
    return str(t)&lt;br /&gt;
&lt;br /&gt;
# Make directory to put regions in if not there&lt;br /&gt;
try:&lt;br /&gt;
    os.mkdir(regionsdir)&lt;br /&gt;
except OSError:&lt;br /&gt;
    pass&lt;br /&gt;
&lt;br /&gt;
settings = {}&lt;br /&gt;
&lt;br /&gt;
# Load settings file&lt;br /&gt;
try:&lt;br /&gt;
    settingsfile = open(savefile)&lt;br /&gt;
    settings = pickle.load(settingsfile)&lt;br /&gt;
    settingsfile.close()&lt;br /&gt;
except IOError:&lt;br /&gt;
    pass&lt;br /&gt;
    &lt;br /&gt;
for s in regionconfig.configlist:&lt;br /&gt;
    print s&lt;br /&gt;
    counter = 0&lt;br /&gt;
    for xnum in range(s['x'][0], s['x'][1]):&lt;br /&gt;
        for ynum in range(s['y'][0], s['y'][1]):&lt;br /&gt;
            counter += 1&lt;br /&gt;
            default = False&lt;br /&gt;
            &lt;br /&gt;
            # Figure out region name&lt;br /&gt;
            if counter == 1:&lt;br /&gt;
                default = True&lt;br /&gt;
                regionname = s['regionname']&lt;br /&gt;
            else:&lt;br /&gt;
                regionname = s['regionname'] + str(counter)&lt;br /&gt;
                &lt;br /&gt;
            # Figure out password&lt;br /&gt;
            if s.has_key('password'):&lt;br /&gt;
                password = &amp;quot;master_avatar_pass=\&amp;quot;%s\&amp;quot;&amp;quot; % s['password']&lt;br /&gt;
            else:&lt;br /&gt;
                password = ''&lt;br /&gt;
                &lt;br /&gt;
            # Figure out paths&lt;br /&gt;
            path = os.path.join(regionsdir,&amp;quot;%s.%s.%s.xml&amp;quot; % \&lt;br /&gt;
                        (regionname, xnum, ynum))&lt;br /&gt;
            &lt;br /&gt;
            # Calculate port&lt;br /&gt;
            port = s['startport'] + (counter - 1)&lt;br /&gt;
            &lt;br /&gt;
            # Try to get UUID from settings&lt;br /&gt;
            # Generate + Save if not found&lt;br /&gt;
            if settings.has_key(regionname):&lt;br /&gt;
                uid = settings[regionname]&lt;br /&gt;
            else:&lt;br /&gt;
                uid = str(uuid.uuid1())&lt;br /&gt;
                settings[regionname] = uid&lt;br /&gt;
                &lt;br /&gt;
            # Make template&lt;br /&gt;
            tmpldata = maketemplate(regionname, xnum, ynum, port, uid, password)&lt;br /&gt;
            &lt;br /&gt;
            # Save file&lt;br /&gt;
            tmplfile = open(path, 'w')&lt;br /&gt;
            tmplfile.write(tmpldata)&lt;br /&gt;
            tmplfile.close()&lt;br /&gt;
            &lt;br /&gt;
            # Print progress&lt;br /&gt;
            print regionname&lt;br /&gt;
&lt;br /&gt;
# Save settings file&lt;br /&gt;
try:&lt;br /&gt;
    settingsfile = open(savefile, 'w')&lt;br /&gt;
    pickle.dump(settings, settingsfile)&lt;br /&gt;
    settingsfile.close()&lt;br /&gt;
except IOError:&lt;br /&gt;
    pass&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== regionconfig.py ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# REGIONGEN 2.00 CONFIGURATION FILE&lt;br /&gt;
configlist = [] # Dont touch this&lt;br /&gt;
&lt;br /&gt;
# START OF REGION&lt;br /&gt;
s = {}                          # Dont touch this&lt;br /&gt;
# Region Configuration&lt;br /&gt;
s['regionname'] = &amp;quot;RegionSetOne&amp;quot; # Type the name of your island&lt;br /&gt;
s['x'] = [5100,5105]            # X Position... From &amp;lt;------&amp;gt; To&lt;br /&gt;
s['y'] = [5100,5105]            # Y Position... From &amp;lt;------&amp;gt; To&lt;br /&gt;
&lt;br /&gt;
# User Configuration&lt;br /&gt;
s['firstname'] = &amp;quot;Tom&amp;quot;   # Your First Name&lt;br /&gt;
s['lastname'] = &amp;quot;Jones&amp;quot;      # Your Last Name&lt;br /&gt;
s['useruuid'] = 'get your clients uuid'  # Your UUID, You can use a script in game to get this&lt;br /&gt;
#s['password'] = 'pass'     # This is optional, it is commented out by default.&lt;br /&gt;
&lt;br /&gt;
# Network Configuration&lt;br /&gt;
s['startport'] = 9000               # We recommend leaving this at 9000 for opensim&lt;br /&gt;
                                    # unless this isnt the first region.&lt;br /&gt;
s['internalip'] = &amp;quot;123.123.123.123&amp;quot;   # You need to get this to a internal wired/wireless lan ip address&lt;br /&gt;
s['externalhost'] = &amp;quot;example.org&amp;quot;  # This is the address that people connect from the outside world to&lt;br /&gt;
configlist.append(s)                # Dont touch this&lt;br /&gt;
# END OF REGION&lt;br /&gt;
# YOU MAY COPY AND PASTE MORE CONFIGURATIONS INTO THIS FILE TO ADD MORE REGIONS.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# START OF REGION&lt;br /&gt;
s = {}                          # Dont touch this&lt;br /&gt;
# Region Configuration&lt;br /&gt;
s['regionname'] = &amp;quot;RegionSetTwo&amp;quot; # Type the name of your island&lt;br /&gt;
s['x'] = [5200,5205]            # X Position... From &amp;lt;------&amp;gt; To&lt;br /&gt;
s['y'] = [5200,5205]            # Y Position... From &amp;lt;------&amp;gt; To&lt;br /&gt;
&lt;br /&gt;
# User Configuration&lt;br /&gt;
s['firstname'] = &amp;quot;Tom&amp;quot;   # Your First Name&lt;br /&gt;
s['lastname'] = &amp;quot;Jones&amp;quot;      # Your Last Name&lt;br /&gt;
s['useruuid'] = 'get your clients uuid'  # Your UUID, You can use a script in game to get this&lt;br /&gt;
#s['password'] = 'pass'     # This is optional, it is commented out by default.&lt;br /&gt;
&lt;br /&gt;
# Network Configuration&lt;br /&gt;
s['startport'] = 9100               # We recommend leaving this at 9000 for opensim&lt;br /&gt;
                                    # unless this isnt the first region.&lt;br /&gt;
s['internalip'] = &amp;quot;123.123.123.123&amp;quot;   # You need to get this to a internal wired/wireless lan ip address&lt;br /&gt;
s['externalhost'] = &amp;quot;example.org&amp;quot;  # This is the address that people connect from the outside world to&lt;br /&gt;
configlist.append(s)                # Dont touch this&lt;br /&gt;
# END OF REGION&lt;br /&gt;
# YOU MAY COPY AND PASTE MORE CONFIGURATIONS INTO THIS FILE TO ADD MORE REGIONS.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Rich43</name></author>	</entry>

	<entry>
		<id>http://opensimulator.org/wiki/RegionGenerator</id>
		<title>RegionGenerator</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/RegionGenerator"/>
				<updated>2008-07-15T00:43:04Z</updated>
		
		<summary type="html">&lt;p&gt;Rich43: /* How to use */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Region Generator ==&lt;br /&gt;
&lt;br /&gt;
=== About ===&lt;br /&gt;
It generates a square piece of land.&lt;br /&gt;
&lt;br /&gt;
You can feed it the from-to X Postion and from-to Y position then it makes the xml files for you.&lt;br /&gt;
&lt;br /&gt;
=== Download ===&lt;br /&gt;
I have made a .exe version of this program for windows, you can get it from these locations:&lt;br /&gt;
&lt;br /&gt;
http://www.mediafire.com/?xred9vm0ent&lt;br /&gt;
&lt;br /&gt;
http://4rensics.com/regiongen.zip&lt;br /&gt;
&lt;br /&gt;
=== How to use ===&lt;br /&gt;
If using windows version&lt;br /&gt;
* Extract to somewhere on your computer, i.e. The desktop.&lt;br /&gt;
* Edit the regionconfig.py file.&lt;br /&gt;
* Run regiongen.exe&lt;br /&gt;
* Copy the Regions folder to your opensim/bin folder.&lt;br /&gt;
* If you run it again, it will update the regions but it will not delete the files. If you made a big screw up, delete the Regions folder.&lt;br /&gt;
&lt;br /&gt;
If using the python source code (Linux, mac etc), make sure you have the cheetah and python 2.5 dependency's installed and edit the configuration in the header, then run :)&lt;br /&gt;
&lt;br /&gt;
=== Source Code ===&lt;br /&gt;
It requires the Cheetah Templating module and python 2.5.&lt;br /&gt;
&lt;br /&gt;
You can get cheetah from http://www.cheetahtemplate.org/&lt;br /&gt;
&lt;br /&gt;
You can get python from http://www.python.org/download/&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;#!/usr/bin/python&lt;br /&gt;
from Cheetah.Template import Template&lt;br /&gt;
import uuid&lt;br /&gt;
import os&lt;br /&gt;
import pickle&lt;br /&gt;
&lt;br /&gt;
# ----------------------&lt;br /&gt;
# START OF CONFIGURATION&lt;br /&gt;
s = {}&lt;br /&gt;
&lt;br /&gt;
# Region Configuration&lt;br /&gt;
s['regionname'] = &amp;quot;LandsNameHere&amp;quot;     # Type the name of your land&lt;br /&gt;
s['x'] = [2900,3000]                # From - To x position&lt;br /&gt;
s['y'] = [2900,3000]                # From - To y position&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# User Configuration&lt;br /&gt;
s['firstname'] = &amp;quot;John&amp;quot;           # Account firstname&lt;br /&gt;
s['lastname'] = &amp;quot;Doe&amp;quot;              # Account lastname&lt;br /&gt;
s['useruuid'] = 'your clients uuid goes here'&lt;br /&gt;
s['password'] = 'mypass'           # Account password&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Network Configuration&lt;br /&gt;
s['startport'] = 9000               # Port the regions start on&lt;br /&gt;
                                    # incrimented by 1 each time&lt;br /&gt;
s['internalip'] = &amp;quot;123.456.789.123&amp;quot;   # Server ip&lt;br /&gt;
s['externalhost'] = &amp;quot;mydomain.org&amp;quot;  # Domain name or ip of server&lt;br /&gt;
                                    # (accessed externally)&lt;br /&gt;
&lt;br /&gt;
# Files are put in here.&lt;br /&gt;
regionsdir = 'Regions'&lt;br /&gt;
&lt;br /&gt;
template = &amp;quot;&amp;quot;&amp;quot;&amp;lt;Root&amp;gt;&lt;br /&gt;
&amp;lt;Config sim_UUID=&amp;quot;$uuid&amp;quot; sim_name=&amp;quot;$regionname&amp;quot; sim_location_x=&amp;quot;$x&amp;quot; sim_location_y=&amp;quot;$y&amp;quot; internal_ip_address=&amp;quot;$s.internalip&amp;quot; internal_ip_port=&amp;quot;$port&amp;quot; allow_alternate_ports=&amp;quot;false&amp;quot; external_host_name=&amp;quot;$s.externalhost&amp;quot; master_avatar_uuid=&amp;quot;$s.useruuid&amp;quot; estate_covenant_uuid=&amp;quot;00000000-0000-0000-0000-000000000000&amp;quot; master_avatar_first=&amp;quot;$s.firstname&amp;quot; master_avatar_last=&amp;quot;$s.lastname&amp;quot; master_avatar_pass=&amp;quot;$s.password&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/Root&amp;gt;&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
savefile = &amp;quot;regiongen_save.pkl&amp;quot;&lt;br /&gt;
# END OF CONFIGURATION&lt;br /&gt;
# --------------------&lt;br /&gt;
&lt;br /&gt;
def maketemplate(regionname, x, y, port, uid):&lt;br /&gt;
    t = Template(template)&lt;br /&gt;
    t.s = s&lt;br /&gt;
    t.uuid = uid&lt;br /&gt;
    t.regionname = regionname&lt;br /&gt;
    t.x = x&lt;br /&gt;
    t.y = y&lt;br /&gt;
    t.port = port&lt;br /&gt;
    return str(t)&lt;br /&gt;
&lt;br /&gt;
# Make directory to put regions in if not there&lt;br /&gt;
try:&lt;br /&gt;
    os.mkdir(regionsdir)&lt;br /&gt;
except OSError:&lt;br /&gt;
    pass&lt;br /&gt;
&lt;br /&gt;
settings = {}&lt;br /&gt;
&lt;br /&gt;
# Load settings file&lt;br /&gt;
try:&lt;br /&gt;
    settingsfile = open(savefile)&lt;br /&gt;
    settings = pickle.load(settingsfile)&lt;br /&gt;
    settingsfile.close()&lt;br /&gt;
except IOError:&lt;br /&gt;
    pass&lt;br /&gt;
&lt;br /&gt;
counter = 0&lt;br /&gt;
for xnum in range(s['x'][0], s['x'][1]):&lt;br /&gt;
    for ynum in range(s['y'][0], s['y'][1]):&lt;br /&gt;
        counter += 1&lt;br /&gt;
        default = False&lt;br /&gt;
        &lt;br /&gt;
        # Figure out region name&lt;br /&gt;
        if counter == 1:&lt;br /&gt;
            default = True&lt;br /&gt;
            regionname = s['regionname']&lt;br /&gt;
        else:&lt;br /&gt;
            regionname = s['regionname'] + str(counter)&lt;br /&gt;
        &lt;br /&gt;
        # Figure out paths&lt;br /&gt;
        if default:&lt;br /&gt;
            path = os.path.join(regionsdir,&amp;quot;default.xml&amp;quot;)&lt;br /&gt;
        else:&lt;br /&gt;
            path = os.path.join(regionsdir,&amp;quot;%s.%s.%s.xml&amp;quot; % \&lt;br /&gt;
                    (regionname, xnum, ynum))&lt;br /&gt;
        &lt;br /&gt;
        # Calculate port&lt;br /&gt;
        port = s['startport'] + (counter - 1)&lt;br /&gt;
        # Try to get UUID from settings&lt;br /&gt;
        # Generate + Save if not found&lt;br /&gt;
        if settings.has_key(regionname):&lt;br /&gt;
            uid = settings[regionname]&lt;br /&gt;
        else:&lt;br /&gt;
            uid = str(uuid.uuid1())&lt;br /&gt;
            settings[regionname] = uid&lt;br /&gt;
        # Make template&lt;br /&gt;
        tmpldata = maketemplate(regionname, xnum, ynum, port, uid)&lt;br /&gt;
        &lt;br /&gt;
        # Save file&lt;br /&gt;
        tmplfile = open(path, 'w')&lt;br /&gt;
        tmplfile.write(tmpldata)&lt;br /&gt;
        tmplfile.close()&lt;br /&gt;
        &lt;br /&gt;
        # Print progress&lt;br /&gt;
        print regionname&lt;br /&gt;
&lt;br /&gt;
# Save settings file&lt;br /&gt;
try:&lt;br /&gt;
    settingsfile = open(savefile, 'w')&lt;br /&gt;
    pickle.dump(settings, settingsfile)&lt;br /&gt;
    settingsfile.close()&lt;br /&gt;
except IOError:&lt;br /&gt;
    pass&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Rich43</name></author>	</entry>

	<entry>
		<id>http://opensimulator.org/wiki/RegionGenerator</id>
		<title>RegionGenerator</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/RegionGenerator"/>
				<updated>2008-07-15T00:42:53Z</updated>
		
		<summary type="html">&lt;p&gt;Rich43: /* How to use */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Region Generator ==&lt;br /&gt;
&lt;br /&gt;
=== About ===&lt;br /&gt;
It generates a square piece of land.&lt;br /&gt;
&lt;br /&gt;
You can feed it the from-to X Postion and from-to Y position then it makes the xml files for you.&lt;br /&gt;
&lt;br /&gt;
=== Download ===&lt;br /&gt;
I have made a .exe version of this program for windows, you can get it from these locations:&lt;br /&gt;
&lt;br /&gt;
http://www.mediafire.com/?xred9vm0ent&lt;br /&gt;
&lt;br /&gt;
http://4rensics.com/regiongen.zip&lt;br /&gt;
&lt;br /&gt;
=== How to use ===&lt;br /&gt;
If using windows version&lt;br /&gt;
* Extract to somewhere on your computer, i.e. The desktop.&lt;br /&gt;
* Edit the regionconfig.py file.&lt;br /&gt;
* Run regiongen.exe&lt;br /&gt;
* Copy the Regions folder to your opensim/bin folder.&lt;br /&gt;
* If you run it again, it will update the regions but it will not delete the files. If you made a big screw up, delete the Regions folder.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If using the python source code (Linux, mac etc), make sure you have the cheetah and python 2.5 dependency's installed and edit the configuration in the header, then run :)&lt;br /&gt;
&lt;br /&gt;
=== Source Code ===&lt;br /&gt;
It requires the Cheetah Templating module and python 2.5.&lt;br /&gt;
&lt;br /&gt;
You can get cheetah from http://www.cheetahtemplate.org/&lt;br /&gt;
&lt;br /&gt;
You can get python from http://www.python.org/download/&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;#!/usr/bin/python&lt;br /&gt;
from Cheetah.Template import Template&lt;br /&gt;
import uuid&lt;br /&gt;
import os&lt;br /&gt;
import pickle&lt;br /&gt;
&lt;br /&gt;
# ----------------------&lt;br /&gt;
# START OF CONFIGURATION&lt;br /&gt;
s = {}&lt;br /&gt;
&lt;br /&gt;
# Region Configuration&lt;br /&gt;
s['regionname'] = &amp;quot;LandsNameHere&amp;quot;     # Type the name of your land&lt;br /&gt;
s['x'] = [2900,3000]                # From - To x position&lt;br /&gt;
s['y'] = [2900,3000]                # From - To y position&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# User Configuration&lt;br /&gt;
s['firstname'] = &amp;quot;John&amp;quot;           # Account firstname&lt;br /&gt;
s['lastname'] = &amp;quot;Doe&amp;quot;              # Account lastname&lt;br /&gt;
s['useruuid'] = 'your clients uuid goes here'&lt;br /&gt;
s['password'] = 'mypass'           # Account password&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Network Configuration&lt;br /&gt;
s['startport'] = 9000               # Port the regions start on&lt;br /&gt;
                                    # incrimented by 1 each time&lt;br /&gt;
s['internalip'] = &amp;quot;123.456.789.123&amp;quot;   # Server ip&lt;br /&gt;
s['externalhost'] = &amp;quot;mydomain.org&amp;quot;  # Domain name or ip of server&lt;br /&gt;
                                    # (accessed externally)&lt;br /&gt;
&lt;br /&gt;
# Files are put in here.&lt;br /&gt;
regionsdir = 'Regions'&lt;br /&gt;
&lt;br /&gt;
template = &amp;quot;&amp;quot;&amp;quot;&amp;lt;Root&amp;gt;&lt;br /&gt;
&amp;lt;Config sim_UUID=&amp;quot;$uuid&amp;quot; sim_name=&amp;quot;$regionname&amp;quot; sim_location_x=&amp;quot;$x&amp;quot; sim_location_y=&amp;quot;$y&amp;quot; internal_ip_address=&amp;quot;$s.internalip&amp;quot; internal_ip_port=&amp;quot;$port&amp;quot; allow_alternate_ports=&amp;quot;false&amp;quot; external_host_name=&amp;quot;$s.externalhost&amp;quot; master_avatar_uuid=&amp;quot;$s.useruuid&amp;quot; estate_covenant_uuid=&amp;quot;00000000-0000-0000-0000-000000000000&amp;quot; master_avatar_first=&amp;quot;$s.firstname&amp;quot; master_avatar_last=&amp;quot;$s.lastname&amp;quot; master_avatar_pass=&amp;quot;$s.password&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/Root&amp;gt;&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
savefile = &amp;quot;regiongen_save.pkl&amp;quot;&lt;br /&gt;
# END OF CONFIGURATION&lt;br /&gt;
# --------------------&lt;br /&gt;
&lt;br /&gt;
def maketemplate(regionname, x, y, port, uid):&lt;br /&gt;
    t = Template(template)&lt;br /&gt;
    t.s = s&lt;br /&gt;
    t.uuid = uid&lt;br /&gt;
    t.regionname = regionname&lt;br /&gt;
    t.x = x&lt;br /&gt;
    t.y = y&lt;br /&gt;
    t.port = port&lt;br /&gt;
    return str(t)&lt;br /&gt;
&lt;br /&gt;
# Make directory to put regions in if not there&lt;br /&gt;
try:&lt;br /&gt;
    os.mkdir(regionsdir)&lt;br /&gt;
except OSError:&lt;br /&gt;
    pass&lt;br /&gt;
&lt;br /&gt;
settings = {}&lt;br /&gt;
&lt;br /&gt;
# Load settings file&lt;br /&gt;
try:&lt;br /&gt;
    settingsfile = open(savefile)&lt;br /&gt;
    settings = pickle.load(settingsfile)&lt;br /&gt;
    settingsfile.close()&lt;br /&gt;
except IOError:&lt;br /&gt;
    pass&lt;br /&gt;
&lt;br /&gt;
counter = 0&lt;br /&gt;
for xnum in range(s['x'][0], s['x'][1]):&lt;br /&gt;
    for ynum in range(s['y'][0], s['y'][1]):&lt;br /&gt;
        counter += 1&lt;br /&gt;
        default = False&lt;br /&gt;
        &lt;br /&gt;
        # Figure out region name&lt;br /&gt;
        if counter == 1:&lt;br /&gt;
            default = True&lt;br /&gt;
            regionname = s['regionname']&lt;br /&gt;
        else:&lt;br /&gt;
            regionname = s['regionname'] + str(counter)&lt;br /&gt;
        &lt;br /&gt;
        # Figure out paths&lt;br /&gt;
        if default:&lt;br /&gt;
            path = os.path.join(regionsdir,&amp;quot;default.xml&amp;quot;)&lt;br /&gt;
        else:&lt;br /&gt;
            path = os.path.join(regionsdir,&amp;quot;%s.%s.%s.xml&amp;quot; % \&lt;br /&gt;
                    (regionname, xnum, ynum))&lt;br /&gt;
        &lt;br /&gt;
        # Calculate port&lt;br /&gt;
        port = s['startport'] + (counter - 1)&lt;br /&gt;
        # Try to get UUID from settings&lt;br /&gt;
        # Generate + Save if not found&lt;br /&gt;
        if settings.has_key(regionname):&lt;br /&gt;
            uid = settings[regionname]&lt;br /&gt;
        else:&lt;br /&gt;
            uid = str(uuid.uuid1())&lt;br /&gt;
            settings[regionname] = uid&lt;br /&gt;
        # Make template&lt;br /&gt;
        tmpldata = maketemplate(regionname, xnum, ynum, port, uid)&lt;br /&gt;
        &lt;br /&gt;
        # Save file&lt;br /&gt;
        tmplfile = open(path, 'w')&lt;br /&gt;
        tmplfile.write(tmpldata)&lt;br /&gt;
        tmplfile.close()&lt;br /&gt;
        &lt;br /&gt;
        # Print progress&lt;br /&gt;
        print regionname&lt;br /&gt;
&lt;br /&gt;
# Save settings file&lt;br /&gt;
try:&lt;br /&gt;
    settingsfile = open(savefile, 'w')&lt;br /&gt;
    pickle.dump(settings, settingsfile)&lt;br /&gt;
    settingsfile.close()&lt;br /&gt;
except IOError:&lt;br /&gt;
    pass&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Rich43</name></author>	</entry>

	<entry>
		<id>http://opensimulator.org/wiki/RegionGenerator</id>
		<title>RegionGenerator</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/RegionGenerator"/>
				<updated>2008-07-14T22:43:12Z</updated>
		
		<summary type="html">&lt;p&gt;Rich43: /* How to use */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Region Generator ==&lt;br /&gt;
&lt;br /&gt;
=== About ===&lt;br /&gt;
It generates a square piece of land.&lt;br /&gt;
&lt;br /&gt;
You can feed it the from-to X Postion and from-to Y position then it makes the xml files for you.&lt;br /&gt;
&lt;br /&gt;
=== Download ===&lt;br /&gt;
I have made a .exe version of this program for windows, you can get it from these locations:&lt;br /&gt;
&lt;br /&gt;
http://www.mediafire.com/?xred9vm0ent&lt;br /&gt;
&lt;br /&gt;
http://4rensics.com/regiongen.zip&lt;br /&gt;
&lt;br /&gt;
=== How to use ===&lt;br /&gt;
If using windows version&lt;br /&gt;
* Extract to somewhere on your computer, i.e. The desktop.&lt;br /&gt;
* Edit the regionconfig.py file.&lt;br /&gt;
* Run regiongen.exe&lt;br /&gt;
* Copy the Regions folder to your opensim/bin folder.&lt;br /&gt;
* If you run it again, it will update the regions but it will not delete the files. If you made a big screw up, delete the Regions folder.&lt;br /&gt;
If using the python source code (Linux, mac etc), make sure you have the cheetah and python 2.5 dependency's installed and edit the configuration in the header, then run :)&lt;br /&gt;
&lt;br /&gt;
=== Source Code ===&lt;br /&gt;
It requires the Cheetah Templating module and python 2.5.&lt;br /&gt;
&lt;br /&gt;
You can get cheetah from http://www.cheetahtemplate.org/&lt;br /&gt;
&lt;br /&gt;
You can get python from http://www.python.org/download/&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;#!/usr/bin/python&lt;br /&gt;
from Cheetah.Template import Template&lt;br /&gt;
import uuid&lt;br /&gt;
import os&lt;br /&gt;
import pickle&lt;br /&gt;
&lt;br /&gt;
# ----------------------&lt;br /&gt;
# START OF CONFIGURATION&lt;br /&gt;
s = {}&lt;br /&gt;
&lt;br /&gt;
# Region Configuration&lt;br /&gt;
s['regionname'] = &amp;quot;LandsNameHere&amp;quot;     # Type the name of your land&lt;br /&gt;
s['x'] = [2900,3000]                # From - To x position&lt;br /&gt;
s['y'] = [2900,3000]                # From - To y position&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# User Configuration&lt;br /&gt;
s['firstname'] = &amp;quot;John&amp;quot;           # Account firstname&lt;br /&gt;
s['lastname'] = &amp;quot;Doe&amp;quot;              # Account lastname&lt;br /&gt;
s['useruuid'] = 'your clients uuid goes here'&lt;br /&gt;
s['password'] = 'mypass'           # Account password&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Network Configuration&lt;br /&gt;
s['startport'] = 9000               # Port the regions start on&lt;br /&gt;
                                    # incrimented by 1 each time&lt;br /&gt;
s['internalip'] = &amp;quot;123.456.789.123&amp;quot;   # Server ip&lt;br /&gt;
s['externalhost'] = &amp;quot;mydomain.org&amp;quot;  # Domain name or ip of server&lt;br /&gt;
                                    # (accessed externally)&lt;br /&gt;
&lt;br /&gt;
# Files are put in here.&lt;br /&gt;
regionsdir = 'Regions'&lt;br /&gt;
&lt;br /&gt;
template = &amp;quot;&amp;quot;&amp;quot;&amp;lt;Root&amp;gt;&lt;br /&gt;
&amp;lt;Config sim_UUID=&amp;quot;$uuid&amp;quot; sim_name=&amp;quot;$regionname&amp;quot; sim_location_x=&amp;quot;$x&amp;quot; sim_location_y=&amp;quot;$y&amp;quot; internal_ip_address=&amp;quot;$s.internalip&amp;quot; internal_ip_port=&amp;quot;$port&amp;quot; allow_alternate_ports=&amp;quot;false&amp;quot; external_host_name=&amp;quot;$s.externalhost&amp;quot; master_avatar_uuid=&amp;quot;$s.useruuid&amp;quot; estate_covenant_uuid=&amp;quot;00000000-0000-0000-0000-000000000000&amp;quot; master_avatar_first=&amp;quot;$s.firstname&amp;quot; master_avatar_last=&amp;quot;$s.lastname&amp;quot; master_avatar_pass=&amp;quot;$s.password&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/Root&amp;gt;&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
savefile = &amp;quot;regiongen_save.pkl&amp;quot;&lt;br /&gt;
# END OF CONFIGURATION&lt;br /&gt;
# --------------------&lt;br /&gt;
&lt;br /&gt;
def maketemplate(regionname, x, y, port, uid):&lt;br /&gt;
    t = Template(template)&lt;br /&gt;
    t.s = s&lt;br /&gt;
    t.uuid = uid&lt;br /&gt;
    t.regionname = regionname&lt;br /&gt;
    t.x = x&lt;br /&gt;
    t.y = y&lt;br /&gt;
    t.port = port&lt;br /&gt;
    return str(t)&lt;br /&gt;
&lt;br /&gt;
# Make directory to put regions in if not there&lt;br /&gt;
try:&lt;br /&gt;
    os.mkdir(regionsdir)&lt;br /&gt;
except OSError:&lt;br /&gt;
    pass&lt;br /&gt;
&lt;br /&gt;
settings = {}&lt;br /&gt;
&lt;br /&gt;
# Load settings file&lt;br /&gt;
try:&lt;br /&gt;
    settingsfile = open(savefile)&lt;br /&gt;
    settings = pickle.load(settingsfile)&lt;br /&gt;
    settingsfile.close()&lt;br /&gt;
except IOError:&lt;br /&gt;
    pass&lt;br /&gt;
&lt;br /&gt;
counter = 0&lt;br /&gt;
for xnum in range(s['x'][0], s['x'][1]):&lt;br /&gt;
    for ynum in range(s['y'][0], s['y'][1]):&lt;br /&gt;
        counter += 1&lt;br /&gt;
        default = False&lt;br /&gt;
        &lt;br /&gt;
        # Figure out region name&lt;br /&gt;
        if counter == 1:&lt;br /&gt;
            default = True&lt;br /&gt;
            regionname = s['regionname']&lt;br /&gt;
        else:&lt;br /&gt;
            regionname = s['regionname'] + str(counter)&lt;br /&gt;
        &lt;br /&gt;
        # Figure out paths&lt;br /&gt;
        if default:&lt;br /&gt;
            path = os.path.join(regionsdir,&amp;quot;default.xml&amp;quot;)&lt;br /&gt;
        else:&lt;br /&gt;
            path = os.path.join(regionsdir,&amp;quot;%s.%s.%s.xml&amp;quot; % \&lt;br /&gt;
                    (regionname, xnum, ynum))&lt;br /&gt;
        &lt;br /&gt;
        # Calculate port&lt;br /&gt;
        port = s['startport'] + (counter - 1)&lt;br /&gt;
        # Try to get UUID from settings&lt;br /&gt;
        # Generate + Save if not found&lt;br /&gt;
        if settings.has_key(regionname):&lt;br /&gt;
            uid = settings[regionname]&lt;br /&gt;
        else:&lt;br /&gt;
            uid = str(uuid.uuid1())&lt;br /&gt;
            settings[regionname] = uid&lt;br /&gt;
        # Make template&lt;br /&gt;
        tmpldata = maketemplate(regionname, xnum, ynum, port, uid)&lt;br /&gt;
        &lt;br /&gt;
        # Save file&lt;br /&gt;
        tmplfile = open(path, 'w')&lt;br /&gt;
        tmplfile.write(tmpldata)&lt;br /&gt;
        tmplfile.close()&lt;br /&gt;
        &lt;br /&gt;
        # Print progress&lt;br /&gt;
        print regionname&lt;br /&gt;
&lt;br /&gt;
# Save settings file&lt;br /&gt;
try:&lt;br /&gt;
    settingsfile = open(savefile, 'w')&lt;br /&gt;
    pickle.dump(settings, settingsfile)&lt;br /&gt;
    settingsfile.close()&lt;br /&gt;
except IOError:&lt;br /&gt;
    pass&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Rich43</name></author>	</entry>

	<entry>
		<id>http://opensimulator.org/wiki/RegionGenerator</id>
		<title>RegionGenerator</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/RegionGenerator"/>
				<updated>2008-07-14T22:33:25Z</updated>
		
		<summary type="html">&lt;p&gt;Rich43: /* How to use */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Region Generator ==&lt;br /&gt;
&lt;br /&gt;
=== About ===&lt;br /&gt;
It generates a square piece of land.&lt;br /&gt;
&lt;br /&gt;
You can feed it the from-to X Postion and from-to Y position then it makes the xml files for you.&lt;br /&gt;
&lt;br /&gt;
=== Download ===&lt;br /&gt;
I have made a .exe version of this program for windows, you can get it from these locations:&lt;br /&gt;
&lt;br /&gt;
http://www.mediafire.com/?xred9vm0ent&lt;br /&gt;
&lt;br /&gt;
http://4rensics.com/regiongen.zip&lt;br /&gt;
&lt;br /&gt;
=== How to use ===&lt;br /&gt;
If using windows version&lt;br /&gt;
* Extract to somewhere on your computer, i.e. The desktop.&lt;br /&gt;
* Edit the regionconfig.py file.&lt;br /&gt;
* Run regiongen.exe&lt;br /&gt;
* Copy the Regions folder to your opensim/bin folder.&lt;br /&gt;
&lt;br /&gt;
If using the python source code (Linux, mac etc), make sure you have the cheetah and python 2.5 dependency's installed and edit the configuration in the header, then run :)&lt;br /&gt;
&lt;br /&gt;
=== Source Code ===&lt;br /&gt;
It requires the Cheetah Templating module and python 2.5.&lt;br /&gt;
&lt;br /&gt;
You can get cheetah from http://www.cheetahtemplate.org/&lt;br /&gt;
&lt;br /&gt;
You can get python from http://www.python.org/download/&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;#!/usr/bin/python&lt;br /&gt;
from Cheetah.Template import Template&lt;br /&gt;
import uuid&lt;br /&gt;
import os&lt;br /&gt;
import pickle&lt;br /&gt;
&lt;br /&gt;
# ----------------------&lt;br /&gt;
# START OF CONFIGURATION&lt;br /&gt;
s = {}&lt;br /&gt;
&lt;br /&gt;
# Region Configuration&lt;br /&gt;
s['regionname'] = &amp;quot;LandsNameHere&amp;quot;     # Type the name of your land&lt;br /&gt;
s['x'] = [2900,3000]                # From - To x position&lt;br /&gt;
s['y'] = [2900,3000]                # From - To y position&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# User Configuration&lt;br /&gt;
s['firstname'] = &amp;quot;John&amp;quot;           # Account firstname&lt;br /&gt;
s['lastname'] = &amp;quot;Doe&amp;quot;              # Account lastname&lt;br /&gt;
s['useruuid'] = 'your clients uuid goes here'&lt;br /&gt;
s['password'] = 'mypass'           # Account password&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Network Configuration&lt;br /&gt;
s['startport'] = 9000               # Port the regions start on&lt;br /&gt;
                                    # incrimented by 1 each time&lt;br /&gt;
s['internalip'] = &amp;quot;123.456.789.123&amp;quot;   # Server ip&lt;br /&gt;
s['externalhost'] = &amp;quot;mydomain.org&amp;quot;  # Domain name or ip of server&lt;br /&gt;
                                    # (accessed externally)&lt;br /&gt;
&lt;br /&gt;
# Files are put in here.&lt;br /&gt;
regionsdir = 'Regions'&lt;br /&gt;
&lt;br /&gt;
template = &amp;quot;&amp;quot;&amp;quot;&amp;lt;Root&amp;gt;&lt;br /&gt;
&amp;lt;Config sim_UUID=&amp;quot;$uuid&amp;quot; sim_name=&amp;quot;$regionname&amp;quot; sim_location_x=&amp;quot;$x&amp;quot; sim_location_y=&amp;quot;$y&amp;quot; internal_ip_address=&amp;quot;$s.internalip&amp;quot; internal_ip_port=&amp;quot;$port&amp;quot; allow_alternate_ports=&amp;quot;false&amp;quot; external_host_name=&amp;quot;$s.externalhost&amp;quot; master_avatar_uuid=&amp;quot;$s.useruuid&amp;quot; estate_covenant_uuid=&amp;quot;00000000-0000-0000-0000-000000000000&amp;quot; master_avatar_first=&amp;quot;$s.firstname&amp;quot; master_avatar_last=&amp;quot;$s.lastname&amp;quot; master_avatar_pass=&amp;quot;$s.password&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/Root&amp;gt;&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
savefile = &amp;quot;regiongen_save.pkl&amp;quot;&lt;br /&gt;
# END OF CONFIGURATION&lt;br /&gt;
# --------------------&lt;br /&gt;
&lt;br /&gt;
def maketemplate(regionname, x, y, port, uid):&lt;br /&gt;
    t = Template(template)&lt;br /&gt;
    t.s = s&lt;br /&gt;
    t.uuid = uid&lt;br /&gt;
    t.regionname = regionname&lt;br /&gt;
    t.x = x&lt;br /&gt;
    t.y = y&lt;br /&gt;
    t.port = port&lt;br /&gt;
    return str(t)&lt;br /&gt;
&lt;br /&gt;
# Make directory to put regions in if not there&lt;br /&gt;
try:&lt;br /&gt;
    os.mkdir(regionsdir)&lt;br /&gt;
except OSError:&lt;br /&gt;
    pass&lt;br /&gt;
&lt;br /&gt;
settings = {}&lt;br /&gt;
&lt;br /&gt;
# Load settings file&lt;br /&gt;
try:&lt;br /&gt;
    settingsfile = open(savefile)&lt;br /&gt;
    settings = pickle.load(settingsfile)&lt;br /&gt;
    settingsfile.close()&lt;br /&gt;
except IOError:&lt;br /&gt;
    pass&lt;br /&gt;
&lt;br /&gt;
counter = 0&lt;br /&gt;
for xnum in range(s['x'][0], s['x'][1]):&lt;br /&gt;
    for ynum in range(s['y'][0], s['y'][1]):&lt;br /&gt;
        counter += 1&lt;br /&gt;
        default = False&lt;br /&gt;
        &lt;br /&gt;
        # Figure out region name&lt;br /&gt;
        if counter == 1:&lt;br /&gt;
            default = True&lt;br /&gt;
            regionname = s['regionname']&lt;br /&gt;
        else:&lt;br /&gt;
            regionname = s['regionname'] + str(counter)&lt;br /&gt;
        &lt;br /&gt;
        # Figure out paths&lt;br /&gt;
        if default:&lt;br /&gt;
            path = os.path.join(regionsdir,&amp;quot;default.xml&amp;quot;)&lt;br /&gt;
        else:&lt;br /&gt;
            path = os.path.join(regionsdir,&amp;quot;%s.%s.%s.xml&amp;quot; % \&lt;br /&gt;
                    (regionname, xnum, ynum))&lt;br /&gt;
        &lt;br /&gt;
        # Calculate port&lt;br /&gt;
        port = s['startport'] + (counter - 1)&lt;br /&gt;
        # Try to get UUID from settings&lt;br /&gt;
        # Generate + Save if not found&lt;br /&gt;
        if settings.has_key(regionname):&lt;br /&gt;
            uid = settings[regionname]&lt;br /&gt;
        else:&lt;br /&gt;
            uid = str(uuid.uuid1())&lt;br /&gt;
            settings[regionname] = uid&lt;br /&gt;
        # Make template&lt;br /&gt;
        tmpldata = maketemplate(regionname, xnum, ynum, port, uid)&lt;br /&gt;
        &lt;br /&gt;
        # Save file&lt;br /&gt;
        tmplfile = open(path, 'w')&lt;br /&gt;
        tmplfile.write(tmpldata)&lt;br /&gt;
        tmplfile.close()&lt;br /&gt;
        &lt;br /&gt;
        # Print progress&lt;br /&gt;
        print regionname&lt;br /&gt;
&lt;br /&gt;
# Save settings file&lt;br /&gt;
try:&lt;br /&gt;
    settingsfile = open(savefile, 'w')&lt;br /&gt;
    pickle.dump(settings, settingsfile)&lt;br /&gt;
    settingsfile.close()&lt;br /&gt;
except IOError:&lt;br /&gt;
    pass&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Rich43</name></author>	</entry>

	<entry>
		<id>http://opensimulator.org/wiki/RegionGenerator</id>
		<title>RegionGenerator</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/RegionGenerator"/>
				<updated>2008-07-14T18:32:23Z</updated>
		
		<summary type="html">&lt;p&gt;Rich43: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Region Generator ==&lt;br /&gt;
&lt;br /&gt;
=== About ===&lt;br /&gt;
It generates a square piece of land.&lt;br /&gt;
&lt;br /&gt;
You can feed it the from-to X Postion and from-to Y position then it makes the xml files for you.&lt;br /&gt;
&lt;br /&gt;
=== Download ===&lt;br /&gt;
I have made a .exe version of this program for windows, you can get it from these locations:&lt;br /&gt;
&lt;br /&gt;
http://www.mediafire.com/?xred9vm0ent&lt;br /&gt;
&lt;br /&gt;
http://4rensics.com/regiongen.zip&lt;br /&gt;
&lt;br /&gt;
=== How to use ===&lt;br /&gt;
If using windows version, edit the regionconfig.py file and then run regiongen.exe&lt;br /&gt;
&lt;br /&gt;
If using the python source code (Linux, mac etc), make sure you have the cheetah and python 2.5 dependency's installed and edit the configuration in the header, then run :)&lt;br /&gt;
&lt;br /&gt;
=== Source Code ===&lt;br /&gt;
It requires the Cheetah Templating module and python 2.5.&lt;br /&gt;
&lt;br /&gt;
You can get cheetah from http://www.cheetahtemplate.org/&lt;br /&gt;
&lt;br /&gt;
You can get python from http://www.python.org/download/&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;#!/usr/bin/python&lt;br /&gt;
from Cheetah.Template import Template&lt;br /&gt;
import uuid&lt;br /&gt;
import os&lt;br /&gt;
import pickle&lt;br /&gt;
&lt;br /&gt;
# ----------------------&lt;br /&gt;
# START OF CONFIGURATION&lt;br /&gt;
s = {}&lt;br /&gt;
&lt;br /&gt;
# Region Configuration&lt;br /&gt;
s['regionname'] = &amp;quot;LandsNameHere&amp;quot;     # Type the name of your land&lt;br /&gt;
s['x'] = [2900,3000]                # From - To x position&lt;br /&gt;
s['y'] = [2900,3000]                # From - To y position&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# User Configuration&lt;br /&gt;
s['firstname'] = &amp;quot;John&amp;quot;           # Account firstname&lt;br /&gt;
s['lastname'] = &amp;quot;Doe&amp;quot;              # Account lastname&lt;br /&gt;
s['useruuid'] = 'your clients uuid goes here'&lt;br /&gt;
s['password'] = 'mypass'           # Account password&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Network Configuration&lt;br /&gt;
s['startport'] = 9000               # Port the regions start on&lt;br /&gt;
                                    # incrimented by 1 each time&lt;br /&gt;
s['internalip'] = &amp;quot;123.456.789.123&amp;quot;   # Server ip&lt;br /&gt;
s['externalhost'] = &amp;quot;mydomain.org&amp;quot;  # Domain name or ip of server&lt;br /&gt;
                                    # (accessed externally)&lt;br /&gt;
&lt;br /&gt;
# Files are put in here.&lt;br /&gt;
regionsdir = 'Regions'&lt;br /&gt;
&lt;br /&gt;
template = &amp;quot;&amp;quot;&amp;quot;&amp;lt;Root&amp;gt;&lt;br /&gt;
&amp;lt;Config sim_UUID=&amp;quot;$uuid&amp;quot; sim_name=&amp;quot;$regionname&amp;quot; sim_location_x=&amp;quot;$x&amp;quot; sim_location_y=&amp;quot;$y&amp;quot; internal_ip_address=&amp;quot;$s.internalip&amp;quot; internal_ip_port=&amp;quot;$port&amp;quot; allow_alternate_ports=&amp;quot;false&amp;quot; external_host_name=&amp;quot;$s.externalhost&amp;quot; master_avatar_uuid=&amp;quot;$s.useruuid&amp;quot; estate_covenant_uuid=&amp;quot;00000000-0000-0000-0000-000000000000&amp;quot; master_avatar_first=&amp;quot;$s.firstname&amp;quot; master_avatar_last=&amp;quot;$s.lastname&amp;quot; master_avatar_pass=&amp;quot;$s.password&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/Root&amp;gt;&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
savefile = &amp;quot;regiongen_save.pkl&amp;quot;&lt;br /&gt;
# END OF CONFIGURATION&lt;br /&gt;
# --------------------&lt;br /&gt;
&lt;br /&gt;
def maketemplate(regionname, x, y, port, uid):&lt;br /&gt;
    t = Template(template)&lt;br /&gt;
    t.s = s&lt;br /&gt;
    t.uuid = uid&lt;br /&gt;
    t.regionname = regionname&lt;br /&gt;
    t.x = x&lt;br /&gt;
    t.y = y&lt;br /&gt;
    t.port = port&lt;br /&gt;
    return str(t)&lt;br /&gt;
&lt;br /&gt;
# Make directory to put regions in if not there&lt;br /&gt;
try:&lt;br /&gt;
    os.mkdir(regionsdir)&lt;br /&gt;
except OSError:&lt;br /&gt;
    pass&lt;br /&gt;
&lt;br /&gt;
settings = {}&lt;br /&gt;
&lt;br /&gt;
# Load settings file&lt;br /&gt;
try:&lt;br /&gt;
    settingsfile = open(savefile)&lt;br /&gt;
    settings = pickle.load(settingsfile)&lt;br /&gt;
    settingsfile.close()&lt;br /&gt;
except IOError:&lt;br /&gt;
    pass&lt;br /&gt;
&lt;br /&gt;
counter = 0&lt;br /&gt;
for xnum in range(s['x'][0], s['x'][1]):&lt;br /&gt;
    for ynum in range(s['y'][0], s['y'][1]):&lt;br /&gt;
        counter += 1&lt;br /&gt;
        default = False&lt;br /&gt;
        &lt;br /&gt;
        # Figure out region name&lt;br /&gt;
        if counter == 1:&lt;br /&gt;
            default = True&lt;br /&gt;
            regionname = s['regionname']&lt;br /&gt;
        else:&lt;br /&gt;
            regionname = s['regionname'] + str(counter)&lt;br /&gt;
        &lt;br /&gt;
        # Figure out paths&lt;br /&gt;
        if default:&lt;br /&gt;
            path = os.path.join(regionsdir,&amp;quot;default.xml&amp;quot;)&lt;br /&gt;
        else:&lt;br /&gt;
            path = os.path.join(regionsdir,&amp;quot;%s.%s.%s.xml&amp;quot; % \&lt;br /&gt;
                    (regionname, xnum, ynum))&lt;br /&gt;
        &lt;br /&gt;
        # Calculate port&lt;br /&gt;
        port = s['startport'] + (counter - 1)&lt;br /&gt;
        # Try to get UUID from settings&lt;br /&gt;
        # Generate + Save if not found&lt;br /&gt;
        if settings.has_key(regionname):&lt;br /&gt;
            uid = settings[regionname]&lt;br /&gt;
        else:&lt;br /&gt;
            uid = str(uuid.uuid1())&lt;br /&gt;
            settings[regionname] = uid&lt;br /&gt;
        # Make template&lt;br /&gt;
        tmpldata = maketemplate(regionname, xnum, ynum, port, uid)&lt;br /&gt;
        &lt;br /&gt;
        # Save file&lt;br /&gt;
        tmplfile = open(path, 'w')&lt;br /&gt;
        tmplfile.write(tmpldata)&lt;br /&gt;
        tmplfile.close()&lt;br /&gt;
        &lt;br /&gt;
        # Print progress&lt;br /&gt;
        print regionname&lt;br /&gt;
&lt;br /&gt;
# Save settings file&lt;br /&gt;
try:&lt;br /&gt;
    settingsfile = open(savefile, 'w')&lt;br /&gt;
    pickle.dump(settings, settingsfile)&lt;br /&gt;
    settingsfile.close()&lt;br /&gt;
except IOError:&lt;br /&gt;
    pass&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Rich43</name></author>	</entry>

	<entry>
		<id>http://opensimulator.org/wiki/RegionGenerator</id>
		<title>RegionGenerator</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/RegionGenerator"/>
				<updated>2008-07-14T18:28:57Z</updated>
		
		<summary type="html">&lt;p&gt;Rich43: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Region Generator ==&lt;br /&gt;
&lt;br /&gt;
=== About ===&lt;br /&gt;
It generates a square piece of land.&lt;br /&gt;
&lt;br /&gt;
You can feed it the from-to X Postion and from-to Y position then it makes the xml files for you.&lt;br /&gt;
&lt;br /&gt;
=== Download ===&lt;br /&gt;
I have made a .exe version of this program, you can get it from these locations:&lt;br /&gt;
&lt;br /&gt;
http://www.mediafire.com/?xred9vm0ent&lt;br /&gt;
&lt;br /&gt;
http://4rensics.com/regiongen.zip&lt;br /&gt;
&lt;br /&gt;
=== How to use ===&lt;br /&gt;
If using windows version, edit the regionconfig.py file and then run regiongen.exe&lt;br /&gt;
&lt;br /&gt;
If using the python source code (Linux, mac etc), make sure you have the cheetah and python 2.5 dependency's installed and edit the configuration in the header, then run :)&lt;br /&gt;
&lt;br /&gt;
=== Source Code ===&lt;br /&gt;
It requires the Cheetah Templating module and python 2.5.&lt;br /&gt;
&lt;br /&gt;
You can get cheetah from http://www.cheetahtemplate.org/&lt;br /&gt;
&lt;br /&gt;
You can get python from http://www.python.org/download/&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;#!/usr/bin/python&lt;br /&gt;
from Cheetah.Template import Template&lt;br /&gt;
import uuid&lt;br /&gt;
import os&lt;br /&gt;
import pickle&lt;br /&gt;
&lt;br /&gt;
# ----------------------&lt;br /&gt;
# START OF CONFIGURATION&lt;br /&gt;
s = {}&lt;br /&gt;
&lt;br /&gt;
# Region Configuration&lt;br /&gt;
s['regionname'] = &amp;quot;LandsNameHere&amp;quot;     # Type the name of your land&lt;br /&gt;
s['x'] = [2900,3000]                # From - To x position&lt;br /&gt;
s['y'] = [2900,3000]                # From - To y position&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# User Configuration&lt;br /&gt;
s['firstname'] = &amp;quot;John&amp;quot;           # Account firstname&lt;br /&gt;
s['lastname'] = &amp;quot;Doe&amp;quot;              # Account lastname&lt;br /&gt;
s['useruuid'] = 'your clients uuid goes here'&lt;br /&gt;
s['password'] = 'mypass'           # Account password&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Network Configuration&lt;br /&gt;
s['startport'] = 9000               # Port the regions start on&lt;br /&gt;
                                    # incrimented by 1 each time&lt;br /&gt;
s['internalip'] = &amp;quot;123.456.789.123&amp;quot;   # Server ip&lt;br /&gt;
s['externalhost'] = &amp;quot;mydomain.org&amp;quot;  # Domain name or ip of server&lt;br /&gt;
                                    # (accessed externally)&lt;br /&gt;
&lt;br /&gt;
# Files are put in here.&lt;br /&gt;
regionsdir = 'Regions'&lt;br /&gt;
&lt;br /&gt;
template = &amp;quot;&amp;quot;&amp;quot;&amp;lt;Root&amp;gt;&lt;br /&gt;
&amp;lt;Config sim_UUID=&amp;quot;$uuid&amp;quot; sim_name=&amp;quot;$regionname&amp;quot; sim_location_x=&amp;quot;$x&amp;quot; sim_location_y=&amp;quot;$y&amp;quot; internal_ip_address=&amp;quot;$s.internalip&amp;quot; internal_ip_port=&amp;quot;$port&amp;quot; allow_alternate_ports=&amp;quot;false&amp;quot; external_host_name=&amp;quot;$s.externalhost&amp;quot; master_avatar_uuid=&amp;quot;$s.useruuid&amp;quot; estate_covenant_uuid=&amp;quot;00000000-0000-0000-0000-000000000000&amp;quot; master_avatar_first=&amp;quot;$s.firstname&amp;quot; master_avatar_last=&amp;quot;$s.lastname&amp;quot; master_avatar_pass=&amp;quot;$s.password&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/Root&amp;gt;&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
savefile = &amp;quot;regiongen_save.pkl&amp;quot;&lt;br /&gt;
# END OF CONFIGURATION&lt;br /&gt;
# --------------------&lt;br /&gt;
&lt;br /&gt;
def maketemplate(regionname, x, y, port, uid):&lt;br /&gt;
    t = Template(template)&lt;br /&gt;
    t.s = s&lt;br /&gt;
    t.uuid = uid&lt;br /&gt;
    t.regionname = regionname&lt;br /&gt;
    t.x = x&lt;br /&gt;
    t.y = y&lt;br /&gt;
    t.port = port&lt;br /&gt;
    return str(t)&lt;br /&gt;
&lt;br /&gt;
# Make directory to put regions in if not there&lt;br /&gt;
try:&lt;br /&gt;
    os.mkdir(regionsdir)&lt;br /&gt;
except OSError:&lt;br /&gt;
    pass&lt;br /&gt;
&lt;br /&gt;
settings = {}&lt;br /&gt;
&lt;br /&gt;
# Load settings file&lt;br /&gt;
try:&lt;br /&gt;
    settingsfile = open(savefile)&lt;br /&gt;
    settings = pickle.load(settingsfile)&lt;br /&gt;
    settingsfile.close()&lt;br /&gt;
except IOError:&lt;br /&gt;
    pass&lt;br /&gt;
&lt;br /&gt;
counter = 0&lt;br /&gt;
for xnum in range(s['x'][0], s['x'][1]):&lt;br /&gt;
    for ynum in range(s['y'][0], s['y'][1]):&lt;br /&gt;
        counter += 1&lt;br /&gt;
        default = False&lt;br /&gt;
        &lt;br /&gt;
        # Figure out region name&lt;br /&gt;
        if counter == 1:&lt;br /&gt;
            default = True&lt;br /&gt;
            regionname = s['regionname']&lt;br /&gt;
        else:&lt;br /&gt;
            regionname = s['regionname'] + str(counter)&lt;br /&gt;
        &lt;br /&gt;
        # Figure out paths&lt;br /&gt;
        if default:&lt;br /&gt;
            path = os.path.join(regionsdir,&amp;quot;default.xml&amp;quot;)&lt;br /&gt;
        else:&lt;br /&gt;
            path = os.path.join(regionsdir,&amp;quot;%s.%s.%s.xml&amp;quot; % \&lt;br /&gt;
                    (regionname, xnum, ynum))&lt;br /&gt;
        &lt;br /&gt;
        # Calculate port&lt;br /&gt;
        port = s['startport'] + (counter - 1)&lt;br /&gt;
        # Try to get UUID from settings&lt;br /&gt;
        # Generate + Save if not found&lt;br /&gt;
        if settings.has_key(regionname):&lt;br /&gt;
            uid = settings[regionname]&lt;br /&gt;
        else:&lt;br /&gt;
            uid = str(uuid.uuid1())&lt;br /&gt;
            settings[regionname] = uid&lt;br /&gt;
        # Make template&lt;br /&gt;
        tmpldata = maketemplate(regionname, xnum, ynum, port, uid)&lt;br /&gt;
        &lt;br /&gt;
        # Save file&lt;br /&gt;
        tmplfile = open(path, 'w')&lt;br /&gt;
        tmplfile.write(tmpldata)&lt;br /&gt;
        tmplfile.close()&lt;br /&gt;
        &lt;br /&gt;
        # Print progress&lt;br /&gt;
        print regionname&lt;br /&gt;
&lt;br /&gt;
# Save settings file&lt;br /&gt;
try:&lt;br /&gt;
    settingsfile = open(savefile, 'w')&lt;br /&gt;
    pickle.dump(settings, settingsfile)&lt;br /&gt;
    settingsfile.close()&lt;br /&gt;
except IOError:&lt;br /&gt;
    pass&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Rich43</name></author>	</entry>

	<entry>
		<id>http://opensimulator.org/wiki/Related_Software</id>
		<title>Related Software</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/Related_Software"/>
				<updated>2008-07-14T16:13:09Z</updated>
		
		<summary type="html">&lt;p&gt;Rich43: /* Tools */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
==About==&lt;br /&gt;
This is a page which lists software packages that are related to OpenSimulator but are not part of the core project.  Opensimulator is not responsible for the content referenced by these links.&lt;br /&gt;
&lt;br /&gt;
==Services==&lt;br /&gt;
These are independent implementations of OpenSimulator services, such as the user server or the inventory server (also known as UGAI).&lt;br /&gt;
&lt;br /&gt;
* [http://openugai.sourceforge.net/ OpenUGAI] - A Perl implementation of the UGAI services which runs within Apache.&lt;br /&gt;
&lt;br /&gt;
==Modules==&lt;br /&gt;
These are either application or region modules which can be added to the OpenSim core distribution to provide extra functionality.&lt;br /&gt;
&lt;br /&gt;
None are listed yet!&lt;br /&gt;
&lt;br /&gt;
==Tools==&lt;br /&gt;
* [http://www.ics.uci.edu/~lopes/terraingen/ Terraingen] - Tool for producing OpenSim terrains from USGS DEM files.&lt;br /&gt;
* [[RegionGenerator]] - Generates Region XML Files&lt;br /&gt;
&lt;br /&gt;
==Other Software==&lt;br /&gt;
* [http://sourceforge.net/projects/opensimwiredux OpenSimWI-Redux] - OpenSimWI-Redux is a PHP Web Interface for OpenSim. It allows grid citizens to create User Accounts to access the grid. Grid Owners can also manage all users for the grid. very light CMS system included.&lt;br /&gt;
&lt;br /&gt;
* [http://www.secondinventory.com/ Second Inventory] - A Windows based client that can be used to back up and restore objects from Second Life as well as from various OpenSimulator based grids.  It allows you to back up objects from the Second Life main grid, and restore them into OpenSimulator grids.  It is still a bit primitive and sometimes can be flaky.  This software is in no way supported by the OpenSIM team, please contact its creator for support.&lt;br /&gt;
&lt;br /&gt;
* [http://sourceforge.net/projects/osgc/ OpenSim - Grid Control] - OpenSim - Grid Control is a very simple Web interface written in PHP5 to Administrate your OpenSim Grid and Users. It can also used as a very light CMS. First screenshots [http://eu-grid.eu/wiki/ here]. First running BETA version planed end of this week (2008-05-31).&lt;br /&gt;
&lt;br /&gt;
* [http://www.metabolt.net/ METAbolt] - METAbolt is a non-graphical (text based) viewer. It's light weight and cross grid, which means it will work in Second Life as well as other grids that are based on OpenSIM. The viewer is Open Source so it's free. Currently METAbolt is only available for Windows platforms.&lt;br /&gt;
&lt;br /&gt;
==Forward Looking==&lt;br /&gt;
* [http://www.cs.cmu.edu/~johnny/projects/wii/ 3D Head Tracking Software] - The idea here is that Johnny has written an application that will allow real3d perspective using a WiiMote &amp;amp; a modified set of safety glasses. Johnny includes all of the source and several sample applications to get this moving forward. Would someone like to pick this up and build us a real3D interface for the SL browser? It's not as hard as you think.&lt;/div&gt;</summary>
		<author><name>Rich43</name></author>	</entry>

	<entry>
		<id>http://opensimulator.org/wiki/Related_Software</id>
		<title>Related Software</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/Related_Software"/>
				<updated>2008-07-14T16:12:42Z</updated>
		
		<summary type="html">&lt;p&gt;Rich43: /* Tools */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
==About==&lt;br /&gt;
This is a page which lists software packages that are related to OpenSimulator but are not part of the core project.  Opensimulator is not responsible for the content referenced by these links.&lt;br /&gt;
&lt;br /&gt;
==Services==&lt;br /&gt;
These are independent implementations of OpenSimulator services, such as the user server or the inventory server (also known as UGAI).&lt;br /&gt;
&lt;br /&gt;
* [http://openugai.sourceforge.net/ OpenUGAI] - A Perl implementation of the UGAI services which runs within Apache.&lt;br /&gt;
&lt;br /&gt;
==Modules==&lt;br /&gt;
These are either application or region modules which can be added to the OpenSim core distribution to provide extra functionality.&lt;br /&gt;
&lt;br /&gt;
None are listed yet!&lt;br /&gt;
&lt;br /&gt;
==Tools==&lt;br /&gt;
* [http://www.ics.uci.edu/~lopes/terraingen/ Terraingen] - Tool for producing OpenSim terrains from USGS DEM files.&lt;br /&gt;
* [RegionGenerator] - Generates Region XML Files&lt;br /&gt;
&lt;br /&gt;
==Other Software==&lt;br /&gt;
* [http://sourceforge.net/projects/opensimwiredux OpenSimWI-Redux] - OpenSimWI-Redux is a PHP Web Interface for OpenSim. It allows grid citizens to create User Accounts to access the grid. Grid Owners can also manage all users for the grid. very light CMS system included.&lt;br /&gt;
&lt;br /&gt;
* [http://www.secondinventory.com/ Second Inventory] - A Windows based client that can be used to back up and restore objects from Second Life as well as from various OpenSimulator based grids.  It allows you to back up objects from the Second Life main grid, and restore them into OpenSimulator grids.  It is still a bit primitive and sometimes can be flaky.  This software is in no way supported by the OpenSIM team, please contact its creator for support.&lt;br /&gt;
&lt;br /&gt;
* [http://sourceforge.net/projects/osgc/ OpenSim - Grid Control] - OpenSim - Grid Control is a very simple Web interface written in PHP5 to Administrate your OpenSim Grid and Users. It can also used as a very light CMS. First screenshots [http://eu-grid.eu/wiki/ here]. First running BETA version planed end of this week (2008-05-31).&lt;br /&gt;
&lt;br /&gt;
* [http://www.metabolt.net/ METAbolt] - METAbolt is a non-graphical (text based) viewer. It's light weight and cross grid, which means it will work in Second Life as well as other grids that are based on OpenSIM. The viewer is Open Source so it's free. Currently METAbolt is only available for Windows platforms.&lt;br /&gt;
&lt;br /&gt;
==Forward Looking==&lt;br /&gt;
* [http://www.cs.cmu.edu/~johnny/projects/wii/ 3D Head Tracking Software] - The idea here is that Johnny has written an application that will allow real3d perspective using a WiiMote &amp;amp; a modified set of safety glasses. Johnny includes all of the source and several sample applications to get this moving forward. Would someone like to pick this up and build us a real3D interface for the SL browser? It's not as hard as you think.&lt;/div&gt;</summary>
		<author><name>Rich43</name></author>	</entry>

	<entry>
		<id>http://opensimulator.org/wiki/RegionGenerator</id>
		<title>RegionGenerator</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/RegionGenerator"/>
				<updated>2008-07-13T15:58:43Z</updated>
		
		<summary type="html">&lt;p&gt;Rich43: /* Region Generator */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Region Generator ==&lt;br /&gt;
&lt;br /&gt;
=== About ===&lt;br /&gt;
It generates a square piece of land.&lt;br /&gt;
&lt;br /&gt;
You can feed it the from-to X Postion and from-to Y position then it makes the xml files for you.&lt;br /&gt;
&lt;br /&gt;
=== Download ===&lt;br /&gt;
I have made a .exe version of this program, you can get it from these locations:&lt;br /&gt;
&lt;br /&gt;
http://www.mediafire.com/?xred9vm0ent&lt;br /&gt;
&lt;br /&gt;
http://4rensics.com/regiongen.zip&lt;br /&gt;
&lt;br /&gt;
=== Source Code ===&lt;br /&gt;
It requires the Cheetah Templating module and python 2.5.&lt;br /&gt;
&lt;br /&gt;
You can get cheetah from http://www.cheetahtemplate.org/&lt;br /&gt;
&lt;br /&gt;
You can get python from http://www.python.org/download/&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;#!/usr/bin/python&lt;br /&gt;
from Cheetah.Template import Template&lt;br /&gt;
import uuid&lt;br /&gt;
import os&lt;br /&gt;
import pickle&lt;br /&gt;
&lt;br /&gt;
# ----------------------&lt;br /&gt;
# START OF CONFIGURATION&lt;br /&gt;
s = {}&lt;br /&gt;
&lt;br /&gt;
# Region Configuration&lt;br /&gt;
s['regionname'] = &amp;quot;LandsNameHere&amp;quot;     # Type the name of your land&lt;br /&gt;
s['x'] = [2900,3000]                # From - To x position&lt;br /&gt;
s['y'] = [2900,3000]                # From - To y position&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# User Configuration&lt;br /&gt;
s['firstname'] = &amp;quot;John&amp;quot;           # Account firstname&lt;br /&gt;
s['lastname'] = &amp;quot;Doe&amp;quot;              # Account lastname&lt;br /&gt;
s['useruuid'] = 'your clients uuid goes here'&lt;br /&gt;
s['password'] = 'mypass'           # Account password&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Network Configuration&lt;br /&gt;
s['startport'] = 9000               # Port the regions start on&lt;br /&gt;
                                    # incrimented by 1 each time&lt;br /&gt;
s['internalip'] = &amp;quot;123.456.789.123&amp;quot;   # Server ip&lt;br /&gt;
s['externalhost'] = &amp;quot;mydomain.org&amp;quot;  # Domain name or ip of server&lt;br /&gt;
                                    # (accessed externally)&lt;br /&gt;
&lt;br /&gt;
# Files are put in here.&lt;br /&gt;
regionsdir = 'Regions'&lt;br /&gt;
&lt;br /&gt;
template = &amp;quot;&amp;quot;&amp;quot;&amp;lt;Root&amp;gt;&lt;br /&gt;
&amp;lt;Config sim_UUID=&amp;quot;$uuid&amp;quot; sim_name=&amp;quot;$regionname&amp;quot; sim_location_x=&amp;quot;$x&amp;quot; sim_location_y=&amp;quot;$y&amp;quot; internal_ip_address=&amp;quot;$s.internalip&amp;quot; internal_ip_port=&amp;quot;$port&amp;quot; allow_alternate_ports=&amp;quot;false&amp;quot; external_host_name=&amp;quot;$s.externalhost&amp;quot; master_avatar_uuid=&amp;quot;$s.useruuid&amp;quot; estate_covenant_uuid=&amp;quot;00000000-0000-0000-0000-000000000000&amp;quot; master_avatar_first=&amp;quot;$s.firstname&amp;quot; master_avatar_last=&amp;quot;$s.lastname&amp;quot; master_avatar_pass=&amp;quot;$s.password&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/Root&amp;gt;&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
savefile = &amp;quot;regiongen_save.pkl&amp;quot;&lt;br /&gt;
# END OF CONFIGURATION&lt;br /&gt;
# --------------------&lt;br /&gt;
&lt;br /&gt;
def maketemplate(regionname, x, y, port, uid):&lt;br /&gt;
    t = Template(template)&lt;br /&gt;
    t.s = s&lt;br /&gt;
    t.uuid = uid&lt;br /&gt;
    t.regionname = regionname&lt;br /&gt;
    t.x = x&lt;br /&gt;
    t.y = y&lt;br /&gt;
    t.port = port&lt;br /&gt;
    return str(t)&lt;br /&gt;
&lt;br /&gt;
# Make directory to put regions in if not there&lt;br /&gt;
try:&lt;br /&gt;
    os.mkdir(regionsdir)&lt;br /&gt;
except OSError:&lt;br /&gt;
    pass&lt;br /&gt;
&lt;br /&gt;
settings = {}&lt;br /&gt;
&lt;br /&gt;
# Load settings file&lt;br /&gt;
try:&lt;br /&gt;
    settingsfile = open(savefile)&lt;br /&gt;
    settings = pickle.load(settingsfile)&lt;br /&gt;
    settingsfile.close()&lt;br /&gt;
except IOError:&lt;br /&gt;
    pass&lt;br /&gt;
&lt;br /&gt;
counter = 0&lt;br /&gt;
for xnum in range(s['x'][0], s['x'][1]):&lt;br /&gt;
    for ynum in range(s['y'][0], s['y'][1]):&lt;br /&gt;
        counter += 1&lt;br /&gt;
        default = False&lt;br /&gt;
        &lt;br /&gt;
        # Figure out region name&lt;br /&gt;
        if counter == 1:&lt;br /&gt;
            default = True&lt;br /&gt;
            regionname = s['regionname']&lt;br /&gt;
        else:&lt;br /&gt;
            regionname = s['regionname'] + str(counter)&lt;br /&gt;
        &lt;br /&gt;
        # Figure out paths&lt;br /&gt;
        if default:&lt;br /&gt;
            path = os.path.join(regionsdir,&amp;quot;default.xml&amp;quot;)&lt;br /&gt;
        else:&lt;br /&gt;
            path = os.path.join(regionsdir,&amp;quot;%s.%s.%s.xml&amp;quot; % \&lt;br /&gt;
                    (regionname, xnum, ynum))&lt;br /&gt;
        &lt;br /&gt;
        # Calculate port&lt;br /&gt;
        port = s['startport'] + (counter - 1)&lt;br /&gt;
        # Try to get UUID from settings&lt;br /&gt;
        # Generate + Save if not found&lt;br /&gt;
        if settings.has_key(regionname):&lt;br /&gt;
            uid = settings[regionname]&lt;br /&gt;
        else:&lt;br /&gt;
            uid = str(uuid.uuid1())&lt;br /&gt;
            settings[regionname] = uid&lt;br /&gt;
        # Make template&lt;br /&gt;
        tmpldata = maketemplate(regionname, xnum, ynum, port, uid)&lt;br /&gt;
        &lt;br /&gt;
        # Save file&lt;br /&gt;
        tmplfile = open(path, 'w')&lt;br /&gt;
        tmplfile.write(tmpldata)&lt;br /&gt;
        tmplfile.close()&lt;br /&gt;
        &lt;br /&gt;
        # Print progress&lt;br /&gt;
        print regionname&lt;br /&gt;
&lt;br /&gt;
# Save settings file&lt;br /&gt;
try:&lt;br /&gt;
    settingsfile = open(savefile, 'w')&lt;br /&gt;
    pickle.dump(settings, settingsfile)&lt;br /&gt;
    settingsfile.close()&lt;br /&gt;
except IOError:&lt;br /&gt;
    pass&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Rich43</name></author>	</entry>

	<entry>
		<id>http://opensimulator.org/wiki/RegionGenerator</id>
		<title>RegionGenerator</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/RegionGenerator"/>
				<updated>2008-07-13T15:50:15Z</updated>
		
		<summary type="html">&lt;p&gt;Rich43: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Region Generator ==&lt;br /&gt;
&lt;br /&gt;
=== About ===&lt;br /&gt;
It generates a square piece of land.&lt;br /&gt;
&lt;br /&gt;
You can feed it the from-to X Postion and from-to Y position then it makes the xml files for you.&lt;br /&gt;
&lt;br /&gt;
=== Download ===&lt;br /&gt;
I have made a .exe version of this program, you can get it from these locations:&lt;br /&gt;
&lt;br /&gt;
http://www.mediafire.com/?xred9vm0ent&lt;br /&gt;
&lt;br /&gt;
http://4rensics.org/download/?filepath=regiongen.zip&lt;br /&gt;
&lt;br /&gt;
=== Source Code ===&lt;br /&gt;
It requires the Cheetah Templating module and python 2.5.&lt;br /&gt;
&lt;br /&gt;
You can get cheetah from http://www.cheetahtemplate.org/&lt;br /&gt;
&lt;br /&gt;
You can get python from http://www.python.org/download/&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;#!/usr/bin/python&lt;br /&gt;
from Cheetah.Template import Template&lt;br /&gt;
import uuid&lt;br /&gt;
import os&lt;br /&gt;
import pickle&lt;br /&gt;
&lt;br /&gt;
# ----------------------&lt;br /&gt;
# START OF CONFIGURATION&lt;br /&gt;
s = {}&lt;br /&gt;
&lt;br /&gt;
# Region Configuration&lt;br /&gt;
s['regionname'] = &amp;quot;LandsNameHere&amp;quot;     # Type the name of your land&lt;br /&gt;
s['x'] = [2900,3000]                # From - To x position&lt;br /&gt;
s['y'] = [2900,3000]                # From - To y position&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# User Configuration&lt;br /&gt;
s['firstname'] = &amp;quot;John&amp;quot;           # Account firstname&lt;br /&gt;
s['lastname'] = &amp;quot;Doe&amp;quot;              # Account lastname&lt;br /&gt;
s['useruuid'] = 'your clients uuid goes here'&lt;br /&gt;
s['password'] = 'mypass'           # Account password&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Network Configuration&lt;br /&gt;
s['startport'] = 9000               # Port the regions start on&lt;br /&gt;
                                    # incrimented by 1 each time&lt;br /&gt;
s['internalip'] = &amp;quot;123.456.789.123&amp;quot;   # Server ip&lt;br /&gt;
s['externalhost'] = &amp;quot;mydomain.org&amp;quot;  # Domain name or ip of server&lt;br /&gt;
                                    # (accessed externally)&lt;br /&gt;
&lt;br /&gt;
# Files are put in here.&lt;br /&gt;
regionsdir = 'Regions'&lt;br /&gt;
&lt;br /&gt;
template = &amp;quot;&amp;quot;&amp;quot;&amp;lt;Root&amp;gt;&lt;br /&gt;
&amp;lt;Config sim_UUID=&amp;quot;$uuid&amp;quot; sim_name=&amp;quot;$regionname&amp;quot; sim_location_x=&amp;quot;$x&amp;quot; sim_location_y=&amp;quot;$y&amp;quot; internal_ip_address=&amp;quot;$s.internalip&amp;quot; internal_ip_port=&amp;quot;$port&amp;quot; allow_alternate_ports=&amp;quot;false&amp;quot; external_host_name=&amp;quot;$s.externalhost&amp;quot; master_avatar_uuid=&amp;quot;$s.useruuid&amp;quot; estate_covenant_uuid=&amp;quot;00000000-0000-0000-0000-000000000000&amp;quot; master_avatar_first=&amp;quot;$s.firstname&amp;quot; master_avatar_last=&amp;quot;$s.lastname&amp;quot; master_avatar_pass=&amp;quot;$s.password&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/Root&amp;gt;&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
savefile = &amp;quot;regiongen_save.pkl&amp;quot;&lt;br /&gt;
# END OF CONFIGURATION&lt;br /&gt;
# --------------------&lt;br /&gt;
&lt;br /&gt;
def maketemplate(regionname, x, y, port, uid):&lt;br /&gt;
    t = Template(template)&lt;br /&gt;
    t.s = s&lt;br /&gt;
    t.uuid = uid&lt;br /&gt;
    t.regionname = regionname&lt;br /&gt;
    t.x = x&lt;br /&gt;
    t.y = y&lt;br /&gt;
    t.port = port&lt;br /&gt;
    return str(t)&lt;br /&gt;
&lt;br /&gt;
# Make directory to put regions in if not there&lt;br /&gt;
try:&lt;br /&gt;
    os.mkdir(regionsdir)&lt;br /&gt;
except OSError:&lt;br /&gt;
    pass&lt;br /&gt;
&lt;br /&gt;
settings = {}&lt;br /&gt;
&lt;br /&gt;
# Load settings file&lt;br /&gt;
try:&lt;br /&gt;
    settingsfile = open(savefile)&lt;br /&gt;
    settings = pickle.load(settingsfile)&lt;br /&gt;
    settingsfile.close()&lt;br /&gt;
except IOError:&lt;br /&gt;
    pass&lt;br /&gt;
&lt;br /&gt;
counter = 0&lt;br /&gt;
for xnum in range(s['x'][0], s['x'][1]):&lt;br /&gt;
    for ynum in range(s['y'][0], s['y'][1]):&lt;br /&gt;
        counter += 1&lt;br /&gt;
        default = False&lt;br /&gt;
        &lt;br /&gt;
        # Figure out region name&lt;br /&gt;
        if counter == 1:&lt;br /&gt;
            default = True&lt;br /&gt;
            regionname = s['regionname']&lt;br /&gt;
        else:&lt;br /&gt;
            regionname = s['regionname'] + str(counter)&lt;br /&gt;
        &lt;br /&gt;
        # Figure out paths&lt;br /&gt;
        if default:&lt;br /&gt;
            path = os.path.join(regionsdir,&amp;quot;default.xml&amp;quot;)&lt;br /&gt;
        else:&lt;br /&gt;
            path = os.path.join(regionsdir,&amp;quot;%s.%s.%s.xml&amp;quot; % \&lt;br /&gt;
                    (regionname, xnum, ynum))&lt;br /&gt;
        &lt;br /&gt;
        # Calculate port&lt;br /&gt;
        port = s['startport'] + (counter - 1)&lt;br /&gt;
        # Try to get UUID from settings&lt;br /&gt;
        # Generate + Save if not found&lt;br /&gt;
        if settings.has_key(regionname):&lt;br /&gt;
            uid = settings[regionname]&lt;br /&gt;
        else:&lt;br /&gt;
            uid = str(uuid.uuid1())&lt;br /&gt;
            settings[regionname] = uid&lt;br /&gt;
        # Make template&lt;br /&gt;
        tmpldata = maketemplate(regionname, xnum, ynum, port, uid)&lt;br /&gt;
        &lt;br /&gt;
        # Save file&lt;br /&gt;
        tmplfile = open(path, 'w')&lt;br /&gt;
        tmplfile.write(tmpldata)&lt;br /&gt;
        tmplfile.close()&lt;br /&gt;
        &lt;br /&gt;
        # Print progress&lt;br /&gt;
        print regionname&lt;br /&gt;
&lt;br /&gt;
# Save settings file&lt;br /&gt;
try:&lt;br /&gt;
    settingsfile = open(savefile, 'w')&lt;br /&gt;
    pickle.dump(settings, settingsfile)&lt;br /&gt;
    settingsfile.close()&lt;br /&gt;
except IOError:&lt;br /&gt;
    pass&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Rich43</name></author>	</entry>

	<entry>
		<id>http://opensimulator.org/wiki/RegionGenerator</id>
		<title>RegionGenerator</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/RegionGenerator"/>
				<updated>2008-07-13T15:46:06Z</updated>
		
		<summary type="html">&lt;p&gt;Rich43: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Heres a Region Generator in Python&lt;br /&gt;
&lt;br /&gt;
It generates a square piece of land.&lt;br /&gt;
&lt;br /&gt;
You can feed it the from-to X Postion and from-to Y position then it makes the xml files for you.&lt;br /&gt;
&lt;br /&gt;
I have made a .exe version of this program, you can get it from these locations:&lt;br /&gt;
&lt;br /&gt;
http://www.mediafire.com/?xred9vm0ent&lt;br /&gt;
&lt;br /&gt;
http://4rensics.org/download/?filepath=regiongen.zip&lt;br /&gt;
&lt;br /&gt;
It requires the Cheetah Templating module and python 2.5.&lt;br /&gt;
&lt;br /&gt;
You can get cheetah from http://www.cheetahtemplate.org/&lt;br /&gt;
&lt;br /&gt;
You can get python from http://www.python.org/download/&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;#!/usr/bin/python&lt;br /&gt;
from Cheetah.Template import Template&lt;br /&gt;
import uuid&lt;br /&gt;
import os&lt;br /&gt;
import pickle&lt;br /&gt;
&lt;br /&gt;
# ----------------------&lt;br /&gt;
# START OF CONFIGURATION&lt;br /&gt;
s = {}&lt;br /&gt;
&lt;br /&gt;
# Region Configuration&lt;br /&gt;
s['regionname'] = &amp;quot;LandsNameHere&amp;quot;     # Type the name of your land&lt;br /&gt;
s['x'] = [2900,3000]                # From - To x position&lt;br /&gt;
s['y'] = [2900,3000]                # From - To y position&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# User Configuration&lt;br /&gt;
s['firstname'] = &amp;quot;John&amp;quot;           # Account firstname&lt;br /&gt;
s['lastname'] = &amp;quot;Doe&amp;quot;              # Account lastname&lt;br /&gt;
s['useruuid'] = 'your clients uuid goes here'&lt;br /&gt;
s['password'] = 'mypass'           # Account password&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Network Configuration&lt;br /&gt;
s['startport'] = 9000               # Port the regions start on&lt;br /&gt;
                                    # incrimented by 1 each time&lt;br /&gt;
s['internalip'] = &amp;quot;123.456.789.123&amp;quot;   # Server ip&lt;br /&gt;
s['externalhost'] = &amp;quot;mydomain.org&amp;quot;  # Domain name or ip of server&lt;br /&gt;
                                    # (accessed externally)&lt;br /&gt;
&lt;br /&gt;
# Files are put in here.&lt;br /&gt;
regionsdir = 'Regions'&lt;br /&gt;
&lt;br /&gt;
template = &amp;quot;&amp;quot;&amp;quot;&amp;lt;Root&amp;gt;&lt;br /&gt;
&amp;lt;Config sim_UUID=&amp;quot;$uuid&amp;quot; sim_name=&amp;quot;$regionname&amp;quot; sim_location_x=&amp;quot;$x&amp;quot; sim_location_y=&amp;quot;$y&amp;quot; internal_ip_address=&amp;quot;$s.internalip&amp;quot; internal_ip_port=&amp;quot;$port&amp;quot; allow_alternate_ports=&amp;quot;false&amp;quot; external_host_name=&amp;quot;$s.externalhost&amp;quot; master_avatar_uuid=&amp;quot;$s.useruuid&amp;quot; estate_covenant_uuid=&amp;quot;00000000-0000-0000-0000-000000000000&amp;quot; master_avatar_first=&amp;quot;$s.firstname&amp;quot; master_avatar_last=&amp;quot;$s.lastname&amp;quot; master_avatar_pass=&amp;quot;$s.password&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/Root&amp;gt;&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
savefile = &amp;quot;regiongen_save.pkl&amp;quot;&lt;br /&gt;
# END OF CONFIGURATION&lt;br /&gt;
# --------------------&lt;br /&gt;
&lt;br /&gt;
def maketemplate(regionname, x, y, port, uid):&lt;br /&gt;
    t = Template(template)&lt;br /&gt;
    t.s = s&lt;br /&gt;
    t.uuid = uid&lt;br /&gt;
    t.regionname = regionname&lt;br /&gt;
    t.x = x&lt;br /&gt;
    t.y = y&lt;br /&gt;
    t.port = port&lt;br /&gt;
    return str(t)&lt;br /&gt;
&lt;br /&gt;
# Make directory to put regions in if not there&lt;br /&gt;
try:&lt;br /&gt;
    os.mkdir(regionsdir)&lt;br /&gt;
except OSError:&lt;br /&gt;
    pass&lt;br /&gt;
&lt;br /&gt;
settings = {}&lt;br /&gt;
&lt;br /&gt;
# Load settings file&lt;br /&gt;
try:&lt;br /&gt;
    settingsfile = open(savefile)&lt;br /&gt;
    settings = pickle.load(settingsfile)&lt;br /&gt;
    settingsfile.close()&lt;br /&gt;
except IOError:&lt;br /&gt;
    pass&lt;br /&gt;
&lt;br /&gt;
counter = 0&lt;br /&gt;
for xnum in range(s['x'][0], s['x'][1]):&lt;br /&gt;
    for ynum in range(s['y'][0], s['y'][1]):&lt;br /&gt;
        counter += 1&lt;br /&gt;
        default = False&lt;br /&gt;
        &lt;br /&gt;
        # Figure out region name&lt;br /&gt;
        if counter == 1:&lt;br /&gt;
            default = True&lt;br /&gt;
            regionname = s['regionname']&lt;br /&gt;
        else:&lt;br /&gt;
            regionname = s['regionname'] + str(counter)&lt;br /&gt;
        &lt;br /&gt;
        # Figure out paths&lt;br /&gt;
        if default:&lt;br /&gt;
            path = os.path.join(regionsdir,&amp;quot;default.xml&amp;quot;)&lt;br /&gt;
        else:&lt;br /&gt;
            path = os.path.join(regionsdir,&amp;quot;%s.%s.%s.xml&amp;quot; % \&lt;br /&gt;
                    (regionname, xnum, ynum))&lt;br /&gt;
        &lt;br /&gt;
        # Calculate port&lt;br /&gt;
        port = s['startport'] + (counter - 1)&lt;br /&gt;
        # Try to get UUID from settings&lt;br /&gt;
        # Generate + Save if not found&lt;br /&gt;
        if settings.has_key(regionname):&lt;br /&gt;
            uid = settings[regionname]&lt;br /&gt;
        else:&lt;br /&gt;
            uid = str(uuid.uuid1())&lt;br /&gt;
            settings[regionname] = uid&lt;br /&gt;
        # Make template&lt;br /&gt;
        tmpldata = maketemplate(regionname, xnum, ynum, port, uid)&lt;br /&gt;
        &lt;br /&gt;
        # Save file&lt;br /&gt;
        tmplfile = open(path, 'w')&lt;br /&gt;
        tmplfile.write(tmpldata)&lt;br /&gt;
        tmplfile.close()&lt;br /&gt;
        &lt;br /&gt;
        # Print progress&lt;br /&gt;
        print regionname&lt;br /&gt;
&lt;br /&gt;
# Save settings file&lt;br /&gt;
try:&lt;br /&gt;
    settingsfile = open(savefile, 'w')&lt;br /&gt;
    pickle.dump(settings, settingsfile)&lt;br /&gt;
    settingsfile.close()&lt;br /&gt;
except IOError:&lt;br /&gt;
    pass&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Rich43</name></author>	</entry>

	<entry>
		<id>http://opensimulator.org/wiki/RegionGenerator</id>
		<title>RegionGenerator</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/RegionGenerator"/>
				<updated>2008-07-13T15:45:25Z</updated>
		
		<summary type="html">&lt;p&gt;Rich43: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Heres a Region Generator in Python&lt;br /&gt;
&lt;br /&gt;
It generates a square piece of land.&lt;br /&gt;
You can feed it the from-to X Postion and from - to Y position then it makes the xml files for you.&lt;br /&gt;
&lt;br /&gt;
I have made a .exe version of this program, you can get it from these locations:&lt;br /&gt;
http://www.mediafire.com/?xred9vm0ent&lt;br /&gt;
http://4rensics.org/download/?filepath=regiongen.zip&lt;br /&gt;
&lt;br /&gt;
It requires the Cheetah Templating module and python 2.5.&lt;br /&gt;
&lt;br /&gt;
You can get cheetah from http://www.cheetahtemplate.org/&lt;br /&gt;
&lt;br /&gt;
You can get python from http://www.python.org/download/&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;#!/usr/bin/python&lt;br /&gt;
from Cheetah.Template import Template&lt;br /&gt;
import uuid&lt;br /&gt;
import os&lt;br /&gt;
import pickle&lt;br /&gt;
&lt;br /&gt;
# ----------------------&lt;br /&gt;
# START OF CONFIGURATION&lt;br /&gt;
s = {}&lt;br /&gt;
&lt;br /&gt;
# Region Configuration&lt;br /&gt;
s['regionname'] = &amp;quot;LandsNameHere&amp;quot;     # Type the name of your land&lt;br /&gt;
s['x'] = [2900,3000]                # From - To x position&lt;br /&gt;
s['y'] = [2900,3000]                # From - To y position&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# User Configuration&lt;br /&gt;
s['firstname'] = &amp;quot;John&amp;quot;           # Account firstname&lt;br /&gt;
s['lastname'] = &amp;quot;Doe&amp;quot;              # Account lastname&lt;br /&gt;
s['useruuid'] = 'your clients uuid goes here'&lt;br /&gt;
s['password'] = 'mypass'           # Account password&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Network Configuration&lt;br /&gt;
s['startport'] = 9000               # Port the regions start on&lt;br /&gt;
                                    # incrimented by 1 each time&lt;br /&gt;
s['internalip'] = &amp;quot;123.456.789.123&amp;quot;   # Server ip&lt;br /&gt;
s['externalhost'] = &amp;quot;mydomain.org&amp;quot;  # Domain name or ip of server&lt;br /&gt;
                                    # (accessed externally)&lt;br /&gt;
&lt;br /&gt;
# Files are put in here.&lt;br /&gt;
regionsdir = 'Regions'&lt;br /&gt;
&lt;br /&gt;
template = &amp;quot;&amp;quot;&amp;quot;&amp;lt;Root&amp;gt;&lt;br /&gt;
&amp;lt;Config sim_UUID=&amp;quot;$uuid&amp;quot; sim_name=&amp;quot;$regionname&amp;quot; sim_location_x=&amp;quot;$x&amp;quot; sim_location_y=&amp;quot;$y&amp;quot; internal_ip_address=&amp;quot;$s.internalip&amp;quot; internal_ip_port=&amp;quot;$port&amp;quot; allow_alternate_ports=&amp;quot;false&amp;quot; external_host_name=&amp;quot;$s.externalhost&amp;quot; master_avatar_uuid=&amp;quot;$s.useruuid&amp;quot; estate_covenant_uuid=&amp;quot;00000000-0000-0000-0000-000000000000&amp;quot; master_avatar_first=&amp;quot;$s.firstname&amp;quot; master_avatar_last=&amp;quot;$s.lastname&amp;quot; master_avatar_pass=&amp;quot;$s.password&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/Root&amp;gt;&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
savefile = &amp;quot;regiongen_save.pkl&amp;quot;&lt;br /&gt;
# END OF CONFIGURATION&lt;br /&gt;
# --------------------&lt;br /&gt;
&lt;br /&gt;
def maketemplate(regionname, x, y, port, uid):&lt;br /&gt;
    t = Template(template)&lt;br /&gt;
    t.s = s&lt;br /&gt;
    t.uuid = uid&lt;br /&gt;
    t.regionname = regionname&lt;br /&gt;
    t.x = x&lt;br /&gt;
    t.y = y&lt;br /&gt;
    t.port = port&lt;br /&gt;
    return str(t)&lt;br /&gt;
&lt;br /&gt;
# Make directory to put regions in if not there&lt;br /&gt;
try:&lt;br /&gt;
    os.mkdir(regionsdir)&lt;br /&gt;
except OSError:&lt;br /&gt;
    pass&lt;br /&gt;
&lt;br /&gt;
settings = {}&lt;br /&gt;
&lt;br /&gt;
# Load settings file&lt;br /&gt;
try:&lt;br /&gt;
    settingsfile = open(savefile)&lt;br /&gt;
    settings = pickle.load(settingsfile)&lt;br /&gt;
    settingsfile.close()&lt;br /&gt;
except IOError:&lt;br /&gt;
    pass&lt;br /&gt;
&lt;br /&gt;
counter = 0&lt;br /&gt;
for xnum in range(s['x'][0], s['x'][1]):&lt;br /&gt;
    for ynum in range(s['y'][0], s['y'][1]):&lt;br /&gt;
        counter += 1&lt;br /&gt;
        default = False&lt;br /&gt;
        &lt;br /&gt;
        # Figure out region name&lt;br /&gt;
        if counter == 1:&lt;br /&gt;
            default = True&lt;br /&gt;
            regionname = s['regionname']&lt;br /&gt;
        else:&lt;br /&gt;
            regionname = s['regionname'] + str(counter)&lt;br /&gt;
        &lt;br /&gt;
        # Figure out paths&lt;br /&gt;
        if default:&lt;br /&gt;
            path = os.path.join(regionsdir,&amp;quot;default.xml&amp;quot;)&lt;br /&gt;
        else:&lt;br /&gt;
            path = os.path.join(regionsdir,&amp;quot;%s.%s.%s.xml&amp;quot; % \&lt;br /&gt;
                    (regionname, xnum, ynum))&lt;br /&gt;
        &lt;br /&gt;
        # Calculate port&lt;br /&gt;
        port = s['startport'] + (counter - 1)&lt;br /&gt;
        # Try to get UUID from settings&lt;br /&gt;
        # Generate + Save if not found&lt;br /&gt;
        if settings.has_key(regionname):&lt;br /&gt;
            uid = settings[regionname]&lt;br /&gt;
        else:&lt;br /&gt;
            uid = str(uuid.uuid1())&lt;br /&gt;
            settings[regionname] = uid&lt;br /&gt;
        # Make template&lt;br /&gt;
        tmpldata = maketemplate(regionname, xnum, ynum, port, uid)&lt;br /&gt;
        &lt;br /&gt;
        # Save file&lt;br /&gt;
        tmplfile = open(path, 'w')&lt;br /&gt;
        tmplfile.write(tmpldata)&lt;br /&gt;
        tmplfile.close()&lt;br /&gt;
        &lt;br /&gt;
        # Print progress&lt;br /&gt;
        print regionname&lt;br /&gt;
&lt;br /&gt;
# Save settings file&lt;br /&gt;
try:&lt;br /&gt;
    settingsfile = open(savefile, 'w')&lt;br /&gt;
    pickle.dump(settings, settingsfile)&lt;br /&gt;
    settingsfile.close()&lt;br /&gt;
except IOError:&lt;br /&gt;
    pass&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Rich43</name></author>	</entry>

	<entry>
		<id>http://opensimulator.org/wiki/RegionGenerator</id>
		<title>RegionGenerator</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/RegionGenerator"/>
				<updated>2008-07-13T13:15:43Z</updated>
		
		<summary type="html">&lt;p&gt;Rich43: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Heres a Region Generator in Python&lt;br /&gt;
&lt;br /&gt;
It generates a square piece of land.&lt;br /&gt;
&lt;br /&gt;
It requires the cheetah templating module and python 2.5.&lt;br /&gt;
&lt;br /&gt;
You can get cheetah from http://www.cheetahtemplate.org/&lt;br /&gt;
&lt;br /&gt;
You can get python from http://www.python.org/download/&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;#!/usr/bin/python&lt;br /&gt;
from Cheetah.Template import Template&lt;br /&gt;
import uuid&lt;br /&gt;
import os&lt;br /&gt;
import pickle&lt;br /&gt;
&lt;br /&gt;
# ----------------------&lt;br /&gt;
# START OF CONFIGURATION&lt;br /&gt;
s = {}&lt;br /&gt;
&lt;br /&gt;
# Region Configuration&lt;br /&gt;
s['regionname'] = &amp;quot;LandsNameHere&amp;quot;     # Type the name of your land&lt;br /&gt;
s['x'] = [2900,3000]                # From - To x position&lt;br /&gt;
s['y'] = [2900,3000]                # From - To y position&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# User Configuration&lt;br /&gt;
s['firstname'] = &amp;quot;John&amp;quot;           # Account firstname&lt;br /&gt;
s['lastname'] = &amp;quot;Doe&amp;quot;              # Account lastname&lt;br /&gt;
s['useruuid'] = 'your clients uuid goes here'&lt;br /&gt;
s['password'] = 'mypass'           # Account password&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Network Configuration&lt;br /&gt;
s['startport'] = 9000               # Port the regions start on&lt;br /&gt;
                                    # incrimented by 1 each time&lt;br /&gt;
s['internalip'] = &amp;quot;123.456.789.123&amp;quot;   # Server ip&lt;br /&gt;
s['externalhost'] = &amp;quot;mydomain.org&amp;quot;  # Domain name or ip of server&lt;br /&gt;
                                    # (accessed externally)&lt;br /&gt;
&lt;br /&gt;
# Files are put in here.&lt;br /&gt;
regionsdir = 'Regions'&lt;br /&gt;
&lt;br /&gt;
template = &amp;quot;&amp;quot;&amp;quot;&amp;lt;Root&amp;gt;&lt;br /&gt;
&amp;lt;Config sim_UUID=&amp;quot;$uuid&amp;quot; sim_name=&amp;quot;$regionname&amp;quot; sim_location_x=&amp;quot;$x&amp;quot; sim_location_y=&amp;quot;$y&amp;quot; internal_ip_address=&amp;quot;$s.internalip&amp;quot; internal_ip_port=&amp;quot;$port&amp;quot; allow_alternate_ports=&amp;quot;false&amp;quot; external_host_name=&amp;quot;$s.externalhost&amp;quot; master_avatar_uuid=&amp;quot;$s.useruuid&amp;quot; estate_covenant_uuid=&amp;quot;00000000-0000-0000-0000-000000000000&amp;quot; master_avatar_first=&amp;quot;$s.firstname&amp;quot; master_avatar_last=&amp;quot;$s.lastname&amp;quot; master_avatar_pass=&amp;quot;$s.password&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/Root&amp;gt;&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
savefile = &amp;quot;regiongen_save.pkl&amp;quot;&lt;br /&gt;
# END OF CONFIGURATION&lt;br /&gt;
# --------------------&lt;br /&gt;
&lt;br /&gt;
def maketemplate(regionname, x, y, port, uid):&lt;br /&gt;
    t = Template(template)&lt;br /&gt;
    t.s = s&lt;br /&gt;
    t.uuid = uid&lt;br /&gt;
    t.regionname = regionname&lt;br /&gt;
    t.x = x&lt;br /&gt;
    t.y = y&lt;br /&gt;
    t.port = port&lt;br /&gt;
    return str(t)&lt;br /&gt;
&lt;br /&gt;
# Make directory to put regions in if not there&lt;br /&gt;
try:&lt;br /&gt;
    os.mkdir(regionsdir)&lt;br /&gt;
except OSError:&lt;br /&gt;
    pass&lt;br /&gt;
&lt;br /&gt;
settings = {}&lt;br /&gt;
&lt;br /&gt;
# Load settings file&lt;br /&gt;
try:&lt;br /&gt;
    settingsfile = open(savefile)&lt;br /&gt;
    settings = pickle.load(settingsfile)&lt;br /&gt;
    settingsfile.close()&lt;br /&gt;
except IOError:&lt;br /&gt;
    pass&lt;br /&gt;
&lt;br /&gt;
counter = 0&lt;br /&gt;
for xnum in range(s['x'][0], s['x'][1]):&lt;br /&gt;
    for ynum in range(s['y'][0], s['y'][1]):&lt;br /&gt;
        counter += 1&lt;br /&gt;
        default = False&lt;br /&gt;
        &lt;br /&gt;
        # Figure out region name&lt;br /&gt;
        if counter == 1:&lt;br /&gt;
            default = True&lt;br /&gt;
            regionname = s['regionname']&lt;br /&gt;
        else:&lt;br /&gt;
            regionname = s['regionname'] + str(counter)&lt;br /&gt;
        &lt;br /&gt;
        # Figure out paths&lt;br /&gt;
        if default:&lt;br /&gt;
            path = os.path.join(regionsdir,&amp;quot;default.xml&amp;quot;)&lt;br /&gt;
        else:&lt;br /&gt;
            path = os.path.join(regionsdir,&amp;quot;%s.%s.%s.xml&amp;quot; % \&lt;br /&gt;
                    (regionname, xnum, ynum))&lt;br /&gt;
        &lt;br /&gt;
        # Calculate port&lt;br /&gt;
        port = s['startport'] + (counter - 1)&lt;br /&gt;
        # Try to get UUID from settings&lt;br /&gt;
        # Generate + Save if not found&lt;br /&gt;
        if settings.has_key(regionname):&lt;br /&gt;
            uid = settings[regionname]&lt;br /&gt;
        else:&lt;br /&gt;
            uid = str(uuid.uuid1())&lt;br /&gt;
            settings[regionname] = uid&lt;br /&gt;
        # Make template&lt;br /&gt;
        tmpldata = maketemplate(regionname, xnum, ynum, port, uid)&lt;br /&gt;
        &lt;br /&gt;
        # Save file&lt;br /&gt;
        tmplfile = open(path, 'w')&lt;br /&gt;
        tmplfile.write(tmpldata)&lt;br /&gt;
        tmplfile.close()&lt;br /&gt;
        &lt;br /&gt;
        # Print progress&lt;br /&gt;
        print regionname&lt;br /&gt;
&lt;br /&gt;
# Save settings file&lt;br /&gt;
try:&lt;br /&gt;
    settingsfile = open(savefile, 'w')&lt;br /&gt;
    pickle.dump(settings, settingsfile)&lt;br /&gt;
    settingsfile.close()&lt;br /&gt;
except IOError:&lt;br /&gt;
    pass&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Rich43</name></author>	</entry>

	<entry>
		<id>http://opensimulator.org/wiki/RegionGenerator</id>
		<title>RegionGenerator</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/RegionGenerator"/>
				<updated>2008-07-13T13:14:47Z</updated>
		
		<summary type="html">&lt;p&gt;Rich43: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Heres a Region Generator in Python&lt;br /&gt;
&lt;br /&gt;
It generates a square piece of land.&lt;br /&gt;
&lt;br /&gt;
It requires the cheetah templating module and python 2.5.&lt;br /&gt;
&lt;br /&gt;
You can get cheetah from http://www.cheetahtemplate.org/&lt;br /&gt;
&lt;br /&gt;
You can get python from http://www.python.org/download/&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;#!/usr/bin/python&lt;br /&gt;
from Cheetah.Template import Template&lt;br /&gt;
import uuid&lt;br /&gt;
import os&lt;br /&gt;
import pickle&lt;br /&gt;
&lt;br /&gt;
# START OF CONFIGURATION&lt;br /&gt;
s = {}&lt;br /&gt;
&lt;br /&gt;
# Region Configuration&lt;br /&gt;
s['regionname'] = &amp;quot;LandsNameHere&amp;quot;     # Type the name of your land&lt;br /&gt;
s['x'] = [2900,3000]                # From - To x position&lt;br /&gt;
s['y'] = [2900,3000]                # From - To y position&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# User Configuration&lt;br /&gt;
s['firstname'] = &amp;quot;John&amp;quot;           # Account firstname&lt;br /&gt;
s['lastname'] = &amp;quot;Doe&amp;quot;              # Account lastname&lt;br /&gt;
s['useruuid'] = 'your clients uuid goes here'&lt;br /&gt;
s['password'] = 'mypass'           # Account password&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Network Configuration&lt;br /&gt;
s['startport'] = 9000               # Port the regions start on&lt;br /&gt;
                                    # incrimented by 1 each time&lt;br /&gt;
s['internalip'] = &amp;quot;123.456.789.123&amp;quot;   # Server ip&lt;br /&gt;
s['externalhost'] = &amp;quot;mydomain.org&amp;quot;  # Domain name or ip of server&lt;br /&gt;
                                    # (accessed externally)&lt;br /&gt;
# ------------------------------&lt;br /&gt;
&lt;br /&gt;
# Files are put in here.&lt;br /&gt;
regionsdir = 'Regions'&lt;br /&gt;
&lt;br /&gt;
template = &amp;quot;&amp;quot;&amp;quot;&amp;lt;Root&amp;gt;&lt;br /&gt;
&amp;lt;Config sim_UUID=&amp;quot;$uuid&amp;quot; sim_name=&amp;quot;$regionname&amp;quot; sim_location_x=&amp;quot;$x&amp;quot; sim_location_y=&amp;quot;$y&amp;quot; internal_ip_address=&amp;quot;$s.internalip&amp;quot; internal_ip_port=&amp;quot;$port&amp;quot; allow_alternate_ports=&amp;quot;false&amp;quot; external_host_name=&amp;quot;$s.externalhost&amp;quot; master_avatar_uuid=&amp;quot;$s.useruuid&amp;quot; estate_covenant_uuid=&amp;quot;00000000-0000-0000-0000-000000000000&amp;quot; master_avatar_first=&amp;quot;$s.firstname&amp;quot; master_avatar_last=&amp;quot;$s.lastname&amp;quot; master_avatar_pass=&amp;quot;$s.password&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/Root&amp;gt;&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
savefile = &amp;quot;regiongen_save.pkl&amp;quot;&lt;br /&gt;
# END OF CONFIGURATION&lt;br /&gt;
&lt;br /&gt;
def maketemplate(regionname, x, y, port, uid):&lt;br /&gt;
    t = Template(template)&lt;br /&gt;
    t.s = s&lt;br /&gt;
    t.uuid = uid&lt;br /&gt;
    t.regionname = regionname&lt;br /&gt;
    t.x = x&lt;br /&gt;
    t.y = y&lt;br /&gt;
    t.port = port&lt;br /&gt;
    return str(t)&lt;br /&gt;
&lt;br /&gt;
# Make directory to put regions in if not there&lt;br /&gt;
try:&lt;br /&gt;
    os.mkdir(regionsdir)&lt;br /&gt;
except OSError:&lt;br /&gt;
    pass&lt;br /&gt;
&lt;br /&gt;
settings = {}&lt;br /&gt;
&lt;br /&gt;
# Load settings file&lt;br /&gt;
try:&lt;br /&gt;
    settingsfile = open(savefile)&lt;br /&gt;
    settings = pickle.load(settingsfile)&lt;br /&gt;
    settingsfile.close()&lt;br /&gt;
except IOError:&lt;br /&gt;
    pass&lt;br /&gt;
&lt;br /&gt;
counter = 0&lt;br /&gt;
for xnum in range(s['x'][0], s['x'][1]):&lt;br /&gt;
    for ynum in range(s['y'][0], s['y'][1]):&lt;br /&gt;
        counter += 1&lt;br /&gt;
        default = False&lt;br /&gt;
        &lt;br /&gt;
        # Figure out region name&lt;br /&gt;
        if counter == 1:&lt;br /&gt;
            default = True&lt;br /&gt;
            regionname = s['regionname']&lt;br /&gt;
        else:&lt;br /&gt;
            regionname = s['regionname'] + str(counter)&lt;br /&gt;
        &lt;br /&gt;
        # Figure out paths&lt;br /&gt;
        if default:&lt;br /&gt;
            path = os.path.join(regionsdir,&amp;quot;default.xml&amp;quot;)&lt;br /&gt;
        else:&lt;br /&gt;
            path = os.path.join(regionsdir,&amp;quot;%s.%s.%s.xml&amp;quot; % \&lt;br /&gt;
                    (regionname, xnum, ynum))&lt;br /&gt;
        &lt;br /&gt;
        # Calculate port&lt;br /&gt;
        port = s['startport'] + (counter - 1)&lt;br /&gt;
        # Try to get UUID from settings&lt;br /&gt;
        # Generate + Save if not found&lt;br /&gt;
        if settings.has_key(regionname):&lt;br /&gt;
            uid = settings[regionname]&lt;br /&gt;
        else:&lt;br /&gt;
            uid = str(uuid.uuid1())&lt;br /&gt;
            settings[regionname] = uid&lt;br /&gt;
        # Make template&lt;br /&gt;
        tmpldata = maketemplate(regionname, xnum, ynum, port, uid)&lt;br /&gt;
        &lt;br /&gt;
        # Save file&lt;br /&gt;
        tmplfile = open(path, 'w')&lt;br /&gt;
        tmplfile.write(tmpldata)&lt;br /&gt;
        tmplfile.close()&lt;br /&gt;
        &lt;br /&gt;
        # Print progress&lt;br /&gt;
        print regionname&lt;br /&gt;
&lt;br /&gt;
# Save settings file&lt;br /&gt;
try:&lt;br /&gt;
    settingsfile = open(savefile, 'w')&lt;br /&gt;
    pickle.dump(settings, settingsfile)&lt;br /&gt;
    settingsfile.close()&lt;br /&gt;
except IOError:&lt;br /&gt;
    pass&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Rich43</name></author>	</entry>

	<entry>
		<id>http://opensimulator.org/wiki/RegionGenerator</id>
		<title>RegionGenerator</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/RegionGenerator"/>
				<updated>2008-07-13T13:11:38Z</updated>
		
		<summary type="html">&lt;p&gt;Rich43: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Heres a Region Generator in Python&lt;br /&gt;
&lt;br /&gt;
It generates a square piece of land.&lt;br /&gt;
&lt;br /&gt;
It requires the cheetah templating module and python 2.5&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;#!/usr/bin/python&lt;br /&gt;
from Cheetah.Template import Template&lt;br /&gt;
import uuid&lt;br /&gt;
import os&lt;br /&gt;
import pickle&lt;br /&gt;
&lt;br /&gt;
# START OF CONFIGURATION&lt;br /&gt;
s = {}&lt;br /&gt;
&lt;br /&gt;
# Region Configuration&lt;br /&gt;
s['regionname'] = &amp;quot;LandsNameHere&amp;quot;     # Type the name of your land&lt;br /&gt;
s['x'] = [2900,3000]                # From - To x position&lt;br /&gt;
s['y'] = [2900,3000]                # From - To y position&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# User Configuration&lt;br /&gt;
s['firstname'] = &amp;quot;John&amp;quot;           # Account firstname&lt;br /&gt;
s['lastname'] = &amp;quot;Doe&amp;quot;              # Account lastname&lt;br /&gt;
s['useruuid'] = 'your clients uuid goes here'&lt;br /&gt;
s['password'] = 'mypass'           # Account password&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Network Configuration&lt;br /&gt;
s['startport'] = 9000               # Port the regions start on&lt;br /&gt;
                                    # incrimented by 1 each time&lt;br /&gt;
s['internalip'] = &amp;quot;123.456.789.123&amp;quot;   # Server ip&lt;br /&gt;
s['externalhost'] = &amp;quot;mydomain.org&amp;quot;  # Domain name or ip of server&lt;br /&gt;
                                    # (accessed externally)&lt;br /&gt;
# ------------------------------&lt;br /&gt;
&lt;br /&gt;
# Files are put in here.&lt;br /&gt;
regionsdir = 'Regions'&lt;br /&gt;
&lt;br /&gt;
template = &amp;quot;&amp;quot;&amp;quot;&amp;lt;Root&amp;gt;&lt;br /&gt;
&amp;lt;Config sim_UUID=&amp;quot;$uuid&amp;quot; sim_name=&amp;quot;$regionname&amp;quot; sim_location_x=&amp;quot;$x&amp;quot; sim_location_y=&amp;quot;$y&amp;quot; internal_ip_address=&amp;quot;$s.internalip&amp;quot; internal_ip_port=&amp;quot;$port&amp;quot; allow_alternate_ports=&amp;quot;false&amp;quot; external_host_name=&amp;quot;$s.externalhost&amp;quot; master_avatar_uuid=&amp;quot;$s.useruuid&amp;quot; estate_covenant_uuid=&amp;quot;00000000-0000-0000-0000-000000000000&amp;quot; master_avatar_first=&amp;quot;$s.firstname&amp;quot; master_avatar_last=&amp;quot;$s.lastname&amp;quot; master_avatar_pass=&amp;quot;$s.password&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/Root&amp;gt;&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
savefile = &amp;quot;regiongen_save.pkl&amp;quot;&lt;br /&gt;
# END OF CONFIGURATION&lt;br /&gt;
&lt;br /&gt;
def maketemplate(regionname, x, y, port, uid):&lt;br /&gt;
    t = Template(template)&lt;br /&gt;
    t.s = s&lt;br /&gt;
    t.uuid = uid&lt;br /&gt;
    t.regionname = regionname&lt;br /&gt;
    t.x = x&lt;br /&gt;
    t.y = y&lt;br /&gt;
    t.port = port&lt;br /&gt;
    return str(t)&lt;br /&gt;
&lt;br /&gt;
# Make directory to put regions in if not there&lt;br /&gt;
try:&lt;br /&gt;
    os.mkdir(regionsdir)&lt;br /&gt;
except OSError:&lt;br /&gt;
    pass&lt;br /&gt;
&lt;br /&gt;
settings = {}&lt;br /&gt;
&lt;br /&gt;
# Load settings file&lt;br /&gt;
try:&lt;br /&gt;
    settingsfile = open(savefile)&lt;br /&gt;
    settings = pickle.load(settingsfile)&lt;br /&gt;
    settingsfile.close()&lt;br /&gt;
except IOError:&lt;br /&gt;
    pass&lt;br /&gt;
&lt;br /&gt;
counter = 0&lt;br /&gt;
for xnum in range(s['x'][0], s['x'][1]):&lt;br /&gt;
    for ynum in range(s['y'][0], s['y'][1]):&lt;br /&gt;
        counter += 1&lt;br /&gt;
        default = False&lt;br /&gt;
        &lt;br /&gt;
        # Figure out region name&lt;br /&gt;
        if counter == 1:&lt;br /&gt;
            default = True&lt;br /&gt;
            regionname = s['regionname']&lt;br /&gt;
        else:&lt;br /&gt;
            regionname = s['regionname'] + str(counter)&lt;br /&gt;
        &lt;br /&gt;
        # Figure out paths&lt;br /&gt;
        if default:&lt;br /&gt;
            path = os.path.join(regionsdir,&amp;quot;default.xml&amp;quot;)&lt;br /&gt;
        else:&lt;br /&gt;
            path = os.path.join(regionsdir,&amp;quot;%s.%s.%s.xml&amp;quot; % \&lt;br /&gt;
                    (regionname, xnum, ynum))&lt;br /&gt;
        &lt;br /&gt;
        # Calculate port&lt;br /&gt;
        port = s['startport'] + (counter - 1)&lt;br /&gt;
        # Try to get UUID from settings&lt;br /&gt;
        # Generate + Save if not found&lt;br /&gt;
        if settings.has_key(regionname):&lt;br /&gt;
            uid = settings[regionname]&lt;br /&gt;
        else:&lt;br /&gt;
            uid = str(uuid.uuid1())&lt;br /&gt;
            settings[regionname] = uid&lt;br /&gt;
        # Make template&lt;br /&gt;
        tmpldata = maketemplate(regionname, xnum, ynum, port, uid)&lt;br /&gt;
        &lt;br /&gt;
        # Save file&lt;br /&gt;
        tmplfile = open(path, 'w')&lt;br /&gt;
        tmplfile.write(tmpldata)&lt;br /&gt;
        tmplfile.close()&lt;br /&gt;
        &lt;br /&gt;
        # Print progress&lt;br /&gt;
        print regionname&lt;br /&gt;
&lt;br /&gt;
# Save settings file&lt;br /&gt;
try:&lt;br /&gt;
    settingsfile = open(savefile, 'w')&lt;br /&gt;
    pickle.dump(settings, settingsfile)&lt;br /&gt;
    settingsfile.close()&lt;br /&gt;
except IOError:&lt;br /&gt;
    pass&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Rich43</name></author>	</entry>

	<entry>
		<id>http://opensimulator.org/wiki/RegionGenerator</id>
		<title>RegionGenerator</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/RegionGenerator"/>
				<updated>2008-07-12T23:38:48Z</updated>
		
		<summary type="html">&lt;p&gt;Rich43: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Heres a Region Generator in Python&lt;br /&gt;
&lt;br /&gt;
It generates a square piece of land.&lt;br /&gt;
&lt;br /&gt;
It requires the cheetah templating module and python 2.5&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;#!/usr/bin/python&lt;br /&gt;
from Cheetah.Template import Template&lt;br /&gt;
import uuid&lt;br /&gt;
import os&lt;br /&gt;
&lt;br /&gt;
# START OF CONFIGURATION&lt;br /&gt;
s = {}&lt;br /&gt;
# Region Configuration&lt;br /&gt;
s['regionname'] = &amp;quot;myland&amp;quot;     # Type the name of your island&lt;br /&gt;
s['x'] = [2900,3000]                # From - To x position&lt;br /&gt;
s['y'] = [2900,3000]                # From - To y position&lt;br /&gt;
# User Configuration&lt;br /&gt;
s['firstname'] = &amp;quot;firstname&amp;quot;           # Account firstname&lt;br /&gt;
s['lastname'] = &amp;quot;lastname&amp;quot;              # Account lastname&lt;br /&gt;
s['useruuid'] = 'your clients uuid goes here'&lt;br /&gt;
s['password'] = 'password'           # Account password&lt;br /&gt;
# Network Configuration&lt;br /&gt;
s['startport'] = 9000               # Port the regions start on&lt;br /&gt;
                                    # incrimented by 1 each time&lt;br /&gt;
s['internalip'] = &amp;quot;23.984.259.770&amp;quot;   # Server ip&lt;br /&gt;
s['externalhost'] = &amp;quot;myhost&amp;quot;  # Domain name or ip of server&lt;br /&gt;
                                    # (accessed externally)&lt;br /&gt;
# ------------------------------&lt;br /&gt;
&lt;br /&gt;
regionsdir = 'Regions'              # Files created in this directory, created if not found.&lt;br /&gt;
# Template&lt;br /&gt;
template = &amp;quot;&amp;quot;&amp;quot;&amp;lt;Root&amp;gt;&lt;br /&gt;
&amp;lt;Config sim_UUID=&amp;quot;$uuid&amp;quot; sim_name=&amp;quot;$regionname&amp;quot; sim_location_x=&amp;quot;$x&amp;quot; sim_location_y=&amp;quot;$y&amp;quot; internal_ip_address=&amp;quot;$s.internalip&amp;quot; internal_ip_port=&amp;quot;$port&amp;quot; allow_alternate_ports=&amp;quot;false&amp;quot; external_host_name=&amp;quot;$s.externalhost&amp;quot; master_avatar_uuid=&amp;quot;$s.useruuid&amp;quot; estate_covenant_uuid=&amp;quot;00000000-0000-0000-0000-000000000000&amp;quot; master_avatar_first=&amp;quot;$s.firstname&amp;quot; master_avatar_last=&amp;quot;$s.lastname&amp;quot; master_avatar_pass=&amp;quot;$s.password&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/Root&amp;gt;&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
# END OF CONFIGURATION&lt;br /&gt;
&lt;br /&gt;
def maketemplate(regionname,x,y,port):&lt;br /&gt;
    t = Template(template)&lt;br /&gt;
    t.s = s&lt;br /&gt;
    t.uuid = str(uuid.uuid1())&lt;br /&gt;
    t.regionname = regionname&lt;br /&gt;
    t.x = x&lt;br /&gt;
    t.y = y&lt;br /&gt;
    t.port = port&lt;br /&gt;
    return str(t)&lt;br /&gt;
&lt;br /&gt;
try:&lt;br /&gt;
    os.mkdir(regionsdir)&lt;br /&gt;
except OSError:&lt;br /&gt;
    pass&lt;br /&gt;
&lt;br /&gt;
counter = 0&lt;br /&gt;
for xnum in range(s['x'][0], s['x'][1]):&lt;br /&gt;
    for ynum in range(s['y'][0], s['y'][1]):&lt;br /&gt;
        counter += 1&lt;br /&gt;
        &lt;br /&gt;
        if counter == 1:&lt;br /&gt;
            regionname = s['regionname']&lt;br /&gt;
        else:&lt;br /&gt;
            regionname = s['regionname'] + str(counter)&lt;br /&gt;
        &lt;br /&gt;
        path = os.path.join(regionsdir,&amp;quot;%s.%s.%s.xml&amp;quot; % (regionname, xnum, ynum))&lt;br /&gt;
        tmplfile = open(path, 'w')&lt;br /&gt;
        tmplfile.write(maketemplate(regionname, xnum, ynum, s['startport'] + (counter - 1)))&lt;br /&gt;
        tmplfile.close()&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Rich43</name></author>	</entry>

	<entry>
		<id>http://opensimulator.org/wiki/RegionGenerator</id>
		<title>RegionGenerator</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/RegionGenerator"/>
				<updated>2008-07-12T23:36:47Z</updated>
		
		<summary type="html">&lt;p&gt;Rich43: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Heres a Region Generator in Python&lt;br /&gt;
&lt;br /&gt;
It generates a square piece of land.&lt;br /&gt;
&lt;br /&gt;
It requires the cheetah templating module and python 2.5&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;#!/usr/bin/python&lt;br /&gt;
from Cheetah.Template import Template&lt;br /&gt;
import uuid&lt;br /&gt;
import os&lt;br /&gt;
&lt;br /&gt;
# START OF CONFIGURATION&lt;br /&gt;
s = {}&lt;br /&gt;
# Region Configuration&lt;br /&gt;
s['regionname'] = &amp;quot;RichieWorld&amp;quot;     # Type the name of your island&lt;br /&gt;
s['x'] = [2900,3000]                # From - To x position&lt;br /&gt;
s['y'] = [2900,3000]                # From - To y position&lt;br /&gt;
# User Configuration&lt;br /&gt;
s['firstname'] = &amp;quot;Richie&amp;quot;           # Account firstname&lt;br /&gt;
s['lastname'] = &amp;quot;Ward&amp;quot;              # Account lastname&lt;br /&gt;
s['useruuid'] = 'your clients uuid goes here'&lt;br /&gt;
s['password'] = 'rewrich'           # Account password&lt;br /&gt;
# Network Configuration&lt;br /&gt;
s['startport'] = 9000               # Port the regions start on&lt;br /&gt;
                                    # incrimented by 1 each time&lt;br /&gt;
s['internalip'] = &amp;quot;87.98.249.170&amp;quot;   # Server ip&lt;br /&gt;
s['externalhost'] = &amp;quot;4rensics.org&amp;quot;  # Domain name or ip of server&lt;br /&gt;
                                    # (accessed externally)&lt;br /&gt;
# ------------------------------&lt;br /&gt;
&lt;br /&gt;
regionsdir = 'Regions'              # Files created in this directory, created if not found.&lt;br /&gt;
# Template&lt;br /&gt;
template = &amp;quot;&amp;quot;&amp;quot;&amp;lt;Root&amp;gt;&lt;br /&gt;
&amp;lt;Config sim_UUID=&amp;quot;$uuid&amp;quot; sim_name=&amp;quot;$regionname&amp;quot; sim_location_x=&amp;quot;$x&amp;quot; sim_location_y=&amp;quot;$y&amp;quot; internal_ip_address=&amp;quot;$s.internalip&amp;quot; internal_ip_port=&amp;quot;$port&amp;quot; allow_alternate_ports=&amp;quot;false&amp;quot; external_host_name=&amp;quot;$s.externalhost&amp;quot; master_avatar_uuid=&amp;quot;$s.useruuid&amp;quot; estate_covenant_uuid=&amp;quot;00000000-0000-0000-0000-000000000000&amp;quot; master_avatar_first=&amp;quot;$s.firstname&amp;quot; master_avatar_last=&amp;quot;$s.lastname&amp;quot; master_avatar_pass=&amp;quot;$s.password&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/Root&amp;gt;&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
# END OF CONFIGURATION&lt;br /&gt;
&lt;br /&gt;
def maketemplate(regionname,x,y,port):&lt;br /&gt;
    t = Template(template)&lt;br /&gt;
    t.s = s&lt;br /&gt;
    t.uuid = str(uuid.uuid1())&lt;br /&gt;
    t.regionname = regionname&lt;br /&gt;
    t.x = x&lt;br /&gt;
    t.y = y&lt;br /&gt;
    t.port = port&lt;br /&gt;
    return str(t)&lt;br /&gt;
&lt;br /&gt;
try:&lt;br /&gt;
    os.mkdir(regionsdir)&lt;br /&gt;
except OSError:&lt;br /&gt;
    pass&lt;br /&gt;
&lt;br /&gt;
counter = 0&lt;br /&gt;
for xnum in range(s['x'][0], s['x'][1]):&lt;br /&gt;
    for ynum in range(s['y'][0], s['y'][1]):&lt;br /&gt;
        counter += 1&lt;br /&gt;
        &lt;br /&gt;
        if counter == 1:&lt;br /&gt;
            regionname = s['regionname']&lt;br /&gt;
        else:&lt;br /&gt;
            regionname = s['regionname'] + str(counter)&lt;br /&gt;
        &lt;br /&gt;
        path = os.path.join(regionsdir,&amp;quot;%s.%s.%s.xml&amp;quot; % (regionname, xnum, ynum))&lt;br /&gt;
        tmplfile = open(path, 'w')&lt;br /&gt;
        tmplfile.write(maketemplate(regionname, xnum, ynum, s['startport'] + (counter - 1)))&lt;br /&gt;
        tmplfile.close()&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Rich43</name></author>	</entry>

	<entry>
		<id>http://opensimulator.org/wiki/RegionGenerator</id>
		<title>RegionGenerator</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/RegionGenerator"/>
				<updated>2008-07-12T23:35:07Z</updated>
		
		<summary type="html">&lt;p&gt;Rich43: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Heres a Region Generator in Python&lt;br /&gt;
&lt;br /&gt;
It generates a square piece of land.&lt;br /&gt;
&lt;br /&gt;
It requires the cheetah templating module and python 2.5&lt;br /&gt;
&lt;br /&gt;
[PRE]#!/usr/bin/python&lt;br /&gt;
from Cheetah.Template import Template&lt;br /&gt;
import uuid&lt;br /&gt;
import os&lt;br /&gt;
&lt;br /&gt;
# START OF CONFIGURATION&lt;br /&gt;
s = {}&lt;br /&gt;
# Region Configuration&lt;br /&gt;
s['regionname'] = &amp;quot;RichieWorld&amp;quot;     # Type the name of your island&lt;br /&gt;
s['x'] = [2900,3000]                # From - To x position&lt;br /&gt;
s['y'] = [2900,3000]                # From - To y position&lt;br /&gt;
# User Configuration&lt;br /&gt;
s['firstname'] = &amp;quot;Richie&amp;quot;           # Account firstname&lt;br /&gt;
s['lastname'] = &amp;quot;Ward&amp;quot;              # Account lastname&lt;br /&gt;
s['useruuid'] = 'your clients uuid goes here'&lt;br /&gt;
s['password'] = 'rewrich'           # Account password&lt;br /&gt;
# Network Configuration&lt;br /&gt;
s['startport'] = 9000               # Port the regions start on&lt;br /&gt;
                                    # incrimented by 1 each time&lt;br /&gt;
s['internalip'] = &amp;quot;87.98.249.170&amp;quot;   # Server ip&lt;br /&gt;
s['externalhost'] = &amp;quot;4rensics.org&amp;quot;  # Domain name or ip of server&lt;br /&gt;
                                    # (accessed externally)&lt;br /&gt;
# ------------------------------&lt;br /&gt;
&lt;br /&gt;
regionsdir = 'Regions'              # Files created in this directory, created if not found.&lt;br /&gt;
# Template&lt;br /&gt;
template = &amp;quot;&amp;quot;&amp;quot;&amp;lt;Root&amp;gt;&lt;br /&gt;
&amp;lt;Config sim_UUID=&amp;quot;$uuid&amp;quot; sim_name=&amp;quot;$regionname&amp;quot; sim_location_x=&amp;quot;$x&amp;quot; sim_location_y=&amp;quot;$y&amp;quot; internal_ip_address=&amp;quot;$s.internalip&amp;quot; internal_ip_port=&amp;quot;$port&amp;quot; allow_alternate_ports=&amp;quot;false&amp;quot; external_host_name=&amp;quot;$s.externalhost&amp;quot; master_avatar_uuid=&amp;quot;$s.useruuid&amp;quot; estate_covenant_uuid=&amp;quot;00000000-0000-0000-0000-000000000000&amp;quot; master_avatar_first=&amp;quot;$s.firstname&amp;quot; master_avatar_last=&amp;quot;$s.lastname&amp;quot; master_avatar_pass=&amp;quot;$s.password&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/Root&amp;gt;&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
# END OF CONFIGURATION&lt;br /&gt;
&lt;br /&gt;
def maketemplate(regionname,x,y,port):&lt;br /&gt;
    t = Template(template)&lt;br /&gt;
    t.s = s&lt;br /&gt;
    t.uuid = str(uuid.uuid1())&lt;br /&gt;
    t.regionname = regionname&lt;br /&gt;
    t.x = x&lt;br /&gt;
    t.y = y&lt;br /&gt;
    t.port = port&lt;br /&gt;
    return str(t)&lt;br /&gt;
&lt;br /&gt;
try:&lt;br /&gt;
    os.mkdir(regionsdir)&lt;br /&gt;
except OSError:&lt;br /&gt;
    pass&lt;br /&gt;
&lt;br /&gt;
counter = 0&lt;br /&gt;
for xnum in range(s['x'][0], s['x'][1]):&lt;br /&gt;
    for ynum in range(s['y'][0], s['y'][1]):&lt;br /&gt;
        counter += 1&lt;br /&gt;
        &lt;br /&gt;
        if counter == 1:&lt;br /&gt;
            regionname = s['regionname']&lt;br /&gt;
        else:&lt;br /&gt;
            regionname = s['regionname'] + str(counter)&lt;br /&gt;
        &lt;br /&gt;
        path = os.path.join(regionsdir,&amp;quot;%s.%s.%s.xml&amp;quot; % (regionname, xnum, ynum))&lt;br /&gt;
        tmplfile = open(path, 'w')&lt;br /&gt;
        tmplfile.write(maketemplate(regionname, xnum, ynum, s['startport'] + (counter - 1)))&lt;br /&gt;
        tmplfile.close()[/PRE]&lt;/div&gt;</summary>
		<author><name>Rich43</name></author>	</entry>

	<entry>
		<id>http://opensimulator.org/wiki/RegionGenerator</id>
		<title>RegionGenerator</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/RegionGenerator"/>
				<updated>2008-07-12T23:33:50Z</updated>
		
		<summary type="html">&lt;p&gt;Rich43: New page: Heres a Region Generator in Python  It generates a square piece of land.  It requires the cheetah templating module and python 2.5  [CODE]#!/usr/bin/python from Cheetah.Template import Tem...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Heres a Region Generator in Python&lt;br /&gt;
&lt;br /&gt;
It generates a square piece of land.&lt;br /&gt;
&lt;br /&gt;
It requires the cheetah templating module and python 2.5&lt;br /&gt;
&lt;br /&gt;
[CODE]#!/usr/bin/python&lt;br /&gt;
from Cheetah.Template import Template&lt;br /&gt;
import uuid&lt;br /&gt;
import os&lt;br /&gt;
&lt;br /&gt;
# START OF CONFIGURATION&lt;br /&gt;
s = {}&lt;br /&gt;
# Region Configuration&lt;br /&gt;
s['regionname'] = &amp;quot;RichieWorld&amp;quot;     # Type the name of your island&lt;br /&gt;
s['x'] = [2900,3000]                # From - To x position&lt;br /&gt;
s['y'] = [2900,3000]                # From - To y position&lt;br /&gt;
# User Configuration&lt;br /&gt;
s['firstname'] = &amp;quot;Richie&amp;quot;           # Account firstname&lt;br /&gt;
s['lastname'] = &amp;quot;Ward&amp;quot;              # Account lastname&lt;br /&gt;
s['useruuid'] = 'your clients uuid goes here'&lt;br /&gt;
s['password'] = 'rewrich'           # Account password&lt;br /&gt;
# Network Configuration&lt;br /&gt;
s['startport'] = 9000               # Port the regions start on&lt;br /&gt;
                                    # incrimented by 1 each time&lt;br /&gt;
s['internalip'] = &amp;quot;87.98.249.170&amp;quot;   # Server ip&lt;br /&gt;
s['externalhost'] = &amp;quot;4rensics.org&amp;quot;  # Domain name or ip of server&lt;br /&gt;
                                    # (accessed externally)&lt;br /&gt;
# ------------------------------&lt;br /&gt;
&lt;br /&gt;
regionsdir = 'Regions'              # Files created in this directory, created if not found.&lt;br /&gt;
# Template&lt;br /&gt;
template = &amp;quot;&amp;quot;&amp;quot;&amp;lt;Root&amp;gt;&lt;br /&gt;
&amp;lt;Config sim_UUID=&amp;quot;$uuid&amp;quot; sim_name=&amp;quot;$regionname&amp;quot; sim_location_x=&amp;quot;$x&amp;quot; sim_location_y=&amp;quot;$y&amp;quot; internal_ip_address=&amp;quot;$s.internalip&amp;quot; internal_ip_port=&amp;quot;$port&amp;quot; allow_alternate_ports=&amp;quot;false&amp;quot; external_host_name=&amp;quot;$s.externalhost&amp;quot; master_avatar_uuid=&amp;quot;$s.useruuid&amp;quot; estate_covenant_uuid=&amp;quot;00000000-0000-0000-0000-000000000000&amp;quot; master_avatar_first=&amp;quot;$s.firstname&amp;quot; master_avatar_last=&amp;quot;$s.lastname&amp;quot; master_avatar_pass=&amp;quot;$s.password&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/Root&amp;gt;&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
# END OF CONFIGURATION&lt;br /&gt;
&lt;br /&gt;
def maketemplate(regionname,x,y,port):&lt;br /&gt;
    t = Template(template)&lt;br /&gt;
    t.s = s&lt;br /&gt;
    t.uuid = str(uuid.uuid1())&lt;br /&gt;
    t.regionname = regionname&lt;br /&gt;
    t.x = x&lt;br /&gt;
    t.y = y&lt;br /&gt;
    t.port = port&lt;br /&gt;
    return str(t)&lt;br /&gt;
&lt;br /&gt;
try:&lt;br /&gt;
    os.mkdir(regionsdir)&lt;br /&gt;
except OSError:&lt;br /&gt;
    pass&lt;br /&gt;
&lt;br /&gt;
counter = 0&lt;br /&gt;
for xnum in range(s['x'][0], s['x'][1]):&lt;br /&gt;
    for ynum in range(s['y'][0], s['y'][1]):&lt;br /&gt;
        counter += 1&lt;br /&gt;
        &lt;br /&gt;
        if counter == 1:&lt;br /&gt;
            regionname = s['regionname']&lt;br /&gt;
        else:&lt;br /&gt;
            regionname = s['regionname'] + str(counter)&lt;br /&gt;
        &lt;br /&gt;
        path = os.path.join(regionsdir,&amp;quot;%s.%s.%s.xml&amp;quot; % (regionname, xnum, ynum))&lt;br /&gt;
        tmplfile = open(path, 'w')&lt;br /&gt;
        tmplfile.write(maketemplate(regionname, xnum, ynum, s['startport'] + (counter - 1)))&lt;br /&gt;
        tmplfile.close()[/CODE]&lt;/div&gt;</summary>
		<author><name>Rich43</name></author>	</entry>

	</feed>