PART FLING
Key RequiredUniversal

PART FLING

Universal Scriptbenjaminthhansen073benjaminthhansen073 1.5K views 596 executesUpdated Jan 29, 2026
5.0/ 5(2 votes)
20100% Positive
Lua Script•204 lines (5211 chars)
local Players = game:GetService("Players")
local RunService = game:GetService("RunService")
local UIS = game:GetService("UserInputService")
local TweenService = game:GetService("TweenService")

local player = Players.LocalPlayer
local mouse = player:GetMouse()


local loadingGui = Instance.new("ScreenGui", player.PlayerGui)
loadingGui.ResetOnSpawn = false

local load = Instance.new("Frame", loadingGui)
load.Size = UDim2.fromScale(0.3,0.15)
load.Position = UDim2.fromScale(0.35,0.42)
load.BackgroundColor3 = Color3.fromRGB(40,20,60)
load.BorderSizePixel = 0
Instance.new("UICorner", load).CornerRadius = UDim.new(0,14)

local hi = Instance.new("TextLabel", load)
hi.Size = UDim2.fromScale(1,1)
hi.BackgroundTransparency = 1
hi.Text = "made by benjaminthh"
hi.Font = Enum.Font.Code
hi.TextSize = 22
hi.TextColor3 = Color3.fromRGB(230,200,255)

TweenService:Create(load, TweenInfo.new(1), {
	BackgroundColor3 = Color3.fromRGB(70,30,120)
}):Play()

task.wait(3)
loadingGui:Destroy()


local gui = Instance.new("ScreenGui", player.PlayerGui)
gui.ResetOnSpawn = false

local frame = Instance.new("Frame", gui)
frame.Size = UDim2.fromScale(0.22,0.36)
frame.Position = UDim2.fromScale(0.03,0.32)
frame.BackgroundColor3 = Color3.fromRGB(20,15,30)
frame.BorderSizePixel = 0
frame.Active = true
Instance.new("UICorner", frame).CornerRadius = UDim.new(0,16)

-------------------------------------------------
-- ANIMATED BACKGROUND (GRADIENT)
-------------------------------------------------
local grad = Instance.new("UIGradient", frame)
grad.Color = ColorSequence.new{
	ColorSequenceKeypoint.new(0, Color3.fromRGB(120,70,200)),
	ColorSequenceKeypoint.new(1, Color3.fromRGB(50,20,90))
}

RunService.RenderStepped:Connect(function()
	grad.Rotation += 0.15
end)


local title = Instance.new("TextLabel", frame)
title.Size = UDim2.fromScale(1,0.12)
title.BackgroundTransparency = 1
title.Text = "THH PART FLING"
title.Font = Enum.Font.Code
title.TextSize = 18
title.TextColor3 = Color3.fromRGB(235,210,255)


local dragging, dragStart, startPos

frame.InputBegan:Connect(function(i)
	if i.UserInputType == Enum.UserInputType.MouseButton1 then
		dragging = true
		dragStart = i.Position
		startPos = frame.Position
	end
end)

UIS.InputEnded:Connect(function(i)
	if i.UserInputType == Enum.UserInputType.MouseButton1 then
		dragging = false
	end
end)

UIS.InputChanged:Connect(function(i)
	if dragging and i.UserInputType == Enum.UserInputType.MouseMovement then
		local delta = i.Position - dragStart
		TweenService:Create(frame, TweenInfo.new(0.12, Enum.EasingStyle.Sine), {
			Position = startPos + UDim2.fromOffset(delta.X, delta.Y)
		}):Play()
	end
end)


local function button(text, y)
	local b = Instance.new("TextButton", frame)
	b.Size = UDim2.fromScale(0.9,0.1)
	b.Position = UDim2.fromScale(0.05,y)
	b.BackgroundColor3 = Color3.fromRGB(60,30,100)
	b.Text = text
	b.Font = Enum.Font.Code
	b.TextSize = 13
	b.TextColor3 = Color3.fromRGB(240,220,255)
	b.BorderSizePixel = 0
	Instance.new("UICorner", b).CornerRadius = UDim.new(0,10)

	b.MouseEnter:Connect(function()
		TweenService:Create(b, TweenInfo.new(0.15), {
			BackgroundColor3 = Color3.fromRGB(90,50,150)
		}):Play()
	end)

	b.MouseLeave:Connect(function()
		TweenService:Create(b, TweenInfo.new(0.15), {
			BackgroundColor3 = Color3.fromRGB(60,30,100)
		}):Play()
	end)

	return b
end


local findBtn = button("Find Part", 0.16)
local flingBtn = button("Fling: OFF", 0.28)
local highlightBtn = button("Highlight: OFF", 0.40)
local spinBtn = button("Spin: OFF", 0.52)
local camBtn = button("Camera Shake: OFF", 0.64)


local part
local fling, highlight, spin, camShake = false,false,false,false
local box


findBtn.MouseButton1Click:Connect(function()
	findBtn.Text = "Click a Part..."
	local c
	c = mouse.Button1Down:Connect(function()
		if mouse.Target and mouse.Target:IsA("BasePart") then
			part = mouse.Target
			findBtn.Text = "Selected"
			c:Disconnect()
		end
	end)
end)

local function toggle(btn, state, name)
	state = not state
	btn.Text = name .. (state and ": ON" or ": OFF")
	return state
end

flingBtn.MouseButton1Click:Connect(function()
	fling = toggle(flingBtn, fling, "Fling")
end)

highlightBtn.MouseButton1Click:Connect(function()
	highlight = toggle(highlightBtn, highlight, "Highlight")
	if highlight and part then
		box = Instance.new("SelectionBox", part)
		box.Adornee = part
		box.Color3 = Color3.fromRGB(180,120,255)
	elseif box then
		box:Destroy()
	end
end)

spinBtn.MouseButton1Click:Connect(function()
	spin = toggle(spinBtn, spin, "Spin")
end)

camBtn.MouseButton1Click:Connect(function()
	camShake = toggle(camBtn, camShake, "Camera Shake")
end)


RunService.Heartbeat:Connect(function()
	local char = player.Character
	if not char then return end
	local hrp = char:FindFirstChild("HumanoidRootPart")
	if not hrp then return end

	if fling and part then
		hrp.CFrame = part.CFrame
		hrp.AssemblyLinearVelocity = Vector3.new(
			math.random(-500,500),
			math.random(400,700),
			math.random(-500,500)
		)
	end

	if spin then
		hrp.AssemblyAngularVelocity = Vector3.new(0,60,0)
	end

	if camShake then
		workspace.CurrentCamera.CFrame *= CFrame.new(
			math.random(-1,1)*0.05,
			math.random(-1,1)*0.05,
			0
		)
	end
end)

Features & Information

can fling parts

Community Comments (0)

No comments yet for this script.

More Scripts for Universal Scripts