I'm trying to make a tower defense game, and I'm trying create a character placing system. When I run it once, it works fine, but on the second time, it doesn't run at all and just stops around line 17
.
What am I doing wrong?
local players = game:GetService("Players") local plr = players.LocalPlayer local mouse = plr:GetMouse() local mouseDown = false local uis = game:GetService("UserInputService") script.Parent.MouseButton1Click:Connect(function() if script.Parent.Parent.Parent.Parent:WaitForChild("Money").Value > 199 then script.Parent.Parent.Parent.Enabled = false script.Parent.Parent.Parent.Parent:WaitForChild("Money").Value = script.Parent.Parent.Parent.Parent:WaitForChild("Money").Value - 200 local character = game.ReplicatedStorage.Characters.Character:Clone() character.Parent = workspace repeat wait() local camera = workspace.CurrentCamera local params = RaycastParams.new() params.FilterDescendantsInstances = {plr.Character, character} params.FilterType = Enum.RaycastFilterType.Blacklist local function rayResult(x, y) local unitRay = mouse.UnitRay return workspace:Raycast(unitRay.Origin, unitRay.Direction * 500, params) end local mousePos = uis:GetMouseLocation() if rayResult(mousePos.X, mousePos.Y) then character:SetPrimaryPartCFrame(CFrame.new(rayResult(mousePos.X, mousePos.Y).Position) * CFrame.Angles(math.rad(0), math.rad(0), math.rad(90))) end print("Running") if mouse.Target then print("Target") if mouse.Target.Name == "Placeable" then character.Body.Body.Color = ColorSequence.new(Color3.fromRGB(0, 255, 0)) character.PrimaryPart.Color = Color3.fromRGB(0, 255, 0) else character.Body.Body.Color = ColorSequence.new(Color3.fromRGB(255, 0, 0)) character.PrimaryPart.Color = Color3.fromRGB(255, 0, 0) end else character.Body.Body.Color = ColorSequence.new(Color3.fromRGB(255, 0, 0)) character.PrimaryPart.Color = Color3.fromRGB(255, 0, 0) end until mouseDown == true local camera = workspace.CurrentCamera local params = RaycastParams.new() params.FilterDescendantsInstances = {plr.Character, character} params.FilterType = Enum.RaycastFilterType.Blacklist local function rayResult(x, y) local unitRay = mouse.UnitRay return workspace:Raycast(unitRay.Origin, unitRay.Direction * 500, params) end local mousePos = uis:GetMouseLocation() if character.PrimaryPart.Color == Color3.fromRGB(0, 255, 0) then if rayResult(mousePos.X, mousePos.Y) then game.ReplicatedStorage.PlaceCharacter:FireServer("Character", CFrame.new(rayResult(mousePos.X, mousePos.Y).Position) * CFrame.Angles(math.rad(0), math.rad(0), math.rad(90))) end script.Parent.Parent.Parent.Enabled = true end character:Destroy() end end) mouse.Button1Down:Connect(function() mouseDown = true end) mouse.Button1Up:Connect(function() mouseDown = false end)