Coolant won't work!

Hello!

Recently I’ve been working on a reactor core game.

The problem is when I try to turn on the coolant it just won’t work.

Button Script
for i,v in pairs(script.Parent:GetChildren()) do
	if v:IsA("Part") then
		v:FindFirstChild("ClickDetector").MouseClick:Connect(function(playerWhoClicked)
			if v:FindFirstChild("CoolantLevel").Value == 0 then
				script.Parent.Button1.Down:Play()
				script.Parent.Button1.SurfaceGui.TextLabel.TextColor = BrickColor.new("Lime green")
				script.Parent.Button1.Position = Vector3.new(140.602, 4.056, 185.145)
				script.Parent.Button2.SurfaceGui.TextLabel.TextColor = BrickColor.new("Bright red")
				script.Parent.Button2.Position = Vector3.new(140.602, 4.124, 186.745)
				script.Parent.Button3.SurfaceGui.TextLabel.TextColor = BrickColor.new("Bright red")
				script.Parent.Button3.Position = Vector3.new(140.602, 4.124, 188.345)
				script.Parent.Button4.SurfaceGui.TextLabel.TextColor = BrickColor.new("Bright red")
				script.Parent.Button4.Position = Vector3.new(140.602, 4.124, 189.945)
				script.Parent.Button5.Position = Vector3.new(140.602, 4.124, 191.545)
				script.Parent.Button5.SurfaceGui.TextLabel.TextColor = BrickColor.new("Bright red")
				workspace.Temperature.CoolantLevel.Value = 0
			elseif v:FindFirstChild("CoolantLevel").Value == 1 then
				script.Parent.Button2.Down:Play()
				script.Parent.Button2.SurfaceGui.TextLabel.TextColor = BrickColor.new("Lime green")
				script.Parent.Button2.Position = Vector3.new(140.602, 4.056, 186.745)
				script.Parent.Button1.SurfaceGui.TextLabel.TextColor = BrickColor.new("Bright red")
				script.Parent.Button1.Position = Vector3.new(140.602, 4.124, 185.145)
				script.Parent.Button3.SurfaceGui.TextLabel.TextColor = BrickColor.new("Bright red")
				script.Parent.Button3.Position = Vector3.new(140.602, 4.124, 188.345)
				script.Parent.Button4.SurfaceGui.TextLabel.TextColor = BrickColor.new("Bright red")
				script.Parent.Button4.Position = Vector3.new(140.602, 4.124, 189.945)
				script.Parent.Button5.Position = Vector3.new(140.602, 4.124, 191.545)
				script.Parent.Button5.SurfaceGui.TextLabel.TextColor = BrickColor.new("Bright red")
				workspace.Temperature.CoolantLevel.Value = 1
			elseif v:FindFirstChild("CoolantLevel").Value == 2 then
				script.Parent.Button3.Down:Play()
				script.Parent.Button3.SurfaceGui.TextLabel.TextColor = BrickColor.new("Lime green")
				script.Parent.Button3.Position = Vector3.new(140.602, 4.056, 188.345)
				script.Parent.Button1.SurfaceGui.TextLabel.TextColor = BrickColor.new("Bright red")
				script.Parent.Button1.Position = Vector3.new(140.602, 4.124, 185.145)
				script.Parent.Button2.SurfaceGui.TextLabel.TextColor = BrickColor.new("Bright red")
				script.Parent.Button2.Position = Vector3.new(140.602, 4.124, 186.745)
				script.Parent.Button4.SurfaceGui.TextLabel.TextColor = BrickColor.new("Bright red")
				script.Parent.Button4.Position = Vector3.new(140.602, 4.124, 189.945)
				script.Parent.Button5.Position = Vector3.new(140.602, 4.124, 191.545)
				script.Parent.Button5.SurfaceGui.TextLabel.TextColor = BrickColor.new("Bright red")
				workspace.Temperature.CoolantLevel.Value = 2
			elseif v:FindFirstChild("CoolantLevel").Value == 3 then
				script.Parent.Button4.Down:Play()
				script.Parent.Button4.SurfaceGui.TextLabel.TextColor = BrickColor.new("Lime green")
				script.Parent.Button4.Position = Vector3.new(140.602, 4.056, 189.945)
				script.Parent.Button1.SurfaceGui.TextLabel.TextColor = BrickColor.new("Bright red")
				script.Parent.Button1.Position = Vector3.new(140.602, 4.124, 185.145)
				script.Parent.Button2.SurfaceGui.TextLabel.TextColor = BrickColor.new("Bright red")
				script.Parent.Button2.Position = Vector3.new(140.602, 4.124, 186.745)
				script.Parent.Button3.SurfaceGui.TextLabel.TextColor = BrickColor.new("Bright red")
				script.Parent.Button3.Position = Vector3.new(140.602, 4.124, 188.345)
				script.Parent.Button5.Position = Vector3.new(140.602, 4.124, 191.545)
				script.Parent.Button5.SurfaceGui.TextLabel.TextColor = BrickColor.new("Bright red")
				workspace.Temperature.CoolantLevel.Value = 3
			elseif v:FindFirstChild("CoolantLevel").Value == 4 then
				script.Parent.Button5.Down:Play()
				script.Parent.Button5.SurfaceGui.TextLabel.TextColor = BrickColor.new("Lime green")
				script.Parent.Button5.Position = Vector3.new(140.602, 4.056, 191.545)
				script.Parent.Button1.SurfaceGui.TextLabel.TextColor = BrickColor.new("Bright red")
				script.Parent.Button1.Position = Vector3.new(140.602, 4.124, 185.145)
				script.Parent.Button2.SurfaceGui.TextLabel.TextColor = BrickColor.new("Bright red")
				script.Parent.Button2.Position = Vector3.new(140.602, 4.124, 186.745)
				script.Parent.Button3.SurfaceGui.TextLabel.TextColor = BrickColor.new("Bright red")
				script.Parent.Button3.Position = Vector3.new(140.602, 4.124, 188.345)
				script.Parent.Button4.Position = Vector3.new(140.602, 4.124, 189.945)
				script.Parent.Button4.SurfaceGui.TextLabel.TextColor = BrickColor.new("Bright red")
				workspace.Temperature.CoolantLevel.Value = 4
			end
		end)
	end
