local Players = game:GetService("Players") local LocalPlayer = Players.LocalPlayer local UserInputService = game:GetService("UserInputService") local CoreGui = game:GetService("CoreGui") local RunService = game:GetService("RunService") local TweenService = game:GetService("TweenService") -- Destroy old UI if it exists if CoreGui:FindFirstChild("TargetFlingUI") then CoreGui.TargetFlingUI:Destroy() end -- Modern Theme Configurations local themes = { Blue = { Main = Color3.fromRGB(25, 25, 35), Accent = Color3.fromRGB(35, 90, 190), Selected = Color3.fromRGB(50, 120, 220), SubBg = Color3.fromRGB(35, 35, 45), Text = Color3.fromRGB(240, 240, 245), Stroke = Color3.fromRGB(60, 60, 75) }, Red = { Main = Color3.fromRGB(40, 25, 25), Accent = Color3.fromRGB(190, 35, 35), Selected = Color3.fromRGB(220, 50, 50), SubBg = Color3.fromRGB(50, 30, 30), Text = Color3.fromRGB(245, 240, 240), Stroke = Color3.fromRGB(80, 50, 50) }, Green = { Main = Color3.fromRGB(25, 40, 25), Accent = Color3.fromRGB(35, 190, 35), Selected = Color3.fromRGB(50, 220, 50), SubBg = Color3.fromRGB(30, 50, 30), Text = Color3.fromRGB(240, 245, 240), Stroke = Color3.fromRGB(50, 80, 50) }, Purple = { Main = Color3.fromRGB(35, 25, 45), Accent = Color3.fromRGB(120, 50, 200), Selected = Color3.fromRGB(145, 70, 230), SubBg = Color3.fromRGB(45, 35, 55), Text = Color3.fromRGB(245, 240, 250), Stroke = Color3.fromRGB(75, 60, 85) }, Orange = { Main = Color3.fromRGB(45, 30, 20), Accent = Color3.fromRGB(220, 120, 30), Selected = Color3.fromRGB(245, 145, 50), SubBg = Color3.fromRGB(55, 40, 30), Text = Color3.fromRGB(250, 245, 240), Stroke = Color3.fromRGB(85, 65, 45) }, Monochrome = { Main = Color3.fromRGB(30, 30, 30), Accent = Color3.fromRGB(90, 90, 90), Selected = Color3.fromRGB(120, 120, 120), SubBg = Color3.fromRGB(40, 40, 40), Text = Color3.fromRGB(255, 255, 255), Stroke = Color3.fromRGB(60, 60, 60) } } local themeNames = {"Blue", "Red", "Green", "Purple", "Orange", "Monochrome"} local currentThemeIndex = 1 -- GUI Setup local ScreenGui = Instance.new("ScreenGui") ScreenGui.Name = "TargetFlingUI" ScreenGui.ResetOnSpawn = false ScreenGui.ZIndexBehavior = Enum.ZIndexBehavior.Sibling ScreenGui.Parent = CoreGui local MainFrame = Instance.new("Frame") MainFrame.Size = UDim2.new(0, 350, 0, 450) MainFrame.Position = UDim2.new(0.5, -175, 0.5, -225) MainFrame.BackgroundColor3 = themes.Blue.Main MainFrame.BackgroundTransparency = 0.1 MainFrame.BorderSizePixel = 0 MainFrame.Parent = ScreenGui local UICorner = Instance.new("UICorner") UICorner.CornerRadius = UDim.new(0, 10) UICorner.Parent = MainFrame local UIStroke = Instance.new("UIStroke") UIStroke.Color = themes.Blue.Stroke UIStroke.Thickness = 1 UIStroke.Transparency = 0.2 UIStroke.Parent = MainFrame local UIGradient = Instance.new("UIGradient") UIGradient.Rotation = 45 UIGradient.Color = ColorSequence.new(themes.Blue.Main, themes.Blue.SubBg) UIGradient.Transparency = NumberSequence.new(0.1, 0.2) UIGradient.Parent = MainFrame -- Make GUI Draggable local dragToggle, dragInput, dragStart, startPos MainFrame.InputBegan:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then dragToggle = true dragStart = input.Position startPos = MainFrame.Position input.Changed:Connect(function() if input.UserInputState == Enum.UserInputState.End then dragToggle = false end end) end end) MainFrame.InputChanged:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseMovement or input.UserInputType == Enum.UserInputType.Touch then dragInput = input end end) UserInputService.InputChanged:Connect(function(input) if input == dragInput and dragToggle then local delta = input.Position - dragStart MainFrame.Position = UDim2.new(startPos.X.Scale, startPos.X.Offset + delta.X, startPos.Y.Scale, startPos.Y.Offset + delta.Y) end end) -- Header local HeaderFrame = Instance.new("Frame") HeaderFrame.Size = UDim2.new(1, 0, 0, 45) HeaderFrame.BackgroundTransparency = 1 HeaderFrame.Parent = MainFrame local Title = Instance.new("TextLabel") Title.Size = UDim2.new(1, -160, 1, 0) Title.Position = UDim2.new(0, 15, 0, 0) Title.BackgroundTransparency = 1 Title.Text = "Target fling" Title.TextColor3 = themes.Blue.Text Title.TextSize = 18 Title.Font = Enum.Font.GothamBold Title.TextXAlignment = Enum.TextXAlignment.Left Title.Parent = HeaderFrame -- Theme Button (T) local ThemeBtn = Instance.new("TextButton") ThemeBtn.Size = UDim2.new(0, 30, 0, 30) ThemeBtn.Position = UDim2.new(1, -145, 0.5, -15) ThemeBtn.BackgroundColor3 = themes.Blue.Accent ThemeBtn.BackgroundTransparency = 0.1 ThemeBtn.Text = "T" ThemeBtn.TextColor3 = themes.Blue.Text ThemeBtn.TextSize = 14 ThemeBtn.Font = Enum.Font.GothamBold ThemeBtn.Parent = HeaderFrame local UICorner_Theme = Instance.new("UICorner") UICorner_Theme.CornerRadius = UDim.new(0, 8) UICorner_Theme.Parent = ThemeBtn -- Refresh Button (R) local RefreshBtn = Instance.new("TextButton") RefreshBtn.Size = UDim2.new(0, 30, 0, 30) RefreshBtn.Position = UDim2.new(1, -110, 0.5, -15) RefreshBtn.BackgroundColor3 = themes.Blue.Accent RefreshBtn.BackgroundTransparency = 0.1 RefreshBtn.Text = "R" RefreshBtn.TextColor3 = themes.Blue.Text RefreshBtn.TextSize = 14 RefreshBtn.Font = Enum.Font.GothamBold RefreshBtn.Parent = HeaderFrame local UICorner_Refresh = Instance.new("UICorner") UICorner_Refresh.CornerRadius = UDim.new(0, 8) UICorner_Refresh.Parent = RefreshBtn -- Info Button (?) local InfoBtn = Instance.new("TextButton") InfoBtn.Size = UDim2.new(0, 30, 0, 30) InfoBtn.Position = UDim2.new(1, -75, 0.5, -15) InfoBtn.BackgroundColor3 = themes.Blue.Accent InfoBtn.BackgroundTransparency = 0.1 InfoBtn.Text = "?" InfoBtn.TextColor3 = themes.Blue.Text InfoBtn.TextSize = 14 InfoBtn.Font = Enum.Font.GothamBold InfoBtn.Parent = HeaderFrame local UICorner_Info = Instance.new("UICorner") UICorner_Info.CornerRadius = UDim.new(0, 8) UICorner_Info.Parent = InfoBtn -- Close Button (X) local CloseBtn = Instance.new("TextButton") CloseBtn.Size = UDim2.new(0, 30, 0, 30) CloseBtn.Position = UDim2.new(1, -40, 0.5, -15) CloseBtn.BackgroundColor3 = Color3.fromRGB(200, 50, 50) CloseBtn.BackgroundTransparency = 0.1 CloseBtn.Text = "X" CloseBtn.TextColor3 = Color3.fromRGB(255, 255, 255) CloseBtn.TextSize = 14 CloseBtn.Font = Enum.Font.GothamBold CloseBtn.Parent = HeaderFrame local UICorner_Close = Instance.new("UICorner") UICorner_Close.CornerRadius = UDim.new(0, 8) UICorner_Close.Parent = CloseBtn CloseBtn.MouseButton1Click:Connect(function() ScreenGui:Destroy() end) -- Info Panel (About) local InfoPanel = Instance.new("Frame") InfoPanel.Size = UDim2.new(1, 0, 1, 0) InfoPanel.BackgroundColor3 = themes.Blue.Main InfoPanel.BackgroundTransparency = 0.05 InfoPanel.BorderSizePixel = 0 InfoPanel.Visible = false InfoPanel.ZIndex = 10 InfoPanel.Parent = MainFrame local UICorner_InfoPanel = Instance.new("UICorner") UICorner_InfoPanel.CornerRadius = UDim.new(0, 10) UICorner_InfoPanel.Parent = InfoPanel local UIGradient_Info = Instance.new("UIGradient") UIGradient_Info.Rotation = 45 UIGradient_Info.Color = ColorSequence.new(themes.Blue.Main, themes.Blue.SubBg) UIGradient_Info.Parent = InfoPanel local AboutTitle = Instance.new("TextLabel") AboutTitle.Size = UDim2.new(1, 0, 0, 60) AboutTitle.Position = UDim2.new(0, 0, 0.3, 0) AboutTitle.BackgroundTransparency = 1 AboutTitle.Text = "About" AboutTitle.TextColor3 = themes.Blue.Text AboutTitle.TextSize = 48 AboutTitle.Font = Enum.Font.GothamBold AboutTitle.Parent = InfoPanel local AboutText = Instance.new("TextLabel") AboutText.Size = UDim2.new(1, -40, 0, 30) AboutText.Position = UDim2.new(0, 20, 0, 200) AboutText.BackgroundTransparency = 1 AboutText.Text = "basically a target fling." AboutText.TextColor3 = themes.Blue.Text AboutText.TextSize = 16 AboutText.Font = Enum.Font.Gotham AboutText.Parent = InfoPanel local InfoCloseBtn = Instance.new("TextButton") InfoCloseBtn.Size = UDim2.new(0, 100, 0, 35) InfoCloseBtn.Position = UDim2.new(0.5, -50, 0.8, 0) InfoCloseBtn.BackgroundColor3 = themes.Blue.Accent InfoCloseBtn.BackgroundTransparency = 0.1 InfoCloseBtn.Text = "Close" InfoCloseBtn.TextColor3 = themes.Blue.Text InfoCloseBtn.TextSize = 14 InfoCloseBtn.Font = Enum.Font.GothamBold InfoCloseBtn.Parent = InfoPanel local UICorner_InfoClose = Instance.new("UICorner") UICorner_InfoClose.CornerRadius = UDim.new(0, 8) UICorner_InfoClose.Parent = InfoCloseBtn InfoBtn.MouseButton1Click:Connect(function() InfoPanel.Visible = not InfoPanel.Visible end) InfoCloseBtn.MouseButton1Click:Connect(function() InfoPanel.Visible = false end) -- Search Bar local SearchBox = Instance.new("TextBox") SearchBox.Size = UDim2.new(1, -30, 0, 35) SearchBox.Position = UDim2.new(0, 15, 0, 55) SearchBox.BackgroundColor3 = themes.Blue.SubBg SearchBox.BackgroundTransparency = 0.1 SearchBox.Text = "" SearchBox.PlaceholderText = "Search players..." SearchBox.TextColor3 = themes.Blue.Text SearchBox.PlaceholderColor3 = Color3.fromRGB(150, 150, 150) SearchBox.TextSize = 14 SearchBox.Font = Enum.Font.Gotham SearchBox.ClearTextOnFocus = false SearchBox.Parent = MainFrame local UICorner_Search = Instance.new("UICorner") UICorner_Search.CornerRadius = UDim.new(0, 8) UICorner_Search.Parent = SearchBox local UIStroke_Search = Instance.new("UIStroke") UIStroke_Search.Color = themes.Blue.Stroke UIStroke_Search.Thickness = 1 UIStroke_Search.Transparency = 0.2 UIStroke_Search.Parent = SearchBox -- Player List Scrolling Frame local PlayerScroll = Instance.new("ScrollingFrame") PlayerScroll.Size = UDim2.new(1, -30, 1, -215) PlayerScroll.Position = UDim2.new(0, 15, 0, 100) PlayerScroll.BackgroundColor3 = themes.Blue.SubBg PlayerScroll.BackgroundTransparency = 0.1 PlayerScroll.BorderSizePixel = 0 PlayerScroll.ScrollBarThickness = 4 PlayerScroll.CanvasSize = UDim2.new(0, 0, 0, 0) PlayerScroll.Parent = MainFrame local UICorner_Scroll = Instance.new("UICorner") UICorner_Scroll.CornerRadius = UDim.new(0, 8) UICorner_Scroll.Parent = PlayerScroll local UIPadding_Scroll = Instance.new("UIPadding") UIPadding_Scroll.PaddingTop = UDim.new(0, 8) UIPadding_Scroll.PaddingBottom = UDim.new(0, 8) UIPadding_Scroll.PaddingLeft = UDim.new(0, 8) UIPadding_Scroll.PaddingRight = UDim.new(0, 8) UIPadding_Scroll.Parent = PlayerScroll local UIList = Instance.new("UIListLayout") UIList.SortOrder = Enum.SortOrder.LayoutOrder UIList.Padding = UDim.new(0, 6) UIList.Parent = PlayerScroll -- Select All Button local SelectAllBtn = Instance.new("TextButton") SelectAllBtn.Size = UDim2.new(1, -16, 0, 35) SelectAllBtn.BackgroundColor3 = themes.Blue.Accent SelectAllBtn.BackgroundTransparency = 0.1 SelectAllBtn.Text = "Select All" SelectAllBtn.TextColor3 = themes.Blue.Text SelectAllBtn.TextSize = 14 SelectAllBtn.Font = Enum.Font.GothamBold SelectAllBtn.LayoutOrder = -1 SelectAllBtn.Parent = PlayerScroll local UICorner_SelectAll = Instance.new("UICorner") UICorner_SelectAll.CornerRadius = UDim.new(0, 6) UICorner_SelectAll.Parent = SelectAllBtn -- Status Label local StatusLabel = Instance.new("TextLabel") StatusLabel.Size = UDim2.new(1, -30, 0, 20) StatusLabel.Position = UDim2.new(0, 15, 1, -95) StatusLabel.BackgroundTransparency = 1 StatusLabel.Text = "Idle" StatusLabel.TextColor3 = Color3.fromRGB(150, 150, 150) StatusLabel.TextSize = 12 StatusLabel.Font = Enum.Font.Gotham StatusLabel.TextXAlignment = Enum.TextXAlignment.Left StatusLabel.Parent = MainFrame -- Start Button local StartBtn = Instance.new("TextButton") StartBtn.Size = UDim2.new(1, -30, 0, 40) StartBtn.Position = UDim2.new(0, 15, 1, -55) StartBtn.BackgroundColor3 = themes.Blue.Accent StartBtn.BackgroundTransparency = 0.1 StartBtn.Text = "Start" StartBtn.TextColor3 = themes.Blue.Text StartBtn.TextSize = 16 StartBtn.Font = Enum.Font.GothamBold StartBtn.Parent = MainFrame local UICorner_Start = Instance.new("UICorner") UICorner_Start.CornerRadius = UDim.new(0, 8) UICorner_Start.Parent = StartBtn -- Logic Variables local selectedPlayers = {} local playerButtons = {} local allSelected = false local isFlinging = false -- Apply Theme Function local function applyTheme() local theme = themes[themeNames[currentThemeIndex]] MainFrame.BackgroundColor3 = theme.Main UIGradient.Color = ColorSequence.new(theme.Main, theme.SubBg) UIStroke.Color = theme.Stroke InfoPanel.BackgroundColor3 = theme.Main UIGradient_Info.Color = ColorSequence.new(theme.Main, theme.SubBg) AboutTitle.TextColor3 = theme.Text AboutText.TextColor3 = theme.Text InfoCloseBtn.BackgroundColor3 = theme.Accent InfoCloseBtn.TextColor3 = theme.Text PlayerScroll.BackgroundColor3 = theme.SubBg SearchBox.BackgroundColor3 = theme.SubBg UIStroke_Search.Color = theme.Stroke SelectAllBtn.BackgroundColor3 = theme.Accent StartBtn.BackgroundColor3 = theme.Accent ThemeBtn.BackgroundColor3 = theme.Accent RefreshBtn.BackgroundColor3 = theme.Accent InfoBtn.BackgroundColor3 = theme.Accent Title.TextColor3 = theme.Text ThemeBtn.TextColor3 = theme.Text RefreshBtn.TextColor3 = theme.Text InfoBtn.TextColor3 = theme.Text CloseBtn.TextColor3 = theme.Text SelectAllBtn.TextColor3 = theme.Text StartBtn.TextColor3 = theme.Text SearchBox.TextColor3 = theme.Text for player, btn in pairs(playerButtons) do if selectedPlayers[player] then btn.BackgroundColor3 = theme.Selected else btn.BackgroundColor3 = theme.Main end btn.UIStroke.Color = theme.Stroke btn.TextColor3 = theme.Text end end ThemeBtn.MouseButton1Click:Connect(function() currentThemeIndex = (currentThemeIndex % #themeNames) + 1 applyTheme() end) -- Notification Function local function notify(text, isSuccess) local notifGui = Instance.new("ScreenGui") notifGui.Name = "FlingNotification" notifGui.Parent = CoreGui local notifFrame = Instance.new("Frame") notifFrame.Size = UDim2.new(0, 250, 0, 60) notifFrame.Position = UDim2.new(0.5, -125, 0, -100) notifFrame.BackgroundColor3 = Color3.fromRGB(20, 20, 25) notifFrame.BackgroundTransparency = 0.1 notifFrame.BorderSizePixel = 0 notifFrame.Parent = notifGui local corner = Instance.new("UICorner") corner.CornerRadius = UDim.new(0, 8) corner.Parent = notifFrame local stroke = Instance.new("UIStroke") stroke.Color = isSuccess and Color3.fromRGB(50, 200, 50) or Color3.fromRGB(200, 50, 50) stroke.Thickness = 2 stroke.Parent = notifFrame local label = Instance.new("TextLabel") label.Size = UDim2.new(1, -10, 1, -10) label.Position = UDim2.new(0, 5, 0, 5) label.BackgroundTransparency = 1 label.Text = text label.TextColor3 = Color3.fromRGB(255, 255, 255) label.TextSize = 15 label.Font = Enum.Font.GothamBold label.TextWrapped = true label.Parent = notifFrame TweenService:Create(notifFrame, TweenInfo.new(0.4, Enum.EasingStyle.Quad, Enum.EasingDirection.Out), {Position = UDim2.new(0.5, -125, 0, 20)}):Play() task.delay(3, function() TweenService:Create(notifFrame, TweenInfo.new(0.4, Enum.EasingStyle.Quad, Enum.EasingDirection.In), {Position = UDim2.new(0.5, -125, 0, -100)}):Play() task.wait(0.5) notifGui:Destroy() end) end local function updateCanvasSize() task.defer(function() PlayerScroll.CanvasSize = UDim2.new(0, 0, 0, UIList.AbsoluteContentSize.Y + 16) end) end local function filterPlayers(searchText) for player, btn in pairs(playerButtons) do if player.Name:lower():match(searchText:lower()) then btn.Visible = true else btn.Visible = false end end updateCanvasSize() end SearchBox:GetPropertyChangedSignal("Text"):Connect(function() if not isFlinging then filterPlayers(SearchBox.Text) end end) local function updateButton(btn, player) local theme = themes[themeNames[currentThemeIndex]] if selectedPlayers[player] then btn.Text = "[X] " .. player.Name btn.BackgroundColor3 = theme.Selected btn.UIStroke.Color = theme.Accent else btn.Text = "[ ] " .. player.Name btn.BackgroundColor3 = theme.Main btn.UIStroke.Color = theme.Stroke end end local function createPlayerButton(player) if player == LocalPlayer then return end local theme = themes[themeNames[currentThemeIndex]] local btn = Instance.new("TextButton") btn.Size = UDim2.new(1, 0, 0, 35) btn.BackgroundColor3 = theme.Main btn.BackgroundTransparency = 0.1 btn.TextColor3 = theme.Text btn.TextSize = 14 btn.Font = Enum.Font.Gotham btn.TextXAlignment = Enum.TextXAlignment.Left btn.Parent = PlayerScroll local corner = Instance.new("UICorner") corner.CornerRadius = UDim.new(0, 6) corner.Parent = btn local stroke = Instance.new("UIStroke") stroke.Color = theme.Stroke stroke.Thickness = 1 stroke.Transparency = 0.2 stroke.Name = "UIStroke" stroke.Parent = btn local padding = Instance.new("UIPadding") padding.PaddingLeft = UDim.new(0, 10) padding.Parent = btn selectedPlayers[player] = false updateButton(btn, player) btn.MouseButton1Click:Connect(function() if isFlinging then return end selectedPlayers[player] = not selectedPlayers[player] updateButton(btn, player) end) playerButtons[player] = btn filterPlayers(SearchBox.Text) updateCanvasSize() end local function refreshPlayers() for p, btn in pairs(playerButtons) do if btn and btn.Parent then btn:Destroy() end end playerButtons = {} selectedPlayers = {} allSelected = false SelectAllBtn.Text = "Select All" for _, p in pairs(Players:GetPlayers()) do createPlayerButton(p) end filterPlayers(SearchBox.Text) updateCanvasSize() end RefreshBtn.MouseButton1Click:Connect(refreshPlayers) -- Populate Player List initially refreshPlayers() Players.PlayerAdded:Connect(createPlayerButton) Players.PlayerRemoving:Connect(function(player) if playerButtons[player] then playerButtons[player]:Destroy() playerButtons[player] = nil selectedPlayers[player] = nil updateCanvasSize() end end) SelectAllBtn.MouseButton1Click:Connect(function() if isFlinging then return end allSelected = not allSelected for p, btn in pairs(playerButtons) do if btn.Visible then selectedPlayers[p] = allSelected updateButton(btn, p) end end if allSelected then SelectAllBtn.Text = "Deselect All" else SelectAllBtn.Text = "Select All" end end) -- Check if target has been flung local function checkFlingState(targetChar) if not targetChar then return false end local hum = targetChar:FindFirstChildOfClass("Humanoid") local hrp = targetChar:FindFirstChild("HumanoidRootPart") if not hum or not hrp then return false end if hum:GetState() == Enum.HumanoidStateType.FallingDown then return true end if hrp.AssemblyLinearVelocity.Magnitude > 150 then return true end if hrp.AssemblyAngularVelocity.Magnitude > 150 then return true end if hum.Health <= 0 then return true end return false end -- Improved Fling Sequence local function startFling() if isFlinging then return end isFlinging = true StartBtn.Text = "Flinging..." StartBtn.BackgroundColor3 = Color3.fromRGB(150, 150, 50) StatusLabel.Text = "Preparing to fling..." local char = LocalPlayer.Character local hum = char and char:FindFirstChildOfClass("Humanoid") local hrp = char and char:FindFirstChild("HumanoidRootPart") if not hum or not hrp or hum.Health <= 0 then notify("failed to fling.", false) isFlinging = false StartBtn.Text = "Start" StatusLabel.Text = "Idle" applyTheme() return end -- Save current coordinate local originalCFrame = hrp.CFrame -- Gather selected targets local targets = {} for p, isSelected in pairs(selectedPlayers) do if isSelected then table.insert(targets, p) end end if #targets == 0 then notify("failed to fling.", false) isFlinging = false StartBtn.Text = "Start" StatusLabel.Text = "Idle" applyTheme() return end local success = true for index, targetPlayer in ipairs(targets) do if not success then break end if not targetPlayer.Parent then continue end local targetChar = targetPlayer.Character local targetHum = targetChar and targetChar:FindFirstChildOfClass("Humanoid") local targetHrp = targetChar and targetChar:FindFirstChild("HumanoidRootPart") if targetChar and targetHum and targetHrp and targetHum.Health > 0 then StatusLabel.Text = "Targeting: " .. targetPlayer.Name local flung = false local startTime = tick() -- Active loop to continuously chase and spin local spinConn spinConn = RunService.Heartbeat:Connect(function() if not targetHrp or not targetHrp.Parent or targetHum.Health <= 0 or not hrp or not hrp.Parent then return end -- Stick to target's HRP to maximize collision physics hrp.CFrame = targetHrp.CFrame hrp.AssemblyLinearVelocity = Vector3.new(0, 0, 0) hrp.AssemblyAngularVelocity = Vector3.new(0, 9999, 0) end) -- Wait up to 3 seconds to verify fling while tick() - startTime < 3 do if hum.Health <= 0 then break end if checkFlingState(targetChar) then flung = true break end task.wait() end if spinConn then spinConn:Disconnect() end -- Stop our own spin momentarily if hrp and hrp.Parent then hrp.AssemblyAngularVelocity = Vector3.new(0, 0, 0) hrp.AssemblyLinearVelocity = Vector3.new(0, 0, 0) end if not flung then success = false else StatusLabel.Text = "Flung " .. targetPlayer.Name .. " successfully." task.wait(0.5) -- Small buffer before next target end end end -- Return to saved coordinate (spawn) StatusLabel.Text = "Returning to spawn..." if char and hrp and hrp.Parent then hrp.CFrame = originalCFrame hrp.AssemblyLinearVelocity = Vector3.new(0, 0, 0) hrp.AssemblyAngularVelocity = Vector3.new(0, 0, 0) end if success then notify("Success!!!!!!", true) StatusLabel.Text = "Success" else notify("failed to fling.", false) StatusLabel.Text = "Failed" end isFlinging = false StartBtn.Text = "Start" applyTheme() task.wait(2) if not isFlinging then StatusLabel.Text = "Idle" end end StartBtn.MouseButton1Click:Connect(startFling) applyTheme()