Multi World Adventure Server and time / season syncronisation


Recommended Posts

Hello everybody,

I started this thread because i'm encoutering some problems with season and day segments syncronisation between my shards.

This is a 6 multi world server wich has been created in order to reproduce some kind of adventure mode, regardings to Don't Starve ROG.


So here's a part of the structure :
Shard_Connections_Plan.thumb.jpg.41c633fbb338e5e43078fbbb839c68d6.jpg

modoverride.lua using "Shard configuration mod" (same in each shard folder's)

["workshop-595764362"] = {
        enabled = true, 
        configuration_options = {
            ["DeleteUnused"] = false,
            ["SyncFromMaster"] = false,
            ["Connections"] = {
                ["1"] = { "2", "2", "2", "2", "2"},
                ["2"] = { "3", "3", "3"},
                ["3"] = { "4", "4"},
                ["4"] = { "6"},    
                ["6"] = { "7"}, },
            ["OneWayConnections"] = {                                        
                ["3"] = { "2", "2", "2", "1", "1"},                
                ["4"] = { "3", "3", "3", "2", "2", "1", "1"},                
                ["6"] = { "4", "4", "4", "3", "3", "3", "2", "1"},
                ["7"] = { "6", "6", "6", "6", "6", "6", "6", "6", "1"},  }, }, },

parameters for each shard :
Season_Day_Segments.thumb.jpg.516068314a247a7f5df675e64f89c592.jpg

For each shard :
-Every year is 70 day long,
-Every day is 16 segment long.

worldgenoverride.lua (Master(1))

return {
  override_enabled = true,
   misc = {
               season_start = "autumn",
               autumn = "longseason",
               winter = "shortseason",
               spring = "default",
               summer = "shortseason",
               day = "onlyday",
				   },
			}

Works for the Master shard, but fails for slave shards:
console.thumb.jpg.4ef4f00880d4b381eb8b82c9c991983a.jpg
Command lines for Winter(3)

TheWorld:PushEvent("ms_setclocksegs", {day=6,dusk=5,night=5})
TheWorld:PushEvent("ms_setseasonlength", {season="spring", length=3})
TheWorld:PushEvent("ms_setseasonlength", {season="summer", length=4})
TheWorld:PushEvent("ms_setseasonlength", {season="autumn", length=3})
TheWorld:PushEvent("ms_setseasonlength", {season="winter", length=60})
TheWorld:PushEvent("ms_setseason", "winter")
TheWorld:PushEvent("ms_nextcycle")

It finally works, you can see the new paramenters have been applied, and for the first day everything rocks, but...
Every new day spent in an overriden world, you can see DayClock and SeasonClock both changing back to the Master shard parameters.
So it looks like we can't "de-syncronize" server clock's from each other.

Can someone help me ? Thanks =)
 

Link to comment
Share on other sites

I'd assume it's hardcoded that every day all the slaves synchronise with the master. (Which is generally a good thing, so shards don't run away from eachother.) You could try some modding to do either of the following:

1. Completely revamp the synchronisation process so the shards are allowed to have desynced seasons.

2. Create a small mod/script that executes the Push events you found out to be working just after each day starts.

Link to comment
Share on other sites

 

Quote

1. Completely revamp the synchronisation process so the shards are allowed to have desynced seasons.

I think i prefer your first option, i don't really know how to do that, because i never coded the innner game code yet...
Would you help me ? :D

Link to comment
Share on other sites

5 hours ago, k2trix said:

I think i prefer your first option, i don't really know how to do that, because i never coded the innner game code yet...
Would you help me ? :D

Well.... I'd like to help you, but I only know how things work, not how one can change these kinds of things. :wilsoalmostangelic:

After a quick search I found this mod though. It kinda seems like EXACTLY what you need:
https://steamcommunity.com/sharedfiles/filedetails/?id=1396615817

xD
Good luck :wilson_vforvictory:

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.