Shop with DataStore

To change the leaderstats on the server you can’t use a local script. That would be why they reset to the server value.

Agreed with @Dlbsp1983 . You can easily use a remote event to send data from a local script to the server script. You can make a function on the script based on the values it receives from the local script, subtraction, adding etc. other values.

1 Like

I made a module for remove coins does it’s work?

Are you calling the module from a server script? If you need help with remote events alvinblox has some great tutorial vids on yt.

1 Like

That horrible, it’s working in testing but not in team test

Here are my script:

Leaderstats Script Add/Remove Values
game.ReplicatedStorage.EVENT.COINS.remove50.OnServerEvent:Connect(function(player)

player.leaderstats["Coins 💰"].Value -= 50

end)

game.ReplicatedStorage.EVENT.COINS.remove250.OnServerEvent:Connect(function(player)

player.leaderstats["Coins 💰"].Value -= 250

end)

game.ReplicatedStorage.EVENT.COINS.remove500.OnServerEvent:Connect(function(player)

player.leaderstats["Coins 💰"].Value -= 500

end)

game.ReplicatedStorage.EVENT.Multiplier.add1.OnServerEvent:Connect(function(player)

player.leaderstats["Multiplier"].Value += 1

end)
Leaderstats script
game.Players.PlayerAdded:Connect(function(player)
	local leaderstats = Instance.new("Folder")
	leaderstats.Name = "leaderstats"
	leaderstats.Parent = player
	
	local currency = Instance.new("IntValue")
	currency.Name = "Coins 💰"
	currency.Parent = leaderstats
	
	local data
	local succes, errormsg = pcall(function()
		data = MyDataStore:GetAsync(player.UserId .. "-Coins")
	end)
	
	if succes then
		currency.Value = data
	end
	------------------
	
	local currency2 = Instance.new("IntValue")
	currency2.Name = "Multiplier"
	currency2.Parent = leaderstats

	local data2
	local succes2, errormsg2 = pcall(function()
		data2 = MyDataStore:GetAsync(player.UserId .. "-Multiplier")
	end)

	if succes2 then
		currency2.Value = data2
	end
	
	------------------
	
	local currency3 = Instance.new("IntValue")
	currency3.Name = "Zone"
	currency3.Parent = leaderstats

	local data3
	local succes3, errormsg3 = pcall(function()
		data3 = MyDataStore:GetAsync(player.UserId .. "-Zone")
	end)

	if succes3 then
		currency3.Value = data3
	end

end)

game.Players.PlayerRemoving:Connect(function(player)
	
	local succes, errormsg = pcall(function()
		MyDataStore:SetAsync(player.UserId .. "-Coins", player.leaderstats["Coins 💰"].Value)
	end)

	if succes then
		print("Succesfully saved data.")
	end
	------------------
	local succes2, errormsg2 = pcall(function()
		MyDataStore:SetAsync(player.UserId .. "-Multiplier", player.leaderstats["Multiplier"].Value)
	end)

	if succes2 then
		print("Succesfully saved data.")
	end
	------------------
	local succes3, errormsg3 = pcall(function()
		MyDataStore:SetAsync(player.UserId .. "-Zone", player.leaderstats["Zone"].Value)
	end)

	if succes3 then
		print("Succesfully saved data.")
	end
	
end)

-- # Multiplier # --


game:BindToClose(function(player)
	
	local succes, errormsg = pcall(function()
		MyDataStore:SetAsync(player.UserId .. "-Coins", player.leaderstats["Coins 💰"].Value)
	end)

	if succes then
		print("Succesfully saved data.")
	end
	------------------
	local succes2, errormsg2 = pcall(function()
		MyDataStore:SetAsync(player.UserId .. "-Multiplier", player.leaderstats["Multiplier"].Value)
	end)

	if succes2 then
		print("Succesfully saved data.")
	end
	------------------
	local succes3, errormsg3 = pcall(function()
		MyDataStore:SetAsync(player.UserId .. "-Zone", player.leaderstats["Zone"].Value)
	end)

	if succes3 then
		print("Succesfully saved data.")
	end
	
end)
Shop script (localscript)
game.Workspace["MAP 1"].Shop.Circle.Attachment.ProximityPrompt.Triggered:Connect(function()
	local TweenService = game:GetService("TweenService")
	script.Parent.Parent.Enabled = true
	TweenService:Create(game.Lighting.Blur, TweenInfo.new(0.3), {Size = 24}):Play()
	workspace["MAP 1"].Shop.Circle.Attachment.ProximityPrompt.Enabled = false
	
end)
	
