Jump to content
  • The forum downloads section will be removed on Jan 1st 2023. Players may still download mods that are currently hosted, but new submissions are no longer being accepted. Mod makers are advised to relocate their mods to alternative hosting solutions.

Shard configuration mod 2.0.3


1 Screenshot

About This File

Shard configuration mod

Shard configuration mod allows server admins to make migration links between their individual servers/worlds/shards.

This mod is made for dedicated servers and has no use in standart Don't Starve Together worlds created in client. This mod is also not needed if your dedicated servers run only two worlds/shards in one cluster (default connections works fine for 2 worlds/shards). If you are server admin and you want more than 2 connected worlds this is mod for you!

After all servers are set up and online and simulation on them is paused, when first player connects to any server and simulation is unpaused the mod will set up portals in the world to be linked to other worlds.

This mod uses standart 10 sinkholes generated in the world. If you manually create more, they will be used after server restart. If you want more than 10 connections from/to one world you have to create new sinkholes/stairs. Sinkholes not used are turned off and plugged.

 

Steam workshop

Mod is available on steam workshop

 

How to setup this mod

I created default preconfigured cluster with 3 shards. You can modify it as you wish. Download it here: DefaultCluster.zip

Since mod version 1.10 it is also possible to create single directional connections. New mod setting called "OneWayConnections" was created which contains world that should be connected unidirectionally. Example mod overrride settings below:

["workshop-595764362"] = {
	enabled = true,
	configuration_options = {
		["Connections"] = {
        	["1"] = { "11", "12" }, -- bidiractional between 1-11 and 1-12
			["11"] = { "12" } -- bidirectional between 11-12
		},
		["OneWayConnections"] = {
			["1"] = { "12", "12" } -- two unidirectional connections from 1 to 12
		}
	}
}

 

Since mod version 2.0 the slave shards can synchronize connection data from master. Slave shards will ignore connection data in their modoverrides.lua. This behaviour can be disabled by setting SyncWithMaster to false of all shards.

 

Shard config util

I created an util to create modoverrides.lua that configures this mod. Create shards, set their shard_id. Create connections between shards and set connection count. Save it and you have modoverrides.lua which will work with this mod. You still have to include other mods you want to use. Also supports one way connections.

This util is running in .NET 4.0 and won't start without it! The util is available for download from these forums by "Download this file" on the right.


What's New in Version 1.9   See changelog

Released

No changelog available for this version.

  • Like 3
  • Thanks 1

User Feedback

Recommended Comments

設置你的worldgenoverride.lua為上層社會!?

 

overworld is!?

override_enabled = true, ?

Link to comment
Share on other sites

override_enabled = true,

preset="DST_CAVE",

--開局模式-preset ="SURVIVAL_TOGETHER"默認 or "SURVIVAL_TOGETHER_CLASSIC"經典 or "SURVIVAL_DEFAULT_PLUS"三箱 or "COMPLETE_DARKNESS"永夜 or "DST_CAVE"洞穴

 

overworld!?  IS?

Link to comment
Share on other sites

18 hours ago, cs8425 said:

I use soft link let all "modoverrides.lua" link to one.

And then edit once, all update. :)

that really good idea...nice

Link to comment
Share on other sites

may be such idea. Make something like #include option, so in modoverrides will be just something like mod enable function, and all settings in other file?

Link to comment
Share on other sites

I used this mod and created  shards: 2 overworlds each with its own cave.  The 2 overworlds are connected.

 

Because the shards are generated using the timestamp as a random seed, the 2 caves are identical and so are the worlds.  When I regenerated one of each, the sinkholes that connect the 2 worlds and the sinkholes that connect to the regenerated cave get messed up because of what I assume are mismatched sinkhole relationships.  I have had the following happen:

1.  Mine a plugged sinkhole and there is nothing under the plug.

2.  I use a sinkhole to go to the caves but come out at the florid postern in the caves.

3.  I use a staircase in the caves but come out at the florid postern up top.

4,  I use a staircase in the caves and come out on top to a surface with not sinkhole, but the the terrain is bare around it like it normally would be when there is one.  

 

How do I fix this?

 

 

Link to comment
Share on other sites

