Scripting HelpersARCHIVE
A little piece of Roblox history. Preserved for everyone, one question at a time.Read about the archive →
COMMUNITY QUESTION

(?) I need help converting this script into leaderstats saving script

my problem is that every save script i have is broken and i need an script that will save like this one

local ds = game:GetService("DataStoreService"):GetDataStore("-tCodes01")

game.Players.PlayerAdded:Connect(function(player)
	local key = "codes-"..player.userId
	local folder = Instance.new("Folder",player)
	folder.Name = "Codes"
	local save = ds:GetAsync(key)
	if save then
		for i = 1,#save do
			local temp = Instance.new("BoolValue",folder)
			temp.Name = save[i]
		end
	end
end)

game.ReplicatedStorage.EnterCode.OnServerEvent:Connect(function(player,reward,code)
	local key = "codes-"..player.userId
	local currency = player.leaderstats:FindFirstChild("Money") -- Name of your currency
	currency.Value = currency.Value + reward
	
	local bool = Instance.new("BoolValue",player.Codes)
	bool.Name = code
	bool.Value = true
	
	local activated = {}
	for i,v in pairs(player.Codes:GetChildren()) do
		if v:isA("BoolValue") then
			table.insert(activated, v.Name)
			ds:SetAsync(key,activated)
		end
	end
end)

8 comments

0

You haven't explained the problem you have been having, without this we cannot help you.

0

i need help to make this script save leaderstats

0

and not save codes

0

i need it to save money grass Total grass and Rebirths

0

let me guess you took this script from somewhere else

0

i just need help

0

XxxxLloydxxX lol

0

This website is for asking problems with your scripting, not a free scripting service when something for you doesn't work or you want something to change.

1 answer

I have a script for leaderstats but if you ever want to reset the leaderstats, it won't work since the data is burned onto the game. Here is the script:

local dataStoreService = game:GetService("DataStoreService") local myDataStore = dataStoreService:GetDataStore("myDataStore") local players = game:GetService("Players") local plrsLeft = 0

players.PlayerAdded:Connect(function(player) plrsLeft = plrsLeft + 1 local leaderstats = Instance.new("Folder") leaderstats.Name = "leaderstats" leaderstats.Parent = player

local cash = Instance.new("IntValue")
cash.Name = "Coins"  

--Change this name to the name of your currency. cash.Parent = leaderstats

local success1,response1 = pcall(myDataStore.GetAsync,myDataStore,player.UserId)
if success1 then
	cash.Value = response1
else
	warn(response1)
end

while true do
	wait(30)
	local success2,response2 = pcall(myDataStore.UpdateAsync,myDataStore,player.UserId,function(oldValue)
		return cash.Value
	end)
	if not success2 then
		warn(response2)
	end
end

end)

local BindEvent = Instance.new("BindableEvent") players.PlayerRemoving:Connect(function(player) plrsLeft = plrsLeft - 1

local success,response = pcall(myDataStore.UpdateAsync,myDataStore,player.UserId,function(oldValue)
	return player.leaderstats.Coins.Value
end)
if success then
	BindEvent:Fire()
else
	warn(response)
end

end)

game:BindToClose(function() while plrsLeft > 0 do BindEvent.Event:Wait() end end)

This discussion is preserved as it was. New answers, comments, and votes are closed.