ServerSystem - Devlog #1 - Server creation

Hello everyone!
I decided to create open source server system what allows you to do the following:

  • Create servers (Unexpected)
  • Server list where you can connect to server
  • Ability to connect to servers even when there is no one online in them
  • Unique datastore for each server
  • Public, and private password protected servers
  • Connecting to servers using UUID (like connecting to server IPs)
  • Servers can have custom MOTD’s

The servers are currently able to store the following data:


Explanation:
Active = Tells us if server is online, if it isn’t reserve new server and change datastore to server access code to allow other people to join without creating new one, updates instantly upon change.
UUID = Servers UUID used to access the data you see on screenshot and datastores for that specific server (if you want to have your datastores separated)
PlaceID = If you have more maps in game, this will be usefull, when getting server list you can create filter to change place IDs to map names
Password = If server owner wants to keep his server private (it will still be listed in server list, however will require password to connect)
Name = Server name, can be changed. Visible in server list
Description = Server description created by owner, not visible in server list but visible when server is selected, can be used to describe the server, tell players the rules… or tell everyone how cool they are…
MOTD = Message of the Day
image (Example)
Displayed right under server name
Owner = Server owners ID, self-explanatory
MaxPlayers = Show how many players can be in the server (developer haves to select it manualy or leave it for players - the module will not let more players than max players even if there is roblox space)
CurrentPlayers = Works with MaxPlayers, updates every 30 seconds
Created = Time of creation, you can use this as you want
Server Version = If i add more stuff to the dictionary after realease this will help me “upgrade” allready existing servers


Creating the server requires you to give the module some info, parameters highlighted are ones players should be able to change themselfs (with filtering ofc).
Maxslots = You can allow players to change it (maybe even pay who i am to judge) however make sure this isn’t more than the roblox servers will allow. You can also force all servers to have same size.
CustomData = This can be your Custom Dictionary what will be saved on server (If you want to make your servers cost x robux every month you can store how many days until next payment here or other stuff)


Currently i’m working on retriving server data and connecting to server, i will edit this with link of Devlog #2 once everything will be finished: (The next chapter will have video)
Not ready yet

Edit 1:

You can use CustomData to store guild ranks, server admins names, and other stuff.
ServerData:

CustomData:
local Dictionary = {
ServerGuildName = "Warriors of the Bean Land",
GuildRank = 12,
DoGuildsReallyMatter = false
}
require(script.Parent.ModuleScript).Create("Test Server", "This is test server!", 373781098, 10, 0, 
 "ThisIsASuperC00LPassword", Dictionary)

4 Likes

This is extremely cool and useful.
Most servers only have a join but with create server, buy a server, etc. It’s amazing. (Even though it’s not even close to being done I assume.)

2 Likes

You will also be able to Start/Stop and restart server just from your’s game lobby.

One suggestion would be an admin panel…thing.
Admins get to join servers without entering passwords, free servers, shutdown/refresh any server, etc.

1 Like

Good idea, i will work on it once everything else will be finished. All server payments will be handled by you (Custom Data), or you can choose to let everyone get free servers it’s really up to you. All this module does is handling player servers and connection to them.

So would for example creating servers for the main game be free, but creating servers for a test place, cost robux be possible? (I think that made sense.) Edit: What were you using for that screenshot?

1 Like

Yep, but you would have to create that part yourself, and then simply do something like this to create new server.

require(script.Parent.ModuleScript).Create("<Server Name>", "<Server Description>", <Place ID>, <OwnerID>, <Max SLots>, <PasswordBlankToDisable>, <CustomDataBlankToDisable>)
Edit: DataStore Editor V3

Cool, I’m sure many other people will use this when it’s finished.

1 Like