--[[ MUST HAVE A TOOL IN INVENTORY! TOOL MUST HAVE A HANDLE DIRECTIONS FOR USE: EXECUTE THIS SCRIPT, THEN IN A NEW SCRIPT TYPE: _G.fling(" ") INSIDE THE QUOTES PUT THE SHORTENED USERNAME OF WHO YOU WANT TO FLING. EQUIP TOOL FIRST THEN RUN IT. May not work on moving targets. ]] _G.fling = function(plr) local char = game.Players.LocalPlayer.Character local handle = char:FindFirstChildOfClass("Tool").Handle local function GetPlayerFromPartialName(partial) partial = partial:lower() local matches = {} for _, player in ipairs(game.Players:GetPlayers()) do if player.Name:lower():sub(1, #partial) == partial then table.insert(matches, player) end end if #matches == 1 then return matches[1] else return nil end end local targetPlayer = GetPlayerFromPartialName(plr) if targetPlayer and targetPlayer.Character and targetPlayer.Character:FindFirstChild("HumanoidRootPart") then if char.Humanoid.RigType == Enum.HumanoidRigType.R15 then char.RightHand:Destroy() else char["Right Arm"]:Destroy() end if handle:FindFirstChild("Mesh") then handle.Mesh:Destroy() end handle.RotVelocity = Vector3.new(0,999999,0) workspace.Camera.CameraSubject = targetPlayer.Character local tp = coroutine.create(function() while task.wait() do handle.CFrame = targetPlayer.Character.HumanoidRootPart.CFrame end end) coroutine.resume(tp) task.wait(2) coroutine.close(tp) workspace.Camera.CameraSubject = char.Humanoid else warn("Player not found or multiple players matched") end end