
Keyless Patched

-- // WORM CAVE: Infinite Stamina + ESP Worm + Auto Puzzle + Настройки // --
local Players = game:GetService("Players")
local RunService = game:GetService("RunService")
local TweenService = game:GetService("TweenService")
local UserInputService = game:GetService("UserInputService")
local LocalPlayer = Players.LocalPlayer
local PlayerGui = LocalPlayer:WaitForChild("PlayerGui")
local oldGui = PlayerGui:FindFirstChild("GrayGUI")
if oldGui then oldGui:Destroy() end
-- ========== ЯЗЫКИ ==========
local languages = {
RU = {
title = "🐛 WORM CAVE", hide = "➖ Скрыть", close = "❌ Выход",
stamina = "🩸 Infinite Stamina", esp = "👓 ESP Worm", puzzle = "🧩 Auto Puzzle",
settings = "⚙️ Настройки", theme = "🎨 Сменить тему", language = "🌐 Сменить язык",
back = "↩️ Назад", info_theme = "Тема: ", goodbye = "👋 Прощай, надеюсь увидимся ещё раз",
on = "ВКЛ", off = "ВЫКЛ",
themes = {["Пещера"]="Пещера",["Кровь"]="Кровь",["Лава"]="Лава",["Тьма"]="Тьма",["Яд"]="Яд",["Happy"]="Happy"}
},
EN = {
title = "🐛 WORM CAVE", hide = "➖ Hide", close = "❌ Exit",
stamina = "🩸 Infinite Stamina", esp = "👓 ESP Worm", puzzle = "🧩 Auto Puzzle",
settings = "⚙️ Settings", theme = "🎨 Change Theme", language = "🌐 Change Language",
back = "↩️ Back", info_theme = "Theme: ", goodbye = "👋 Goodbye, hope to see you again",
on = "ON", off = "OFF",
themes = {["Пещера"]="Cave",["Кровь"]="Blood",["Лава"]="Lava",["Тьма"]="Darkness",["Яд"]="Poison",["Happy"]="Happy"}
}
}
local currentLang = "RU"
-- ========== ТЕМЫ ==========
local themes = {
["Пещера"] = {bg1=Color3.fromRGB(60,40,30),bg2=Color3.fromRGB(40,25,20),bg3=Color3.fromRGB(20,10,5),accent=Color3.fromRGB(255,140,0),accent2=Color3.fromRGB(220,120,40),button=Color3.fromRGB(110,70,45),buttonHover=Color3.fromRGB(150,95,60),buttonActive=Color3.fromRGB(180,80,0),text=Color3.fromRGB(255,245,235)},
["Кровь"] = {bg1=Color3.fromRGB(60,20,20),bg2=Color3.fromRGB(40,10,10),bg3=Color3.fromRGB(20,5,5),accent=Color3.fromRGB(255,50,50),accent2=Color3.fromRGB(200,30,30),button=Color3.fromRGB(100,40,40),buttonHover=Color3.fromRGB(140,60,60),buttonActive=Color3.fromRGB(180,30,30),text=Color3.fromRGB(255,230,230)},
["Лава"] = {bg1=Color3.fromRGB(80,40,0),bg2=Color3.fromRGB(50,20,0),bg3=Color3.fromRGB(20,5,0),accent=Color3.fromRGB(255,200,0),accent2=Color3.fromRGB(255,120,0),button=Color3.fromRGB(130,70,20),buttonHover=Color3.fromRGB(170,100,40),buttonActive=Color3.fromRGB(220,100,0),text=Color3.fromRGB(255,245,220)},
["Тьма"] = {bg1=Color3.fromRGB(30,30,40),bg2=Color3.fromRGB(20,20,30),bg3=Color3.fromRGB(10,10,15),accent=Color3.fromRGB(150,150,255),accent2=Color3.fromRGB(100,100,200),button=Color3.fromRGB(60,60,80),buttonHover=Color3.fromRGB(90,90,120),buttonActive=Color3.fromRGB(80,80,180),text=Color3.fromRGB(230,230,255)},
["Яд"] = {bg1=Color3.fromRGB(30,60,30),bg2=Color3.fromRGB(15,40,15),bg3=Color3.fromRGB(5,15,5),accent=Color3.fromRGB(100,255,100),accent2=Color3.fromRGB(50,200,50),button=Color3.fromRGB(50,90,50),buttonHover=Color3.fromRGB(80,130,80),buttonActive=Color3.fromRGB(50,180,50),text=Color3.fromRGB(220,255,220)},
["Happy"] = {bg1=Color3.fromRGB(255,220,100),bg2=Color3.fromRGB(255,180,80),bg3=Color3.fromRGB(255,140,60),accent=Color3.fromRGB(255,80,180),accent2=Color3.fromRGB(255,120,200),button=Color3.fromRGB(255,200,120),buttonHover=Color3.fromRGB(255,220,150),buttonActive=Color3.fromRGB(255,140,180),text=Color3.fromRGB(120,40,80)}
}
local currentTheme = "Пещера"
local infiniteStaminaEnabled = false
local espEnabled = false
local autoPuzzleEnabled = false
local isHidden = false
-- ========== GUI ==========
local ScreenGui = Instance.new("ScreenGui")
ScreenGui.Name = "GrayGUI"
ScreenGui.ResetOnSpawn = false
ScreenGui.ZIndexBehavior = Enum.ZIndexBehavior.Sibling
ScreenGui.Parent = PlayerGui
local MainFrame = Instance.new("Frame")
MainFrame.Name = "MainFrame"
MainFrame.Size = UDim2.new(0, 320, 0, 400)
MainFrame.Position = UDim2.new(0.5, -160, 0.5, -200)
MainFrame.BackgroundColor3 = themes[currentTheme].bg1
MainFrame.BorderSizePixel = 0
MainFrame.Active = true
MainFrame.Draggable = true
MainFrame.Parent = ScreenGui
local MainCorner = Instance.new("UICorner")
MainCorner.CornerRadius = UDim.new(0, 10)
MainCorner.Parent = MainFrame
local MainStroke = Instance.new("UIStroke")
MainStroke.Color = themes[currentTheme].accent2
MainStroke.Thickness = 2
MainStroke.Transparency = 0.2
MainStroke.Parent = MainFrame
local MainGradient = Instance.new("UIGradient")
MainGradient.Color = ColorSequence.new({ColorSequenceKeypoint.new(0, themes[currentTheme].bg1), ColorSequenceKeypoint.new(0.5, themes[currentTheme].bg2), ColorSequenceKeypoint.new(1, themes[currentTheme].bg3)})
MainGradient.Rotation = 135
MainGradient.Parent = MainFrame
local TitleBar = Instance.new("Frame")
TitleBar.Size = UDim2.new(1, 0, 0, 45)
TitleBar.BackgroundColor3 = themes[currentTheme].bg3
TitleBar.BackgroundTransparency = 0.3
TitleBar.BorderSizePixel = 0
TitleBar.ZIndex = 2
TitleBar.Parent = MainFrame
local TitleCorner = Instance.new("UICorner")
TitleCorner.CornerRadius = UDim.new(0, 10)
TitleCorner.Parent = TitleBar
local TitleLabel = Instance.new("TextLabel")
TitleLabel.Size = UDim2.new(1, -170, 1, 0)
TitleLabel.Position = UDim2.new(0, 15, 0, 0)
TitleLabel.BackgroundTransparency = 1
TitleLabel.Text = languages[currentLang].title
TitleLabel.TextColor3 = themes[currentTheme].accent
TitleLabel.TextSize = 18
TitleLabel.Font = Enum.Font.GothamBold
TitleLabel.TextXAlignment = Enum.TextXAlignment.Left
TitleLabel.ZIndex = 3
TitleLabel.Parent = TitleBar
local HideButton = Instance.new("TextButton")
HideButton.Size = UDim2.new(0, 60, 0, 30)
HideButton.Position = UDim2.new(1, -160, 0, 8)
HideButton.BackgroundColor3 = Color3.fromRGB(100, 80, 0)
HideButton.BorderSizePixel = 0
HideButton.Text = languages[currentLang].hide
HideButton.TextColor3 = Color3.fromRGB(255, 255, 255)
HideButton.TextSize = 11
HideButton.Font = Enum.Font.GothamBold
HideButton.ZIndex = 3
HideButton.Parent = TitleBar
local HideCorner = Instance.new("UICorner")
HideCorner.CornerRadius = UDim.new(0, 8)
HideCorner.Parent = HideButton
local CloseButton = Instance.new("TextButton")
CloseButton.Size = UDim2.new(0, 80, 0, 30)
CloseButton.Position = UDim2.new(1, -90, 0, 8)
CloseButton.BackgroundColor3 = Color3.fromRGB(180, 40, 0)
CloseButton.BorderSizePixel = 0
CloseButton.Text = languages[currentLang].close
CloseButton.TextColor3 = Color3.fromRGB(255, 255, 255)
CloseButton.TextSize = 11
CloseButton.Font = Enum.Font.GothamBold
CloseButton.ZIndex = 3
CloseButton.Parent = TitleBar
local CloseCorner = Instance.new("UICorner")
CloseCorner.CornerRadius = UDim.new(0, 8)
CloseCorner.Parent = CloseButton
local ContentFrame = Instance.new("Frame")
ContentFrame.Size = UDim2.new(1, -20, 1, -60)
ContentFrame.Position = UDim2.new(0, 10, 0, 50)
ContentFrame.BackgroundTransparency = 1
ContentFrame.ZIndex = 2
ContentFrame.Parent = MainFrame
local function createButton(text, yPos, parent)
local btn = Instance.new("TextButton")
btn.Size = UDim2.new(1, 0, 0, 40)
btn.Position = UDim2.new(0, 0, 0, yPos)
btn.BackgroundColor3 = themes[currentTheme].button
btn.BackgroundTransparency = 0.15
btn.BorderSizePixel = 0
btn.Text = text
btn.TextColor3 = themes[currentTheme].text
btn.TextSize = 14
btn.Font = Enum.Font.GothamMedium
btn.AutoButtonColor = false
btn.ZIndex = 3
btn.Parent = parent
local corner = Instance.new("UICorner")
corner.CornerRadius = UDim.new(0, 6)
corner.Parent = btn
local stroke = Instance.new("UIStroke")
stroke.Color = themes[currentTheme].accent2
stroke.Thickness = 1.2
stroke.Transparency = 0.2
stroke.Parent = btn
local glow = Instance.new("ImageLabel")
glow.Name = "Glow"
glow.Size = UDim2.new(1, 24, 1, 24)
glow.Position = UDim2.new(0, -12, 0, -12)
glow.BackgroundTransparency = 1
glow.Image = "rbxassetid://5028857084"
glow.ImageColor3 = themes[currentTheme].accent
glow.ImageTransparency = 0.8
glow.ZIndex = 0
glow.Parent = btn
btn.MouseEnter:Connect(function()
if not btn:GetAttribute("Active") then
TweenService:Create(btn, TweenInfo.new(0.2), {BackgroundColor3 = themes[currentTheme].buttonHover}):Play()
TweenService:Create(stroke, TweenInfo.new(0.2), {Color = themes[currentTheme].accent, Transparency = 0}):Play()
TweenService:Create(glow, TweenInfo.new(0.2), {ImageTransparency = 0.4}):Play()
end
end)
btn.MouseLeave:Connect(function()
if not btn:GetAttribute("Active") then
TweenService:Create(btn, TweenInfo.new(0.2), {BackgroundColor3 = themes[currentTheme].button}):Play()
TweenService:Create(stroke, TweenInfo.new(0.2), {Color = themes[currentTheme].accent2, Transparency = 0.2}):Play()
TweenService:Create(glow, TweenInfo.new(0.2), {ImageTransparency = 0.8}):Play()
end
end)
return btn, stroke, glow
end
-- ========== ГЛАВНОЕ МЕНЮ ==========
local mainMenu = Instance.new("Frame")
mainMenu.Size = UDim2.new(1, 0, 1, 0)
mainMenu.BackgroundTransparency = 1
mainMenu.ZIndex = 3
mainMenu.Parent = ContentFrame
local StaminaButton, StaminaStroke, StaminaGlow = createButton(languages[currentLang].stamina .. ": " .. languages[currentLang].off, 0, mainMenu)
local ESPButton, ESPStroke, ESPGlow = createButton(languages[currentLang].esp .. ": " .. languages[currentLang].off, 50, mainMenu)
local PuzzleButton, PuzzleStroke, PuzzleGlow = createButton(languages[currentLang].puzzle .. ": " .. languages[currentLang].off, 100, mainMenu)
-- ========== ПОДМЕНЮ НАСТРОЕК ==========
local settingsMenu = Instance.new("Frame")
settingsMenu.Size = UDim2.new(1, 0, 1, 0)
settingsMenu.BackgroundTransparency = 1
settingsMenu.ZIndex = 4
settingsMenu.Visible = false
settingsMenu.Parent = ContentFrame
local ThemeButton, ThemeStroke, ThemeGlow = createButton(languages[currentLang].theme, 0, settingsMenu)
local LanguageButton, LangStroke, LangGlow = createButton(languages[currentLang].language, 50, settingsMenu)
local BackButton, BackStroke, BackGlow = createButton(languages[currentLang].back, 100, settingsMenu)
-- Инфо-панель
local InfoFrame = Instance.new("Frame")
InfoFrame.Size = UDim2.new(1, 0, 0, 60)
InfoFrame.Position = UDim2.new(0, 0, 0, 160)
InfoFrame.BackgroundColor3 = themes[currentTheme].bg2
InfoFrame.BackgroundTransparency = 0.15
InfoFrame.BorderSizePixel = 0
InfoFrame.ZIndex = 5
InfoFrame.Parent = settingsMenu
local InfoCorner = Instance.new("UICorner")
InfoCorner.CornerRadius = UDim.new(0, 6)
InfoCorner.Parent = InfoFrame
local InfoStroke = Instance.new("UIStroke")
InfoStroke.Color = themes[currentTheme].accent2
InfoStroke.Thickness = 1
InfoStroke.Transparency = 0.3
InfoStroke.Parent = InfoFrame
local InfoLabel = Instance.new("TextLabel")
InfoLabel.Size = UDim2.new(1, -20, 1, -10)
InfoLabel.Position = UDim2.new(0, 10, 0, 5)
InfoLabel.BackgroundTransparency = 1
InfoLabel.Text = languages[currentLang].info_theme .. currentTheme
InfoLabel.TextColor3 = themes[currentTheme].text
InfoLabel.TextSize = 12
InfoLabel.Font = Enum.Font.Gotham
InfoLabel.TextWrapped = true
InfoLabel.TextXAlignment = Enum.TextXAlignment.Left
InfoLabel.TextYAlignment = Enum.TextYAlignment.Top
InfoLabel.ZIndex = 6
InfoLabel.Parent = InfoFrame
-- ========== МАЛЕНЬКАЯ КНОПКА НАСТРОЕК (ПРАВЫЙ НИЖНИЙ УГОЛ) ==========
local SettingsButton = Instance.new("TextButton")
SettingsButton.Size = UDim2.new(0, 100, 0, 25)
SettingsButton.Position = UDim2.new(1, -110, 1, -35)
SettingsButton.BackgroundColor3 = themes[currentTheme].button
SettingsButton.BorderSizePixel = 0
SettingsButton.Text = languages[currentLang].settings
SettingsButton.TextColor3 = themes[currentTheme].text
SettingsButton.TextSize = 12
SettingsButton.Font = Enum.Font.GothamBold
SettingsButton.AutoButtonColor = false
SettingsButton.ZIndex = 10
SettingsButton.Parent = MainFrame
local SettingsCorner = Instance.new("UICorner")
SettingsCorner.CornerRadius = UDim.new(0, 6)
SettingsCorner.Parent = SettingsButton
local SettingsStroke = Instance.new("UIStroke")
SettingsStroke.Color = themes[currentTheme].accent2
SettingsStroke.Thickness = 1
SettingsStroke.Transparency = 0.3
SettingsStroke.Parent = SettingsButton
SettingsButton.MouseEnter:Connect(function()
TweenService:Create(SettingsButton, TweenInfo.new(0.2), {
BackgroundColor3 = themes[currentTheme].buttonHover
}):Play()
TweenService:Create(SettingsStroke, TweenInfo.new(0.2), {
Color = themes[currentTheme].accent,
Transparency = 0
}):Play()
end)
SettingsButton.MouseLeave:Connect(function()
TweenService:Create(SettingsButton, TweenInfo.new(0.2), {
BackgroundColor3 = themes[currentTheme].button
}):Play()
TweenService:Create(SettingsStroke, TweenInfo.new(0.2), {
Color = themes[currentTheme].accent2,
Transparency = 0.3
}):Play()
end)
-- Переключение меню
SettingsButton.MouseButton1Click:Connect(function()
mainMenu.Visible = false
settingsMenu.Visible = true
SettingsButton.Visible = false
end)
BackButton.MouseButton1Click:Connect(function()
settingsMenu.Visible = false
mainMenu.Visible = true
SettingsButton.Visible = true
end)
-- ========== МАЛЕНЬКАЯ КНОПКА РАЗВОРОТА ==========
local MiniButton = Instance.new("TextButton")
MiniButton.Size = UDim2.new(0, 50, 0, 50)
MiniButton.Position = UDim2.new(0.5, -25, 0.5, -25)
MiniButton.BackgroundColor3 = themes[currentTheme].bg1
MiniButton.BorderSizePixel = 0
MiniButton.Text = "🔁"
MiniButton.TextColor3 = themes[currentTheme].accent
MiniButton.TextSize = 24
MiniButton.Font = Enum.Font.GothamBold
MiniButton.Visible = false
MiniButton.Active = true
MiniButton.ZIndex = 5
MiniButton.Parent = ScreenGui
local MiniCorner = Instance.new("UICorner")
MiniCorner.CornerRadius = UDim.new(0, 25)
MiniCorner.Parent = MiniButton
local MiniStroke = Instance.new("UIStroke")
MiniStroke.Color = themes[currentTheme].accent
MiniStroke.Thickness = 2
MiniStroke.Transparency = 0.2
MiniStroke.Parent = MiniButton
local MiniGlow = Instance.new("ImageLabel")
MiniGlow.Name = "Glow"
MiniGlow.Size = UDim2.new(1, 20, 1, 20)
MiniGlow.Position = UDim2.new(0, -10, 0, -10)
MiniGlow.BackgroundTransparency = 1
MiniGlow.Image = "rbxassetid://5028857084"
MiniGlow.ImageColor3 = themes[currentTheme].accent
MiniGlow.ImageTransparency = 0.5
MiniGlow.ZIndex = 0
MiniGlow.Parent = MiniButton
-- ========== АКТИВНОЕ СОСТОЯНИЕ ==========
local function setButtonActive(btn, stroke, glow, active)
btn:SetAttribute("Active", active)
if active then
TweenService:Create(btn, TweenInfo.new(0.2), {BackgroundColor3 = themes[currentTheme].buttonActive}):Play()
TweenService:Create(stroke, TweenInfo.new(0.2), {Color = themes[currentTheme].accent, Transparency = 0}):Play()
TweenService:Create(glow, TweenInfo.new(0.2), {ImageColor3 = themes[currentTheme].accent, ImageTransparency = 0.2}):Play()
else
TweenService:Create(btn, TweenInfo.new(0.2), {BackgroundColor3 = themes[currentTheme].button}):Play()
TweenService:Create(stroke, TweenInfo.new(0.2), {Color = themes[currentTheme].accent2, Transparency = 0.2}):Play()
TweenService:Create(glow, TweenInfo.new(0.2), {ImageColor3 = themes[currentTheme].accent, ImageTransparency = 0.8}):Play()
end
end
-- ========== СМЕНА ЯЗЫКА ==========
local langList = {"RU", "EN"}
local langIndex = 1
local function updateLanguage()
local l = languages[currentLang]
TitleLabel.Text = l.title
HideButton.Text = l.hide
CloseButton.Text = l.close
StaminaButton.Text = l.stamina .. ": " .. (infiniteStaminaEnabled and l.on or l.off)
ESPButton.Text = l.esp .. ": " .. (espEnabled and l.on or l.off)
PuzzleButton.Text = l.puzzle .. ": " .. (autoPuzzleEnabled and l.on or l.off)
SettingsButton.Text = l.settings
ThemeButton.Text = l.theme
LanguageButton.Text = l.language
BackButton.Text = l.back
InfoLabel.Text = l.info_theme .. (l.themes and l.themes[currentTheme] or currentTheme)
end
LanguageButton.MouseButton1Click:Connect(function()
langIndex = langIndex + 1
if langIndex > #langList then langIndex = 1 end
currentLang = langList[langIndex]
updateLanguage()
end)
-- ========== СМЕНА ТЕМЫ ==========
local themeList = {"Пещера", "Кровь", "Лава", "Тьма", "Яд", "Happy"}
local themeIndex = 1
ThemeButton.MouseButton1Click:Connect(function()
themeIndex = themeIndex + 1
if themeIndex > #themeList then themeIndex = 1 end
currentTheme = themeList[themeIndex]
local t = themes[currentTheme]
MainFrame.BackgroundColor3 = t.bg1
MainGradient.Color = ColorSequence.new({ColorSequenceKeypoint.new(0, t.bg1), ColorSequenceKeypoint.new(0.5, t.bg2), ColorSequenceKeypoint.new(1, t.bg3)})
MainStroke.Color = t.accent2
TitleBar.BackgroundColor3 = t.bg3
TitleLabel.TextColor3 = t.accent
StaminaButton.BackgroundColor3 = t.button
StaminaButton.TextColor3 = t.text
StaminaStroke.Color = t.accent2
StaminaGlow.ImageColor3 = t.accent
ESPButton.BackgroundColor3 = t.button
ESPButton.TextColor3 = t.text
ESPStroke.Color = t.accent2
ESPGlow.ImageColor3 = t.accent
PuzzleButton.BackgroundColor3 = t.button
PuzzleButton.TextColor3 = t.text
PuzzleStroke.Color = t.accent2
PuzzleGlow.ImageColor3 = t.accent
ThemeButton.BackgroundColor3 = t.button
ThemeButton.TextColor3 = t.text
ThemeStroke.Color = t.accent2
ThemeGlow.ImageColor3 = t.accent
LanguageButton.BackgroundColor3 = t.button
LanguageButton.TextColor3 = t.text
LangStroke.Color = t.accent2
LangGlow.ImageColor3 = t.accent
BackButton.BackgroundColor3 = t.button
BackButton.TextColor3 = t.text
BackStroke.Color = t.accent2
BackGlow.ImageColor3 = t.accent
InfoFrame.BackgroundColor3 = t.bg2
InfoStroke.Color = t.accent2
InfoLabel.TextColor3 = t.text
InfoLabel.Text = languages[currentLang].info_theme .. (languages[currentLang].themes and languages[currentLang].themes[currentTheme] or currentTheme)
MiniButton.BackgroundColor3 = t.bg1
MiniButton.TextColor3 = t.accent
MiniStroke.Color = t.accent
MiniGlow.ImageColor3 = t.accent
SettingsButton.BackgroundColor3 = t.button
SettingsButton.TextColor3 = t.text
SettingsStroke.Color = t.accent2
end)
-- ========== INFINITE STAMINA ==========
local staminaConnection = nil
local detectedStaminaValue = nil
local function findStaminaObject()
for _, obj in ipairs(game:GetDescendants()) do
if obj:IsA("NumberValue") or obj:IsA("IntValue") then
local n = string.lower(obj.Name)
if string.find(n, "stamina") or string.find(n, "energy") then return obj end
end
end
return nil
end
local function enableInfiniteStamina()
if staminaConnection then return end
staminaConnection = RunService.Heartbeat:Connect(function()
if not infiniteStaminaEnabled then return end
if not detectedStaminaValue or not detectedStaminaValue.Parent then
detectedStaminaValue = findStaminaObject()
end
if detectedStaminaValue then
pcall(function() detectedStaminaValue.Value = 100 end)
end
end)
end
local function disableInfiniteStamina()
if staminaConnection then staminaConnection:Disconnect() staminaConnection = nil end
detectedStaminaValue = nil
end
LocalPlayer.CharacterAdded:Connect(function() detectedStaminaValue = nil end)
-- ========== ESP WORM ==========
local espObjects = {}
local espConnection = nil
local function createESP(obj)
if not obj:IsA("Model") then return end
if obj:FindFirstChildOfClass("Highlight") then return end
local hasPart = false
for _, child in ipairs(obj:GetChildren()) do
if child:IsA("BasePart") then hasPart = true break end
end
if not hasPart then return end
local highlight = Instance.new("Highlight")
highlight.FillColor = Color3.fromRGB(255, 80, 0)
highlight.FillTransparency = 0.4
highlight.OutlineColor = Color3.fromRGB(255, 200, 0)
highlight.OutlineTransparency = 0
highlight.DepthMode = Enum.HighlightDepthMode.AlwaysOnTop
highlight.Adornee = obj
highlight.Parent = obj
espObjects[obj] = highlight
end
local function clearESP()
for obj, hl in pairs(espObjects) do if hl then hl:Destroy() end end
espObjects = {}
end
local function enableESP()
if espConnection then return end
espConnection = RunService.Heartbeat:Connect(function()
if not espEnabled then return end
for _, obj in ipairs(workspace:GetDescendants()) do
if obj:IsA("Model") and string.find(string.lower(obj.Name), "worm") then createESP(obj) end
end
end)
end
local function disableESP()
if espConnection then espConnection:Disconnect() espConnection = nil end
clearESP()
end
-- ========== AUTO PUZZLE ==========
local autoPuzzleConnection = nil
local function autoCompletePuzzle(gui)
if not autoPuzzleEnabled then return end
local liberarEvent = game:GetService("ReplicatedStorage"):FindFirstChild("LiberarEvent")
if liberarEvent then
pcall(function() liberarEvent:FireServer() end)
end
if gui then gui:Destroy() end
end
local function enableAutoPuzzle()
if autoPuzzleConnection then return end
local existingGui = LocalPlayer.PlayerGui:FindFirstChild("FreeYourselfGui")
if existingGui then autoCompletePuzzle(existingGui) end
autoPuzzleConnection = LocalPlayer.PlayerGui.ChildAdded:Connect(function(child)
if child.Name == "FreeYourselfGui" then autoCompletePuzzle(child) end
end)
end
local function disableAutoPuzzle()
if autoPuzzleConnection then autoPuzzleConnection:Disconnect() autoPuzzleConnection = nil end
end
-- ========== ПЕРЕТАСКИВАНИЕ МИНИ-КНОПКИ ==========
local dragging = false
local dragStart = nil
local startPos = nil
local moved = false
MiniButton.InputBegan:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then
dragging = true
moved = false
dragStart = input.Position
startPos = MiniButton.Position
end
end)
MiniButton.InputChanged:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseMovement or input.UserInputType == Enum.UserInputType.Touch then
if dragging and dragStart and startPos then
local delta = input.Position - dragStart
if math.abs(delta.X) > 5 or math.abs(delta.Y) > 5 then moved = true end
MiniButton.Position = UDim2.new(startPos.X.Scale, startPos.X.Offset + delta.X, startPos.Y.Scale, startPos.Y.Offset + delta.Y)
end
end
end)
MiniButton.InputEnded:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then
dragging = false
if not moved then
if not isHidden then return end
isHidden = false
TweenService:Create(MiniButton, TweenInfo.new(0.2, Enum.EasingStyle.Quad, Enum.EasingDirection.In), {Size = UDim2.new(0, 0, 0, 0), Position = UDim2.new(0.5, 0, 0.5, 0)}):Play()
task.wait(0.2)
MiniButton.Visible = false
MainFrame.Visible = true
MainFrame.Size = UDim2.new(0, 0, 0, 0)
MainFrame.Position = UDim2.new(0.5, 0, 0.5, 0)
TweenService:Create(MainFrame, TweenInfo.new(0.3, Enum.EasingStyle.Back, Enum.EasingDirection.Out), {Size = UDim2.new(0, 320, 0, 400), Position = UDim2.new(0.5, -160, 0.5, -200)}):Play()
end
moved = false
end
end)
-- ========== СКРЫТИЕ ==========
HideButton.MouseButton1Click:Connect(function()
if isHidden then return end
isHidden = true
TweenService:Create(MainFrame, TweenInfo.new(0.3, Enum.EasingStyle.Quad, Enum.EasingDirection.In), {Size = UDim2.new(0, 0, 0, 0), Position = UDim2.new(0.5, 0, 0.5, 0)}):Play()
task.wait(0.3)
MainFrame.Visible = false
MiniButton.Visible = true
MiniButton.Size = UDim2.new(0, 0, 0, 0)
MiniButton.Position = UDim2.new(0.5, 0, 0.5, 0)
TweenService:Create(MiniButton, TweenInfo.new(0.3, Enum.EasingStyle.Back, Enum.EasingDirection.Out), {Size = UDim2.new(0, 50, 0, 50), Position = UDim2.new(0.5, -25, 0.5, -25)}):Play()
end)
-- ========== АНИМАЦИЯ ВЫХОДА ==========
CloseButton.MouseButton1Click:Connect(function()
CloseButton.Active = false
HideButton.Active = false
local goodbyeFrame = Instance.new("Frame")
goodbyeFrame.Size = UDim2.new(0, 300, 0, 60)
goodbyeFrame.Position = UDim2.new(0.5, -150, 0.5, -30)
goodbyeFrame.BackgroundColor3 = themes[currentTheme].bg2
goodbyeFrame.BackgroundTransparency = 1
goodbyeFrame.BorderSizePixel = 0
goodbyeFrame.ZIndex = 10
goodbyeFrame.Parent = ScreenGui
local goodbyeCorner = Instance.new("UICorner")
goodbyeCorner.CornerRadius = UDim.new(0, 10)
goodbyeCorner.Parent = goodbyeFrame
local goodbyeStroke = Instance.new("UIStroke")
goodbyeStroke.Color = themes[currentTheme].accent
goodbyeStroke.Thickness = 2
goodbyeStroke.Transparency = 1
goodbyeStroke.Parent = goodbyeFrame
local goodbyeLabel = Instance.new("TextLabel")
goodbyeLabel.Size = UDim2.new(1, -20, 1, -20)
goodbyeLabel.Position = UDim2.new(0, 10, 0, 10)
goodbyeLabel.BackgroundTransparency = 1
goodbyeLabel.Text = languages[currentLang].goodbye
goodbyeLabel.TextColor3 = themes[currentTheme].accent
goodbyeLabel.TextSize = 14
goodbyeLabel.Font = Enum.Font.GothamBold
goodbyeLabel.TextTransparency = 1
goodbyeLabel.TextWrapped = true
goodbyeLabel.ZIndex = 11
goodbyeLabel.Parent = goodbyeFrame
TweenService:Create(goodbyeFrame, TweenInfo.new(0.3, Enum.EasingStyle.Back, Enum.EasingDirection.Out), {Size = UDim2.new(0, 300, 0, 60), Position = UDim2.new(0.5, -150, 0.5, -30), BackgroundTransparency = 0.1}):Play()
TweenService:Create(goodbyeStroke, TweenInfo.new(0.3), {Transparency = 0.2}):Play()
TweenService:Create(goodbyeLabel, TweenInfo.new(0.3), {TextTransparency = 0}):Play()
task.wait(1.5)
TweenService:Create(goodbyeFrame, TweenInfo.new(0.5, Enum.EasingStyle.Quad, Enum.EasingDirection.In), {Size = UDim2.new(0, 150, 0, 30), Position = UDim2.new(0.5, -75, 0.5, -15), BackgroundTransparency = 1}):Play()
TweenService:Create(goodbyeStroke, TweenInfo.new(0.5), {Transparency = 1}):Play()
TweenService:Create(goodbyeLabel, TweenInfo.new(0.5), {TextTransparency = 1}):Play()
TweenService:Create(MainFrame, TweenInfo.new(0.5, Enum.EasingStyle.Quad, Enum.EasingDirection.In), {BackgroundTransparency = 1}):Play()
for _, obj in ipairs(MainFrame:GetDescendants()) do
if obj:IsA("TextLabel") or obj:IsA("TextButton") then
TweenService:Create(obj, TweenInfo.new(0.5), {TextTransparency = 1}):Play()
elseif obj:IsA("Frame") or obj:IsA("ImageLabel") then
TweenService:Create(obj, TweenInfo.new(0.5), {BackgroundTransparency = 1}):Play()
elseif obj:IsA("UIStroke") then
TweenService:Create(obj, TweenInfo.new(0.5), {Transparency = 1}):Play()
end
end
task.wait(0.6)
ScreenGui:Destroy()
print("GUI закрыт. Прощай!")
end)
-- ========== ОБРАБОТЧИКИ ==========
StaminaButton.MouseButton1Click:Connect(function()
infiniteStaminaEnabled = not infiniteStaminaEnabled
StaminaButton.Text = languages[currentLang].stamina .. ": " .. (infiniteStaminaEnabled and languages[currentLang].on or languages[currentLang].off)
setButtonActive(StaminaButton, StaminaStroke, StaminaGlow, infiniteStaminaEnabled)
if infiniteStaminaEnabled then enableInfiniteStamina() else disableInfiniteStamina() end
end)
ESPButton.MouseButton1Click:Connect(function()
espEnabled = not espEnabled
ESPButton.Text = languages[currentLang].esp .. ": " .. (espEnabled and languages[currentLang].on or languages[currentLang].off)
setButtonActive(ESPButton, ESPStroke, ESPGlow, espEnabled)
if espEnabled then enableESP() else disableESP() end
end)
PuzzleButton.MouseButton1Click:Connect(function()
autoPuzzleEnabled = not autoPuzzleEnabled
PuzzleButton.Text = languages[currentLang].puzzle .. ": " .. (autoPuzzleEnabled and languages[currentLang].on or languages[currentLang].off)
setButtonActive(PuzzleButton, PuzzleStroke, PuzzleGlow, autoPuzzleEnabled)
if autoPuzzleEnabled then enableAutoPuzzle() else disableAutoPuzzle() end
end)
print("🪱 WORM CAVE: Infinite Stamina + ESP Worm + Auto Puzzle + Настройки загружен!")No comments yet for this script.



