Request: option to keep the (dedicated) server ticking even when empty

Kadigan KS-b

New member
Hello; first post. Name's Kad (also on the Discord server). May be a very short introduction, but I suppose better this than nothing, right? 😉

Anyway, moving on.

The way I have my game set up, there's a lot of inventory and high stack sizes. My father likes going through the motions, and likes to build/craft stuff -- and, when chilling out, I like to do that as well. However, there's one particular issue I keep running into: whenever I have a crafting queue that's significant (8~10 real-time hours), I have to keep my gaming PC running with the game running on it, in order to see it complete sometime before next week...

What I need, is for the server to keep ticking when all players leave the game. The way we have it set up, there are no blood moons/hordes, and the zombies do little to no damage to blocks, so it technically shouldn't affect us negatively (and, in all honesty, it could provide an extra layer of challenge if game hosts could choose to demand players be on-line at specific times).

The way I see it -- the game already does most (if not all) of the things it would need to in order for this to work; it only takes one player for all queues to keep ticking on. So why not have the option to remove that requirement?

I wouldn't mind a separate executable that could create a "dummy player" that would be logged in all the time, if it were possible -- that's a solution as well. However, while I possibly could reverse-engineer enough of the protocol to get it working, I doubt it'd pass STEAM peer verification.

Suggestions?

 
Last edited by a moderator:
To clarify, since someone mentioned these on Discord:

