Hello everyone, I am making a roblox game where when you press a button on of 2 things will happen, those 2 things are either the game can be foggy or the game could have low gravity, want it to randomly pick one of those options each time, the code below is all of the code in the button (the one that i press to make this happen) it is inside a normal script, i tried a or statement thinking it would choose between the 2 options but it seems to only always pick the first option, how would i make it randomly choose between the 2 instead of always picking the first option using the code below, i tried a or statement as you can see below but that didn't seem to work. Line 14 is where i used the statement to randomly pick between the 2 but it didn't work, any help would be great, thank you.
local lighting = game.Lighting local button = script.Parent local ClickDetector = Instance.new("ClickDetector") ClickDetector.Parent = button ClickDetector.MaxActivationDistance = 15 ClickDetector.MouseClick:Connect(function() print("Button has beed clicked.") button.Transparency = 1 game.Workspace.Stand.Transparency = 1 game.Workspace.Stand.CanCollide = false button.CanCollide = false wait(0.4) lighting.FogEnd = 12 or game.Workspace.Gravity == 30 if lighting.FogEnd == 12 then do game.Workspace.FindMe.Transparency = 0 game.Workspace.FindMe.CanCollide = true game.Workspace.FindMe.ClickDetector.MouseClick:Connect(function() lighting.FogEnd = 1000 button.CanCollide = true button.Transparency = 0 game.Workspace.Stand.Transparency = 0 game.Workspace.Stand.CanCollide = true game.Workspace.FindMe.CanCollide = false game.Workspace.FindMe.Transparency = 1 if game.Workspace.Gravity == 30 then do game.Workspace.World.BrickColor = BrickColor.Blue() end end end) end end end)
Well, let me elaborate what @deeskaalstickman649 is trying to say. Basically, you cannot use anything in math.random()
. It only supports number. So, if you want to apply math.random
in your code, you can do:
local Random = math.random(1, 2) if Random == 1 then -- What you want to do (E.G.: Fog script) else -- Using else, as there are no other possible outputs than 1 or 2 -- (E.G.: Lightning script) end
Explanation of math.random
:
local a = math.random(1, 2) -- Structure of math.random() is math.random(min. no., max. no.). WARNING : DO NOT DO like -- math.random(2, 1), it will error, as the first parameter is the minimum number -- Variable 'a' is assigned for the result of the random between 1 and 2
If you still have doubts, comment down and I will try my best to help.
Lemme know if it helps!
EDIT : If you are getting confused, on putting the variable for math.random()
, here, you should put it here:
local lighting = game.Lighting local button = script.Parent local ClickDetector = Instance.new("ClickDetector") ClickDetector.Parent = button ClickDetector.MaxActivationDistance = 15 ClickDetector.MouseClick:Connect(function() print("Button has beed clicked.") button.Transparency = 1 game.Workspace.Stand.Transparency = 1 game.Workspace.Stand.CanCollide = false button.CanCollide = false wait(0.4) local variable = math.random(1, 2) -- Your variable if variable == 1 then -- Your code for Fog else -- Your code for Lightning end end)
Use math.random()
to generate a random number, and then use an if statement to make the game foggy or low gravity depending on the returned number. Make sure to use the math.random()
inside the event.