Is it possible to create a low FPS effect?

Hi all, not sure if this is the correct place to ask this but I was just wondering if there was any way to give off the effect of the player having a low fps? I wouldn’t want the actual game lagging, perhaps just the camera. Is this even possible? Thanks for the help.

1 Like

I can only think of one way to do this, and it is to have a viewport frame contain the entire workspace and only update every so often.

I have no clue, but is it possible to make a Custom camera script that has something like a task.wait(1) in it to pause the camera frames rendered to give the lag effect you want?

This script:

local rs = game:GetService("RunService")

local lagAmount = <your number here> -- How much FPS you want.

local lastTick = tick()
while rs.Heartbeat:Wait() do
	repeat until tick() - lastTick > 1/lagAmount -- Not entirely sure the logic behind this. Probably yields the client until our next frame update needs to be done, simulating lag.
	lastTick = tick()

This can be on the server or the client, and will cause either the server or the client to lock max fps at the “lagAmount” variable. Again, this only sets max fps, actual lag can bring it lower then your lag amount.
(This isn’t my code, pretty sure I saw this somewhere in #development-discussion)

1 Like

Doing this is really bad for battery life and hogs the CPU. I would not recommend.

Oh, I didn’t know that.
(But it would make sense, because it yields until the next “frame” should be rendered)

You can use ViewportFrame can lag the frame updating which does not cause any CPU hogging, but the cons of using ViewportFrame is pixilation.