script.Parent.Frame["1Multiplicator"].Upgrade.Button.MouseButton1Click:Connect(function()
	local leaderstats = game.Players.LocalPlayer.leaderstats

	if leaderstats.Multiplier.Value == 0 then
		if leaderstats["Coins 💰"].Value >= 50 then

			game.ReplicatedStorage.EVENT.Multiplier.add1:FireServer()
			--game.ReplicatedStorage.MoneyPerCoin.Value = 2
			game.ReplicatedStorage.EVENT.COINS.remove50:FireServer()

			script.Parent.Frame["1Multiplicator"].Bar.UIGradient.Offset = Vector2.new(0.1, 0)
			script.Parent.Frame["1Multiplicator"].Label = "Coins Multiplicator (x2)"
		end
	end

	if leaderstats.Multiplier.Value == 1 then
		if leaderstats["Coins 💰"].Value >= 250 then

			game.ReplicatedStorage.EVENT.Multiplier.add1:FireServer()
			--game.ReplicatedStorage.MoneyPerCoin.Value = 3
			game.ReplicatedStorage.EVENT.COINS.remove250:FireServer()

			script.Parent.Frame["1Multiplicator"].Bar.UIGradient.Offset = Vector2.new(0.2, 0)
			script.Parent.Frame["1Multiplicator"].Label = "Coins Multiplicator (x3)"
		end
	end

	if leaderstats.Multiplier.Value == 2 then
		if leaderstats["Coins 💰"].Value >= 500 then

			game.ReplicatedStorage.EVENT.Multiplier.add1:FireServer()
			--game.ReplicatedStorage.MoneyPerCoin.Value = 4
			game.ReplicatedStorage.EVENT.COINS.remove500:FireServer()

			script.Parent.Frame["1Multiplicator"].Bar.UIGradient.Offset = Vector2.new(0.2, 0)
			script.Parent.Frame["1Multiplicator"].Label = "Coins Multiplicator (x4)"
		end
	end
end)
Explorer

image
image

this seems to work for me so give it a try

server

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local add = ReplicatedStorage.Multiplier.add1
local remove = ReplicatedStorage.CONIS.TakeCoins


local function TakeCoins(player,coins)
	
	player.leaderstats["Coins 💰"].Value -= 50	player.leaderstats["Coins 💰"].Value -= coins
	print("remove")
end

local function Multiplier(player)
	print("add")
		player.leaderstats["Multiplier"].Value += 1
end


add.OnServerEvent:Connect(Multiplier)
remove.OnServerEvent:Connect(TakeCoins)

local

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local add = ReplicatedStorage.Multiplier.add1
local remove = ReplicatedStorage.CONIS.TakeCoins



game.Workspace["MAP 1"].Shop.Circle.Attachment.ProximityPrompt.Triggered:Connect(function()
	local TweenService = game:GetService("TweenService")
	script.Parent.Parent.Enabled = true
	TweenService:Create(game.Lighting.Blur, TweenInfo.new(0.3), {Size = 24}):Play()
	workspace["MAP 1"].Shop.Circle.Attachment.ProximityPrompt.Enabled = false

end)

script.Parent.Frame["1Multiplicator"].Upgrade.Button.MouseButton1Click:Connect(function()
	local leaderstats = game.Players.LocalPlayer.leaderstats

	if leaderstats.Multiplier.Value == 0 then
		if leaderstats["Coins 💰"].Value >= 50 then
print("Add")
			add:FireServer()
			--game.ReplicatedStorage.MoneyPerCoin.Value = 2
			print("Remove")
			remove:FireServer(50)

			script.Parent.Frame["1Multiplicator"].Bar.UIGradient.Offset = Vector2.new(0.1, 0)
			script.Parent.Frame["1Multiplicator"].Label = "Coins Multiplicator (x2)"
		end
	end

	if leaderstats.Multiplier.Value == 1 then
		if leaderstats["Coins 💰"].Value >= 250 then

		add:FireServer()
			--game.ReplicatedStorage.MoneyPerCoin.Value = 3
			remove:FireServer(250)

			script.Parent.Frame["1Multiplicator"].Bar.UIGradient.Offset = Vector2.new(0.2, 0)
			script.Parent.Frame["1Multiplicator"].Label = "Coins Multiplicator (x3)"
		end
	end

	if leaderstats.Multiplier.Value == 2 then
		if leaderstats["Coins 💰"].Value >= 500 then

			add:FireServer()
			--game.ReplicatedStorage.MoneyPerCoin.Value = 4
			remove:FireServer(500)

			script.Parent.Frame["1Multiplicator"].Bar.UIGradient.Offset = Vector2.new(0.2, 0)
			script.Parent.Frame["1Multiplicator"].Label = "Coins Multiplicator (x4)"
		end
	end
end)
1 Like

