math.randomseed(tick())
local runService = game:GetService("RunService")

local char = script.Parent
local hum = char:WaitForChild("Humanoid")

local nextFire = 0

local shakeRate = 0
local shakeMin = 0
local shakeMax = 5000
local shakeMax1 = 0

runService.RenderStepped:Connect(function()
	if elapsedTime() > nextFire then
		nextFire = elapsedTime() + shakeRate
		hum.CameraOffset = Vector3.new(math.random(shakeMin, shakeMax)/1000, math.random(shakeMin, shakeMax)/1000, math.random(shakeMin, shakeMax)/1000)
	end
end)

Once it's used it stays in a different location rather then your normal camera view.

2 comments

0

maybe record the camera's cframe prior to shaking it, and restore it afterwards?

0

Yeah, might work.