Solution to the Camera / Poppercam bug?

So most people know about the Camera bug, if you don’t; Poppercam is basically on always which means the Camera glitches out 90% if you’re doing your own Camera stuff. It’s most visible in games with real shops such as Mining Simulator.

If you’re still unsure, here’s a gif of it in action.
https://gyazo.com/b8dae493e743d31eca30a66e3627bb7e

Does anyone have a solution that doesn’t use TweenService? I don’t want it to glide across, I’d rather it just be instant which you can’t do with TweenService.

My Camera manipulation code is literally just one line (and I know it works because I haven’t edited it since it broke and double checked with printing the Camera.CFrame

Camera.CFrame = Start * CFrame.new(Multiple * Position,0,0)

Any help is appreciated!

2 Likes

Yeah before I used
game.Workspace.CurrentCamera:Interpolate(CFrame.new(game.Workspace.target1.Position),CFrame.new(game.Workspace.target.Position),.1)

Now I use…
game.Workspace.CurrentCamera.CFrame = CFrame.new(game.Workspace.target1.Position,game.Workspace.target.Position)

Which works alright, although you don’t get the fancy animation );
Both situations I used two target blocks in workspace though, one for position and one for a target angle. But you could just use positions

1 Like

Setting the Camera CFrame directly has the same issue for me.

1 Like

O uhmm. Maybe try in a similar format with the first parameter for position, and the second for a viewpoint (ie ur item’s position)?

I am not entirely sure what you mean, but it sounds like that’s still writing to the CFrame property directly.

Hmm Idk, the full script I used was just:

wait(2)
game.Workspace:WaitForChild(“Camera”)
game.Workspace.CurrentCamera.CameraType = “Scriptable”
CameraPosition = game.Workspace.target1.Position
CameraLookAt = game.Workspace.target.Position
game.Workspace.CurrentCamera.CFrame = CFrame.new(CameraPosition,CameraLookAt)

Which is just in a localscript and change the camera 2 seconds after joining, and it works alright for me… I guess idk what the difference might be

Do this to format your code (put the code inside the two ```)

```lua

```

Also, your code seems to just aim the camera, not move it.

The issue occurs when the camera collides with objects and corrects itself while it’s set to Scriptable. This happens for instance when you are setting the CFrame of the camera every RenderStep to make a custom camera system, which is what a solution is wanted for.

1 Like

it moves it aswell

O im sorry I guess idk how to fix ur issue then

As of now, I haven’t seen any posts from staff addressing any immediate fixes to this potentially game breaking issue. It broke one of the functions in my game, the only thing I haven’t tried is using tween service on the camera CFrame but I noticed setting it is even glitchy. I’m hoping it will be fixed very soon.

2 Likes

What’s Poppercam again? Is there even a way to disable it? If Poppercam is causing the issue (I don’t even know what it is and probably don’t use it), then I’d rather just rid of it with a fork of the current PlayerScripts.

It’s a problem with the source code behind the poppercam, disabling core scripts won’t make any difference sadly.

I have found that setting the camera CFrame directly seems to cause the problem less, but still sometimes. Interpolating and doing other stuff causes it a lot more. Keeping the camera away from objects in the world also stops it from happening, but this is obviously infeasible in most cases.

1 Like

I switched to using an old version of the CameraScript which can be found at the bottom of this post:

“OldPlayerScriptsFinalVersion.rbxl”

This fixed all the weird camera stuff that was happening on my game’s menu. I don’t think this is a good long term solution but it works for now and it was easy to do.

1 Like