local Players = game:GetService("Players") local TweenService = game:GetService("TweenService") local UIS = game:GetService("UserInputService") local ReplicatedStorage = game:GetService("ReplicatedStorage") local LocalPlayer = Players.LocalPlayer local Character = LocalPlayer.Character or LocalPlayer.CharacterAdded:Wait() local Root = Character:WaitForChild("HumanoidRootPart") --------------------------------------------------------------------- -- GUI Setup --------------------------------------------------------------------- local ScreenGui = Instance.new("ScreenGui") ScreenGui.Name = "DracoHubScannerV7" ScreenGui.ResetOnSpawn = false ScreenGui.Parent = LocalPlayer:WaitForChild("PlayerGui") local Main = Instance.new("Frame") Main.Size = UDim2.new(0, 400, 0, 500) Main.Position = UDim2.new(0.05, 0, 0.2, 0) Main.BackgroundColor3 = Color3.fromRGB(20, 20, 20) Main.BorderSizePixel = 0 Main.Parent = ScreenGui local UIList = Instance.new("UIListLayout") UIList.SortOrder = Enum.SortOrder.LayoutOrder UIList.Parent = Main local Title = Instance.new("TextLabel") Title.Size = UDim2.new(1, 0, 0, 32) Title.Text = "DracoHub Character Ability Scanner v7 (Dev)" Title.BackgroundColor3 = Color3.fromRGB(30, 30, 30) Title.TextColor3 = Color3.fromRGB(255, 255, 255) Title.Font = Enum.Font.GothamBold Title.TextSize = 18 Title.Parent = Main local Scroll = Instance.new("ScrollingFrame") Scroll.Size = UDim2.new(1, 0, 1, -32) Scroll.CanvasSize = UDim2.new(0, 0, 0, 0) Scroll.ScrollBarThickness = 4 Scroll.BackgroundTransparency = 1 Scroll.Parent = Main local List = Instance.new("UIListLayout") List.SortOrder = Enum.SortOrder.LayoutOrder List.Padding = UDim.new(0, 4) List.Parent = Scroll --------------------------------------------------------------------- -- Draggable Window --------------------------------------------------------------------- local dragging, dragStart, startPos Main.InputBegan:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 then dragging = true dragStart = input.Position startPos = Main.Position end end) Main.InputEnded:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 then dragging = false end end) UIS.InputChanged:Connect(function(input) if dragging and input.UserInputType == Enum.UserInputType.MouseMovement then local delta = input.Position - dragStart Main.Position = UDim2.new( startPos.X.Scale, startPos.X.Offset + delta.X, startPos.Y.Scale, startPos.Y.Offset + delta.Y ) end end) --------------------------------------------------------------------- -- UI Helpers --------------------------------------------------------------------- local function MakeButton(text, callback) local B = Instance.new("TextButton") B.Size = UDim2.new(1, -6, 0, 28) B.BackgroundColor3 = Color3.fromRGB(40, 40, 40) B.TextColor3 = Color3.fromRGB(255, 255, 255) B.Font = Enum.Font.Gotham B.TextSize = 14 B.Text = text B.AutoButtonColor = true B.Parent = Scroll B.MouseButton1Click:Connect(callback or function() end) return B end local function MakeCategory(label) local L = Instance.new("TextLabel") L.Size = UDim2.new(1, -6, 0, 24) L.BackgroundColor3 = Color3.fromRGB(50, 20, 80) L.TextColor3 = Color3.fromRGB(255, 255, 255) L.Font = Enum.Font.GothamBold L.TextSize = 14 L.Text = "== " .. label .. " ==" L.Parent = Scroll return L end --------------------------------------------------------------------- -- Character Ability Scanner --------------------------------------------------------------------- local function ScanCharacterAbilities() MakeCategory("CHARACTER ABILITIES") local charactersFolder = ReplicatedStorage:FindFirstChild("Characters") if not charactersFolder then MakeButton("[ERROR] No ReplicatedStorage.Characters folder found", function() end) warn("[Scanner] No Characters folder in ReplicatedStorage") return end for _, characterFolder in ipairs(charactersFolder:GetChildren()) do -- Accept Folder or Model as character container if characterFolder:IsA("Folder") or characterFolder:IsA("Model") then MakeCategory(characterFolder.Name) local remotesFolder = characterFolder:FindFirstChild("Remotes") if not remotesFolder then MakeButton("[NO REMOTES] " .. characterFolder.Name, function() end) else local any = false for _, remote in ipairs(remotesFolder:GetChildren()) do if remote:IsA("RemoteEvent") then any = true local abilityName = remote.Name MakeButton("[ABILITY] " .. abilityName, function() -- Equivalent to: -- game:GetService("ReplicatedStorage") -- :WaitForChild("Characters") -- :WaitForChild(characterFolder.Name) -- :WaitForChild("Remotes") -- :WaitForChild(abilityName) -- :FireServer() remote:FireServer() print("Fired ability:", characterFolder.Name, abilityName) end) end end if not any then MakeButton("[NO REMOTEEVENTS] " .. characterFolder.Name, function() end) end end end end end --------------------------------------------------------------------- -- Refresh --------------------------------------------------------------------- local function Refresh() for _, child in ipairs(Scroll:GetChildren()) do if child:IsA("TextButton") or child:IsA("TextLabel") then child:Destroy() end end ScanCharacterAbilities() task.wait() Scroll.CanvasSize = UDim2.new(0, 0, 0, List.AbsoluteContentSize.Y + 20) end Refresh() print("[DracoHub Character Ability Scanner v7] Loaded.") --------------------------------------------------------------------- -- MOUSE UNLOCK FIX (WORKS AFTER ESC MENU CLOSES) --------------------------------------------------------------------- local UIS = game:GetService("UserInputService") local RunService = game:GetService("RunService") RunService.RenderStepped:Connect(function() -- If your GUI is visible, force mouse to be free if ScreenGui.Enabled then UIS.MouseBehavior = Enum.MouseBehavior.Default UIS.MouseIconEnabled = true end end)