I’m making a crew/clan system, and I am pretty much planned on how I’m going to accomplish it, but I’m stuck on how I should handle updates that need to be sent across servers (ex. kicking a player from the clan who isn’t in the same server, changing a member’s rank)
How do you guys handle this?
The clear answer seems to be MessagingService, but I’m not sure how scalable/reliable it is. A second option is also the convenience of the GlobalUpdates feature of ProfileService, which my game uses, but I’m not sure if its the best option to use for this type of system.
How do you handle your crew/clan/guild system with saving? Do you save all of the clan’s info to a datastore key, or do you attach ClanInfo to every individual player’s data and update that?
As long as you are saving the data when they leave its really not a big deal. My first idea was to use an epoch system that would warn the client they would get kicked but this wont work if you got a lot of players. I guess what you can do is wait till your player count is really low then update it
I’m not sure what you want me to tell you here, think of it from a exploiters perspective if you have some way of changing the code (rawset(), newproxy()) on the server you basically just put a backdoor
If you have some way of updating server side data without the servers permission, IE you are updating it offsite and not restarting the server you created a backdoor, thats the definition
No form of exploiting would be possible. The only way a client would be able to have an effect on data is if they perform an action via remote, which is sanity checked
I can only think of 2 ways for cross server messaging.
1.) Using Messaging Service
I have personally used Messaging Service for a system similar to what you are asking about, I can safetly say that I have not run into as many issues with Messaging Service.
My only complaint would be how a signal would fire seperately to each in game server a little slow.
2.) Offsite Services
You could theoretically use an offsite platform to host signals but I would see this as a pretty difficult task so I would just go with MessagingService as it does the job just as fine with a slight delay between servers.
Instead of kicking them I just created a place with an empty baseplate and called it Updating Servers, and it teleports the players there and back when an update happens.