
Key Required

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)
only for mobile
@6nnn it should work for pc to i just used it today
@Itach1Uch1Ha ye but is so hard to unshiftlock to make a move
@Itach1Uch1Ha like 6nn said pls fix this