- I do not wish this to be a default option. I only ask that it be an option, so that I (and others like me, if they're out there) could use it. Every other player/admin that do not wish this be thrust upon them need not worry: if this is added, it will not affect any server that doesn't explicitly turn this on.

- While it is true that I can simply purchase a second copy of the game on sale, that's not all of the expense required to make this work. I would also need to put together a second PC to run it, a second STEAM account (not sure about the rules there, but IIRC one person = one account, so I could potentially be running afoul of the STEAM Subscriber Agreement this way), and not least of all: I'd have to pay for the electricity the PC would consume. As you can see, this is not an ideal solution.

- While it's true that I could simply share the game in my library, this only removes the issue of having to have a second copy; I'd still need a second PC and a second STEAM account to run it from, I'd still need to pay for the power the PC consumed, and... it adds a different constraint: I wouldn't be able to play anything else while that's happening.

All I'm asking is for a server-side configuration option (or even a command-line switch, like -tickonempty) to fix all this.

 
Last edited by a moderator:
I don’t understand what you are trying to accomplish.

Is the issue it takes too long to process stone into concrete for a massive build?

if this is the issue why not multiple furnaces or mixers or whatever?

Are you trying to build something ridiculously sized? Why not enable cheats?

I just don’t understand what in the game could take 10 real time hours to process. 

 
That's the thing - I have cheats enabled. That's not the point.

I want things to continue running in the background. That's the end goal, here. It's not an XY problem, I'm not trying to solve A by having B. My goal of having things going is to have things going. I want to come back in and pick processed stuff up.

 
It's obviously not going to be a priority issue, I'm aware of that. 🙂If anything, I was mighty surprised this doesn't actually exist as an option.

 
I still don’t understand why you need the game to run 24/7 with no players but you can play the game on the same machine that is running the server game client. I do it every week. Get a second copy of the game, second steam account and on the machine that is running the world log in as a player with admin rights, enable god mode and travel far underground then stay there forever. 
You and other players join the game as you do now. Game keeps running when others log off. Admin account has god mod on so will never starve and is deep underground to never be seen.

You also could enable invisibility for the admin account then no zombie or player will ever know it is there.

 
Is there a way to mod the workstations to increase the crafting speed? If so, you could just make the workstation crafting be 10x faster or something like that.

Or when you log in, just throw away an equivalent amount of base materials and grab the processed materials from creative.

 
> Yes, that would be a pretty easy mod to make.

Already did. Can't mod everything however, so while some things take minutes, others take 8-10 hours at my stack sizes. ;)

> Get a second copy of the game, second steam account and on the machine that is running the world log in as a player with admin rights

Apart from purchasing a second copy of the game, I would also need to purchase a GPU capable of running it (the server machine doesn't have a GPU). While it may not be a huge cost, it's still a cost.

Also, my server runs on Linux. From what I can tell, getting the client to run on Linux is still a headache, and it could very well make the minimum requirements higher.

And again: if this were a config/command-line switch, none of this is necessary. This is extra load (running a full-blown GPU game client), at extra cost (second copy + hardware to run it).

I'm not sure why you're trying to convince me that the current situation (as outlined above) is fine - it really, really isn't.




 
 


 
I also like to have this option.

If read several request like that over the last few years.

However i somehow understand why it is not implemented. The balancing is aligned around the bloodmoon. At first, if time keeps running on a server, this would allow players to skip every bloodmoon. And it will screw "timing". With the default 60min day and horde every sunday a bloodmoon would occur every 7 hours, so even varying in time. So you might play several realtime days and not encounter a single bloodmoon by accident and next time you log on you will probably join directly into a bloodmoon, which might cause problems.

The crafting times are also somehow a limit between bloodmoons. You should not be able to craft unlimited amounts of whatever between two bloodmoons. At least you need to scale by using more forges/workbenches/chems/etc.

On the other hand, if everything is balanced around the bloodmoons, why is there an option to turn bloodmoons off. If a player intentionally wants to screw all balancing, let him do so.

Imho letting time running with no player would require a complete rebalance of the game. With the current values, it would be massively overpowered and so you can indeed also use creative menu to cheat yourself 10 stacks directly of 7,62 instead of craft them with a 10 hour job and search for ways how to exploit these 10h.

 
... Also, my server runs on Linux. From what I can tell, getting the client to run on Linux is still a headache, and it could very well make the minimum requirements higher....


Buying a second copy just for this is not a sensible suggestion, no question about that. But the reason above has no foundation. While there may be slightly less FPS on average on linux and there are sometimes graphical bugs because of GPU driver differences, support for linux has been exemplary on the whole. I have been playing since A15, on linux, and never needed to skip a day playing the vanilla game. Mods sometimes create problems, but never vanilla.

Developers are very hesistant to add options. The chance that this option will be added because of your problem is pretty slim as creative mode is easily able to simulate this: Make a writable storage box and write "forge" on it. Whenever you need forged iron, take a stack of scrap iron out of it and drop it on the floor. Add a corresponding stack of forged iron from cm. Voila, the instant forge.

By the way, the forge seems to get an overhaul in A20 or A21, with the smelting phase being removed. It could make modding of the production times easier.

 
... *le sigh*

The game doesn't really appeal to me, to be honest. My father wants to build stuff, and I do this for him. 🙂 For me... I'm going through the motions, wasting a bit of time away on gathering resources, processing them, and then stockpiling them. That's my fun in this game - building warehouses, essentially.

Spawning resources in via the CM takes that (along with any remaining enjoyment) out of the game, for me. But I also don't have enough time to spend 10-12 hours in game sessions waiting for things to finish, nor do I wish to sit around twiddling my thumbs. Right now, the ratio of gathering-to-processing is about 1:20 for me, and that's still taking hours. I would much rather pop on for 30 minutes, gather some stuff, set it to process... and quit 'till tomorrow. Rinse, repeat.

The problem, though, is that my father doesn't want to play alone, so if I'm not playing - he's not playing, either. And right now, this whole "wait a few hours for stuff to process" is killing my enjoyment of the game (as much as I can enjoy a game that doesn't appeal to me in the first place).

I don't see why adding such a setting would require a rebalance, considering that it wouldn't be a default option. It's the sentiment expressed by Liesel: if people want to unbalance the hell out of their game, why not let them? There already is an option to set the world to perpetual day (or night, if you want), as well as having blood moons every other cycle... so why would this change require rebalancing that the others didn't?

I'm not expecting miracles, really. Maybe someone in the dev team will see this and be convinced, and the change turns into 3 lines of code. That would be nice... but if not, it's not the end of the world (though it will, most likely, hasten the abandonment and death of our dedicated server).

While there may be slightly less FPS on average on linux and there are sometimes graphical bugs because of GPU driver differences, support for linux has been exemplary on the whole. I have been playing since A15, on linux, and never needed to skip a day playing the vanilla game. Mods sometimes create problems, but never vanilla.


I don't honestly know about that... I'm a server guy, primarily. I understand CLI. Getting drivers and GPU and stuff working has never been something I do well, under Linux, and I've seen friends struggle with this over the years as well. I guess I've built up an aversion to even trying this, and the (admittedly cursory) Google search on "7 Days to Die" and "Linux" didn't give me encouraging results - one of them even mentioned devs suggesting people run it under Wine, and I know how much of a pain Wine is.

So, yeah, if that ruffled your feathers somewhat, blame it on my ignorance. It's still not something I'd enjoy dealing with just for the sake of running a dummy game client. :)  

