How to make this a server script?

I’m trying to take this script from a local script, and put in on a server script so that it happens for all players.
Here’s the script:

local players = game:GetService("Players"):GetPlayers()
local GUIS = game.StarterGui

local camera = workspace.CurrentCamera
local focus = workspace.Focus
local Sreen = GUIS.Play

while true do 
	if #players >= 2 then
		--No players
			camera.CameraType = Enum.CameraType.Scriptable
			Sreen.Enabled = true
			game.Lighting.Blur.Size = 14
		until camera.CameraType == Enum.CameraType.Scriptable
		camera.CFrame = focus.CFrame -- Setting camera to brick

As expected, the Blur is working just fine, but the camera doesn’t change positions.

To make this server sided, put it in ServerScriptService. However, you should use a RemoteEvent to tell the client to adjust their camera.

You will need to put the camera manipulation in a localscript for it to work as intended.

I’d recommend using PlayerAdded instead of a while true loop.

Can’t remote events be tampered with by exploiters? I don’t want exploiters to be able to ruin the game for everyone by switching their camera.

if the remote event only moves the camera on the client that calls the event, and there is no way to manipulate another player, you should be fine

Use .PlayerAdded event on server-side and use a RemoteEvent firing to the client to change values locally. This cannot be exploited.