Help with Mail System

Since I suppose you want those DM’s to persist (I saw that you want to contact offline people too, so best bet is you want it to persist), then you should use DataStores. Although you could create your own system, a good approach is to use ProfileService and the GlobalUpdates system that includes ProfileService. If the data takes too long to arrive with GlobalUpdates, you can use MessagingService to check if they’re online, and ask the server they are in to save their data, so that the GlobalUpdate arrives quicker. You can view this on ProfileService’s documentation