And yeah, we also run mods on the server (a crapton of additional buildables), so if that's potentially a source of issues - that makes me want to try it even less, somehow. ;)

 
Last edited by a moderator:
I don't see why adding such a setting would require a rebalance, considering that it wouldn't be a default option. It's the sentiment expressed by Liesel: if people want to unbalance the hell out of their game, why not let them? There already is an option to set the world to perpetual day (or night, if you want), as well as having blood moons every other cycle... so why would this change require rebalancing that the others didn't?
I think you didn't understand my post completely. ;)

I'm a little ambivalent about this, because

on the one hand i assume that would be an (technically) easy change and easy to add as an option and my general opinion is "if people want to "break" their game, let them do so".

on the other hand the game IS completely unbalanced if time keeps running. So you are requesting a change that is completely against on how the game is supposed to work. But the devs understandably follow a plan on how the game should work and don't care for corner case settings like your request, especially if this change breaks basically everything.

But because this should be a very little change, i assume one of the dev should be able to "implement" this easily in (far) less than 1 hour of work. Pretty sure it's just remove the check that stops the time if no player is online from the source... done... If my assumption is correct, for gods sake simply add that f*cking option. Wasted 3 hours of discussion and probably even more thinking about it for a change that takes only 10 minutes.

Maybe someone can even disassemble the binary, find the correct jump instruction, hex-edit it to "jump not"... could probably work. 🤣

 
It's not "a change that breaks basically everything", it's "an option that allows you to break basically everything" -- just like with daytime settings, blood moon frequency, zombie damage etc. The distinction is that things only get broken if you switch it on -- which is already something you can do with mods (take any one mod that increases inventory or stack size, and all balance is already shot to hell). So I don't see how it's any more "game-breaking" than the other options already are.

I'm honestly not expecting anyone to balance the game for me with that setting in mind. Just let me switch it on, and let me worry about how balanced the game will be afterwards. Why does it matter how I enjoy the game? Provide me the option and let me decide how I'll go about having my fun. :)

And - I hope the change is as simple as you say. I don't expect it to be. But here's hoping! ;)

There are two notable areas where this mode of operation could cause issues -- zombie drops (from zombies killed when you're not there), and supply drops (which, as I understand, tend to drop near a player -- which may not work well if there's no player around). Both have to do with resource exhaustion as well (tracking too many things)... but please, let me worry about it. Besides, it's already heavily implied that you should restart the server once every 24 hours, so... could it be that much worse? :D  At worst, if there are 0 players, these drops could simply not happen.

WARNING: OPINION.

Also, if you're a dev and you're refusing to add in options to customize the game, because then it wouldn't play how it was "supposed to", then you're either Kojima and you're not making multiplayer sandbox, or you're Apple and you're evil.

 
Last edited by a moderator:
Every option they add during alpha, they have to test and debug with every change they make to the game.

Adding an option like this which would appeal to such a niche audience would not be likely because of this.

There have been many requests to add optional sliders to turn off specific zombies or animals, turn off digging zombies,  turn off sleeper respawns, etc. Those options also have not been added, because during the development process they only add options they feel are necessary and that they feel are worth keeping updated, tested and debugged.

Before gold, they will likely revisit the options available when creating a game, but quite likely not until then.

In the meantime, they keep the game easily moddable so that you can customize the game to your preference.

 
I think you didn't understand my post completely. ;)

I'm a little ambivalent about this, because

on the one hand i assume that would be an (technically) easy change and easy to add as an option and my general opinion is "if people want to "break" their game, let them do so".

on the other hand the game IS completely unbalanced if time keeps running. So you are requesting a change that is completely against on how the game is supposed to work. But the devs understandably follow a plan on how the game should work and don't care for corner case settings like your request, especially if this change breaks basically everything.

