--========================================================================-- -- UNIVERSAL MOBILE DISCARD UTILITY SYSTEM -- --========================================================================-- local Players = game:GetService("Players") local TweenService = game:GetService("TweenService") local UserInputService = game:GetService("UserInputService") local Player = Players.LocalPlayer local PlayerGui = Player:FindFirstChildOfClass("PlayerGui") or Player:WaitForChild("PlayerGui", 10) if not PlayerGui then return end -- Clean up any old buttons or notifications if PlayerGui:FindFirstChild("DeltaDropItemUI") then PlayerGui.DeltaDropItemUI:Destroy() end -- Create UI Container local screenGui = Instance.new("ScreenGui") screenGui.Name = "DeltaDropItemUI" screenGui.ResetOnSpawn = false screenGui.IgnoreGuiInset = false screenGui.Parent = PlayerGui --------------------------------------------------------- -- ROBUST AUDIO MODULE --------------------------------------------------------- local function playExecutionSound() pcall(function() local sound = Instance.new("Sound") sound.Name = "UniversalBeep" sound.SoundId = "rbxassetid://9114223194" sound.Volume = 0.6 sound.Pitch = 1.2 sound.Parent = screenGui sound:Play() game:GetService("Debris"):AddItem(sound, 2) end) end --------------------------------------------------------- -- WATERMARK WITH TEXT SURGE FLASH --------------------------------------------------------- local notifyFrame = Instance.new("Frame") notifyFrame.Name = "WatermarkNotify" notifyFrame.Size = UDim2.new(0, 320, 0, 45) notifyFrame.Position = UDim2.new(0.5, -160, 0, 15) notifyFrame.BackgroundColor3 = Color3.fromRGB(10, 15, 12) notifyFrame.BackgroundTransparency = 1 notifyFrame.BorderSizePixel = 0 notifyFrame.Parent = screenGui local notifyCorner = Instance.new("UICorner") notifyCorner.CornerRadius = UDim.new(0, 6) notifyCorner.Parent = notifyFrame local notifyStroke = Instance.new("UIStroke") notifyStroke.Color = Color3.fromRGB(0, 255, 100) notifyStroke.Thickness = 1.5 notifyStroke.Transparency = 1 notifyStroke.Parent = notifyFrame local notifyText = Instance.new("TextLabel") notifyText.Size = UDim2.new(1, 0, 1, 0) notifyText.BackgroundTransparency = 1 notifyText.Text = "[ SYSTEM: Made By Ninja63/ByMyBuyBye ]\n[ status: pure physics discard engaged ]" notifyText.TextColor3 = Color3.fromRGB(0, 255, 100) notifyText.TextSize = 13 notifyText.Font = Enum.Font.Code notifyText.TextTransparency = 1 notifyText.LineHeight = 1.2 notifyText.Parent = notifyFrame task.spawn(function() playExecutionSound() local fadeIn = TweenService:Create(notifyFrame, TweenInfo.new(0.4, Enum.EasingStyle.Quad, Enum.EasingDirection.Out), {BackgroundTransparency = 0.1}) local textFadeIn = TweenService:Create(notifyText, TweenInfo.new(0.4, Enum.EasingStyle.Quad, Enum.EasingDirection.Out), {TextTransparency = 0}) local strokeFadeIn = TweenService:Create(notifyStroke, TweenInfo.new(0.4, Enum.EasingStyle.Quad, Enum.EasingDirection.Out), {Transparency = 0}) fadeIn:Play() textFadeIn:Play() strokeFadeIn:Play() notifyStroke.Color = Color3.fromRGB(150, 255, 200) notifyText.TextColor3 = Color3.fromRGB(200, 255, 220) task.wait(0.15) TweenService:Create(notifyStroke, TweenInfo.new(0.6, Enum.EasingStyle.Quad, Enum.EasingDirection.Out), {Color = Color3.fromRGB(0, 255, 100)}):Play() TweenService:Create(notifyText, TweenInfo.new(0.6, Enum.EasingStyle.Quad, Enum.EasingDirection.Out), {TextColor3 = Color3.fromRGB(0, 255, 100)}):Play() task.wait(5.35) local slideOut = TweenService:Create(notifyFrame, TweenInfo.new(0.3, Enum.EasingStyle.Quad, Enum.EasingDirection.In), {BackgroundTransparency = 1}) local textFade = TweenService:Create(notifyText, TweenInfo.new(0.3, Enum.EasingStyle.Quad, Enum.EasingDirection.In), {TextTransparency = 1}) local strokeFade = TweenService:Create(notifyStroke, TweenInfo.new(0.3, Enum.EasingStyle.Quad, Enum.EasingDirection.In), {Transparency = 1}) slideOut:Play() textFade:Play() strokeFade:Play() task.wait(0.35) if notifyFrame then notifyFrame:Destroy() end end) --------------------------------------------------------- -- MAIN UTILITY HOLDER --------------------------------------------------------- local sizes = { {mainW = 120, h = 34, ts = 12}, {mainW = 145, h = 40, ts = 14}, {mainW = 170, h = 46, ts = 16} } local currentSizeIndex = 1 local mainFrame = Instance.new("Frame") mainFrame.Name = "MainLayoutFrame" mainFrame.Size = UDim2.new(0, sizes[currentSizeIndex].mainW, 0, sizes[currentSizeIndex].h) mainFrame.Position = UDim2.new(0.6, 0, 0.4, 0) mainFrame.BackgroundTransparency = 1 mainFrame.BorderSizePixel = 0 mainFrame.Active = false -- Disabled here so the button can handle everything mainFrame.Parent = screenGui --------------------------------------------------------- -- DISCARD BUTTON --------------------------------------------------------- local dropButton = Instance.new("TextButton") dropButton.Name = "DropButton" dropButton.Size = UDim2.new(1, 0, 1, 0) dropButton.BackgroundColor3 = Color3.fromRGB(10, 15, 12) dropButton.BackgroundTransparency = 0.2 dropButton.Text = "[ DISCARD ]" dropButton.TextColor3 = Color3.fromRGB(0, 255, 100) dropButton.TextSize = sizes[currentSizeIndex].ts dropButton.Font = Enum.Font.Code dropButton.BorderSizePixel = 0 dropButton.Parent = mainFrame local dropCorner = Instance.new("UICorner") dropCorner.CornerRadius = UDim.new(0, 4) dropCorner.Parent = dropButton local dropStroke = Instance.new("UIStroke") dropStroke.Color = Color3.fromRGB(0, 255, 100) dropStroke.Thickness = 1.2 dropStroke.ApplyStrokeMode = Enum.ApplyStrokeMode.Border dropStroke.Parent = dropButton local resizeButtonPlus = Instance.new("TextButton") resizeButtonPlus.Name = "ResizeButtonPlus" resizeButtonPlus.Size = UDim2.new(0, 16, 0, 16) resizeButtonPlus.Position = UDim2.new(1, -18, 0, 2) resizeButtonPlus.BackgroundTransparency = 1 resizeButtonPlus.Text = "+" resizeButtonPlus.TextColor3 = Color3.fromRGB(0, 255, 100) resizeButtonPlus.TextSize = 12 resizeButtonPlus.Font = Enum.Font.Code resizeButtonPlus.ZIndex = 5 resizeButtonPlus.Parent = dropButton local resizeButtonMinus = Instance.new("TextButton") resizeButtonMinus.Name = "ResizeButtonMinus" resizeButtonMinus.Size = UDim2.new(0, 16, 0, 16) resizeButtonMinus.Position = UDim2.new(0, 2, 0, 2) resizeButtonMinus.BackgroundTransparency = 1 resizeButtonMinus.Text = "-" resizeButtonMinus.TextColor3 = Color3.fromRGB(0, 255, 100) resizeButtonMinus.TextSize = 12 resizeButtonMinus.Font = Enum.Font.Code resizeButtonMinus.ZIndex = 5 resizeButtonMinus.Parent = dropButton local function updateButtonLayout() local newSizes = sizes[currentSizeIndex] mainFrame.Size = UDim2.new(0, newSizes.mainW, 0, newSizes.h) dropButton.TextSize = newSizes.ts end resizeButtonPlus.Activated:Connect(function() if currentSizeIndex < #sizes then currentSizeIndex = currentSizeIndex + 1 updateButtonLayout() end end) resizeButtonMinus.Activated:Connect(function() if currentSizeIndex > 1 then currentSizeIndex = currentSizeIndex - 1 updateButtonLayout() end end) --------------------------------------------------------- -- NATIVE PHYSICS DISCARD LOGIC --------------------------------------------------------- local function triggerDrop() local character = Player.Character local humanoid = character and character:FindFirstChildOfClass("Humanoid") if not character or not humanoid then return end local tool = character:FindFirstChildOfClass("Tool") if not tool then return end tool.CanBeDropped = true tool.Parent = workspace local handle = tool:FindFirstChild("Handle") if handle and handle:IsA("BasePart") then local hrp = character:FindFirstChild("HumanoidRootPart") if hrp then task.wait() handle.AssemblyLinearVelocity = (hrp.CFrame.LookVector * 15) + Vector3.new(0, 10, 0) end end end --------------------------------------------------------- -- MULTI-TOUCH SAFE DRAG & TAP SYSTEM --------------------------------------------------------- local dragging = false local dragInput = nil local dragStart = nil local startPos = nil local clickThreshold = 15 -- Pixels of movement allowed before a tap cancels into a drag dropButton.InputBegan:Connect(function(input) -- Only lock on if we aren't already dragging, preventing multi-touch chaos if not dragging and (input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch) then dragging = true dragInput = input dragStart = input.Position startPos = mainFrame.Position end end) UserInputService.InputChanged:Connect(function(input) -- Strictly check that the moving input is the EXACT same finger that touched the UI if dragging and input == dragInput 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) UserInputService.InputEnded:Connect(function(input) if dragging and input == dragInput then dragging = false -- Measure how far the finger moved while held down local delta = input.Position - dragStart -- If the finger barely moved (less than 15 pixels), count it as a clean Tap/Click if delta.Magnitude < clickThreshold then triggerDrop() end dragInput = nil end end)