local event = game:GetService("ReplicatedStorage").Died
local event2 = game:GetService("ReplicatedStorage").Start
local latestTrack = nil
local latestObstacle = nil
local createTracks = false -- Boolean variable to control track creation
local function deleteAllTracks()
for i, track in pairs(workspace.Tracks:GetChildren()) do
if i ~= 1 then
track:Destroy()
print("Destroyed tracks expect first.")
end
end
for i, obstacle in pairs(workspace.Obstacles:GetChildren()) do
if i ~= 1 then
obstacle:Destroy()
print("Destroyed obstacles expect first.")
end
end
end
event.OnServerEvent:Connect(function(player: Player)
deleteAllTracks()
createTracks = false
end)
event2.OnServerEvent:Connect(function(player: Player)
createTracks = true
end)
-- The main loop for creating new tracks
while task.wait(3) do
if createTracks then
print("New Track and New Obstacles")
local newTrack = workspace.Tracks.TrackPart:Clone()
local newObstacle = game.ServerStorage.Obstacles.Laser1:Clone()
-- If latestTrack is not nil, set the position of the new track relative to the last track's position
if latestTrack then
newTrack.Position = Vector3.new(newTrack.Position.X, newTrack.Position.Y, latestTrack.Position.Z - 500)
end
if latestObstacle then
newObstacle:PivotTo(CFrame.new(newObstacle.Laser.CFrame.X, newObstacle.Laser.CFrame.Y, latestObstacle.Laser.CFrame.Z - 250, 0, 0, 1, -1, 0, 0, 0, -1, 0))
end
newTrack.Parent = workspace.Tracks
newObstacle.Parent = workspace.Obstacles
latestTrack = newTrack
latestObstacle = newObstacle
end
end
So the problem in the code is that sometimes at line 42 it will say
Laser is not a valid member of Laser1
local event = game:GetService("ReplicatedStorage").Died
local event2 = game:GetService("ReplicatedStorage").Start
local latestTrack = nil
local latestObstacle = nil
local createTracks = false -- Boolean variable to control track creation
local createObstacles = false
local function deleteAllTracks()
for i, track in pairs(workspace.Tracks:GetChildren()) do
if i ~= 1 then
track:Destroy()
print("Destroyed tracks expect first.")
end
end
for i, obstacle in pairs(workspace.Obstacles:GetChildren()) do
if i ~= 1 then
obstacle:Destroy()
print("Destroyed obstacles expect first.")
end
end
end
event.OnServerEvent:Connect(function(player: Player)
deleteAllTracks()
createTracks = false
createObstacles = false
end)
event2.OnServerEvent:Connect(function(player: Player)
createTracks = true
createObstacles = true
end)
-- The main loop for creating new tracks
while task.wait(3) do
if createTracks then
print("New Track and New Obstacles")
local newTrack = workspace.Tracks.TrackPart:Clone()
local newObstacle = game.ServerStorage.Obstacles.Laser1:Clone()
-- If latestTrack is not nil, set the position of the new track relative to the last track's position
if latestTrack then
newTrack.Position = Vector3.new(newTrack.Position.X, newTrack.Position.Y, latestTrack.Position.Z - 500)
end
if latestObstacle then
if newObstacle:WaitForChild("Laser") then
newObstacle:PivotTo(CFrame.new(newObstacle.Laser.CFrame.X, newObstacle.Laser.CFrame.Y, latestObstacle.Laser.CFrame.Z - 250, 0, 0, 1, -1, 0, 0, 0, -1, 0))
end
end
newTrack.Parent = workspace.Tracks
newObstacle.Parent = workspace.Obstacles
latestTrack = newTrack
latestObstacle = newObstacle
end
end
local event = game:GetService("ReplicatedStorage").Died
local event2 = game:GetService("ReplicatedStorage").Start
local latestTrack = nil
local latestObstacle = nil
local createTracks = false -- Boolean variable to control track creation
local createObstacles = false
local function deleteAllTracks()
for i, track in pairs(workspace.Tracks:GetChildren()) do
if i ~= 1 then
track:Destroy()
print("Destroyed tracks expect first.")
end
end
for i, obstacle in pairs(workspace.Obstacles:GetChildren()) do
if i ~= 1 then
obstacle:Destroy()
print("Destroyed obstacles expect first.")
end
end
end
event.OnServerEvent:Connect(function(player: Player)
deleteAllTracks()
createTracks = false
createObstacles = false
end)
event2.OnServerEvent:Connect(function(player: Player)
createTracks = true
createObstacles = true
end)
-- The main loop for creating new tracks
while task.wait(3) do
if createTracks then
newTrack.Parent = workspace.Tracks
newObstacle.Parent = workspace.Obstacles
latestTrack = newTrack
latestObstacle = newObstacle
print("New Track and New Obstacles")
local newTrack = workspace.Tracks.TrackPart:Clone()
local newObstacle = game.ServerStorage.Obstacles.Laser1:Clone()
-- If latestTrack is not nil, set the position of the new track relative to the last track's position
if latestTrack then
newTrack.Position = Vector3.new(newTrack.Position.X, newTrack.Position.Y, latestTrack.Position.Z - 500)
end
if latestObstacle then
if newObstacle:WaitForChild("Laser") then
newObstacle:PivotTo(CFrame.new(newObstacle:WaitForChild("Laser").CFrame.X, newObstacle:WaitForChild("Laser").CFrame.Y, latestObstacle.Laser.CFrame.Z - 250, 0, 0, 1, -1, 0, 0, 0, -1, 0))
end
end
end
end