But because this should be a very little change, i assume one of the dev should be able to "implement" this easily in (far) less than 1 hour of work. Pretty sure it's just remove the check that stops the time if no player is online from the source... done... If my assumption is correct, for gods sake simply add that f*cking option. Wasted 3 hours of discussion and probably even more thinking about it for a change that takes only 10 minutes.

Maybe someone can even disassemble the binary, find the correct jump instruction, hex-edit it to "jump not"... could probably work. 🤣


It isn't only about the potential 10 minutes it costs to add such a switch into the game even though it is more like a few hours of work:

1) The dev needs to add the option flag to the code,

2) then add the option to serverconfig.xml,

2a) and make sure the parser for serverconfig.xml recognizes the option

3) then add the option to the GUI (with all the problems of formatting and moving stuff around so it looks good again)

3a) and add the boiler plate code that handles the new GUI option

4) then add a few lines of code that let the timer run on if that flag is set (this step is probably the smallest part in it).

5) Then test that setup, potentially correcting any bugs (which are bound to crop up because with so many steps in so many different parts of the total code base a mistake or omission is very likely)

It is also about the GUI real estate that the option occupies. Most developers want single-page non-scrolling options and not too many tabs. This option potentially competes with lots of other sensible options people were asking for that want to be on that option page

It is also that any option that gets added adds at least one new test case and one mode of operation the devs and testers of the game have to check upon and support. If we look at permutation of options, it even doubles that number.

It is one of the most common misconceptions of non-programmers to underestimate the work necessary to support options.

 
Last edited by a moderator:
1) unit tests

2) unit tests

3) can be a CLI switch instead (and not required for the listenserver at all, since it doesn't keep running when nobody is playing)

4) this one would actually require proper testing, to see if it at least doesn't actually break the game somehow

5) can technically be ignored, if defined as "unsupported configuration" (been done before)

Potentially doubling - yeah, okay. Actually doubling? Doubtful. This is a rolling alpha release; most stuff that isn't directly affected could be relegated to bug reports, assuming all that many people actually end up using the option. Consider: the game is expected to run just as if there's a player attached (so most issues are already tested for); if it doesn't in some way rely on client feedback to run, not all that many components should theoretically be affected (and if it does, this would be a sizeable changeset, which puts it outside of scope in a hurry).

 
Last edited by a moderator:
It is one of the most common misconceptions of non-programmers to underestimate the work necessary to support options.
I'm a software developer 🤣

This option is only relevant for the dedicated server, because an ingame host with no player "online" makes no sense at all.

So basically, change the condition to (not) stop time, add to serverconfig.xml (hopefully you are using a generic XML-parser, then it is really not a big deal) and done. No need for any GUI changes and half of your reply can be dropped completely. ;)

Ok, there is further effort for testing... but this should really not be a big deal.

 
In the meantime, they keep the game easily moddable so that you can customize the game to your preference.


If this could be achieved by a mod, I wouldn't even bother with starting a thread. :)  

I'm a software developer 🤣


So am I.  🤣 But I don't deal with shrinkwrap like this, and I expect the specifics to be somewhat different.



 
Last edited by a moderator:
Right, there is no need for a GUI. That actually would increase the chance for this option greatly I would assume.

1) unit tests

2) unit tests

3) can be a CLI switch instead (and not required for the listenserver at all, since it doesn't keep running when nobody is playing)

4) this one would actually require proper testing, to see if it at least doesn't actually break the game somehow

5) can technically be ignored, if defined as "unsupported configuration" (been done before)

Potentially doubling - yeah, okay. Actually doubling? Doubtful. This is a rolling alpha release; most stuff that isn't directly affected could be relegated to bug reports, assuming all that many people actually end up using the option. Consider: the game is expected to run just as if there's a player attached (so most issues are already tested for); if it doesn't in some way rely on client feedback to run, not all that many components should theoretically be affected (and if it does, this would be a sizeable changeset, which puts it outside of scope in a hurry).


Doubling is the upper limit, just 1 more is the lower. I also don't think devs want to add unsupported configurations even if they technically can wash their hands of it. Players tend to ignore such details when they complain.

In what way do unit tests help in writing the code? And unit tests have to be written as well. And considering the state of actual software development who knows whether TFP uses unit tests at all.

 
Last edited by a moderator:
Back
Top