1st Person System not working for mobile

Hello developpers, I am trying to make a smooth 1st person system.
Since I only made the system for desktop, it doesn’t work on mobile. I first tried to detect if it is a mobile device, then I do the system for mobile. Here’s the entire code:

----------------------------------- Settings
CanToggleMouse = {allowed = true; activationkey = Enum.KeyCode.F;}
CanViewBody = true
Sensitivity = 0.9
Smoothness = 0.1
FieldOfView = 70
HeadOffset = CFrame.new(-1,0,0)


repeat wait() until game:GetService("Players").LocalPlayer.Character ~= nil
local runService = game:GetService("RunService")
local UIS = game:GetService("UserInputService")
local players = game:GetService("Players")

local cam = game.Workspace.CurrentCamera
local player = players.LocalPlayer
local mouse = player:GetMouse()
mouse.Icon = "rbxassetid://569021388" -- replaces mouse icon
local character = player.Character or player.CharacterAdded:wait()
local human = character.Humanoid
local humanoidpart = character.HumanoidRootPart

local head = character:WaitForChild("Head")
local CamPos,TargetCamPos = cam.CoordinateFrame.p,cam.CoordinateFrame.p 
local AngleX,TargetAngleX = 0,0
local AngleY,TargetAngleY = 0,0

local running = true
local freemouse = false
local defFOV = FieldOfView


----------------------------------------------------------------

local touchEnabled = UIS.TouchEnabled
local keyBoardEnabled = UIS.KeyboardEnabled
local ismobile = false
if touchEnabled and not keyBoardEnabled then
	
	
	local easingtime = 0.1 --0~1
	local walkspeeds = {
		enabled =		  true;
		walkingspeed =		16;
		backwardsspeed =	10;
		sidewaysspeed =		15;
		diagonalspeed =		16;
		runningspeed =		25;
		runningFOV=			85;}

	function updatechar()
		for _, v in pairs(character:GetChildren())do
			if CanViewBody then
				if v.Name == 'Head' then
					v.LocalTransparencyModifier = 1
					v.CanCollide = false
					v.face.LocalTransparencyModifier = 1
				end
			else
				if v:IsA'Part' or v:IsA'UnionOperation' or v:IsA'MeshPart' then
					v.LocalTransparencyModifier = 1
					v.CanCollide = false
				end
			end
			if v:IsA'Accessory' then
				v:FindFirstChild('Handle').LocalTransparencyModifier = 1
				v:FindFirstChild('Handle').CanCollide = false
			end
			if v:IsA'Hat' then
				v:FindFirstChild('Handle').LocalTransparencyModifier = 1
				v:FindFirstChild('Handle').CanCollide = false
			end
		end
	end

	function lerp(a, b, t)
		return a * (1-t) + (b*t)
	end
	





Here it is!!! --






	UIS.TouchMoved:connect(function(inputObject, processed)
			if processed then return end
			
			local delta = Vector2.new(inputObject.Delta.x/Sensitivity,inputObject.Delta.y/Sensitivity) * Smoothness

			local X = TargetAngleX - delta.y 
			TargetAngleX = (X >= 80 and 80) or (X <= -80 and -80) or X 
			TargetAngleY = (TargetAngleY - delta.x) %360 
	end)

	

	runService.RenderStepped:connect(function()
		if running then
			updatechar()
			CamPos = CamPos + (TargetCamPos - CamPos) *0.28 
			AngleX = AngleX + (TargetAngleX - AngleX) *0.35 
			local dist = TargetAngleY - AngleY 
			dist = math.abs(dist) > 180 and dist - (dist / math.abs(dist)) * 360 or dist 
			AngleY = (AngleY + dist *0.35) %360
			cam.CameraType = Enum.CameraType.Scriptable
			cam.CoordinateFrame = CFrame.new(head.Position) 
				* CFrame.Angles(0,math.rad(AngleY),0) 
				* CFrame.Angles(math.rad(AngleX),0,0)
				* HeadOffset
			humanoidpart.CFrame=CFrame.new(humanoidpart.Position)*CFrame.Angles(0,math.rad(AngleY),0)
		else game:GetService("UserInputService").MouseBehavior = Enum.MouseBehavior.Default
		end
		if (cam.Focus.p-cam.CoordinateFrame.p).magnitude < 1 then
			running = false
		else
			running = true
			if freemouse == true then
				game:GetService("UserInputService").MouseBehavior = Enum.MouseBehavior.Default
			else
				game:GetService("UserInputService").MouseBehavior = Enum.MouseBehavior.LockCenter
			end
		end
		if not CanToggleMouse.allowed then
			freemouse = false
		end
		cam.FieldOfView = FieldOfView
		
				FieldOfView = lerp(FieldOfView, walkspeeds.runningFOV,easingtime)
	end)

--Desktop script
1 Like

Also! Don’t try to make entire scripts for me, i’m just trying to know how to make my game have mobile support.

Because when I enter in my experience you literally can’t move the camera.