If anybody want a better script of what I did here we go:

Leaderstats create
local DataStoreService = game:GetService("DataStoreService")
local MyDataStore = DataStoreService:GetDataStore("MyDataStore")

game.Players.PlayerAdded:Connect(function(player)
	local leaderstats = Instance.new("Folder")
	leaderstats.Name = "leaderstats"
	leaderstats.Parent = player
	
	local currency = Instance.new("IntValue")
	currency.Name = "Coins 💰"
	currency.Parent = leaderstats
	
	local data
	local succes, errormsg = pcall(function()
		data = MyDataStore:GetAsync(player.UserId .. "-Coins")
	end)
	
	if succes then
		currency.Value = data
	end
	------------------
	
	local currency2 = Instance.new("IntValue")
	currency2.Name = "Multiplier"
	currency2.Parent = leaderstats

	local data2
	local succes2, errormsg2 = pcall(function()
		data2 = MyDataStore:GetAsync(player.UserId .. "-Multiplier")
	end)

	if succes2 then
		currency2.Value = data2
	end
	
	------------------
	
	local currency3 = Instance.new("IntValue")
	currency3.Name = "Speed"
	currency3.Parent = leaderstats

	local data3
	local succes3, errormsg3 = pcall(function()
		data3 = MyDataStore:GetAsync(player.UserId .. "-Speed")
	end)

	if succes3 then
		currency3.Value = data3
	end
	
	------------------
	local currency4 = Instance.new("IntValue")
	currency4.Name = "MaxCoins"
	currency4.Parent = leaderstats

	local data4
	local succes4, errormsg4 = pcall(function()
		data4 = MyDataStore:GetAsync(player.UserId .. "-MaxCoins")
	end)

	if succes4 then
		currency4.Value = data4
	end
	
	------------------
	
	local currency5 = Instance.new("IntValue")
	currency5.Name = "Zone"
	currency5.Parent = leaderstats

	local data5
	local succes5, errormsg5 = pcall(function()
		data5 = MyDataStore:GetAsync(player.UserId .. "-Zone")
	end)

	if succes5 then
		currency5.Value = data5
	end
end)

game.Players.PlayerRemoving:Connect(function(player)
	
	local succes, errormsg = pcall(function()
		MyDataStore:SetAsync(player.UserId .. "-Coins", player.leaderstats["Coins 💰"].Value)
	end)

	if succes then
		print("Succesfully saved data.")
	end
	------------------
	local succes2, errormsg2 = pcall(function()
		MyDataStore:SetAsync(player.UserId .. "-Multiplier", player.leaderstats["Multiplier"].Value)
	end)

	if succes2 then
		print("Succesfully saved data.")
	end
	------------------
	local succes3, errormsg3 = pcall(function()
		MyDataStore:SetAsync(player.UserId .. "-Speed", player.leaderstats["Speed"].Value)
	end)

	if succes3 then
		print("Succesfully saved data.")
	end
	------------------
	local succes4, errormsg4 = pcall(function()
		MyDataStore:SetAsync(player.UserId .. "-MaxCoins", player.leaderstats["MaxCoins"].Value)
	end)

	if succes4 then
		print("Succesfully saved data.")
	end
	------------------
	local succes5, errormsg5 = pcall(function()
		MyDataStore:SetAsync(player.UserId .. "-Zone", player.leaderstats["Zone"].Value)
	end)

	if succes5 then
		print("Succesfully saved data.")
	end
	
end)


