Basically what the title says I'm looking to change the leaderboard that this script uses because I tried fixing it my self It's not fixable to my knowledge sadly... This is the original script no edits.
--Services-- local Players = game:GetService("Players") local ReplicatedStorage = game:GetService("ReplicatedStorage") --Variables-- local Player = Players.LocalPlayer local PlayerGui = Player.PlayerGui local LeaderStats = Player:FindFirstChild("leaderstats") local RequestLeaderboardChangeMaster = game.ReplicatedStorage.RequestLeaderboardChange local Backpack = Player:FindFirstChild("Backpack") local StarterGear = Player:FindFirstChild("StarterGear") local SurfaceGui = ReplicatedStorage:FindFirstChild("Shop", true):Clone() SurfaceGui.Parent = PlayerGui local mouse = Player:GetMouse() local ItemsForSale = { ["Sword"] = { ["Cost"] = 10; ["Currency"] = "Tickets"; }, ["Sword2"] = { ["Cost"] = 20; ["Currency"] = "Tickets"; }, ["Sword3"] = { ["Cost"] = 30; ["Currency"] = "Tickets"; } } local ItemNames = {"Sword","Sword2","Sword3"} local function UpdateShopTarget() if mouse.Target then if mouse.Target.Name == "Shop" then SurfaceGui.Adornee = mouse.Target else SurfaceGui.Adornee = nil end else SurfaceGui.Adornee = nil end end local function GetMoney(Currency) local IntValue = LeaderStats:FindFirstChild(Currency) if IntValue then return IntValue.Value end return 0 end local function SubtractMoney(Currency, Amount) local LeaderboardChangeObject = RequestLeaderboardChangeMaster:clone() local valueToUpdate = Instance.new("IntValue") valueToUpdate.Name = Currency valueToUpdate.Value = GetMoney(Currency) - Amount valueToUpdate.Parent = LeaderboardChangeObject.RequestedValues LeaderboardChangeObject.playerName.Value = Player.Name LeaderboardChangeObject.Parent = game.Workspace end local function AwardItem(ItemName) local Item = ReplicatedStorage.Weapons:FindFirstChild(ItemName) if Item then Item = Item:Clone() Item.Parent = Backpack Item = Item:Clone() Item.Parent = StarterGear end end --SurfaceGui Pre-initialization-- local Window = SurfaceGui:FindFirstChild("Window") local ProtoButton = SurfaceGui:FindFirstChild("ProtoButton") for i=1, #ItemNames do newButton = ProtoButton:clone() newButton.Name = ItemNames[i] newButton.Position = UDim2.new(0,22,0,100*i) newButton.Active = true newButton.Visible = true newButton.Parent = Window end Window.CanvasSize = UDim2.new(1,0,0,100+100*#ItemNames) --SurfaceGui Variables-- local ArrayOfChildren = Window:GetChildren() for _, Button in pairs (ArrayOfChildren) do local ItemName = Button.Name --print("Got button", ItemName) local ItemAttributes = ItemsForSale[ItemName] if ItemAttributes ~= nil then --print("Got data for", ItemName) local Cost = ItemAttributes["Cost"] local Currency = ItemAttributes["Currency"] --print(" ", "Cost:", Cost) --print(" ", "Currency:", Currency) Button.Text = ItemName..": "..Cost.." "..Currency Button.MouseButton1Click:connect(function() if LeaderStats then if GetMoney(Currency) >= Cost then SubtractMoney(Currency, Cost) AwardItem(ItemName) end end end) end end --Connection event to map the Shop GUI onto whatever the mouse is hovering on (provided it's named "Shop") mouse.Move:connect(UpdateShopTarget)