So, I got an idea for future games, keeping servers online with a file or something, atleast so I can host it for free with uptimerobot or cronjob, or some free hosting site. Like, I want a multiplayer server to never shut down, even when there are no players.
So in short: Keeping a roblox server online even with no players, but all of this for free. (i got no mone)
What about a bot? I heard some big upcoming survival game will host multiplayer servers to basically save the game but without datastores, since their game will be pretty big.
Well, short story:
You have to save EVERY property, and if you have multiplayer servers it wont really work tho. And some games I make do have a lot of scripts and you cant write those. Also, a lot of values, and stuff like that. So you would have to save every property that exists. And you cant write scripts tho.
This is a stupid idea, the only way to keep a server up is use a bot, which sure, isn’t very hard. But seeing as though it’s abusing Roblox’s servers and you’ve posted this in their forum, I would guess it wouldn’t last too long. You can’t use schedulers for this in any case, as they’d have to be on very peculiar intervals, the longest you can use game:BindToClose(callback) for is 30 seconds.
A server also has a maximum life time if I recall correctly defined by Roblox, which might be of several days, but it’s still a limitation to consider.
If you have a good reason to be doing anything like this at all, explain why and what you’re trying to achieve, then tell us and we’ll help out alternatively.
Alright, im making a survival game wich could become multiplayer some day, and I want the multiplayer servers and singleplayer servers not to use Datastores, since you would have to save every single thing inside a folder, even unions, meshes, values, that would not be funny to do, and it would probaly break fast. So instead, hosting a server, and keeping it always online so it never ends, well, maybe a few days for a limit would be good. If this is all possible, I would say theres a limit for the servers, so that means some time the server will end and ur progress will be gone.
Seems like you’ve already come up with a answer before even making the post. If you believe its not possible then it won’t be. The whole point of programming and developing is to problem solve.
You have a problem: How do I always keep a server online.
The facts: You cannot, Roblox will shut it down when there’s no players online.
The solution? Possibly come up with a way to save data for persistance of a server instance and/or load that data when a new server starts. Thinking about it that way. You now have a new problem. How do you know which data instance a server should load?
It’s very much possible to save every possible item in the server and move it onto a data store to be loaded some other time. It will never be feasible to keep a server permanently online.
thinking of that, like normally you have userid’s, you could replace that with the server jobid or name, and check for other servers online if they have a active server name, if so a gui would give them a error that the name and datastore is in use
You could keep saving player data normally. And come up with your own server instance. For instance lets say you have a list of servers.
Alpha, Romeo, Zulu. Then you would save Zulu to the Zulu instance in your datastore as a global datastore. Then you can save player data under a Zulu key. Then when a new server is created, you can ask and see if a Zulu instance is running. if not you can load a Zulu instance from the datastore for persistent data.
It’s definitely a lot of data. And will definitely take some time to get a decent solution. All you have to do is try.
It’s basically saving data in the datastore under the server instances name. So for each server you have under the servers tab of your place. Each one would get its own unique name. Something similar to QuarantineZ’s server list.
Right so persistent hyper-realism. In terms of game design this definitely seems interesting, but in terms of execution:
Meshes don’t actually have to be saved, they exist and can be used, you’re fine there.
Unions will be hell, even with live CSG, store the members of each union, their positions, and the resulting position then operation type I guess.
Values are easy to save, even in a cluster of random instances, as long as the instance names are fine, a recursive selector and saving :GetFullName() and the Value on each value that needs to be saved would be fine.
Don’t save properties, have property templates based on an identifier pre-made, and save the identifier instead.
A DataStore is not the best way to do this with possible size limitations, using a proper database would be a little more forgiving.
With this much crap already planned to pollute the workspace, keeping it online constantly would be a hard hit to memory, so please don’t stick to that plan.
Keep in mind the same solution is also possible with @RigidVellerium 's suggestions. You can do the same saving but with a real database instead. Can’t imagine what that might cost though.
JobId is unique to every run, so that’s a waste of time/space. If your server has a name, sure, enjoy. I’m still against DataStores for this kind of storage though.