FreeCamera State Bug & Override Issue


The FreeCamera has two issues (that I know of) currently. They are detailed below.

(1) PlayerState is not properly reset

When you enable the FreeCamera (pressing LEFT-SHIFT+P), it “saves” the current state by throwing all enabled ScreenGuis into a table. When you disable FreeCamera, it resets the state of those ScreenGuis.

However, that table of ScreenGui’s is not cleared after popping the state when you exit FreeCamera. Thus, every time you turn on FreeCamera, it simply appends to its collection of enabled ScreenGuis.

This causes lots of issues. ScreenGuis will end up popping back up that shouldn’t be opened.

Proposed solution: Simply clear the table of ScreenGuis. This should occur in the PlayerState.Pop function, and could be one line of code, perhaps on line 394:

screenGuis = {}

(2) No way to disable FreeCamera

For other built-in scripts (e.g. CameraScript), you simply drop in your own script with the same name, and the game will use your own script instead of the built-in one. This does not work for CameraScript. There is currently no way to disable the FreeCamera without creating another script simply dedicated to destroying it.

This is intrusive for games that rely on the camera being in specific locations.

Proposed solution: Allow developers to either override the FreeCamera script, or add an option to disable it.


Aren’t you only able to use the FreeCamera if you have edit permissions on the game?


Will fix the ScreenGui clearing, thanks for the report.

Regarding disabling it, Freecam is available to two user groups:

  1. Roblox staff, who use it to e.g. grab screenshots and footage for marketing materials
  2. Developers with edit permissions on your game

Freecam is not available to the general public and never will be.

I have a ticket in my backlog to look into ways to give developers more flexibility over whether freecam can be enabled, but all things considered, disabling it can only hinder your game.