Scripting Helpers is winding down operations and is now read-only. More info→
Ad
Log in to vote
0

Loop only repeats Once? Using while true do

Asked by 5 years ago

Hello everyone, having a problem with my script, for whatever reason the loop only runs once, here is my code:

01while true do
02 
03 
04local SoundPlay = math.random(1, 3)
05local Time = math.random(3,5)
06 
07wait(Time)
08 if SoundPlay == 1 then
09 script.Parent.Sound1:Play()
10 end
11 wait(Time)
12  if SoundPlay == 2 then
13 script.Parent.Sound2:Play()
14 end
15wait(Time)
16 if SoundPlay == 3 then
17 script.Parent.Sound3:Play()
18 end
19 
20end

After the loop runs once, it doest play again, is there a reason for this?

0
I assume it's math.random() loading the same value; try writing math.randomseed(tick()) at the top of the loop? Ziffixture 6913 — 5y
0
any errors? royaltoe 5144 — 5y

1 answer

Log in to vote
0
Answered by 5 years ago
Edited 5 years ago

I found out your mistake or error. From what I see in your script it doesn't have "wait" in the script, without wait in while true do it only works once, I made this mistake once too

01while true do
02    local SoundPlay = math.random(1, 3)
03    local Time = math.random(3,5)
04    wait(Time)
05    if SoundPlay == 1 then
06        script.Parent.Sound1:Play()
07        wait(insert seconds)
08    end
09    wait(Time)
10    if SoundPlay == 2 then
11        script.Parent.Sound2:Play()
12        wait(insert seconds)
13    end
14    wait(Time)
15    if SoundPlay == 3 then
16        script.Parent.Sound3:Play()
17        wait(insert seconds)
18    end
19end
0
yeah i dont think the time variable exists in his orig code royaltoe 5144 — 5y
0
That's not how loops work; they don't need yielldingfunctions hiimgoodpack 2009 — 5y
Ad

Answer this question