end
Coolant Script
local Temperature = workspace:WaitForChild("Temperature", 120)
local CoolantActive = Temperature:WaitForChild("CoolantActive", 120)
local CoolantLevel = Temperature:WaitForChild("CoolantLevel", 120)

while true do
	if script.Parent.Parent.CoolantActive.Value == true then
		if CoolantLevel.Value == 1 then
			Temperature.Value = Temperature.Value - 5
		elseif CoolantLevel.Value == 2 then
			Temperature.Value = Temperature.Value - 11
		elseif CoolantLevel.Value == 3 then
			Temperature.Value = Temperature.Value - 16
		elseif CoolantLevel.Value == 4 then
			Temperature.Value = Temperature.Value - 21
		elseif CoolantLevel.Value == 0 then return
		end
	end
	wait(1)
end
Video


As you can see, the coolant doesn’t do anything at all.

Have a nice day!

I’m assuming the coolant script is a server script. If that’s the case then the change that the button script (local script) makes is client sided only. You should use remotes to change the state on the server.

Thanks for trying to help! But I already found a fix. Had to replace

elseif CoolantLevel.Value == 0 then

With

else

local Temperature = workspace:WaitForChild("Temperature", 120)
local CoolantActive = Temperature:WaitForChild("CoolantActive", 120)
local CoolantLevel = Temperature:WaitForChild("CoolantLevel", 120)

while true do
	if script.Parent.Parent.CoolantActive.Value == true then
		if CoolantLevel.Value == 1 then
			Temperature.Value = Temperature.Value - 5
		elseif CoolantLevel.Value == 2 then
			Temperature.Value = Temperature.Value - 11
		elseif CoolantLevel.Value == 3 then
			Temperature.Value = Temperature.Value - 16
		elseif CoolantLevel.Value == 4 then
			Temperature.Value = Temperature.Value - 21
		else
		end
	end
	wait(1)
end
1 Like