local function Q()local Q=player.Character local I=Q.Humanoid if I.RigType==Enum.HumanoidRigType.R6 then local I=Q.Torso neck=I.Neck shoulder=I["\082\105\103\104\116 \083\104\111\117\108\100\101\114"]elseif I.RigType==Enum.HumanoidRigType.R15 then neck=Q.Head.Neck shoulder=Q.RightUpperArm.RightShoulder end oldNeckC0=neck.C0 oldShoulderC0=shoulder.C0 oldIcon=mouse.Icon mouse.Icon="\104\116\116\112\058\047\047\119\119\119\046\114\111\098\108\111\120\046\099\111\109\047\097\115\115\101\116\047\063\105\100\061\055\057\054\053\056\052\052\057"if userInputService.TouchEnabled then connection=userInputService.TouchMoved:connect(mobileFrame)else connection=render:connect(pcFrame)end userInputService.TouchStarted:connect(function(Q,I)mobileShouldTrack=not I end)userInputService.TouchEnded:connect(function(Q,I)mobileShouldTrack=false end)if workspace.FilteringEnabled then while connection and connection.Connected do wait()game.ReplicatedStorage.ROBLOX_RocketUpdateEvent:FireServer(neck.C0,shoulder.C0)end end end
-- Function to bind to equip event
local function equip()
	local character = player.Character
	local humanoid = character.Humanoid

	-- Setup joint variables
	if humanoid.RigType == Enum.HumanoidRigType.R6 then
		local torso = character.Torso
		neck = torso.Neck
		shoulder = torso["Right Shoulder"]
	elseif humanoid.RigType == Enum.HumanoidRigType.R15 then
		neck = character.Head.Neck
		shoulder = character.RightUpperArm.RightShoulder
	end

	oldNeckC0 = neck.C0
	oldShoulderC0 = shoulder.C0

	-- Remember old mouse icon and update current
	oldIcon = mouse.Icon
	mouse.Icon = "http://www.roblox.com/asset/?id=79658449"

	-- Bind TouchMoved event if on mobile. Otherwise connect to renderstepped
	if userInputService.TouchEnabled then
		connection = userInputService.TouchMoved:connect(mobileFrame)
	else
		connection = render:connect(pcFrame)
	end

	-- Bind TouchStarted and TouchEnded. Used to determine if character should rotate
	-- during touch input
	userInputService.TouchStarted:connect(function(touch, processed)
		mobileShouldTrack = not processed
	end)
	userInputService.TouchEnded:connect(function(touch, processed)
		mobileShouldTrack = false
	end)

	-- If game uses filtering enabled then need to update server while tool is
	-- held by character.
	if workspace.FilteringEnabled then
		while connection and connection.Connected do
			wait()
			game.ReplicatedStorage.ROBLOX_RocketUpdateEvent:FireServer(neck.C0, shoulder.C0)
		end
	end
end
