How to make a dynamic update without the need of a server restart

How do you make a dynamic update that updates the game without the need to restart servers for the update to take effect? Like in a few other games, when an event starts, or after a countdown ends, the game updates without restarting the server.

In other games where it updates weekly, I haven’t seen servers restart for the update to appear in-game (For the applied update to occur without a server restart), so I’m not sure how it works.

maybe add it to the game before the update in like server storage, and when the event starts move everything into workspace and allow the remote events/functions to actually work

1 Like

I think it is not optimal but you need to add like the stuff u wanna add in SSS and make a script like:

while wait(5) do
 if os.time >= [upt time] then
  --import the stuff frome SSS
 end
end

Os.Time gives a number in seconds that have passed since a spisific date.
More info: os | Documentation - Roblox Creator Hub
Anyways u still need to puplish the game at some time.
Hope i kinda helped.

If you give me some more information i could help u make that system.

Depending on what type of update you’re trying to do, usually these systems involve the use of MessagingService to send a message to other active servers. Other can be done through DataStores that can also be accessed across servers.

Sometimes (or at least from what I’m aware), games use os (or UTC time) to calculate what times specific events should occur and to adjust accordingly when the server starts.
As for updates that occur on all servers at a specific time, most likely the methods mentioned above.

I personaly would Not use Messeging and Data SS

1 Like

I’m pretty sure the server does restart, it’s just that everyone is moved to an updated server. I’m not sure tho, but Idrk any other way of doing so

These sorts of updates are relatively complicated. Though the simplest setup for this would be to simply just release the actual “update” at an earlier date only to let the server ACTUALLY load the update at the time players were actually promised. You’ll need some pretty heavy internal game managing for this sort of thing to work though. Getting the “right time” for that update is just the easy part, the hard part is having the update “off” up until its time to turn it “on” without breaking the game in the process AND allowing it to update both the server and all player clients.

Let’s say you have some sort of shooter game and lets say that this is the “new update”:
“More firepower update”
1 - Two New Guns
2 - New Map (Fiery Plaza)
3 - New graphics options for the client.

With these in mind, you could simply package the new update in a sort of “content package” system. Here’s what it could look like in instance form:


Each “Update” folder contains all of the content for EVERY update rather than have everything be stored into one universal folder/model/whatever else instance.
When its the time to update for the actual players, what the game server can do is look up into the new “Update3” folder and quickly load up everything it needs to that is supposed to be “constant” content (aka the new graphics options for the client for example).
As for the rest… Well, technically the game does not really need to “save” or “copy” these things anywhere! For example, lets say that after the update, a couple players want to make a new lobby. Of course, said lobby needs to include the new map, right? Well, the simple solution to the problem would be to just cycle through all of the Update folders every time a new lobby is being created. This should allow the game to pretty seamlessly incorporate the new map all without shutting down any servers or causing other issues. The same sort of approach can be used for the guns as well.
Now do keep in mind that you do have a million opportunities to cache these sorts of things for faster access time (less time needed to load up all map selections), reduced bandwidth (aka dont send icons, text and whatever else data to the client a million times over) and overall higher performance but this should be the absolute basics of how this sort of system can work.
But of course, real implementations of this require your project to be actually designed around such functionality.

Now sadly i cant really write out detailed technical books all about how you could make this sort of dynamic update system function for your projects specifically but i hope this can at least provide some decent insight into how you could create such a update system.
If your game simply does not have the design required for such functionality then i recommend you just stick with the standard way of updating. Move everyone into “update lobbies” then move them back into the game.

Also to add onto the post… You technically dont really need MessagingService or DataStoreService in order to apply the update. Simply have all the servers count down till the update and they should all manually apply the update when the time comes.

1 Like