local RedLight = game.Workspace.StartLight.RedModel.LightBulb.PointLight
local YellowLight = game.Workspace.StartLight.YellowModel.LightBulb.PointLight
local GreenLight = game.Workspace.StartLight.GreenModel.LightBulb.PointLight
local Barrier = game.Workspace.Wall
local RaceInProgress = false
local Checkpoint4 = game.Workspace.Checkpoint4
local Checkpoint1 = game.Workspace.Checkpoint1
local Checkpoint2 = game.Workspace.Checkpoint2
local Checkpoint3 = game.Workspace.Checkpoint3
function CreateCars()
for _, object in pairs (game.Workspace:GetChildren()) do
print(object.Name)
if object.Name == "Car" then
print ("This is a car, we need to destroy it!")
object:Destroy()
end
end
end
function DestroyCars()
for _, object in pairs (game.ServerStorage:GetChildren()) do
local carCopy = object:Clone()
carCopy.Parent = game.Workspace
carCopy:MakeJoints()
end
end
function ResetLights()
RedLight.Enabled = false
YellowLight.Enabled = false
GreenLight.Enbled = false
end
function ResetBarrier()
Barrier.CanCollide = true
Barrier.Transparency = 0.5
end
function ResetLightCycle()
RedLight.Enabled = true
wait (1)
RedLight.Enabled = false
YellowLight.Enabled = true
wait (1)
YellowLight.Enabled = false
GreenLight.Enabled = true
end
function RemoveBarrier()
Barrier.Transparency = 1
Barrier.CanCollide = false
end
function ShowVictoryMessage (playerName)
local message = Instance.New("Message")
message.Text = playerName .. " has won!"
message.Parent = game.Workspace
wait(2)
message:Destroy()
end
function Checkpoint4Hit (OtherPart)
print ("Checkpoint4 was hit")
print (OtherPart.name)
if OtherPart ~= nil and OtherPart.Parent ~= nil and OtherPart.Parent:FindFirstChild ("Humanoid") then
print ("A player hit me!")
if not Checkpoint4:FindFirstChild(OtherPart.Parent.Name) and Checkpoint3:FindFirstChild
(OtherPart.Parent.Name) then
local playerTag = Instance.new("StringValue")
playerTag.parent = Finish
playerTag.name = OtherPart.Parent.Name
end
end
end
Finish.Touched:connect(FinishHit)
function Checkpoint1Hit (OtherPart)
print ("Checkpoint1 was hit")
print (OtherPart.name)
if OtherPart ~= nil and OtherPart.Parent ~= nil and OtherPart.Parent:FindFirstChild ("Humanoid") then
print ("A player hit me!")
if Checkpoint1:FindFirstChild (OtherPart.Parent.Name) then
local playerTag = Instance.new("StringValue")
playerTag.parent = Checkpoint1
playerTag.name = OtherPart.Parent.Name
end
if Finish:FindFirstChild (OtherPart.Parent.Name) and RaceInProgress then
print ("Player wins!")
RaceInProgress = false
ShowVictoryMessage(OtherPart.Parent.Name)
end
end
end
Checkpoint1.Touched:connect(Checkpoint1Hit)
function Checkpoint2Hit (OtherPart)
print ("Checkpoint2 was hit")
print (OtherPart.name)
if OtherPart ~= nil and OtherPart.Parent ~= nil and OtherPart.Parent:FindFirstChild ("Humanoid") then
print ("A player hit me!")
if not Checkpoint2:FindFirstChild(OtherPart.Parent.Name) and Checkpoint1:FindFirstChild
(OtherPart.Parent.Name) then
local playerTag = Instance.new("StringValue")
playerTag.parent = Checkpoint2
playerTag.name = OtherPart.Parent.Name
end
end
end
Checkpoint2.Touched:connect(Checkpoint2Hit)
function Checkpoint3Hit (OtherPart)
print ("Checkpoint3 was hit")
print (OtherPart.name)
if OtherPart ~= nil and OtherPart.Parent ~= nil and OtherPart.Parent:FindFirstChild ("Humanoid") then
print ("A player hit me!")
if not Checkpoint3:FindFirstChild(OtherPart.Parent.Name) and Checkpoint2:FindFirstChild
(OtherPart.Parent.Name) then
local playerTag = Instance.new("StringValue")
playerTag.parent = Checkpoint3
playerTag.name = OtherPart.Parent.Name
end
end
end
Checkpoint3.Touched:connect(Checkpoint3Hit)
function ClearCheckpoint(Checkpoint)
for _, object in pairs(Checkpoint:GetChildren()) do
if object.Name ~= "TouchInterest" then
object:Destroy()
end
end
wait(10)
while true do
ResetLights()
ResetBarrier()
DestroyCars()
CreateCars()
ClearCheckpoint(Checkpoint1)
ClearCheckpoint(Checkpoint2)
ClearCheckpoint(Checkpoint3)
ClearCheckpoint(Checkpoint4)
wait(10)
ResetLightCycle()
RemoveBarrier()
RaceInProgress = true
while RaceInProgress == true do
wait()
end
wait(5)
end
Please help, It would mean alot, I am almost done making my game.
Thanks.
