From what I understand servers are like jars. Once one is full (exceeds the max player limit) a new one is created. However the database is per Game (not server) and its a general place where to save players progress, crafted stuff, etc.
So theoretically if I am in server A and my friend in B, when he crafts some thing in some location, it would appear magically also for me? I think its like that in Bloxburg?
Theoretically I could get server ID and store under it the data, but I don’t think that’s a safe approach as server can shut down for some reason and create new one with new id, etc.
It would not magically appear, you would need to deliberately load that Database record and then adjust the world based on it. Roblox Databases also have caching therefore the data may not appear immediately in all other servers.
If you want immediate communication between servers directly what @Vaschex mentioned would work, using this service allows you to setup channels, and communicate cross server with them, you can read more about it here: MessagingService | Roblox Creator Documentation
With MessagingService you can send ‘events’ as messages from server to server. If Player1 meets the needs for the item to magically appear, you could send a message to Player2’s server to create the item for this player.
I do want to sync stuff between servers, so, for example, players do not craft entities at same location, what is a bit of a disaster
At same time, I don’t want this magical/ghostly appearance - like some dude on server A is making good progress and stuff is synced to B and just pops up.
I think I need to rethink my game with this all in mind. Ideally I would have servers 1,2,3,4,5 and for each own database. Players get limited reserved spot on server they first entered, so they can return and enjoy they progress. But that creates other problems - like idle/not returning players and not sure is really possible.