Alrighty, I tried to export the teleporters for the Animal Sanctuary, I *think* I got them all covered, though it's probably best to double check. Used [staex with some manual cleaning of the .cfg file. If you drop the .cfg file from the archive into Data/Decorations/Lodor, these teleporters will not only be retained now upon Buildworld, but they'll also be created for anyone who is playing the game but doesn't have them yet (I tried deleting the teleporters and then running buildworld, and that generated them for me, retaining their destinations and properties).
The basic principle should be similar for anything else that you added as a decoration on top of Djeryv's build and would like retained and generated on Buildworld - that'll eventually allow the mod to function autonomously and recreate itself when running buildworld, which will not only preserve the players' saved games, but also will allow the mod to "regenerate" itself if something goes wrong.
I checked the Buildworld code in more detail, and noticed the following key principles regarding what it does:
- Buildworld only removes the items of types PremiumSpawner, PotionCauldron, and MagicPool, which is why I noticed that the champion system was preserved after buildworld (however, without a script, the champion system simply won't be affected in any way past buildworld, so if someone, for example, has a saved game where the champion system didn't exist yet, calling buildworld won't create it for them, obviously). However, in a saved game that already has the champion system set up, buildworld won't mess it up or remove it. It will remove the currently spawned critters, but the system itself (which is preserved) will generate new ones, apparently.
- Buildworld removes every creature in the world that inherits from BaseCreature. This is done to ensure that the game is respawned clean from the .map files. This means that mobiles placed directly via [add without a PremiumSpawner are a big no, they'll be removed on buildworld and won't come back. All the mobiles in the world should either be spawned through a PremiumSpawner (exported to .map via the spawner save command) or through some other system that does its own spawning (e.g. RandomEncounters) or through a custom script that's hooked into Buildworld and runs after the world is despawned.
- Buildworld decorates the world using all the .cfg files in Data/Decoration. No code modification is necessary to use new files from that location, so anything exported via [staex can be named anything you'd like and dropped into one of the subfolders under Data/Decoration, and that'll become a part of the Buildworld process automatically. All decorations that are not statics inside MUL files should be done this way, so that they can be (re)created on Buildworld. Note that Buildworld itself won't kill off decorations by default unless their weight set to -2 (those decorations will be removed by Decorate when Buildworld is called, prior to rebuilding decorations from .cfg files).
- The spawn generator in Buildworld only loads the files dangers.map, land.map, animals.map, world.map, pirates.map, spread.map, and towns.map by default. Since we need to spawn from a complete exported file (Spawns.map), that portion of Buildworld will need to be modified to account for that fact.
- Everything else in Buildworld are the hooked up scripts that generate various stuff that can't be spawned from a PremiumSpawner or otherwise without a special script - similar hooks can be set up for subsystems that need respawning on Buildworld.
So, it looks like it's not too hard to make the mod completely autonomous and self-recreating (and thus, being able to preserve the Saves folder, which is critically important for our players), but it just might be somewhat tedious to retroactively go over all the locations and ensure that, at least, (1) those locations are spawned through PremiumSpawners that are exported to Spawns.map (which should be hooked in Buildworld), and (2) those locations are decorated either via MUL files or via .cfg files exported through [staex and placed inside Data/Decoration/*.
Hopefully this helps