EZ Camera Shake ported to Roblox

Some way to detect when the camera stopped shaking?

1 Like

strange, i have it so if you land the screen shakes, and it works once but then all the other times it doesnt shake (nevermind, fixed it)

Very useful! I’m using modified presets

Can you stop a :StartShake() without stopping it all, so i can start an explosion preset afterwards without having to :Start() again?

How do I trigger it from the script? (summon a script)

has anyone found a way yet to make this work with fps unlockers?

2 Likes

Is there a way to change the intensity of the shake while it’s already going?

is there any way i can use this for server script ?

you can’t shake the camera on the server

Where do all these scripts go?

Edit: my first question was stupid

Is there a way to edit the attributes of a continuous shake mid-shake?

I came across with a big problem with EZ Camera Shake not too long ago.
So i have a FPS Unlocker and it makes the Camera Shaker to shake way too much.

Here you can see the ressult:
Without FPS Unlocker


With FPS Unlocker

Also something that is worth mentioning is that i am using the Explosion Preset that the module Provides and it shakes like that in every other preset or other function.

You can find the FPS Unlocker i use here:

5 Likes

Is there a way to make sure the rotation will return back to the original camera rotation when the shake is ending?

EDIT:
The only solution i see is to make the shake less intense to make it not as noticeable.

I figured out how after 2 weeks of searching, you need to loop the camera lerping back to it’s original cframe

1 Like

sorry for reviving this, but when looking at this script and testing it ingame, it works the other way around, like the farther I get away the more intense the shake gets, the more closer i get the less intense it gets, but i want it the other way around, any help?

I had this exact same problem and after searching on google for a while I found a solution using some complex math:

local Dist = (character.Head.Position - Distance).Magnitude
local Constant = 80
local Clamp = 2
local Damping = 3.5
local DistValue = (Constant/(Dist + Clamp)) ^ (1/Damping)
local Shake = camShake:Shake(CameraShaker.Presets.Explosion)
Shake:SetScaleMagnitude(DistValue)

You can change the body part at the beginning I just prefer using the head.
I also sadly forgot what most of the numbers are but I think the Constant is the base number that decides the intensity if you want to change it.

Also the Distance value at the beginning is just the magnitude between the character and the explosion for what I am using it on just in case you were unsure what it is :+1:

4 Likes

Ok im having a big problem with it

If we make simply

CurrentCamera.CFrame *= ShakeCFrame

This is gonna aways add CFvalues to the previous, and its not what it is meant to do unless your camera is still, so its not a propper way to use along with the default camera settings.

Does someone know where can I find the current rotation of the camera as it should be without the shaker CF at the default CameraModule, so I can apply this module correctly?

Uh, nevermind, i solved it by changing the :Start() method to

function CameraShaker:Start()
   if (self._running) then return end
   self._running = true
   local callback = self._callback
   game:GetService("RunService"):BindToRenderStep(self._renderName, self._renderPriority, function(dt)
	    profileBegin(profileTag)
	    local cf = self:Update(dt)
	    profileEnd()
	    callback(cf * self._oldCF:Inverse())
	    self._oldCF = cf
    end)
end

I saved the last shakerCF in a variable and subtracted it on the next change

2 Likes

hey dude i ran into a problem.i dont know how to change the fade out time from local script
for example:
camshake:Shake(CameraShaker.Presets.Explosion)

i wanna change the roughness,magnitude,fadeout time from local script

For magnitude you can do:

Shake:SetScaleMagnitude(num)

though I’m not sure about the rest. Your best bet is to look through the module scripts and do CTRL/CMD + F to search for key words.