Need help, Creating a Smart Multiplayer Save-System

Hi Dev Forum, im making a Project Zomboid inspired game, and im starting work on multiplayer/lobby system.

Im currently pondering of the best way to go about this lobby system for multiplayer.

In Project Zomboid playing with friends requires a “server leader”. This person sets up the server and invites others to join. When players leave, their progress is saved, and the server continues running. However, if the server leader leaves, the server saves, shuts down, and all players are kicked. This is because only the leader can restart the server, meaning everyone else has to wait for them to come back online before they can play again.

I was thinking of making it this way, as it would be the easiest. Though a more complex server system like Rust/DayZ might be better for the players.

However this would also be much more difficult. And unlike Rust/DayZ, players will be able to make many saves/severs, and i only want players to see other saves/servers they’re invited to.

My current plan is a data store with a list of all servers. Each entry includes the server name, save data store, and a list of allowed players.

When joining the game, player will loop through the datastore with the list of all servers. Then players would see a list of all servers they can join based if they’re whitelisted. If a server with their chosen save is already running, they join it. Otherwise, a new server starts with that save.

Is this system feasible for a large scale? Is it worth the effort?

Are there any games with a similar save system, on Roblox?

Also if have any tips or tricks on how to implement a system like this lmk.

2 Likes