Hello! I’ve been searching for a perfect answer for a while today and I decided to just give up and write a dev forum post. Thank you to everyone that responds in advance!
The Goal: Making an upside down camera that can still be controlled by the player as if it’s normal, just upside-down.
What I’ve tried and searched for: setting the script’s camera to scriptable and setting the cframe via renderstepped in runservice, which doesn’t let you control the camera, allowing the FOV with math.clamp(x,min,max) but it didn’t function and, normally, the FOV on roblox cannot go below.
The script (although I don’t think it’s neccessary and or will help that much): (also ignore the formatting of the script please, it’s probably really bad…)
local CS=game:GetService("CollectionService")
local RS=game:GetService("RunService")
local TS=game:GetService("TweenService")
for _,v in pairs(CS:GetTagged("RotateCam")) do
local finalcf
v.Touched:Connect(function(hit)
if hit.Parent:FindFirstChild("Humanoid") then
workspace.CurrentCamera.CameraType=Enum.CameraType.Follow -- this is here just to reset the players' camera
wait()
workspace.CurrentCamera.CameraType=Enum.CameraType.Scriptable
local cameracfa=CFrame.Angles(math.rad(180),0,0)
--finalcf=cameracfa+hit.Parent:FindFirstChild("HumanoidRootPart").Position+Vector3.new(0,0,-15)
--local tween=TS:Create(workspace.CurrentCamera,TweenInfo.new(2,Enum.EasingStyle.Quad,Enum.EasingDirection.Out,0,false,0),{CFrame = finalcf}):Play()
--tween.Completed:Connect(function()
RS.RenderStepped:Connect(function()
wait()
workspace.CurrentCamera.FieldOfView=math.clamp(-130,-130,-130)
finalcf=cameracfa+hit.Parent:FindFirstChild("HumanoidRootPart").Position+Vector3.new(0,0,-15)
workspace.CurrentCamera.CFrame=finalcf
end)
--end)
end
end)
end
Try and help if you can, please…