I'm creating a game in which you can spawn a sled which is then assigned to you. This way, you are only allowed to spawn one at a time. In order to help if you lose your sled, I've also added a gui in which the player can delete their sled so they can respawn a new one. However, when the sled is deleted through the gui, the player is unable to spawn another one. I'm not quite sure why this is the case, here's the code.
in the gui to delete the sled
local player = script.Parent.Parent.Parent.Parent
script.Parent.MouseButton1Click:Connect(function()
local descendants = workspace.sleds:GetDescendants() --this is probably unnecessary but it works
for i, descendant in pairs(descendants) do
if descendant:IsA("StringValue") then
if descendant.Value == player.Name then
descendant.Parent:Destroy()
end
end
end
end)
and in the clickable regen buttons
local sled = game.ServerStorage:WaitForChild("sled_of_doom") --sled gets cloned to spawn
script.Parent.MouseClick:Connect(function(player)
game.Players:GetPlayerFromCharacter(player)
local descendants = workspace.sleds:GetDescendants() --look through all existing sleds
for i,v in pairs (descendants) do
if v:IsA("StringValue") then
if v.Value == player.Name then --if sled exists under players name already, do not spawn one
return
end
end
end
local newsled = sled:Clone()
newsled.Parent = workspace.sleds
newsled.PrimaryPart = newsled:WaitForChild("eee")
newsled:SetPrimaryPartCFrame(CFrame.new(script.Parent.Parent.Position.X, script.Parent.Parent.Position.Y + 5, script.Parent.Parent.Position.Z - 10))
local owner = newsled.owner
owner.Value = player.Name
script.Parent.Parent.Color = Color3.new(26,27,28)
wait (15)
script.Parent.Parent.Color = Color3.new(123,0,123)
end)
I'm sure the answer is probably pretty simple but I can't seem to find it right now.
