I need a way to display the quantity of a specific pet stored in the game. For instance, if there are 30 Bats saved across many players using ProfileService, I want to find a way to print “30” to represent the total count of Bats saved on the ProfileService, or even just a way to print all of the data saved on ProfileService at once and then do the calculation from there.
The way im currently saving pets data in my game is by saving a table of the players pets into a profile data called Inventory:
I want to add that the data is ALREADY saved in the game across players, so I cant track of people that buy pets now since its too late, aswell as theres a trading system.
If anyone knows how to achieve this or has any insights on how to approach it, I would greatly appreciate your help.
local datastore = game:GetService("Datstore")
local pets = datastore:GetGlobalDataStore("pet-id-0")
local data
repeat task.wait()
suc = pcall(function()
data= pets:GetSortedAsync(false,100)
end)
until suc
local currentnumber = 0
for i,v in pairs(data) do
if v.Value > currentnumber then currenumber = v.Value end
end
print(currentnumber)
and to set it you could do:
local datastore = game:GetService("Datstore")
local data
local pets = datastore:GetGlobalDataStore("pet-id-0")
repeat task.wait()
suc = pcall(function()
data= pets:GetSortedAsync(false,100)
end)
until suc
local currentnumber = 0
for i,v in pairs(data) do
if v.Value > currentnumber then currenumber = v.Value end
end
game:GetService("Datstore"):GetOrderedDataStore("pet-id-0"):SetAsync(currentnumber + 1,currentnumber + 1)
Or you could just use a external datastore im pretty sure.