Popper.lua
, found inside Roblox’s default camera controller in the player scripts, contains incorrect logic for binding to the workspace’s CurrentCamera
. This logic is important for determining the subject part and subject root part that the camera is focusing on and is critical for popping the camera correctly. Because the module only binds to workspace.CurrentCamera
when required, any changes to the property later on can cause major popping issues.
Repro steps:
- Enter “Play Solo” on an empty Baseplate
- Change the
CameraSubject
ofworkspace.CurrentCamera
to the Baseplate. This will cause the popper to change its tracked “subjectRoot” to the baseplate and disable popping for it. - Create a new camera and configure it to follow your character (
CameraSubject
=Humanoid
,CameraType
=Custom
) - Assign
workspace.CurrentCamera
to this new camera - Since the popper does not bind to this new camera and update its “subjectRoot”, the camera will still not be popped by the baseplate
Expected behavior
Popper.lua
should utilize the observer pattern in order to correctly bind to the current camera’s properties each time it changes.