I would say:
if math.random() <= .3 then print("Yes") end
But I'm pretty sure this isn't truly a "30% chance". Any number has an equal chance of being rolled here (any float value from 0 to 1) so it's not truly random. Not sure though
this seems to work for me local rolls = 0 while wait(1) do local r = math.random() * 100 print(rolls .. " since last win") if # ## 30 then rolls = 0 print('win') else rolls = rolls + 1 end end