-- Character Launcher Script -- Place this in StarterGui or StarterPlayerScripts local Players = game:GetService("Players") local player = Players.LocalPlayer local playerGui = player:WaitForChild("PlayerGui") -- Create ScreenGui local screenGui = Instance.new("ScreenGui") screenGui.Name = "LauncherGui" screenGui.ResetOnSpawn = false screenGui.Parent = playerGui -- Create Frame local frame = Instance.new("Frame") frame.Size = UDim2.new(0, 250, 0, 180) frame.Position = UDim2.new(0.5, -125, 0.1, 0) frame.BackgroundColor3 = Color3.fromRGB(35, 35, 35) frame.BorderSizePixel = 2 frame.BorderColor3 = Color3.fromRGB(255, 255, 255) frame.Parent = screenGui -- Add UICorner for rounded edges local corner = Instance.new("UICorner") corner.CornerRadius = UDim.new(0, 8) corner.Parent = frame -- Make frame draggable local dragging local dragInput local dragStart local startPos local function update(input) local delta = input.Position - dragStart frame.Position = UDim2.new(startPos.X.Scale, startPos.X.Offset + delta.X, startPos.Y.Scale, startPos.Y.Offset + delta.Y) end frame.InputBegan:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then dragging = true dragStart = input.Position startPos = frame.Position input.Changed:Connect(function() if input.UserInputState == Enum.UserInputState.End then dragging = false end end) end end) frame.InputChanged:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseMovement or input.UserInputType == Enum.UserInputType.Touch then dragInput = input end end) game:GetService("UserInputService").InputChanged:Connect(function(input) if input == dragInput and dragging then update(input) end end) -- Create Title Label local titleLabel = Instance.new("TextLabel") titleLabel.Size = UDim2.new(1, 0, 0, 30) titleLabel.Position = UDim2.new(0, 0, 0, 5) titleLabel.BackgroundTransparency = 1 titleLabel.Text = "Character Fling" titleLabel.TextColor3 = Color3.fromRGB(255, 255, 255) titleLabel.TextSize = 18 titleLabel.Font = Enum.Font.GothamBold titleLabel.Parent = frame -- Create Direction Label local directionLabel = Instance.new("TextLabel") directionLabel.Size = UDim2.new(1, -20, 0, 20) directionLabel.Position = UDim2.new(0, 10, 0, 40) directionLabel.BackgroundTransparency = 1 directionLabel.Text = "Direction (Forward, Up, Right):" directionLabel.TextColor3 = Color3.fromRGB(200, 200, 200) directionLabel.TextSize = 14 directionLabel.Font = Enum.Font.Gotham directionLabel.TextXAlignment = Enum.TextXAlignment.Left directionLabel.Parent = frame -- Create TextBox for direction input local directionBox = Instance.new("TextBox") directionBox.Size = UDim2.new(0, 210, 0, 35) directionBox.Position = UDim2.new(0.5, -105, 0, 65) directionBox.BackgroundColor3 = Color3.fromRGB(50, 50, 50) directionBox.Text = "0, 90, 0" directionBox.PlaceholderText = "Forward, Up, Right" directionBox.TextColor3 = Color3.fromRGB(255, 255, 255) directionBox.TextSize = 14 directionBox.Font = Enum.Font.Gotham directionBox.ClearTextOnFocus = false directionBox.Parent = frame -- Add UICorner to textbox local boxCorner = Instance.new("UICorner") boxCorner.CornerRadius = UDim.new(0, 6) boxCorner.Parent = directionBox -- Create Launch Button local launchButton = Instance.new("TextButton") launchButton.Size = UDim2.new(0, 210, 0, 50) launchButton.Position = UDim2.new(0.5, -105, 0, 115) launchButton.BackgroundColor3 = Color3.fromRGB(0, 170, 255) launchButton.Text = "Fling!" launchButton.TextColor3 = Color3.fromRGB(255, 255, 255) launchButton.TextSize = 18 launchButton.Font = Enum.Font.GothamBold launchButton.Parent = frame -- Add UICorner to button local buttonCorner = Instance.new("UICorner") buttonCorner.CornerRadius = UDim.new(0, 6) buttonCorner.Parent = launchButton -- Fling function local function launchPlayer() local character = player.Character if not character then return end local humanoidRootPart = character:FindFirstChild("HumanoidRootPart") local humanoid = character:FindFirstChild("Humanoid") if not humanoidRootPart or not humanoid then return end -- Parse direction from textbox local input = directionBox.Text local x, y, z = 0, 90, 0 -- Default values -- Try to extract numbers from input local numbers = {} for num in string.gmatch(input, "[+-]?%d+%.?%d*") do table.insert(numbers, tonumber(num)) end if #numbers >= 3 then x, y, z = numbers[1], numbers[2], numbers[3] elseif #numbers == 2 then x, y = numbers[1], numbers[2] elseif #numbers == 1 then y = numbers[1] end -- Enable ragdoll by changing humanoid state humanoid:ChangeState(Enum.HumanoidStateType.Physics) -- Create powerful fling effect local bodyVelocity = Instance.new("BodyVelocity") bodyVelocity.MaxForce = Vector3.new(math.huge, math.huge, math.huge) bodyVelocity.Velocity = Vector3.new(x, y, z) bodyVelocity.Parent = humanoidRootPart -- Add slight rotation for fling effect local bodyAngularVelocity = Instance.new("BodyAngularVelocity") bodyAngularVelocity.MaxTorque = Vector3.new(math.huge, math.huge, math.huge) bodyAngularVelocity.AngularVelocity = Vector3.new( math.random(-10, 10), math.random(-10, 10), math.random(-10, 10) ) bodyAngularVelocity.Parent = humanoidRootPart -- Remove objects after fling task.wait(0.3) bodyVelocity:Destroy() bodyAngularVelocity:Destroy() -- Wait for character to land and disable ragdoll task.spawn(function() local lastY = humanoidRootPart.Position.Y local stableCount = 0 while stableCount < 10 do task.wait(0.1) if not character or not character.Parent then break end if not humanoidRootPart or not humanoidRootPart.Parent then break end local currentY = humanoidRootPart.Position.Y local velocityY = humanoidRootPart.AssemblyLinearVelocity.Y -- Check if character has stabilized (stopped moving vertically) if math.abs(velocityY) < 5 and math.abs(currentY - lastY) < 1 then stableCount = stableCount + 1 else stableCount = 0 end lastY = currentY end -- Return to normal state if humanoid and humanoid.Parent then humanoid:ChangeState(Enum.HumanoidStateType.GettingUp) end end) end -- Connect button click launchButton.MouseButton1Click:Connect(launchPlayer) -- Button hover effect launchButton.MouseEnter:Connect(function() launchButton.BackgroundColor3 = Color3.fromRGB(0, 200, 255) end) launchButton.MouseLeave:Connect(function() launchButton.BackgroundColor3 = Color3.fromRGB(0, 170, 255) end)