Bozerg replied to Ipsquiggle's topic in [Don't Starve Together] Dedicated Server DiscussionWhat I think I know so far: So I figured out the way IDs work even though I don't have a good way of identifying the ID of a particular cave entrance or exit (IDs are unique to a shard, but not across all shards, they start from 1 and increment by 1). As far as I can tell c_migrateto(shard_id, portal_id) only works when moving to a different shard than the current one, and the only portal_id i'm aware of is that of the jury-rigged portal on any map (ID 1). Also, c_migrateto(shard_id, 1) sometimes locates me at a mined surface cave entrance, even if it wasn't mined before (not sure if it's creating it or not). Still nothing on pausing or changing dates backward. Snapshotting system seems to incorporate state of cave entrance and exit, so rolling back appears to roll that back as well, though I'm not sure on this. I also don't know if it's intended behavior but c_gonext("cave_entrance") only loops through unmined cave entrances. If there's a way to loop over all cave_entrances and/or just mined cave entrances that would be very useful in trying to sort out my setup. I also am not sure about this, but if c_gonext("cave_entrance") doesn't register the mined entrances, I suspect that also means that c_find("cave_entrance") doesn't find them either, thus dumpstering any commands built on that return result. What I'm struggling with currently: I am attempting to set up 3 cave maps and 3 surface maps. The surface maps and cave maps should be paired as normal, and then the master (one of the surface maps) should have two additional cave entrances which should be paired, one each, with an exit in each of the two caves that aren't already paired with the master surface shard. here's a crappy graph of what I'm talking about: SurfaceSlave1 SurfaceMaster SurfaceSlave2 | | | | | | | | | | / | | | | | | | | | | \ | | | | | | | | | | | CaveSlave1 CaveSlave2 CaveSlave3 Where each |, /, or, \ represents one bidirectional cave entrance/exit pair. SurfaceMaster has shard ID: 1 SurfaceSlave1 ID: 2 SurfaceSlave2 ID: 3 CaveSlave1 ID: 11 CaveSlave2 ID: 10 CaveSlave3 ID: 12 In my experience trying to construct this, two maps seem to be linked bijectively, but which two seems to depend on world generation(I've had it be a cave and a surface and often it's two caves). All other entrances and exits link to the jury-rigged portal of one particular cave. When attempting to follow DarkXero's instructions I load up a fresh game, 1. c_spawn("cave_entrance") 2. c_find("cave_entrance").components.worldmigrator:SetDestinationWorld(11, true) where 11 is the shard id of CaveSlave1. 3. mine out the cave entrance and go through the sinkhole 4. Find myself in CaveSlave2, not CaveSlave1. Figure I'll continue anyway. 5. c_spawn("cave_exit") 6. c_find("cave_exit").components.worldmigrator:SetReceivedPortal(1,11) 7. I take the cave exit only to end up at the jury-rigged portal of CaveSlave2. Assuming that maybe I need to set the destination world as well I do 8. c_migrateto(10,1) 9. c_find("cave_exit") until I reach the exit I had made (which should have ID 11) 10. c_find("cave_exit").components.worldmigrator:SetDestinationWorld(1, true) I assume this command is only ever needed for cave entrances but don't really know. 11. I take the portal only to end up at the jury-rigged portal of CaveSlave1. In other words, I can't get transportation working in even one of the directions. Is SetDestinationWorld required on both entrances and exits? Is SetReceivedPortal required on both entrances and exits? Any ideas what's going on/what I'm doing wrong?
Bozerg replied to Ipsquiggle's topic in [Don't Starve Together] Dedicated Server DiscussionHow do I find the IDs of portals so that I can link them? Are IDs unique to a specific shard, or unique across all shards? Should I be able to use c_migrateto(...) to relocate to those cave entrances and exits? If I'm making a world that requires a while to set up and configure is there a way to start a new game in that properly set-up world? Alternatively, is there a way to pause time in a server while still being able to move around? Thanks