Why is the camera frozen?

Is the camera frozen for y’all too?

Camera Test.rbxl (58.8 KB)

Thanks!

1 Like

could u give a bit more information about what u are doing?

I’m trying to make a freecam the default camera. Does the game link work? Can you move around? If not, could you try the download link? I can’t figure out the issue, it works for me, but not for everyone else…

I have made a freecam script before but I can’t provide it because I’m at school rn, If this topic isn’t solved when I get home I can provide it.

My freecam script works, it just doesn’t for other players, they’re frozen… so I wanna figure out what’s wrong with it.

but thank you :D

The game on roblox doesnt work, but the studio one works, ill let Redston_block180 solve it

What I did was:

  1. Make the player character invisible
  2. Force the player into third person by setting min zoom and max zoom to the same number (I think it was 0.5 or 1) to allow mouse cursor movement
  3. Set the workspace gravity to 0
  4. Use VectorForce (or BodyForce) to move the character when the player uses the WASD keys.
  5. Disable player collision using Collision Groups.

I made mine function like studio freecam (Speeds up over time).

the game on roblox doesn’t work… :sob: :sob: :sob:
any way you can tell me why? Are there any specific settings that I need to change?

this could work, but I’ll use it as the very very last resort if there’s nothing else I can do…

I’ll give you time to try and find a solution but if you haven’t found one in about 2 and a half hours (My school day ends right about then) I will show the scripts I used in my game.

1 Like

I’m back and on PC, did you manage to solve the issue?

yesn’t?

Camera Test Fixed.rbxl (59.7 KB)

My issue is the why. I have this game and file here that do work, but I’m not sure why adding a ScreenGui helps anything. Do you know?

Thanks!

Hold on, lemme get the scripts from my game.

Both of these scripts go in StarterCharacterScripts.

You can copy them entirely if you want.

Server script:

local char = script.Parent
local plr = game.Players:GetPlayerFromCharacter(char)
plr.CharacterAppearanceLoaded:Wait()

char.Animate.Enabled = false

for _, child in pairs(char:GetDescendants()) do
	if child:IsA("BasePart") then
		child.Transparency = 1
		child.CanCollide = false
	elseif child:IsA("ShirtGraphic") then
		child:Destroy()
	elseif child:IsA("Accessory") then
		child:Destroy()
	elseif child:IsA("Decal") then
		child:Destroy()
	end
end

Local script:

local player = game.Players.LocalPlayer
local char = player.Character or player.CharacterAdded:Wait()

local cam = workspace.CurrentCamera
local uis = game:GetService("UserInputService")

local bv = Instance.new("BodyVelocity", char:WaitForChild("Torso"))
bv.MaxForce = Vector3.new(math.huge,math.huge,math.huge)
bv.Velocity  = Vector3.zero
bv.Name = "FlightForce"

local speed = 10
local curSpeed = speed

uis.InputBegan:Connect(function(input: InputObject, gameProcessedEvent: boolean)
	if input.KeyCode == Enum.KeyCode.R and not uis:GetFocusedTextBox() then
		char.Torso.CFrame = workspace.Planets:FindFirstChild(player.Name .. "_home").CFrame + Vector3.new(0, 5, 0)
	end
end)

game:GetService("RunService").Heartbeat:Connect(function(deltaTime: number)
	local moveDir = Vector3.zero
	
	local wPressed
	local aPressed
	local sPressed
	local dPressed
	local spacePressed
	local shiftPressed
	
	if not uis:GetFocusedTextBox() then
		wPressed = uis:IsKeyDown(Enum.KeyCode.W)
		aPressed = uis:IsKeyDown(Enum.KeyCode.A)
		sPressed = uis:IsKeyDown(Enum.KeyCode.S)
		dPressed = uis:IsKeyDown(Enum.KeyCode.D)
		spacePressed = uis:IsKeyDown(Enum.KeyCode.Space)
		shiftPressed = uis:IsKeyDown(Enum.KeyCode.LeftShift)
		
		if wPressed then
			moveDir += cam.CFrame.LookVector
		end
		if aPressed then
			moveDir -= cam.CFrame.RightVector
		end
		if sPressed then
			moveDir -= cam.CFrame.LookVector
		end
		if dPressed then
			moveDir += cam.CFrame.RightVector
		end
		if spacePressed then
			moveDir += cam.CFrame.UpVector
		end
		if shiftPressed then
			moveDir -= cam.CFrame.UpVector
		end
	end
	
	bv.Velocity = moveDir * curSpeed
	
	local dSpeed = player.PlayerScripts.CinematicMode.CinematicModeEnabled.Value and 0.1 or speed
	
	if wPressed or aPressed or sPressed or dPressed or spacePressed or shiftPressed then
		curSpeed *= 1.01
		curSpeed = math.min(curSpeed, 250)
	else
		curSpeed *= 0.95
		curSpeed = math.max(curSpeed, dSpeed)
	end
end)

-- Disable reset button
local success, err
repeat
	success, err = pcall(function()
		game:GetService("StarterGui"):SetCore("ResetButtonCallback", false)
	end)
	task.wait(0.1)
until success

Again, these scripts are great, but I’m interested in why the freecam script doesn’t work without the ScreenGui. Maybe there’s something else going on?

I’m still gonna thank you though because they might be useful for someone else :smiley:

Are there any errors in the current script you are using?

Also yesn’t :joy:

There is some unintended behavior, such as the camera rotating around a point in front of it, instead of around the center of the camera…

Alright, update, I fixed it.
Turns out, the dev (me) has the freecam by default, while other players don’t. I didn’t know this.
So a line in my code, line 3

image

was the culprit.
all I had to do was delete it, and it works perfectly :smiley:

Here’s the post that led me to realize this, all credit goes to this guy/gal:

But thank you guys for your efforts and help!