Jump to content

Multiple Master shards?


Recommended Posts

Is there a way to link multiple master shards?  I want to create a "hub" world where people can connect to other worlds(all with their own time/seasons, etc).  I've seen the shard migration mod and I know how to link multiple shards but I'm getting stuck connecting masters, if that's even possible. I want to do this because the average player has problems getting to mid-end game content.  It takes 160 minutes just to get to winter and by the time you build and prep a base you have to take a break and by the time you come back the world is wiped or you're stuck waiting for winter to go away.  Nobody wants to play on regular endless servers because the whole world is stripped of resources within a day.  I want to create a permanent world where people can build a base and gain progress while at the same time able to explore fresh worlds that respawn when everyone dies.


I drew up a rough idea of how I want my world.  Any ideas to make this possible? Thanks in advance.

worldschematic.png

Link to comment
Share on other sites

You can't have multiple master shards (unless you rewrite major parts of the network code) connecting to eachother. You can however chain multiple slave shards. (Image)

Meaning: You can set your hub as master shard, and have ALL other shards as slave shards.
For example Players enter the hub (master shard), and then switch over to a Overworld slave shard, and from there are able to switch over to a caves shard. The only limitation of this would be that players can't directly join a slave shard on the first connect, just like players can't directly join the caves on a normal setup on the first connection. They can however freely enter the slave shards, and will be spawned in the position and world they've left the server in.

I guess one of the major limitations of your plan is to have the server sections regenerate individually. Means, if a slave shard regenerates, the Master shard regenerates too, which kinda defeats the purporse of the setup. Not sure if there is a way to avoid that.

Unbenannt.png

Link to comment
Share on other sites

@Redakted please do report back how it went, I'm curious about the game modes (survival vs. endless) differing across shards - not sure that's possible, but I've never tried.

On 11/16/2020 at 2:35 PM, Daniel86268 said:

Means, if a slave shard regenerates, the Master shard regenerates too

Are you sure about that? Sure, Master regeneration propagates down to secondary shards, but the reverse shouldn't, IMHO. It's always possible to stop the secondary shards and delete their save data.

Link to comment
Share on other sites

6 minutes ago, myxal said:

Are you sure about that? Sure, Master regeneration propagates down to secondary shards, but the reverse shouldn't, IMHO. It's always possible to stop the secondary shards and delete their save data.

Well, I might've been a little unprecise with my wording there. Afaik it's true, that technicially only the master shard initiates the world reset, which means the slave shards can't reset on their own. And the master shard manages all players, which also means it checks if the slave shards have live players, and if not, regenerate. (in non-endless ofc.)

On the other hand, what you've pointed out is absolutely true, and I haven't even thought about that: You can just shut down the slave shards, and delete their data, essentially forcing them to regenerate their map. Very clever. Now you just need a way to check/trigger from outside the server to launch a script to do the reset procedure.

Link to comment
Share on other sites

2 hours ago, Daniel86268 said:

Afaik it's true, that technicially only the master shard initiates the world reset, which means the slave shards can't reset on their own.

Are we talking about the same thing? :)  You can definitely call c_regenerateshard() in a slave shard, I'm just not sure if the slave notifies the master and causes entire cluster regeneration in present-day DST builds.

-- consolecommands.lua
function c_regenerateshard(wipesettings)
    local shouldpreserve = not wipesettings
    if TheWorld ~= nil and TheWorld.ismastersim then
        ShardGameIndex:Delete(
            doreset,
            shouldpreserve
        )
    end
end

It has been a while, but I remember being able to regenerate caves while keeping forest intact (I don't think I've ever used it in my "live" clusters, just something I read about that could regenerate ruins prior to A-New-Reign release, and tried out on some "scratchpad cluster"). That was probably done without even supplying the "wipesettings" here, as I got the command from the wiki, which doesn't even list the parameter: https://dontstarve.fandom.com/wiki/Console/Don't_Starve_Together_Commands#Network.2FServer_Commands

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

Please be aware that the content of this thread may be outdated and no longer applicable.

×
  • Create New...