[00:18:44]: Shard Configuration Mod: Synchronizing connection data from master	
caveworld         | [00:18:44]: [string "scripts/util.lua"]:89: attempt to index local 'self' (a nil value)
caveworld         | LUA ERROR stack traceback:
caveworld         | scripts/util.lua:89 in (field) split (Lua) <86-91>
caveworld         |    self = nil
caveworld         |    sep = 
caveworld         | 
caveworld         |    sep = 
caveworld         | 
caveworld         |    fields = table: 0xd0f1730
caveworld         |    pattern = ([^
caveworld         | ]+)
caveworld         | ../mods/workshop-595764362/scripts/components/sync.lua:22 in (local) fn (Lua) <6-35>
caveworld         |    oneDir = table: 0xb6c04f8
caveworld         |    biDir = table: 0xb6c08d8
caveworld         |    allData = table: 0xb6c1450
caveworld         | scripts/entityscript.lua:998 in (method) PushEvent (Lua) <985-1012>
caveworld         |    self (valid:true) =
caveworld         |       GUID = 100026
caveworld         |       name = MISSING NAME
caveworld         |       inlimbo = false
caveworld         |       persists = false
caveworld         |       OnRemoveEntity = function - scripts/prefabs/shard_network.lua:12
caveworld         |       event_listening = table: 0xb322318
caveworld         |       ShardNetwork = ShardNetwork (0xd4cce28)
caveworld         |       actioncomponents = table: 0xd8226c8
caveworld         |       prefab = shard_network
caveworld         |       lower_components_shadow = table: 0xd8226a0
caveworld         |       spawntime = 0
caveworld         |       pendingtasks = table: 0xe0fc818
caveworld         |       entity = Entity (0xb10a5c0)
caveworld         |       event_listeners = table: 0xdd6c240
caveworld         |       components = table: 0xd822678
caveworld         |       replica = table: 0xb3221a0
caveworld         |    event = OnConnectionDataChanged
caveworld         |    data = nil
caveworld         |    listeners = table: 0xd7ebd08
caveworld         |    tocall = table: 0xb6bbeb0
caveworld         |    i = 1
caveworld         |    fn = function - ../mods/workshop-595764362/scripts/components/sync.lua:6
caveworld         | scripts/mainfunctions.lua:318 in () ? (Lua) <315-320>
caveworld         |    guid = 100026
caveworld         |    event = OnConnectionDataChanged
caveworld         |    data = nil
caveworld         |    inst = 100026 - shard_network (valid:true)
caveworld         | 
caveworld         | [00:18:44]: [string "scripts/util.lua"]:89: attempt to index local 'self' (a nil value)
caveworld         | LUA ERROR stack traceback:
caveworld         |     scripts/util.lua:89 in (field) split (Lua) <86-91>
caveworld         |     ../mods/workshop-595764362/scripts/components/sync.lua:22 in (local) fn (Lua) <6-35>
caveworld         |     scripts/entityscript.lua:998 in (method) PushEvent (Lua) <985-1012>
caveworld         |     scripts/mainfunctions.lua:318 in () ? (Lua) <315-320>
caveworld         | 	
caveworld         | [00:18:44]: CURL ERROR: () <url> malformed

My server got this error, maybe because I was running the server in the docker.
In the docker, access to other containers only need to link container name.

Link to comment
Share on other sites

On 14/07/2017 at 9:27 AM, turingking said:

My server got this error, maybe because I was running the server in the docker.
In the docker, access to other containers only need to link container name.

same error here, without docker installation.

Edited by liao0007
Link to comment
Share on other sites

Would it ever be possible to colour coordinate the matching pairs of entrance/exit similar to the mod 'wormhole marks'?

Can you remove the plugged entrance/exits? Not just the plugged bit but the whole artwork, the unused stairs and unused holes.

Edited by Berwin
Link to comment
Share on other sites

 

Hello guys.

Doubt. How do I use the mod on a dedicated Linux server (Ubuntu in this case) since the mod uses .NET 4.5. Thank you very much in advance. Sorry for the translated English. " Google translator"

Original Text in Portuguese:

Olá pessoal.
Dúvida. Como faço para usar o mod em um servidor dedicado Linux (Ubuntu no caso), ja que o mod usa  .NET 4.5.

Desde já agradeço.

Desculpe pelo ingles traduzido. " Google Tradutor"

Link to comment
Share on other sites

I know this is an old post, but I was just going down this road.  The tool that generates the config requires .NET.  The mod itself doesn't, so you have to hand-craft your file.  You only need to configure it on the master, but enable on each shard.

Here is my master modoverrides.lua entry:

-- Shard Configuration Mod
["workshop-595764362"] =
	{
                enabled = true,
                configuration_options =
                        {
                        -- 1 = master | 2 = caves | 10 = spring | 11 = summer | 12 = autumn | 13 = winter
                        ["Connections"] =
                                {
                                        ["1"] = { "2", "2", "2", "2", "2", "2", "2", "2", "2", "2" },
                                        ["2"] = { "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "10", "10", "10", "10", $
                                        ["10"] = { "2","2", "2", "2", "11", "11", "11", "11", "11", "11" },
                                        ["11"] = { "2","2", "2", "2", "12", "12", "12", "12", "12", "12" },
                                        ["12"] = { "2","2", "2", "2", "13", "13", "13", "13", "13", "13" },
                                        ["13"] = { "2","2", "2", "2", "10", "10", "10", "10", "10", "10" }
                                },

                        ["OneWayConnections"] =
                                {
                                        ["1"] = { "2", "10", "11", "12", "13" },
                                        ["10"] = { "1", "10", "11", "12", "13" },
                                        ["11"] = { "1", "10", "11", "12", "13" },
                                        ["12"] = { "1", "10", "11", "12", "13" },
                                        ["13"] = { "1", "10", "11", "12", "13" }
                                }
                        }
	}

 

Link to comment
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
×
  • Create New...