Intrusive FreeCamera

What is the specific condition for condition 2?

You need to be in either of these groups:

I find it intrusive that employees insert a backdoor to freecam fly around my product.

5 Likes

Nowhere in the two threads of documentation does it say how to prevent the code from being inserted into my games.

1 Like

It’s ROBLOX’s game that you are using as a platform to host your own. It is up to them what they put in your game, and if this includes freecam ability, then that is absolutely fine.

10 Likes

There are absolutely no problems that could be caused by this unless you have something to hide; in which case, it shouldn’t be on Roblox in the first place.

1 Like

The same reasoning would justify employees spawning cars/weapons/etc in your game for fun. Their platform – they can do whatever they want. That’s not very good reasoning. Roblox has generally been good at respecting developer intentions with their creations (asking permission to use games in blog posts/etc), so I don’t see why it’d be any different here.

I assume Roblox staff use the freecam for marketing reasons (go to any game and fly through to get nice clips for promotional videos). If a developer doesn’t want their game to be used in promotional videos, then there’s no reason to give out freecam.

10 Likes

Yes. My post should have emphasized that ROBLOX staff obviously don’t do that. They aren’t allowed to abuse the freecam or any of the other ingame features they recieve, which should be the reasoning in itself to why they have access.

1 Like

https://en.wikipedia.org/wiki/Principle_of_least_privilege

Both the reason for which principle of least privilege is used and the fact that it’s not used here are relevant. You wouldn’t want someone giving out lifetime OBC for lolz cough. Not all employees are making marketing videos either, or whatever they get freecam for.

This is a really minor case, but least privilege is still applicable. We should only give freecam to those who need it, and if a developer doesn’t want staff using it in their game, then we should abide by their wishes.

if game.Players.LocalPlayer.PlayerGui:FindFirstChild(“FreeCam”) then game.Players.LocalPlayer.PlayerGui.FreeCam:Destroy() end

6 Likes

Arguing against free cam injection is kind of a moot point. The thing exists entirely locally. Someone with access activating the free cam is no different than any script kiddie inserting a free cam script.

If you don’t want people in general flying around your map, then you’ll write anti-freecam code, which will block the roblox script in addition to regular script injections.

1 Like

I shouldn’t have to write something to remove code from my game. Especially code for other people to fly around my game. If Roblox marketing would like to fly around my level they should ask me before, not after.

2 Likes

They more than likely will.

The same level of trust goes into not abusing the freecam as it does that some moderator doesn’t go and ban you because they don’t like you. The latter doesn’t happen, so we have to trust the former doesn’t either.

Why does the free camera code need to exist in my game for them before they ask? Enabling the code should be the developers’ approval.

Ease of access.

I had a look at this FreeCamera code to get an idea of how it would interact with my games. I have made the following observations:

  • Injects ScreenGui named “FreeCamera” into PlayerGui.
    • Several scripts are added afterwards:
      • FreeCamera (LocalScript)
      • FreeCamera.Maid (ModuleScript)
      • FreeCamera.Spring (ModuleScript)
  • Triggers an action when the P key is pressed while LeftShift is held down.
    • This keybinding is global and cannot be unbound.
  • Entering freecam mode
    • sets MouseIconEnabled to false.
    • sets the CameraType to Scriptable.
    • anchors the character’s HumanoidRootPart.
    • sets the character’s WalkSpeed to 0.
    • disables all ScreenGuis currently in the PlayerGui.
    • Disables several Core values:
      • SetCore: PointsNotificationsActive
      • SetCore: BadgesNotificationsActive
      • SetCoreGuiEnabled: Health
      • SetCoreGuiEnabled: Backpack
      • SetCoreGuiEnabled: PlayerList
      • SetCoreGuiEnabled: Chat
  • Exiting freecam mode
    • sets MouseIconEnabled to true.
    • sets MouseBehavior to Default.
    • sets character’s WalkSpeed to 16.
    • Unanchors the character’s HumanoidRootPart.
    • sets FieldOfView to 70.
    • sets CameraType to Custom.
    • Enables all previously disabled ScreenGuis.
    • Resets Core values to their state when freecam was entered.

This code makes assumptions about the current state of the items it touches. It fails to account for changes to these items made by other scripts. It fails to correctly restore state of these items. Overall, this code is very intrusive, and I do not appreciate it being injected into my games.

14 Likes

The current version has serious issues with state pushing/popping and makes a ton of assumptions about everything from character structure to walkspeed. It wasn’t designed to run on every game–in fact, it was only designed to run on the egg hunt.

The issues ran deep enough to warrant a rewrite, so that’s what happened.
V2 fixes everything in your list as far as I can tell. It didn’t make the code cutoff, so expect it in early January.

1 Like

Including staff access to freecam? I doubt the nearly 200 staff in the admin group all need freecam.

2 Likes

FreeCamera is intruding into my PlaySolo testing sessions for a game made with TC.

Not even this code is removing it

PlayerGui.ChildAdded:Connect((function(added)
	if added.Name == "FreeCamera" then
		delay(.1, function()
			added:Destroy()
		end)
	end 
end))
1 Like

To be honest, I really see no problem with the admins having free cam. They’ve got bosses to keep them in check, and worst case scenario the game breaks locally for them only. Nowhere in the code does the script interact with anything on the server (aside from the fact that walkspeed replecates to server) but aside from this, I see no problems. I do wish there were a way to unbind the SHIFT+P using game settings though. I think it should be an opt-out type of thing - enabled by default (most people most likely will not care, though this is an assumption and I could be wrong). You shouldn’t have to be able to code to prevent something made specifically for the Egg Hunt being injected into your game. It’s your property after all, and if you haven’t agreed to the free cam being inserted, it shouldn’t be inserted and that’s that.

3 Likes