Well, the camera shake isn’t what I meant, but the ending looks much better now!
This is code for what I meant by camera shake:
local Roughness = 0.00075
local Speed = 0.5
local xseed = math.random(10000, 100000)
local yseed = math.random(10000, 100000)
local zseed = math.random(10000, 100000)
-- the actual camera function that makes it move
local X = math.noise(xseed, os.clock() % 1000 * Speed) * Roughness
local Y = math.noise(yseed, os.clock() % 1000 * Speed) * Roughness
local Z = math.noise(zseed, os.clock() % 1000 * Speed) * Roughness
Camera.CFrame = Camera.CFrame * CFrame.Angles(X, Y, Z)
That code just makes the camera slowly shake around as if someone was holding a camera, and that’s what I meant by camera shake.
If you like what you have, that’s fine but I thought I would just re-clarify what i meant.