I’ve been trying to make a custom shiftlock that has 3 angles, right shoulder, above the head, and left shoulder, and that part does work well. The only issue being that you cannot turn the camera with the mouse and the only way to turn the camera is to physically move your character with the A&D keys. I’ve been tinkering with a way to do this for a couple hours atleast, but I can’t seem to find the best solution. The script is lengthy at around 105~ lines, but I’ll just show a small segment of it.
Basically everything works as expected but you can only turn your camera with the movement keys and not the mouse.
(also this is the right shoulder angle, not the left one as the name implies)
uis = game:GetService("UserInputService")
lp = game:GetService("Players").LocalPlayer
actives = {
right = false,
top = false,
left = false
}
uis.InputBegan:Connect(function(kc)
if kc.KeyCode == Enum.KeyCode.LeftControl and actives.right == false and actives.left == false and actives.top == false then
local cam = workspace.CurrentCamera
cam.CameraType = Enum.CameraType.Scriptable
local hrp = lp.Character.HumanoidRootPart or nil
if hrp then else return end
actives.left = false
actives.top = false
actives.right = true
local attachments = {
hrp:FindFirstChild("leftat"),
hrp:FindFirstChild("topat"),
hrp:FindFirstChild("rightat")
}
for i = 1, 100 do
game["Run Service"].RenderStepped:Wait()
cam.CFrame = cam.CFrame:Lerp(attachments[1].WorldCFrame,i/100)
if actives.right == true then
else
break
end
end
while actives.right == true do
if actives.right == true then
else
break
end
cam.CFrame = cam.CFrame:Lerp(attachments[1].WorldCFrame,1)
game["Run Service"].RenderStepped:Wait()
end