I have a module script inside a screen GUI that shakes the camera. It only occurs once and I can't figure out to make it shake multiple times.

Module Script

local module = {}

wait()
local Player = game.Players.LocalPlayer
local Char = Player.Character or Player.CharacterAdded:Wait()
local Humanoid = Char.Humanoid
local Enabled = true
local x = math.random(-100,100)/100
local y = math.random(-100,100)/100
local z = math.random(-100,100)/100
if not Enabled then return end
Enabled = false
for i = 1, 20 do
    local x = math.random(-100,100)/100
    local y = math.random(-100,100)/100
    local z = math.random(-100,100)/100
    Humanoid.CameraOffset = Vector3.new(x,y,z)
    print(i)
    wait()
 end
Enabled = true


return module

I have a local script in the screen GUI that is requiring the module script.

Local Script

wait(0.01)
while wait() do
		if game.Workspace.GiantNoob.Burp.BurpParticles.Enabled == true then
			local GuiModule = require(script.Parent.GuiEffects)
			GuiModule.CreateFrames()
		end
	end

All help appreciated, thanks.