game:BindToClose(function(player)
	
	local succes, errormsg = pcall(function()
		MyDataStore:SetAsync(player.UserId .. "-Coins", player.leaderstats["Coins 💰"].Value)
	end)

	if succes then
		print("Succesfully saved data.")
	end
	------------------
	local succes2, errormsg2 = pcall(function()
		MyDataStore:SetAsync(player.UserId .. "-Multiplier", player.leaderstats["Multiplier"].Value)
	end)

	if succes2 then
		print("Succesfully saved data.")
	end
	------------------
	local succes3, errormsg3 = pcall(function()
		MyDataStore:SetAsync(player.UserId .. "-Speed", player.leaderstats["Speed"].Value)
	end)

	if succes3 then
		print("Succesfully saved data.")
	end
	------------------
	local succes4, errormsg4 = pcall(function()
		MyDataStore:SetAsync(player.UserId .. "-MaxCoins", player.leaderstats["MaxCoins"].Value)
	end)

	if succes4 then
		print("Succesfully saved data.")
	end
	------------------
	local succes5, errormsg5 = pcall(function()
		MyDataStore:SetAsync(player.UserId .. "-Zone", player.leaderstats["Zone"].Value)
	end)

	if succes5 then
		print("Succesfully saved data.")
	end
	
end)
Shop Script (NOT FINISHED AND I'LL NOT UPDATE BUT WORKING)
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local add = ReplicatedStorage.EVENT.LEADERSTATSVALUE.AddValue
local remove = ReplicatedStorage.EVENT.LEADERSTATSVALUE.RemoveValue
local set = ReplicatedStorage.EVENT.LEADERSTATSVALUE.SetValue


game.Workspace["MAP 1"].Shop.Circle.Attachment.ProximityPrompt.Triggered:Connect(function()
	local TweenService = game:GetService("TweenService")
	
	script.Parent.Parent.Enabled = true
	TweenService:Create(game.Lighting.Blur, TweenInfo.new(0.3), {Size = 24}):Play()
	workspace["MAP 1"].Shop.Circle.Attachment.ProximityPrompt.Enabled = false
	game.ReplicatedStorage.Speed.Value = 0
	game.ReplicatedStorage.Jump.Value = 0
	
end)

script.Parent.Frame.Multiplicator1.Upgrade.Button.MouseButton1Click:Connect(function()
	local leaderstats = game.Players.LocalPlayer.leaderstats

	if leaderstats.Multiplier.Value == 0 then
		if leaderstats["Coins 💰"].Value >= 50 then
			script.Parent.Frame.Multiplicator1.Bar.UIGradient.Offset = Vector2.new(0, 0)
			script.Parent.Frame.Multiplicator1.Label.Text = "Coins Multiplicator (x1)"
			script.Parent.Frame.Multiplicator1.Bar.Label.Text = "1/10"
			script.Parent.Frame.Multiplicator1.PriceImage.Label.Text = "250"
			
			remove:FireServer(50, "Coins 💰")
			add:FireServer(1, "Multiplier")
		end
		
	elseif leaderstats.Multiplier.Value == 1 then
		if leaderstats["Coins 💰"].Value >= 250 then
			script.Parent.Frame.Multiplicator1.Bar.UIGradient.Offset = Vector2.new(0.1, 0)
			script.Parent.Frame.Multiplicator1.Label.Text = "Coins Multiplicator (x2)"
			script.Parent.Frame.Multiplicator1.Bar.Label.Text = "2/10"
			script.Parent.Frame.Multiplicator1.PriceImage.Label.Text = "500"

			remove:FireServer(250, "Coins 💰")
			add:FireServer(1, "Multiplier")
			
		end

	elseif leaderstats.Multiplier.Value == 2 then
		if leaderstats["Coins 💰"].Value >= 500 then
			script.Parent.Frame.Multiplicator1.Bar.UIGradient.Offset = Vector2.new(0.2, 0)
			script.Parent.Frame.Multiplicator1.Label.Text = "Coins Multiplicator (x3)"
			script.Parent.Frame.Multiplicator1.Bar.Label.Text = "3/10"
			script.Parent.Frame.Multiplicator1.PriceImage.Label.Text = "750"

			remove:FireServer(500, "Coins 💰")
			add:FireServer(1, "Multiplier")
			
		end
		
	elseif leaderstats.Multiplier.Value == 3 then
		if leaderstats["Coins 💰"].Value >= 750 then
			script.Parent.Frame.Multiplicator1.Bar.UIGradient.Offset = Vector2.new(0.3, 0)
			script.Parent.Frame.Multiplicator1.Label.Text = "Coins Multiplicator (x4)"
			script.Parent.Frame.Multiplicator1.Bar.Label.Text = "4/10"
			script.Parent.Frame.Multiplicator1.PriceImage.Label.Text = "1000"

			remove:FireServer(750, "Coins 💰")
			add:FireServer(1, "Multiplier")
			
		end
		
	elseif leaderstats.Multiplier.Value == 4 then
		if leaderstats["Coins 💰"].Value >= 1000 then
			script.Parent.Frame.Multiplicator1.Bar.UIGradient.Offset = Vector2.new(0.4, 0)
			script.Parent.Frame.Multiplicator1.Label.Text = "Coins Multiplicator (x5)"
			script.Parent.Frame.Multiplicator1.Bar.Label.Text = "5/10"
			script.Parent.Frame.Multiplicator1.PriceImage.Label.Text = "1250"

			remove:FireServer(1000, "Coins 💰")
			add:FireServer(1, "Multiplier")
		end
		
	elseif leaderstats.Multiplier.Value == 5 then
		if leaderstats["Coins 💰"].Value >= 1250 then
			script.Parent.Frame.Multiplicator1.Bar.UIGradient.Offset = Vector2.new(0.5, 0)
			script.Parent.Frame.Multiplicator1.Label.Text = "Coins Multiplicator (x6)"
			script.Parent.Frame.Multiplicator1.Bar.Label.Text = "6/10"
			script.Parent.Frame.Multiplicator1.PriceImage.Label.Text = "1500"

			remove:FireServer(1250, "Coins 💰")
			add:FireServer(1, "Multiplier")
			
		end
		
	elseif leaderstats.Multiplier.Value == 6 then
		if leaderstats["Coins 💰"].Value >= 1500 then
			script.Parent.Frame.Multiplicator1.Bar.UIGradient.Offset = Vector2.new(0.6, 0)
			script.Parent.Frame.Multiplicator1.Label.Text = "Coins Multiplicator (x7)"
			script.Parent.Frame.Multiplicator1.PriceImage.Label.Text = "1750"

			remove:FireServer(1500, "Coins 💰")
			add:FireServer(1, "Multiplier")
			
		end
		
	elseif leaderstats.Multiplier.Value == 7 then
		if leaderstats["Coins 💰"].Value >= 1750 then
			script.Parent.Frame.Multiplicator1.Bar.UIGradient.Offset = Vector2.new(0.7, 0)
			script.Parent.Frame.Multiplicator1.Label.Text = "Coins Multiplicator (x8)"
			script.Parent.Frame.Multiplicator1.Bar.Label.Text = "8/10"
			script.Parent.Frame.Multiplicator1.PriceImage.Label.Text = "2000"

			remove:FireServer(1750, "Coins 💰")
			add:FireServer(1, "Multiplier")
			
		end
		
	elseif leaderstats.Multiplier.Value == 8 then
		if leaderstats["Coins 💰"].Value >= 2000 then
			script.Parent.Frame.Multiplicator1.Bar.UIGradient.Offset = Vector2.new(0.8, 0)
			script.Parent.Frame.Multiplicator1.Label.Text = "Coins Multiplicator (x9)"
			script.Parent.Frame.Multiplicator1.Bar.Label.Text = "9/10"
			script.Parent.Frame.Multiplicator1.PriceImage.Label.Text = "2500"

			remove:FireServer(2000, "Coins 💰")
			add:FireServer(1, "Multiplier")
		end
		
	elseif leaderstats.Multiplier.Value == 9 then
		if leaderstats["Coins 💰"].Value >= 2500 then
			script.Parent.Frame.Multiplicator1.Bar.UIGradient.Offset = Vector2.new(1, 0)
			script.Parent.Frame.Multiplicator1.Label.Text = "Coins Multiplicator (x10)"
			script.Parent.Frame.Multiplicator1.Bar.Label.Text = "MAXED"
			script.Parent.Frame.Multiplicator1.PriceImage.Visible = false

			remove:FireServer(2500, "Coins 💰")
			add:FireServer(1, "Multiplier")
		end
	end
	
end)

script.Parent.Frame.Speed2.Upgrade.Button.MouseButton1Click:Connect(function()
	local leaderstats = game.Players.LocalPlayer.leaderstats

	if leaderstats.Speed.Value == 0 then
		if leaderstats["Coins 💰"].Value >= 250 then
			script.Parent.Frame.Speed2.Bar.UIGradient.Offset = Vector2.new(0.125, 0)
			script.Parent.Frame.Speed2.Label.Text = "Speed (17)"
			script.Parent.Frame.Speed2.Bar.Label.Text = "1/8"
			script.Parent.Frame.Speed2.PriceImage.Label.Text = "500"

			remove:FireServer(250, "Coins 💰")
			add:FireServer(1, "Speed")
		end

	elseif leaderstats.Speed.Value == 1 then
		if leaderstats["Coins 💰"].Value >= 500 then
			script.Parent.Frame.Speed2.Bar.UIGradient.Offset = Vector2.new(0.25, 0)
			script.Parent.Frame.Speed2.Label.Text = "Speed (18)"
			script.Parent.Frame.Speed2.Bar.Label.Text = "2/8"
			script.Parent.Frame.Speed2.PriceImage.Label.Text = "1000"

			remove:FireServer(500, "Coins 💰")
			add:FireServer(1, "Speed")

		end

	elseif leaderstats.Speed.Value == 2 then
		if leaderstats["Coins 💰"].Value >= 1000 then
			script.Parent.Frame.Speed2.Bar.UIGradient.Offset = Vector2.new(0.375, 0)
			script.Parent.Frame.Speed2.Label.Text = "Speed (19)"
			script.Parent.Frame.Speed2.Bar.Label.Text = "3/8"
			script.Parent.Frame.Speed2.PriceImage.Label.Text = "1500"

			remove:FireServer(1000, "Coins 💰")
			add:FireServer(1, "Speed")

		end

	elseif leaderstats.Speed.Value == 3 then
		if leaderstats["Coins 💰"].Value >= 1500 then
			script.Parent.Frame.Speed2.Bar.UIGradient.Offset = Vector2.new(0.5, 0)
			script.Parent.Frame.Speed2.Label.Text = "Speed (20)"
			script.Parent.Frame.Speed2.Bar.Label.Text = "4/8"
			script.Parent.Frame.Speed2.PriceImage.Label.Text = "2000"

			remove:FireServer(1500, "Coins 💰")
			add:FireServer(1, "Speed")

		end

	elseif leaderstats.Speed.Value == 4 then
		if leaderstats["Coins 💰"].Value >= 2000 then
			script.Parent.Frame.Speed2.Bar.UIGradient.Offset = Vector2.new(0.625, 0)
			script.Parent.Frame.Speed2.Label.Text = "Speed (21)"
			script.Parent.Frame.Speed2.Bar.Label.Text = "5/8"
			script.Parent.Frame.Speed2.PriceImage.Label.Text = "2500"

			remove:FireServer(2000, "Coins 💰")
			add:FireServer(1, "Speed")
		end

	elseif leaderstats.Speed.Value == 5 then
		if leaderstats["Coins 💰"].Value >= 2500 then
			script.Parent.Frame.Speed2.Bar.UIGradient.Offset = Vector2.new(0.75, 0)
			script.Parent.Frame.Speed2.Label.Text = "Speed (22)"
			script.Parent.Frame.Speed2.Bar.Label.Text = "6/8"
			script.Parent.Frame.Speed2.PriceImage.Label.Text = "3000"

			remove:FireServer(2500, "Coins 💰")
			add:FireServer(1, "Speed")

		end

	elseif leaderstats.Speed.Value == 6 then
		if leaderstats["Coins 💰"].Value >= 3000 then
			script.Parent.Frame.Speed2.Bar.UIGradient.Offset = Vector2.new(0.875, 0)
			script.Parent.Frame.Speed2.Label.Text = "Speed (23)"
			script.Parent.Frame.Speed2.Bar.Label.Text = "7/8"
			script.Parent.Frame.Speed2.PriceImage.Label.Text = "3500"

			remove:FireServer(3000, "Coins 💰")
			add:FireServer(1, "Speed")

		end

	elseif leaderstats.Speed.Value == 7 then
		if leaderstats["Coins 💰"].Value >= 3500 then
			script.Parent.Frame.Speed2.Bar.UIGradient.Offset = Vector2.new(1, 0)
			script.Parent.Frame.Speed2.Label.Text = "Speed (24)"
			script.Parent.Frame.Speed2.Bar.Label.Text = "MAXED"
			script.Parent.Frame.Speed2.PriceImage.Visible = false

			remove:FireServer(3500, "Coins 💰")
			add:FireServer(1, "Speed")

		end
	end
end)



local leaderstats = game.Players.LocalPlayer.leaderstats


if leaderstats.Multiplier.Value == 0 then
	script.Parent.Frame.Multiplicator1.Bar.UIGradient.Offset = Vector2.new(-1, 0)
	script.Parent.Frame.Multiplicator1.Label.Text = "Coins Multiplicator (x1)"
	script.Parent.Frame.Multiplicator1.Bar.Label.Text = "0/10"
	script.Parent.Frame.Multiplicator1.PriceImage.Label.Text = "50"
		
elseif leaderstats.Multiplier.Value == 1 then
	script.Parent.Frame.Multiplicator1.Bar.UIGradient.Offset = Vector2.new(0, 0)
	script.Parent.Frame.Multiplicator1.Label.Text = "Coins Multiplicator (x1.5)"
	script.Parent.Frame.Multiplicator1.Bar.Label.Text = "1/10"
	script.Parent.Frame.Multiplicator1.PriceImage.Label.Text = "250"
		
elseif leaderstats.Multiplier.Value == 2 then
	script.Parent.Frame.Multiplicator1.Bar.UIGradient.Offset = Vector2.new(0.1, 0)
	script.Parent.Frame.Multiplicator1.Label.Text = "Coins Multiplicator (x2)"
	script.Parent.Frame.Multiplicator1.Bar.Label.Text = "2/10"
	script.Parent.Frame.Multiplicator1.PriceImage.Label.Text = "500"
		
elseif leaderstats.Multiplier.Value == 3 then
	script.Parent.Frame.Multiplicator1.Bar.UIGradient.Offset = Vector2.new(0.2, 0)
	script.Parent.Frame.Multiplicator1.Label.Text = "Coins Multiplicator (x3)"
	script.Parent.Frame.Multiplicator1.Bar.Label.Text = "3/10"
	script.Parent.Frame.Multiplicator1.PriceImage.Label.Text = "750"
		
elseif leaderstats.Multiplier.Value == 4 then
	script.Parent.Frame.Multiplicator1.Bar.UIGradient.Offset = Vector2.new(0.3, 0)
	script.Parent.Frame.Multiplicator1.Label.Text = "Coins Multiplicator (x4)"
	script.Parent.Frame.Multiplicator1.Bar.Label.Text = "4/10"
	script.Parent.Frame.Multiplicator1.PriceImage.Label.Text = "1000"
	
elseif leaderstats.Multiplier.Value == 5 then
	script.Parent.Frame.Multiplicator1.Bar.UIGradient.Offset = Vector2.new(0.4, 0)
	script.Parent.Frame.Multiplicator1.Label.Text = "Coins Multiplicator (x5)"
	script.Parent.Frame.Multiplicator1.Bar.Label.Text = "5/10"
	script.Parent.Frame.Multiplicator1.PriceImage.Label.Text = "1250"
		
elseif leaderstats.Multiplier.Value == 6 then
	script.Parent.Frame.Multiplicator1.Bar.UIGradient.Offset = Vector2.new(0.5, 0)
	script.Parent.Frame.Multiplicator1.Label.Text = "Coins Multiplicator (x6)"
	script.Parent.Frame.Multiplicator1.Bar.Label.Text = "6/10"
	script.Parent.Frame.Multiplicator1.PriceImage.Label.Text = "1500"
		
elseif leaderstats.Multiplier.Value == 7 then
	script.Parent.Frame.Multiplicator1.Bar.UIGradient.Offset = Vector2.new(0.6, 0)
	script.Parent.Frame.Multiplicator1.Label.Text = "Coins Multiplicator (x7)"
	script.Parent.Frame.Multiplicator1.Bar.Label.Text = "7/10"
	script.Parent.Frame.Multiplicator1.PriceImage.Label.Text = "1750"
		
elseif leaderstats.Multiplier.Value == 8 then
	script.Parent.Frame.Multiplicator1.Bar.UIGradient.Offset = Vector2.new(0.7, 0)
	script.Parent.Frame.Multiplicator1.Label.Text = "Coins Multiplicator (x8)"
	script.Parent.Frame.Multiplicator1.Bar.Label.Text = "8/10"
	script.Parent.Frame.Multiplicator1.PriceImage.Label.Text = "2000"
		
elseif leaderstats.Multiplier.Value == 9 then
	script.Parent.Frame.Multiplicator1.Bar.UIGradient.Offset = Vector2.new(0.8, 0)
	script.Parent.Frame.Multiplicator1.Label.Text = "Coins Multiplicator (x9)"
	script.Parent.Frame.Multiplicator1.Bar.Label.Text = "9/10"
	script.Parent.Frame.Multiplicator1.PriceImage.Label.Text = "2500"
	
elseif leaderstats.Multiplier.Value == 10 then
	script.Parent.Frame.Multiplicator1.Bar.UIGradient.Offset = Vector2.new(1, 0)
	script.Parent.Frame.Multiplicator1.Label.Text = "Coins Multiplicator (x10)"
	script.Parent.Frame.Multiplicator1.Bar.Label.Text = "MAXED"
	script.Parent.Frame.Multiplicator1.PriceImage.Visible = false

end

if leaderstats.Speed.Value == 0 then
	script.Parent.Frame.Speed2.Bar.UIGradient.Offset = Vector2.new(-1, 0)
	script.Parent.Frame.Speed2.Label.Text = "Speed (16)"
	script.Parent.Frame.Speed2.Bar.Label.Text = "0/8"
	script.Parent.Frame.Speed2.PriceImage.Label.Text = "250"

elseif leaderstats.Speed.Value == 1 then
	script.Parent.Frame.Speed2.Bar.UIGradient.Offset = Vector2.new(0.125, 0)
	script.Parent.Frame.Speed2.Label.Text = "Speed (17)"
	script.Parent.Frame.Speed2.Bar.Label.Text = "1/8"
	script.Parent.Frame.Speed2.PriceImage.Label.Text = "500"

elseif leaderstats.Speed.Value == 2 then
	script.Parent.Frame.Speed2.Bar.UIGradient.Offset = Vector2.new(0.25, 0)
	script.Parent.Frame.Speed2.Label.Text = "Speed (18)"
	script.Parent.Frame.Speed2.Bar.Label.Text = "2/8"
	script.Parent.Frame.Speed2.PriceImage.Label.Text = "1000"

elseif leaderstats.Speed.Value == 3 then
	script.Parent.Frame.Speed2.Bar.UIGradient.Offset = Vector2.new(0.375, 0)
	script.Parent.Frame.Speed2.Label.Text = "Speed (19)"
	script.Parent.Frame.Speed2.Bar.Label.Text = "3/8"
	script.Parent.Frame.Speed2.PriceImage.Label.Text = "1500"

elseif leaderstats.Speed.Value == 4 then
	script.Parent.Frame.Speed2.Bar.UIGradient.Offset = Vector2.new(0.4, 0)
	script.Parent.Frame.Speed2.Label.Text = "Speed (20)"
	script.Parent.Frame.Speed2.Bar.Label.Text = "4/8"
	script.Parent.Frame.Speed2.PriceImage.Label.Text = "2000"

elseif leaderstats.Speed.Value == 5 then
	script.Parent.Frame.Speed2.Bar.UIGradient.Offset = Vector2.new(0.625, 0)
	script.Parent.Frame.Speed2.Label.Text = "Speed (21)"
	script.Parent.Frame.Speed2.Bar.Label.Text = "5/8"
	script.Parent.Frame.Speed2.PriceImage.Label.Text = "2500"

elseif leaderstats.Speed.Value == 6 then
	script.Parent.Frame.Speed2.Bar.UIGradient.Offset = Vector2.new(0.75, 0)
	script.Parent.Frame.Speed2.Label.Text = "Speed (22)"
	script.Parent.Frame.Speed2.Bar.Label.Text = "6/8"
	script.Parent.Frame.Speed2.PriceImage.Label.Text = "3000"

elseif leaderstats.Speed.Value == 7 then
	script.Parent.Frame.Speed2.Bar.UIGradient.Offset = Vector2.new(0.875, 0)
	script.Parent.Frame.Speed2.Label.Text = "Speed (23)"
	script.Parent.Frame.Speed2.Bar.Label.Text = "7/8"
	script.Parent.Frame.Speed2.PriceImage.Label.Text = "3500"
	
elseif leaderstats.Speed.Value == 8 then
	script.Parent.Frame.Speed2.Bar.UIGradient.Offset = Vector2.new(1, 0)
	script.Parent.Frame.Speed2.Label.Text = "Speed (24)"
	script.Parent.Frame.Speed2.Bar.Label.Text = "MAXED"
	script.Parent.Frame.Speed2.PriceImage.Visible = false
	
end
Change an leaderstat value (working for all WORKING leaderstats)
local ReplicatedStorage = game:GetService("ReplicatedStorage")

local add = ReplicatedStorage.EVENT.LEADERSTATSVALUE.AddValue
local remove = ReplicatedStorage.EVENT.LEADERSTATSVALUE.RemoveValue
local set = ReplicatedStorage.EVENT.LEADERSTATSVALUE.SetValue


local function RemoveCoins(player, value, leaderstatsName)
	player.leaderstats[leaderstatsName].Value -= value
	
end

local function AddCoins(player, value, leaderstatsName)
	player.leaderstats[leaderstatsName].Value += value
	
end

local function SetCoins(player, value, leaderstatsName)
	player.leaderstats[leaderstatsName].Value = value

end

add.OnServerEvent:Connect(AddCoins)
remove.OnServerEvent:Connect(RemoveCoins)
set.OnServerEvent:Connect(SetCoins)
Explorer

image
image

1 Like

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.