
Key RequiredUniversal

-- SKULL GAME SCANNER v2.1 | FIXED NO LAG
-- Исправлено: зависание, бесконечный цикл, переполнение памяти
local coreGui = game:GetService("CoreGui")
local player = game:GetService("Players").LocalPlayer
local workspace = game:GetService("Workspace")
local rs = game:GetService("ReplicatedStorage")
local runService = game:GetService("RunService")
-- === СОЗДАНИЕ GUI ===
local screenGui = Instance.new("ScreenGui")
screenGui.Name = "SKULL_Scanner_GUI"
screenGui.Parent = coreGui
screenGui.ResetOnSpawn = false
local mainFrame = Instance.new("Frame")
mainFrame.Size = UDim2.new(0, 420, 0, 350)
mainFrame.Position = UDim2.new(0.5, -210, 0.5, -175)
mainFrame.BackgroundColor3 = Color3.fromRGB(18, 18, 18)
mainFrame.BorderSizePixel = 0
mainFrame.Active = true
mainFrame.Draggable = true
mainFrame.Parent = screenGui
local corner = Instance.new("UICorner")
corner.CornerRadius = UDim.new(0, 10)
corner.Parent = mainFrame
local border = Instance.new("UIStroke")
border.Thickness = 1.5
border.Color = Color3.fromRGB(200, 50, 50)
border.ApplyStrokeMode = Enum.ApplyStrokeMode.Border
border.Parent = mainFrame
-- Заголовок
local titleBar = Instance.new("Frame")
titleBar.Size = UDim2.new(1, 0, 0, 35)
titleBar.BackgroundColor3 = Color3.fromRGB(25, 25, 25)
titleBar.BorderSizePixel = 0
titleBar.Parent = mainFrame
local titleCorner = Instance.new("UICorner")
titleCorner.CornerRadius = UDim.new(0, 10)
titleCorner.Parent = titleBar
local title = Instance.new("TextLabel")
title.Size = UDim2.new(1, -40, 0, 35)
title.Position = UDim2.new(0, 15, 0, 0)
title.BackgroundTransparency = 1
title.Text = "SKULL SCANNER v2.1 [FIXED]"
title.TextColor3 = Color3.fromRGB(255, 255, 255)
title.Font = Enum.Font.GothamBlack
title.TextSize = 13
title.TextXAlignment = Enum.TextXAlignment.Left
title.Parent = titleBar
local closeButton = Instance.new("TextButton")
closeButton.Size = UDim2.new(0, 30, 0, 25)
closeButton.Position = UDim2.new(1, -35, 0, 5)
closeButton.BackgroundColor3 = Color3.fromRGB(200, 40, 40)
closeButton.BorderSizePixel = 0
closeButton.Text = "✕"
closeButton.TextColor3 = Color3.fromRGB(255, 255, 255)
closeButton.Font = Enum.Font.GothamBold
closeButton.TextSize = 14
closeButton.Parent = titleBar
Instance.new("UICorner", closeButton).CornerRadius = UDim.new(0, 4)
-- Текстовое поле
local textContainer = Instance.new("ScrollingFrame")
textContainer.Size = UDim2.new(1, -20, 1, -80)
textContainer.Position = UDim2.new(0, 10, 0, 45)
textContainer.BackgroundColor3 = Color3.fromRGB(22, 22, 22)
textContainer.BorderSizePixel = 0
textContainer.ScrollBarThickness = 4
textContainer.ScrollBarImageColor3 = Color3.fromRGB(200, 50, 50)
textContainer.CanvasSize = UDim2.new(0, 0, 0, 0)
textContainer.Parent = mainFrame
Instance.new("UICorner", textContainer).CornerRadius = UDim.new(0, 6)
local outputText = Instance.new("TextLabel")
outputText.Size = UDim2.new(1, -16, 0, 0)
outputText.Position = UDim2.new(0, 8, 0, 5)
outputText.BackgroundTransparency = 1
outputText.Text = "Нажмите SCAN для начала..."
outputText.TextColor3 = Color3.fromRGB(200, 200, 200)
outputText.Font = Enum.Font.Code
outputText.TextSize = 12
outputText.TextXAlignment = Enum.TextXAlignment.Left
outputText.TextYAlignment = Enum.TextYAlignment.Top
outputText.TextWrapped = true
outputText.RichText = true
outputText.Parent = textContainer
-- Прогресс-бар
local progressBar = Instance.new("Frame")
progressBar.Size = UDim2.new(1, -20, 0, 4)
progressBar.Position = UDim2.new(0, 10, 1, -45)
progressBar.BackgroundColor3 = Color3.fromRGB(40, 40, 40)
progressBar.BorderSizePixel = 0
progressBar.Visible = false
progressBar.Parent = mainFrame
Instance.new("UICorner", progressBar).CornerRadius = UDim.new(0, 2)
local progressFill = Instance.new("Frame")
progressFill.Size = UDim2.new(0, 0, 1, 0)
progressFill.BackgroundColor3 = Color3.fromRGB(200, 50, 50)
progressFill.BorderSizePixel = 0
progressFill.Parent = progressBar
Instance.new("UICorner", progressFill).CornerRadius = UDim.new(0, 2)
-- Кнопки
local scanButton = Instance.new("TextButton")
scanButton.Size = UDim2.new(0, 120, 0, 35)
scanButton.Position = UDim2.new(0, 10, 1, -40)
scanButton.BackgroundColor3 = Color3.fromRGB(200, 50, 50)
scanButton.BorderSizePixel = 0
scanButton.Text = "SCAN"
scanButton.TextColor3 = Color3.fromRGB(255, 255, 255)
scanButton.Font = Enum.Font.GothamBold
scanButton.TextSize = 13
scanButton.Parent = mainFrame
Instance.new("UICorner", scanButton).CornerRadius = UDim.new(0, 6)
local clearButton = Instance.new("TextButton")
clearButton.Size = UDim2.new(0, 80, 0, 35)
clearButton.Position = UDim2.new(0, 140, 1, -40)
clearButton.BackgroundColor3 = Color3.fromRGB(50, 50, 50)
clearButton.BorderSizePixel = 0
clearButton.Text = "ОЧИСТИТЬ"
clearButton.TextColor3 = Color3.fromRGB(255, 255, 255)
clearButton.Font = Enum.Font.GothamBold
clearButton.TextSize = 11
clearButton.Parent = mainFrame
Instance.new("UICorner", clearButton).CornerRadius = UDim.new(0, 6)
local copyButton = Instance.new("TextButton")
copyButton.Size = UDim2.new(0, 90, 0, 35)
copyButton.Position = UDim2.new(0, 230, 1, -40)
copyButton.BackgroundColor3 = Color3.fromRGB(40, 100, 180)
copyButton.BorderSizePixel = 0
copyButton.Text = "КОПИРОВАТЬ"
copyButton.TextColor3 = Color3.fromRGB(255, 255, 255)
copyButton.Font = Enum.Font.GothamBold
copyButton.TextSize = 11
copyButton.Parent = mainFrame
Instance.new("UICorner", copyButton).CornerRadius = UDim.new(0, 6)
-- === ЛОГИКА (ИСПРАВЛЕННАЯ) ===
local scanResults = {}
local remoteEvents = {}
local remoteFunctions = {}
local totalScanned = 0
local isScanning = false
local function addLog(text, color)
color = color or Color3.fromRGB(200, 200, 200)
table.insert(scanResults, {text = tostring(text), color = color})
end
local function updateOutput()
local fullText = ""
for _, entry in pairs(scanResults) do
local hex = string.format("#%02X%02X%02X",
math.floor(entry.color.R * 255),
math.floor(entry.color.G * 255),
math.floor(entry.color.B * 255)
)
fullText = fullText .. '<font color="' .. hex .. '">' .. entry.text .. '</font>\n'
end
outputText.Text = fullText
outputText.Size = UDim2.new(1, -16, 0, math.max(#scanResults * 16 + 10, 30))
textContainer.CanvasSize = UDim2.new(0, 0, 0, outputText.Size.Y.Offset + 10)
end
-- === ИСПРАВЛЕННЫЙ СКАН (без зависаний) ===
local MAX_SCAN = 500 -- Максимум объектов за проход
local scannedCount = 0
local function safeScan(parent, depth, prefix)
if not isScanning then return end
if scannedCount >= MAX_SCAN then return end
if depth > 4 then return end -- Ограничение глубины
local children = parent:GetChildren()
for _, obj in pairs(children) do
if not isScanning then return end
if scannedCount >= MAX_SCAN then
addLog("... [СКАНИРОВАНИЕ ОСТАНОВЛЕНО: лимит " .. MAX_SCAN .. " объектов]", Color3.fromRGB(255, 150, 50))
return
end
scannedCount = scannedCount + 1
totalScanned = totalScanned + 1
local indent = string.rep(" ", depth)
local icon = "•"
local color = Color3.fromRGB(180, 180, 180)
if obj:IsA("RemoteEvent") then
icon = "⚡"
color = Color3.fromRGB(255, 200, 50)
table.insert(remoteEvents, {name = obj.Name, path = prefix .. "/" .. obj.Name})
elseif obj:IsA("RemoteFunction") then
icon = "🔧"
color = Color3.fromRGB(255, 150, 50)
table.insert(remoteFunctions, {name = obj.Name, path = prefix .. "/" .. obj.Name})
elseif obj:IsA("Script") or obj:IsA("LocalScript") then
icon = "📜"
color = Color3.fromRGB(100, 180, 255)
elseif obj:IsA("ModuleScript") then
icon = "📦"
color = Color3.fromRGB(150, 150, 255)
elseif obj:IsA("Folder") or obj:IsA("Model") or obj:IsA("Configuration") then
icon = "📁"
color = Color3.fromRGB(200, 200, 200)
end
if obj:IsA("RemoteEvent") or obj:IsA("RemoteFunction") or obj:IsA("Script") or obj:IsA("LocalScript") or obj:IsA("ModuleScript") then
local typeInfo = ""
if obj:IsA("RemoteEvent") then typeInfo = " [REMOTE EVENT]" end
if obj:IsA("RemoteFunction") then typeInfo = " [REMOTE FUNCTION]" end
addLog(indent .. icon .. " " .. obj.Name .. typeInfo, color)
end
-- Рекурсия только если есть дети и не превышен лимит
if #obj:GetChildren() > 0 and scannedCount < MAX_SCAN and depth < 4 then
safeScan(obj, depth + 1, prefix .. "/" .. obj.Name)
end
-- Обновление прогресс-бара
progressFill.Size = UDim2.new(scannedCount / MAX_SCAN, 0, 1, 0)
runService.RenderStepped:Wait() -- Даём UI обновиться
end
end
-- === ГЛАВНАЯ ФУНКЦИЯ СКАНИРОВАНИЯ ===
local function performScan()
if isScanning then
addLog("⚠ Сканирование уже выполняется!", Color3.fromRGB(255, 100, 100))
updateOutput()
return
end
isScanning = true
scannedCount = 0
totalScanned = 0
scanResults = {}
remoteEvents = {}
remoteFunctions = {}
-- Показываем прогресс-бар
progressBar.Visible = true
progressFill.Size = UDim2.new(0, 0, 1, 0)
addLog("══════════════════════════════", Color3.fromRGB(200, 50, 50))
addLog(" SKULL SCANNER v2.1 [FIXED]", Color3.fromRGB(255, 255, 255))
addLog(" PlaceId: " .. game.PlaceId, Color3.fromRGB(150, 150, 150))
addLog("══════════════════════════════", Color3.fromRGB(200, 50, 50))
addLog("", Color3.fromRGB(255, 255, 255))
updateOutput()
-- 1. Игрок (мгновенно)
addLog("👤 ИГРОК", Color3.fromRGB(100, 255, 100))
addLog(" Имя: " .. player.Name, Color3.fromRGB(200, 200, 200))
addLog(" UserId: " .. player.UserId, Color3.fromRGB(200, 200, 200))
addLog("", Color3.fromRGB(255, 255, 255))
updateOutput()
-- 2. ReplicatedStorage
addLog("📡 REPLICATED STORAGE (сканирую...)", Color3.fromRGB(255, 200, 50))
updateOutput()
safeScan(rs, 1, "ReplicatedStorage")
addLog("", Color3.fromRGB(255, 255, 255))
updateOutput()
-- 3. PlayerGui
local playerGui = player:FindFirstChild("PlayerGui")
if playerGui then
addLog("🖥 PLAYER GUI (сканирую...)", Color3.fromRGB(100, 180, 255))
updateOutput()
safeScan(playerGui, 1, "PlayerGui")
addLog("", Color3.fromRGB(255, 255, 255))
updateOutput()
end
-- 4. Workspace (только верхний уровень)
addLog("🌍 WORKSPACE", Color3.fromRGB(150, 255, 150))
for _, obj in pairs(workspace:GetChildren()) do
if obj:IsA("Model") or obj:IsA("Folder") then
local color = Color3.fromRGB(200, 200, 200)
local lower = obj.Name:lower()
if lower:find("obby") or lower:find("swing") or lower:find("stage") or lower:find("checkpoint") then
color = Color3.fromRGB(255, 255, 100)
end
addLog(" 📁 " .. obj.Name, color)
end
end
addLog("", Color3.fromRGB(255, 255, 255))
updateOutput()
-- Итоги
addLog("══════════════════════════════", Color3.fromRGB(200, 50, 50))
addLog(" СКАНИРОВАНИЕ ЗАВЕРШЕНО", Color3.fromRGB(100, 255, 100))
addLog(" Объектов просканировано: " .. totalScanned, Color3.fromRGB(200, 200, 200))
addLog(" RemoteEvents: " .. #remoteEvents, Color3.fromRGB(255, 200, 50))
addLog(" RemoteFunctions: " .. #remoteFunctions, Color3.fromRGB(255, 150, 50))
addLog("══════════════════════════════", Color3.fromRGB(200, 50, 50))
updateOutput()
-- Показываем найденные Remotes
if #remoteEvents > 0 then
addLog("", Color3.fromRGB(255, 255, 255))
addLog("⚡ REMOTE EVENTS (" .. #remoteEvents .. "):", Color3.fromRGB(255, 200, 50))
for _, re in pairs(remoteEvents) do
addLog(" • " .. re.name, Color3.fromRGB(255, 230, 100))
addLog(" Путь: " .. re.path, Color3.fromRGB(180, 180, 100))
end
updateOutput()
end
if #remoteFunctions > 0 then
addLog("", Color3.fromRGB(255, 255, 255))
addLog("🔧 REMOTE FUNCTIONS (" .. #remoteFunctions .. "):", Color3.fromRGB(255, 150, 50))
for _, rf in pairs(remoteFunctions) do
addLog(" • " .. rf.name, Color3.fromRGB(255, 180, 100))
addLog(" Путь: " .. rf.path, Color3.fromRGB(180, 140, 100))
end
updateOutput()
end
-- Скрываем прогресс-бар
progressBar.Visible = false
isScanning = false
-- Скролл вверх
textContainer.CanvasPosition = Vector2.new(0, 0)
end
-- === ОБРАБОТЧИКИ ===
scanButton.MouseButton1Click:Connect(function()
scanButton.Text = "СКАНИРУЮ..."
scanButton.BackgroundColor3 = Color3.fromRGB(100, 100, 100)
-- Запускаем через spawn чтобы UI не завис
spawn(function()
performScan()
scanButton.Text = "SCAN"
scanButton.BackgroundColor3 = Color3.fromRGB(200, 50, 50)
end)
end)
clearButton.MouseButton1Click:Connect(function()
if isScanning then return end
scanResults = {}
remoteEvents = {}
remoteFunctions = {}
totalScanned = 0
outputText.Text = "Нажмите SCAN для начала..."
outputText.Size = UDim2.new(1, -16, 0, 30)
textContainer.CanvasSize = UDim2.new(0, 0, 0, 30)
progressBar.Visible = false
end)
copyButton.MouseButton1Click:Connect(function()
local rawText = ""
for _, entry in pairs(scanResults) do
rawText = rawText .. entry.text .. "\n"
end
if rawText ~= "" then
setclipboard(rawText)
copyButton.Text = "СКОПИРОВАНО!"
copyButton.BackgroundColor3 = Color3.fromRGB(40, 160, 60)
wait(2)
copyButton.Text = "КОПИРОВАТЬ"
copyButton.BackgroundColor3 = Color3.fromRGB(40, 100, 180)
end
end)
closeButton.MouseButton1Click:Connect(function()
isScanning = false
screenGui:Destroy()
end)
-- === АВТОСКАН ===
spawn(function()
wait(0.5)
performScan()
end)



хороший ИИ скрипт (мог бы хотя бы то что ии написал сменить на что-то другое)