Move Camera Without Input

Couldn’t find what I was looking for in other topics so I figured I’d make one. I’m looking to make something pretty similar to Camera Toggle but with a few differences. I need to make it only active when a tool is equipped and end it once the player unequips the tool. If you know how to do this and can explain it to me, I’d be greatly appreciative of your help. Thanks for reading.

Do you have any code? In this situation, you may need to create a hacky solution like moving the camera up a little and back and you can do so by using the RunService to position the camera up by… like 6 and back 2. Do this by firing a remote event and when the event is received, set the camera there.

Well I just need to put the block of code that would create this camera effect in the tool’s local script and in a .Equipped. Then remove the effects in a .Unequipped. EDIT: Actually I’ve not really been clear. I kind of need to do this twice. By that I mean I would like it so when the player equips the tool they will be able to move the camera around without hold the right mouse button, but also in addition when they do hold down the right mouse button I need to make it so it acts sort of similar to shift lock and lock the player’s mouse to the center of the screen.

(relevant code)

local function handleAction(actionName, inputState, inputObject)
	-- Aiming
	if actionName == Action_Aim and Status ~= "Reloading" and Equipped then
		-- Input Began
		if inputState == Enum.UserInputState.Begin then
			Aim_Animation:Play()
			Status = "Aiming"
			
			Cam.FieldOfView = 50
			-- Begin Camera Effects
			
		-- Input Ended
		elseif inputState == Enum.UserInputState.End then
			EndAnimations()

			Idle_Animation:Play()
			Status = "Idle"
			
			Cam.FieldOfView = 70
			-- End Camera Effects
			
		end
    end
end

Tool.Equipped:Connect(function()
     -- First Part of Effects
end

Tool.Unequipped:Connect(function()
     --  End First Part of Effects
end

(also note that is a bound function for my tool)