so im making a game that when you press a part / button, it creates a part, turns the shape into a ball, turns it into a random color, clones it, make it bigger and a bit transparent, makes a model, clones 2 of the children scripts and parents them to the main ball part and welds everything, also makes a stringvalue that has the players name in it (the one who spawned that ball), and a script that when it touches a part names destroy, it destroys the ball and adds to the players money, but for some reason that script doesn't change the leaderboard, can anyone help
Normal Legacy Script In ServerScriptService, the leaderboard
game.Players.PlayerAdded:Connect(function(player)
local leaderstats= Instance.new("Folder")
leaderstats.Name= ("leaderstats")
leaderstats.Parent= player
local cash= Instance.new("IntValue")
cash.Name= ("Money")
cash.Parent = leaderstats
cash.Value = 0
end)
Normal Legacy Script In Button in Workspace, the ball maker
script.Parent.ClickDetector.MouseClick:connect(function(player)
local clone = Instance.new("Part")
clone.Name = "Ball"
clone.Material = Enum.Material.SmoothPlastic
clone.Shape = Enum.PartType.Ball
clone.Position = Vector3.new(-81.973, 148.927, -24.005)
clone.Anchored = false
clone.Color = Color3.fromRGB(math.random(0,255),math.random(0,255),math.random(0,255))
clone.Size = Vector3.new(1.3,1.3,1.3)
clone.CanCollide = true
local cloneOutline = clone:Clone()
cloneOutline.Anchored = false
cloneOutline.Size = Vector3.new(1.5,1.5,1.5)
cloneOutline.Transparency = 0.75
cloneOutline.Name = "Outline"
cloneOutline.CanCollide = false
local model = Instance.new("Model")
model.Parent = workspace.ExistingBalls
model.Name = "BallModel"
clone.Parent = model
cloneOutline.Parent = model
local weld = script.Weld:Clone()
weld.Parent = model
weld.Enabled = true
local destroy = script.DestroyScript:Clone()
destroy.Parent = clone
destroy.Enabled = true
local playername = Instance.new("StringValue")
playername.Name = "PlayerName"
playername.Value = tostring(player)
playername.Parent = model
local money = player.leaderstats.Money
end)
Two Normal Legacy Script In Above Script In Button in Workspace (gets cloned to each ball)
script.Parent.Touched:Connect(function(hit) -- checks what the ball part clone has touched
if hit.Name == "Destroy" then -- checks if the part it touched is named destroy
script.Parent.Parent:Destroy() -- destroys the ball clone model
local player = game.Players.LocalPlayer
if player.leaderstats.Money.Value == script.Parent.Parent.PlayerName.Value then
player.leaderstats.Money.Value += 1
end
end
end)
function weld()
local parts,last = {}
local function scan(parent)
for _,v in pairs(parent:GetChildren()) do
if (v:IsA("BasePart")) then
if (last) then
local w = Instance.new("Weld")
w.Name = ("%s_Weld"):format(v.Name)
w.Part0,w.Part1 = last,v
w.C0 = last.CFrame:inverse()
w.C1 = v.CFrame:inverse()
w.Parent = last
end
last = v
table.insert(parts,v)
end
scan(v)
end
end
scan(script.Parent)
for _,v in pairs(parts) do
v.Anchored = false
end
end
weld()
script:Remove()
