Ad
Log in to vote
1

How to fix math.random not randomizing part's BrickColor?

Asked by
R0jym 14
16 days ago
Edited 16 days ago

Hello there, I made a script in which the part named "painter" randomizes the color of another part named "Cover" with the math.random script, however upon trying it the Cover only appears as color Gold with the Paper aswell colored as Gold even though my script clearly says that the Paper should be white, how do I fix this?

NOTE: There is a script inside the "Cover" part which is just cloning it along with it's children

local RandomColorGenerator = math.random(1, 5)
local Cover = game.Workspace:WaitForChild("Cover")
local Paper = Cover.Paper
local painter = script.Parent

painter.Touched:Connect(function(Cover)
    if RandomColorGenerator == 1 then
        Cover.BrickColor = BrickColor.new("Navy blue")
        Paper.BrickColor = BrickColor.new("White")
    end
    if RandomColorGenerator == 2 then
        Cover.BrickColor = BrickColor.new("Maroon")
        Paper.BrickColor = BrickColor.new("White")
    end
    if RandomColorGenerator == 3 then
        Cover.BrickColor = BrickColor.new("Gold")
        Paper.BrickColor = BrickColor.new("White")
    end
    if RandomColorGenerator == 4 then
        Cover.BrickColor = BrickColor.new("Magenta")
        Paper.BrickColor = BrickColor.new("White")
    end
    if RandomColorGenerator == 5 then
        Cover.BrickColor = BrickColor.new("Sea green")
        Paper.BrickColor = BrickColor.new("White")
    end
end)

0
Not sure what the issue is here to be honest. However, you could try moving the RandomColorGeneration variable into the start of the function rather than outside of it. KingDomas 148 — 16d
0
I just started learning LUA in a couple of days maybe try FindFirstChild event instead of WaitForChild? JerkDerekThe14alt 11 — 16d

1 answer

Log in to vote
0
Answered by
rabbi99 692 Moderation Voter
16 days ago

You wanna get a random number every time you touch it, so you use the math.random function every time you touch it:

local Cover = game.Workspace:WaitForChild("Cover")
local Paper = Cover.Paper
local painter = script.Parent

painter.Touched:Connect(function(Cover)
    local RandomColorGenerator = math.random(1, 5)
    if RandomColorGenerator == 1 then
        Cover.BrickColor = BrickColor.new("Navy blue")
        Paper.BrickColor = BrickColor.new("White")
    end
    if RandomColorGenerator == 2 then
        Cover.BrickColor = BrickColor.new("Maroon")
        Paper.BrickColor = BrickColor.new("White")
    end
    if RandomColorGenerator == 3 then
        Cover.BrickColor = BrickColor.new("Gold")
        Paper.BrickColor = BrickColor.new("White")
    end
    if RandomColorGenerator == 4 then
        Cover.BrickColor = BrickColor.new("Magenta")
        Paper.BrickColor = BrickColor.new("White")
    end
    if RandomColorGenerator == 5 then
        Cover.BrickColor = BrickColor.new("Sea green")
        Paper.BrickColor = BrickColor.new("White")
    end
end)
Ad

Answer this question