Is it possible to call the PlayerDataStore module on a player that has not entered the server (Ex: Banning someone for hacking and stuff), or is a different system needed?
“Is it possible to call the PlayerDataStore module on a player that has not entered the server”
Yes, the system doesn’t care. You can use “:GetSaveDataById( id )” instead of “:GetSaveData( player )” to get the data for an arbitrary userId that may or may not actually be in the server at the time.
[quote] “Is it possible to call the PlayerDataStore module on a player that has not entered the server”
Yes, the system doesn’t care. You can use “:GetSaveDataById( id )” instead of “:GetSaveData( player )” to get the data for an arbitrary userId that may or may not actually be in the server at the time. [/quote]
Awesome, now I can get a legit ban system in place.
This seems like a good place to ask this:
My game saves strings anywhere from 0 to 1,800,000 characters long (10s of thousands is for a small fort, 100s of thousands for a good city, and a million to 1.8 million for ridiculously detailed floating island cities.)
I use Data Persistence right now. I can save million-long strings at once. Cons: instability (as evident with the many instances of people’s DP getting wiped, roblox.)
Data Store seems to be limited at 65,500 characters long for both the key and the value combined. Pros: stable saves, accessible if they’re not even there. But that arbitrary limit does not bode well for the throttling.
Can this solve my issue Stravant? If not, what can I do?
You can only use DataPersistence for that. What you really need to do in that case is have some sort of blob-store (Which the DataPersistence actually is). The DataStoreService is not intended for storing that sort of big-data value. It’s meant for storing data attached to players and what not, various statistics, not for storing giant chunks of game-state.
On the other hand, you can ask yourself: Do I actually need to be storing that much data? Do you actually have a MB+ worth of data to store? Or are you actually only storing a few KB worth in a not very efficient way? I have a feeling that you could actually be storing quite a bit less data than you are.
If you are dealing with chunks of data that large, you should use HttpService and a remote database.
I can save a model with a bunch of different types of changes at about 150 characters per brick. That’s terrible, I know. But it is 17x better than DataPersistence saving Instances as DataCost for Instances is through the roof. (Speaking of which, .DataCost is a read-only value that is RobloxLocked… why.)
I can’t hope to match the compression rate of saved places (which is more than 10x better than what I have?). I’ll try this httpservice out… knowing nothing about the limitations. x-x
The only limitations you would have with HttpService are those of your server/site.
(And the amount of requests HttpService can do per minute, but that shouldn’t matter here)