Well, I was trying to make a minigame script. Here's how the minigame works:

After 3 seconds, a sign will turn a color, and you must stand on the pad that is that color. If you don't, then you die. The next one will go in 5 seconds.

For some weird reason, this isn't working, and I don't know how to fix it.

local gameIsPlaying = game.Workspace.GameGUI.GameRunning
print(script.Parent.ColorValues.ColorValue.Value)
repeat wait() until gameIsPlaying.Value == true
local pads = script.Parent.Pads
local sign = script.Parent.Sign.SignPart
local values = script.Parent.ColorValues:GetChildren()

for i = 1, 500 do
	wait(3)
	local valueNeeded = values[math.random(1, #values)]
	local brickColorNeeded = valueNeeded
	sign.BrickColor = BrickColor.new(brickColorNeeded.Value)
	wait(5)
	for j = 1, 10, 1 do do
		for _, pad in pairs(pads:GetChildren()) do
			if pad.BrickColor ~= BrickColor.new(brickColorNeeded.Value) then
				pad.Transparency = pad.Transparency + 0.1
				if j == 10 then
					pad.CanCollide = false
				end
			end
			wait(0.025)
		end
	end
	wait(4)
	for k = 1, 10, 1 do
		for _, pad in pairs(pads:GetChildren()) do
			if pad.BrickColor ~= BrickColor.new(brickColorNeeded.Value) then
				pad.Transparency = pad.Transparency - 0.1
				if k == 10 then
					pad.CanCollide = true
				end
			end
			wait(0.025)
		end
	end
	wait(2)
	end
end

But with this, I come up with this error:

20:49:42.484 - Workspace.Colored Squares.Script:12: bad argument #1 to 'new' (Color3 expected, got BrickColor)

20:49:42.485 - Script 'Workspace.Colored Squares.Script', Line 12

20:49:42.485 - Stack End

I know I've done something wrong. But what is it?

Help is appreciated.

7 comments

0

You try to reference brickColorNeeded as if it as a String Value, when in fact it is a variable. This means you simply need to change any brickColorNeeded.Value's to brickColorNeeded.

0

It's actually a BrickColorValue.

0

The instance "BrickColorValue"

0

don't use .Value

0

I mean the object "BrickColorValue"

0

I fixed it, by doing BrickColorValue.Color