OpenSim Archives
From OpenSimulator
Contents |
Introduction
This is currently a highly experimental function which has existed since r5469 (post 0.5.8). Basically, it does a similar job to load-xml2/save-xml2 in that it saves prims so that they can be later reloaded. However, OpenSim archives go a step further in that they can save all the necessary asset data to fully restore the terrain, the textures of objects and their inventories when loaded onto a completely different system using a different asset database.
Usage
From the region console, one can type
save-oar [<filename>]
to save an OpenSim archive. If no filename is given, then the name scene_oar.tar.gz is used
To load an archive, type
load-oar [<filename>]
at the console. Currently by default, loading an archive will delete all the objects in the scene and replace them with the archive contents. It's like being in the Matrix (when they swap environments), except much slower (all the scene objects are slowly deleted before the new environment is loaded :-)
When an archive is loaded, owners will be restored if the relevant uuids can be found in the OpenSim installation's user database. Otherwise, prim ownership will default to the master avatar for the region.
Examples
scene_oar.tar.gz - justincc's very basic environment containing a few prims, one script and a big chasm (see preview).
Please feel free to place links to other environments here, though unfortunately you'll have to host them on some other site.
Use cases
I wouldn't actually rely on these at the moment. But possible current uses are
1. To migrate data from an SQLite region database to one based on MySQL
2. To distribute entire regions to other people.
Current limitations
- Performance is not very good, especially with large archives. This will be addressed in the future
FAQ
1. What is this .tar.gz format you are using? Why not zip?
.tar.gz is a standard unix way of zipping up files into a single larger compressed file for distribution. Windows users should be able to open these files using freeware programs such as 7-zip.
I'm using .tar.gz because all the zip (and tar) libraries for .net are licensed either under the GPL (with exception) or under the MSPL. Unfortunately, not all members of the OpenSim development team are comfortable with the MSPL, so these libaries are not currently an option. It is also significantly easier to write code to create and read tar archives than zip archives.
At the moment the only tar archive type that can be read is the original unix tar format (not USTAR).
2. What is the layout of an OpenSim archive?
More details on this soon.
3. Can you load and save multiple regions to an archive?
Not yet.
4. Can you load and save parts of a region to an archive?
Not yet.
Bugs
- Sometimes, not all scripts start when an archive is loaded. Example archives with the problem would be appreciated.
- Due to a possible bug in the Mono 1.2.4 libraries, this feature may cause a debug dump when used (the problem appears to be in writing out a compressed stream). Mono 1.2.6 is okay. Since Mono 1.2.4 is fairly old now, I don't intend to address this bug.
Current Status
Highly experimental. I've (justincc) only tried it myself in very limited situations, so Mantis feedback and suggests would be appreciated.
Please don't rely on these archives to permanently backup your regions, though if they are in sufficient use, I hope to maintain compatibility with older archive versions.