Enum.DevCameraOcclusionMode.Scriptable

As a Roblox developer, it is currently too hard to create a custom camera occlusion/collision system while working with the default camera scripts.

I want to keep the default camera script control (user inputs, zoom, rotation, etc.), but have the ability to disable ONLY the occlusion of the camera scripts so I can implement my own custom camera collision detection by doing the calculations after Enum.RenderPriority.Camera.

Currently, there are only two options for Player.DevCameraOcclusionMode:

  • Enum.DevCameraOcclusionMode.Zoom - Default collision behavior
  • Enum.DevCameraOcclusionMode.Invisicam - Adds transparency effects (and makes zooming less smooth)

Neither option allows developers to implement their own custom occlusion system with custom RaycastParams while keeping the default camera controls.

If Roblox is able to address this issue, it would improve my development experience because:

  1. I could use custom RaycastParams for camera collision (respecting specific CollisionGroups, filtering certain parts, etc.)
  2. I wouldn’t have conflicts between Roblox’s built-in occlusion and my custom system

Proposed solution:
Add Enum.DevCameraOcclusionMode.Scriptable (or .Disabled) that completely disables the default camera occlusion, allowing developers to handle all collision detection themselves while preserving default camera controls.

I’d also like the property on the Player instance to be unlocked so we can change it during runtime!
image

5 Likes