ID:160092
 
Previously, I was under the belief that there is no means to dynamically create maps on the fly (essentially adding to the z coord) while the game is running. That's fine, I can design around that, but it would be much cooler if I could load and delete maps on the fly. (In this particular game I'm working on, I'm planning on using them as space ship interiors.)

After running some forum searches, I found some enticing evidence that maps can be created after all. (Said forum post mentions a BYONDscape demo, but I've had no luck finding it. This being a 2002 post, I'm not sure such an artifact would be compatible with 2008 BYOND anyway.)

What I haven't been able to locate with my forum-fu is how are maps dynamically created during runtime? There must be some fancy built in procs or somesuch, but I'm not sure what they are.

Also, can they be deleted after they are created? I understand that tracking those changes may be the path to madness, but it's a road I'll gladly take for the potential design benefit.

I'm not asking you do it for me. Simply pointing me in the direction of some good resources would be fine. Mayhap I skimmed the wrong portion of the BYOND manual?
You can add to the world's coordinates, like the zlevel at runtime. You'll need to handle the loading/positioning/etc of maps & their data yourself. There are a few libraries though that can do most of the work for you.

Lummox JR's hub://LummoxJR.SwapMaps is one library that works off of its own savefile-based format. There are others that save and load BYOND map files (currently .dmm, used to be .dmp).
Sadly, there are no built in procs. As Jon88 said, you can edit the maxx, maxy, and maxz vars to add space to the map, and then all the loading is up to you.

EDIT: I posted a small snippet on how to add fixed size areas to a game. Note that there is no loading included, just adding space and positioning an object in the center accordingly.
In response to Jon88
Interesting stuff. If I'm understanding you two correctly, I simply set the world.maxz variable and then perform turf calls to the new z coordinates as though they're already there. I'm assuming these new maps would build themselves out of the default turfs if nothing is loaded into them.

That work, it would indeed be tricky business to manage maps, and deleting them on the fly wouldn't be as organized as I might hope. However, it's technically doable if I'm willing to go into the details involved in writing my own custom map-handling objects.
In response to Geldonyetich
You could always just use Swap Maps. It even handles the location thing for you! There's no shame in using a library.