Ipsquiggle

Understanding Shards and Migration Portals

Recommended Posts

myxal    316
23 hours ago, k2trix said:

Do someone here knows how can i make it asyncronous ?

I was also interested in this - I tried to configure a 2-shard world with regular-cycle caves and eternal winter forest.

  • The fact that there's no season options in the caves section of the world configuration already suggests that independent season manager for each shard is not supported.
  • Even manually adding the season options into the override file and regenerating the worlds didn't work.

I'd suggest taking a look at how seasonmanager works - perhaps you can modify the world entity for each shard, assuming it's there?

 

Share this post


Link to post
Share on other sites
qpa85    0
On 17/11/2015 at 9:16 PM, Ipsquiggle said:

Effectively what you have to do is, for each migration portal in your world (and you can add or remove them just like any prefab, with c_spawn() and :Remove()), you need to disable the automatic linking, and then point each portal at the world it should migrate to.

Hi, i know that is maybe long time ago but, i found this treat when i search for "Multiple Worlds". And i want to ask you people...

When i want to SPAWN a new portal/link like "cave_entrance" or "cave_exit" with the c_spawn command, the "portal" spanws closed (like with wood blocking the entrance) and i really don't know if i'm linking it or if the mod is working. May someone that set this up and working provide me some tutorial or example on how to do this.
 

Thanks !!

Edited by qpa85

Share this post


Link to post
Share on other sites
qpa85    0
On 22/11/2015 at 12:39 PM, DarkXero said:

You are not supposed to touch the code of worldmigrator.lua.

You are supposed to run code on the console.

 

1) Join a server

(We are in master now, shard_id is 1)

2) c_spawn("cave_entrance")

(Cave entrance will be id 11, automatically, since there were 10 cave entrances by default on generation)

3) Stand near the entrance, as c_find picks the closest thing

4) c_find("cave_entrance").components.worldmigrator:SetDestinationWorld(shard_id)

(This shard id will be the second slave)

5) Use the entrance

6) You will migrate to slave 2, from portal 11 from master

7) Since only 10 cave exits are here, you will go somewhere else, find a place to make a new exit

8) c_spawn("cave_exit")

(This cave exit will be id 11, automatically, since there were 10 cave exits by default on generation)

9) c_find("cave_exit").components.worldmigrator:SetRecievedPortal(shard_id, 11)

(This shard_id is 1 if it's master)

 @DarkXero When i create a "cave_entrance" (#2) the sinkhole that spawns is sealed, so i'm unable to go in. And is possible to see in the console that the "new portal" is Inactive.

Share this post


Link to post
Share on other sites
k2trix    7

Using the "shard configuration mod" makes the world linking way easier :)
you should have a look to this topic -->

Spaming new entraces isn't necessary, 10 for each world is far enought if you want to make a maze :D, just link them to each other:
-unidirectional portals leads to florid posterns (portal[0]) no way back,
-bidirectional portals leads to each other (portal[1-10] to portal[1-10],
-with this mod you can use the command c_migrateto(shard_id,portal_id) teleporting you anywhere you need.
ex : c_migrateto(2,0) [only admin cmd] teleports yourself to the florid postern of shard 2... enjoy !

Edited by k2trix

Share this post


Link to post
Share on other sites

In case it's useful, this is the shard mod config I used to use in my dedicated server, for 3 forest worlds and 1 caves, all interconnected:


   ["workshop-595764362"] = {  -- Shard Configuration Mod
      enabled = true,
      configuration_options = {
        ["SyncFromMaster"] = true,
        ["Connections"] = { -- only point higher, not lower;must be the same in every shard; 2ways list only one side!
           ["1"] = { "2", "2", "2", "2", "3", "3", "3", "4", "4", "4" },
           ["2"] = { "3", "3", "3", "3", "4", "4", "4", "4" },
           ["3"] = { "4", "4", "4" },
           --["4"] = { },
        },
        -- ["OneWayConnections"] = {
        --   ["1"] = { "2", "2" },
        -- },
      },

Unfortunately, too many of the other mods I use couldn't handle the multiple forests, and even fewer could handle multiple forests with different configs (I wanted 3 unique worlds, not 3 identical worlds).

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now