
Key Required

-- ==================== ОПТИМИЗИРОВАННЫЙ СКРИПТ v2.3 ====================
-- Версия с минимальным потреблением FPS
-- Исправлено: Функция выгрузки, сохранение/загрузка настроек
-- Добавлено: Авто-кликер (без мыши), Анти-афк
-- Удалено: Стелс-режим
-- ==================== СЕРВИСЫ ====================
local UserInputService = game:GetService("UserInputService")
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local RunService = game:GetService("RunService")
local player = game:GetService("Players").LocalPlayer
local StarterGui = game:GetService("StarterGui")
local workspace = game:GetService("Workspace")
local Players = game:GetService("Players")
local CoreGui = game:GetService("CoreGui")
local VirtualUser = game:GetService("VirtualUser")
local VirtualInputManager = game:GetService("VirtualInputManager")
-- ==================== ЗАЩИТА ОТ ПОВТОРНОЙ ЗАГРУЗКИ ====================
if _G.UnifiedScriptLoaded then
pcall(function()
local oldGui = CoreGui:FindFirstChild("By MeXa")
if oldGui then oldGui:Destroy() end
oldGui = CoreGui:FindFirstChild("CurrentTimeGUI")
if oldGui then oldGui:Destroy() end
_G.UnifiedScriptLoaded = nil
end)
end
_G.UnifiedScriptLoaded = true
-- ==================== СОХРАНЯЕМ ОРИГИНАЛЬНЫЕ ФУНКЦИИ ====================
local oldWarn = warn
local oldPrint = print
local mt = nil
local oldNamecall = nil
-- ==================== ПОДАВЛЕНИЕ ОШИБОК ====================
warn = function(...)
local msg = tostring(...)
if not msg:find("missing method 'Unequip'") and not msg:find("ClickDetector") then
oldWarn(...)
end
end
print = function(...)
local msg = tostring(...)
if not msg:find("missing method 'Unequip'") then
oldPrint(...)
end
end
-- ==================== ФУНКЦИЯ УВЕДОМЛЕНИЙ ====================
local lastNotifyTime = 0
local function notify(title, text, duration)
local currentTime = os.clock()
if currentTime - lastNotifyTime < 1 then return end
lastNotifyTime = currentTime
pcall(function()
StarterGui:SetCore("SendNotification", {
Title = tostring(title),
Text = tostring(text),
Duration = duration or 2
})
end)
end
-- ==================== НАСТРОЙКИ ====================
local settings = {
damage = {
repeatamount = 100,
exceptions = {"SayMessageRequest", "MeleeUpdateEvent", "NinjaBombEvent", "BulletUpdateEvent"},
enabled = false,
bind = "O"
},
farm = {
enabled = false,
bind = "P"
},
autoclicker = {
enabled = false,
bind = "U",
interval = 0.05
},
antiafk = {
enabled = false,
interval = 60
}
}
-- ==================== НАСТРОЙКИ БИНДОВ ====================
local bindSettings = {
mainGUI = {
bind = "L",
enabled = true
},
timeGUI = {
bind = "K",
enabled = true
},
esp = {
bind = "J",
enabled = true
}
}
-- ==================== НАСТРОЙКИ ESP ====================
local espSettings = {
enabled = true,
entities = true,
exoticGifts = true,
orbs = true,
players = false,
colors = {
entities = Color3.new(1, 0, 0),
exotic = Color3.new(1, 1, 0),
orb = Color3.new(0, 1, 1),
player = Color3.new(0, 1, 0)
}
}
-- ==================== МЕНЕДЖЕР НАСТРОЕК ====================
local SettingsManager = {}
SettingsManager.fileName = "UnifiedScript_Settings"
function SettingsManager:save()
local success, result = pcall(function()
local data = {
damage = settings.damage,
farm = settings.farm,
autoclicker = settings.autoclicker,
antiafk = settings.antiafk,
bindSettings = bindSettings,
espSettings = espSettings
}
local json = game:GetService("HttpService"):JSONEncode(data)
if writefile then
writefile(self.fileName .. ".json", json)
return true
elseif syn and syn.write then
syn.write(self.fileName .. ".json", json)
return true
end
return false
end)
if success and result then
notify("Settings", "Settings saved successfully!")
else
notify("Settings", "Failed to save settings", 3)
end
end
function SettingsManager:load()
local success, data = pcall(function()
local content = nil
if readfile then
content = readfile(self.fileName .. ".json")
elseif syn and syn.read then
content = syn.read(self.fileName .. ".json")
end
if content then
return game:GetService("HttpService"):JSONDecode(content)
end
return nil
end)
if success and data then
if data.damage then settings.damage = data.damage end
if data.farm then settings.farm = data.farm end
if data.autoclicker then settings.autoclicker = data.autoclicker end
if data.antiafk then settings.antiafk = data.antiafk end
if data.bindSettings then bindSettings = data.bindSettings end
if data.espSettings then espSettings = data.espSettings end
notify("Settings", "Settings loaded successfully!")
return true
else
return false
end
end
-- ==================== ПЕРЕМЕННЫЕ ====================
local latestOrb = nil
local exoticCount = 0
local farmCount = 0
local farmRunning = false
local lastFarmTime = 0
local FARM_COOLDOWN = 5
local cachedItems = nil
local lastCacheUpdate = 0
local CACHE_LIFETIME = 2
local SEARCH_RADIUS = 1500
local MAX_OBJECTS_PER_CYCLE = 200
local notifiedGifts = {}
local notifiedOrbs = {}
-- ESP Variables
local espObjects = {}
local espConnections = {}
local espEnabled = true
-- Auto Clicker Variables
local autoclickerRunning = false
local attackEvents = {}
-- Anti AFK Variables
local antiafkRunning = false
-- Script state
local scriptLoaded = true
local connections = {}
-- ==================== ОЖИДАНИЕ БИНДА ====================
local waitingForBind = nil
local bindButtons = {}
-- ==================== ФУНКЦИИ ====================
-- Поиск папки с предметами
local function getItemsFolder()
local currentTime = os.clock()
if cachedItems and currentTime - lastCacheUpdate < CACHE_LIFETIME then
return cachedItems
end
local success, result = pcall(function()
local Storage = workspace:FindFirstChild("Storage")
if Storage then
local Map = Storage:FindFirstChild("Map")
if Map then
return Map:FindFirstChild("Scraps")
end
end
return nil
end)
if success and result then
cachedItems = result
else
cachedItems = nil
end
lastCacheUpdate = currentTime
return cachedItems
end
-- ==================== ФУНКЦИЯ ВЫГРУЗКИ ====================
local function unloadScript()
if not scriptLoaded then return end
pcall(function()
StarterGui:SetCore("SendNotification", {
Title = "Script",
Text = "Unloading script...",
Duration = 1
})
end)
settings.damage.enabled = false
settings.farm.enabled = false
settings.autoclicker.enabled = false
settings.antiafk.enabled = false
espEnabled = false
autoclickerRunning = false
antiafkRunning = false
for obj, esp in pairs(espObjects) do
pcall(function()
if esp.highlight then esp.highlight:Destroy() end
if esp.billboard then esp.billboard:Destroy() end
end)
end
espObjects = {}
for i, conn in ipairs(connections) do
pcall(function() conn:Disconnect() end)
end
connections = {}
pcall(function()
if screenGui and screenGui.Parent then
screenGui:Destroy()
end
end)
pcall(function()
if timeGui and timeGui.Parent then
timeGui:Destroy()
end
end)
pcall(function()
for _, v in pairs(CoreGui:GetChildren()) do
if v.Name == "By MeXa" or v.Name == "CurrentTimeGUI" or v.Name == "RepeatDialog" or v.Name == "DialogBackground" then
v:Destroy()
end
end
end)
pcall(function()
warn = oldWarn
print = oldPrint
end)
pcall(function()
if mt and oldNamecall then
setreadonly(mt, false)
mt.__namecall = oldNamecall
setreadonly(mt, true)
end
end)
scriptLoaded = false
waitingForBind = nil
_G.UnifiedScriptLoaded = nil
collectgarbage()
pcall(function()
StarterGui:SetCore("SendNotification", {
Title = "Script",
Text = "Script unloaded successfully!",
Duration = 2
})
end)
oldPrint("✓ Script полностью выгружен")
end
-- ==================== ФУНКЦИИ ESP ====================
local function createHighlight(obj, color, text)
if not obj then return nil end
local adornee = obj
if obj:IsA("Model") then
if obj.PrimaryPart then
adornee = obj.PrimaryPart
else
for _, part in ipairs(obj:GetDescendants()) do
if part:IsA("BasePart") then
adornee = part
break
end
end
end
end
if not adornee or not adornee:IsA("BasePart") then
return nil
end
local billboard = Instance.new("BillboardGui")
billboard.Parent = adornee
billboard.Adornee = adornee
billboard.Size = UDim2.new(0, 100, 0, 30)
billboard.StudsOffset = Vector3.new(0, 3, 0)
billboard.AlwaysOnTop = true
local textLabel = Instance.new("TextLabel")
textLabel.Parent = billboard
textLabel.Size = UDim2.new(1, 0, 1, 0)
textLabel.BackgroundTransparency = 1
textLabel.Text = text or obj.Name
textLabel.TextColor3 = color or Color3.new(1, 1, 1)
textLabel.TextSize = 14
textLabel.Font = Enum.Font.SourceSansBold
textLabel.TextStrokeTransparency = 0.5
textLabel.TextStrokeColor3 = Color3.new(0, 0, 0)
local highlight = Instance.new("Highlight")
highlight.Parent = adornee
highlight.Adornee = adornee
highlight.FillColor = color or Color3.new(1, 0, 0)
highlight.FillTransparency = 0.5
highlight.OutlineColor = Color3.new(1, 1, 1)
highlight.OutlineTransparency = 0
highlight.DepthMode = Enum.HighlightDepthMode.AlwaysOnTop
return {
highlight = highlight,
billboard = billboard,
obj = obj
}
end
local function removeESP(obj)
if espObjects[obj] then
pcall(function()
if espObjects[obj].highlight then
espObjects[obj].highlight:Destroy()
end
if espObjects[obj].billboard then
espObjects[obj].billboard:Destroy()
end
end)
espObjects[obj] = nil
end
end
local function updateESP()
if not espEnabled or not scriptLoaded then
for obj, _ in pairs(espObjects) do
removeESP(obj)
end
return
end
local currentObjects = {}
if espSettings.entities then
local entitiesFolder = workspace:FindFirstChild("Entities")
if entitiesFolder then
local success, children = pcall(function() return entitiesFolder:GetChildren() end)
if success and children then
for _, v in ipairs(children) do
if v and not currentObjects[v] then
currentObjects[v] = true
if not espObjects[v] then
local esp = createHighlight(v, espSettings.colors.entities, "ENTITY: " .. v.Name)
if esp then
espObjects[v] = esp
end
end
end
end
end
end
end
if espSettings.exoticGifts then
local items = getItemsFolder()
if items then
local success, children = pcall(function() return items:GetChildren() end)
if success and children then
for _, v in ipairs(children) do
if v and v.Name == "Exotic Gift" and not currentObjects[v] then
currentObjects[v] = true
if not espObjects[v] then
local esp = createHighlight(v, espSettings.colors.exotic, "⭐ EXOTIC GIFT")
if esp then
espObjects[v] = esp
end
end
end
end
end
end
end
if espSettings.orbs then
local items = getItemsFolder()
if items then
local success, children = pcall(function() return items:GetChildren() end)
if success and children then
for _, v in ipairs(children) do
if v and v.Name and string.find(string.lower(v.Name), "orb") and not currentObjects[v] then
currentObjects[v] = true
if not espObjects[v] then
local esp = createHighlight(v, espSettings.colors.orb, "🌀 " .. v.Name)
if esp then
espObjects[v] = esp
end
end
end
end
end
end
end
if espSettings.players then
for _, plr in ipairs(Players:GetPlayers()) do
if plr ~= player and plr.Character then
local char = plr.Character
if char and not currentObjects[char] then
currentObjects[char] = true
if not espObjects[char] then
local esp = createHighlight(char, espSettings.colors.player, "👤 " .. plr.Name)
if esp then
espObjects[char] = esp
end
end
end
end
end
end
for obj, esp in pairs(espObjects) do
if not currentObjects[obj] or not obj.Parent then
removeESP(obj)
end
end
end
local function toggleESP()
espEnabled = not espEnabled
if not espEnabled then
for obj, _ in pairs(espObjects) do
removeESP(obj)
end
end
notify("ESP", "ESP: " .. (espEnabled and "ON" or "OFF"))
if espToggleButton then
espToggleButton.Text = "ESP: " .. (espEnabled and "ON" or "OFF")
espToggleButton.BackgroundColor3 = espEnabled and Color3.new(0, 0.5, 0) or Color3.new(0.5, 0, 0)
end
end
-- ==================== АВТО-КЛИКЕР ====================
-- Поиск доступных событий атаки
local function findAttackEvents()
attackEvents = {}
local possibleEvents = {
"MeleeUpdateEvent",
"NinjaBombEvent",
"AttackEvent",
"ClickEvent",
"SwordEvent",
"DamageEvent"
}
for _, eventName in ipairs(possibleEvents) do
local event = ReplicatedStorage:FindFirstChild(eventName)
if event and (event:IsA("RemoteEvent") or event:IsA("RemoteFunction")) then
table.insert(attackEvents, event)
end
end
-- Поиск по всем папкам в ReplicatedStorage
for _, folder in ipairs(ReplicatedStorage:GetChildren()) do
if folder:IsA("Folder") then
for _, event in ipairs(folder:GetChildren()) do
if (event:IsA("RemoteEvent") or event:IsA("RemoteFunction")) and
(string.find(event.Name:lower(), "attack") or
string.find(event.Name:lower(), "melee") or
string.find(event.Name:lower(), "hit") or
string.find(event.Name:lower(), "damage")) then
table.insert(attackEvents, event)
end
end
end
end
return #attackEvents > 0
end
-- Функция атаки
local function performAttack()
if not settings.autoclicker.enabled or not scriptLoaded then return end
local character = player.Character
if not character then return end
local humanoid = character:FindFirstChildOfClass("Humanoid")
if not humanoid or humanoid.Health <= 0 then return end
-- Используем найденные события
for _, event in ipairs(attackEvents) do
pcall(function()
if event:IsA("RemoteEvent") then
event:FireServer()
elseif event:IsA("RemoteFunction") then
event:InvokeServer()
end
end)
end
-- Альтернативный метод: эмуляция клика через ClickDetector
if #attackEvents == 0 then
local mouse = player:GetMouse()
local target = mouse.Target
if target then
local clickDetector = target:FindFirstChildOfClass("ClickDetector")
if clickDetector then
pcall(function()
clickDetector:FireServer()
end)
end
end
end
end
-- Запуск авто-кликера
local function startAutoclicker()
if autoclickerRunning then return end
autoclickerRunning = true
findAttackEvents()
task.spawn(function()
while autoclickerRunning and scriptLoaded and settings.autoclicker.enabled do
local success, err = pcall(performAttack)
if not success then
oldPrint("Auto-clicker error: " .. tostring(err))
end
task.wait(settings.autoclicker.interval)
end
autoclickerRunning = false
end)
end
-- Остановка авто-кликера
local function stopAutoclicker()
autoclickerRunning = false
end
-- Переключение авто-кликера
local function toggleAutoclicker()
settings.autoclicker.enabled = not settings.autoclicker.enabled
if settings.autoclicker.enabled then
startAutoclicker()
notify("Auto-Clicker", "ON (Interval: " .. settings.autoclicker.interval .. "s)")
else
stopAutoclicker()
notify("Auto-Clicker", "OFF")
end
if autoclickerToggleButton then
autoclickerToggleButton.Text = settings.autoclicker.enabled and "DISABLE" or "ENABLE"
autoclickerToggleButton.BackgroundColor3 = settings.autoclicker.enabled and Color3.new(0, 0.5, 0) or Color3.new(0.5, 0, 0)
end
if autoclickerStatusLabel then
autoclickerStatusLabel.Text = "Status: " .. (settings.autoclicker.enabled and "ON" or "OFF")
autoclickerStatusLabel.TextColor3 = settings.autoclicker.enabled and Color3.new(0, 1, 0) or Color3.new(1, 0, 0)
end
end
-- ==================== АНТИ-АФК ====================
local function performAntiAFK()
if not settings.antiafk.enabled or not scriptLoaded then return end
pcall(function()
-- Метод 1: Движение мыши
VirtualUser:Move(Vector2.new(100, 0), Vector2.new(1000, 1000))
task.wait(0.1)
-- Метод 2: Нажатие кнопки
VirtualInputManager:SendKeyEvent(true, Enum.KeyCode.Unknown, false, game)
task.wait(0.1)
-- Метод 3: Отправка пустого события
local jumpEvent = ReplicatedStorage:FindFirstChild("JumpEvent")
if jumpEvent then
jumpEvent:FireServer()
end
end)
end
-- Запуск анти-афк
local function startAntiAFK()
if antiafkRunning then return end
antiafkRunning = true
task.spawn(function()
while antiafkRunning and scriptLoaded and settings.antiafk.enabled do
task.wait(settings.antiafk.interval)
if antiafkRunning and scriptLoaded and settings.antiafk.enabled then
local success, err = pcall(performAntiAFK)
if not success then
oldPrint("Anti-AFK error: " .. tostring(err))
end
end
end
antiafkRunning = false
end)
end
-- Остановка анти-афк
local function stopAntiAFK()
antiafkRunning = false
end
-- Переключение анти-афк
local function toggleAntiAFK()
settings.antiafk.enabled = not settings.antiafk.enabled
if settings.antiafk.enabled then
startAntiAFK()
notify("Anti-AFK", "ON (Interval: " .. settings.antiafk.interval .. "s)")
else
stopAntiAFK()
notify("Anti-AFK", "OFF")
end
if antiafkToggleButton then
antiafkToggleButton.Text = settings.antiafk.enabled and "DISABLE" or "ENABLE"
antiafkToggleButton.BackgroundColor3 = settings.antiafk.enabled and Color3.new(0, 0.5, 0) or Color3.new(0.5, 0, 0)
end
if antiafkStatusLabel then
antiafkStatusLabel.Text = "Status: " .. (settings.antiafk.enabled and "ON" or "OFF")
antiafkStatusLabel.TextColor3 = settings.antiafk.enabled and Color3.new(0, 1, 0) or Color3.new(1, 0, 0)
end
end
-- ==================== ОБНОВЛЕНИЕ GUI ====================
local function updateItemsCounts()
local counts = { exotic = 0 }
local items = getItemsFolder()
if items then
local success, children = pcall(function() return items:GetChildren() end)
if success and children then
for _, v in ipairs(children) do
if v and v.Name == "Exotic Gift" then
counts.exotic = counts.exotic + 1
end
end
end
end
exoticCount = counts.exotic
if exoticLabel then
exoticLabel.Text = "Exotic Gift: " .. exoticCount
end
end
local function updateEntitiesList()
if not entitiesListFrame then return end
for _, child in ipairs(entitiesListFrame:GetChildren()) do
if child:IsA("TextLabel") then
child:Destroy()
end
end
local entitiesFolder = workspace:FindFirstChild("Entities")
if not entitiesFolder then
local noEntitiesLabel = Instance.new("TextLabel")
noEntitiesLabel.Parent = entitiesListFrame
noEntitiesLabel.Size = UDim2.new(1, -5, 0, 20)
noEntitiesLabel.BackgroundTransparency = 1
noEntitiesLabel.Text = "No Entities folder found"
noEntitiesLabel.TextColor3 = Color3.new(1, 0, 0)
noEntitiesLabel.TextSize = 12
noEntitiesLabel.Font = Enum.Font.SourceSans
noEntitiesLabel.TextXAlignment = Enum.TextXAlignment.Left
return
end
local entityCount = 0
local success, children = pcall(function() return entitiesFolder:GetChildren() end)
if success and children then
for _, v in ipairs(children) do
if v then
entityCount = entityCount + 1
local entityLabel = Instance.new("TextLabel")
entityLabel.Parent = entitiesListFrame
entityLabel.Size = UDim2.new(1, -5, 0, 20)
entityLabel.BackgroundTransparency = 1
entityLabel.Text = "• " .. v.Name
entityLabel.TextColor3 = Color3.new(1, 1, 0)
entityLabel.TextSize = 12
entityLabel.Font = Enum.Font.SourceSans
entityLabel.TextXAlignment = Enum.TextXAlignment.Left
end
end
end
entitiesListFrame.CanvasSize = UDim2.new(0, 0, 0, entityCount * 22)
end
local function detectObjects()
if not scriptLoaded then return end
updateItemsCounts()
updateEntitiesList()
if espEnabled then
updateESP()
end
local items = getItemsFolder()
if items then
local success, children = pcall(function() return items:GetChildren() end)
if success and children then
for _, v in ipairs(children) do
if v and v.Name and string.find(string.lower(v.Name), "orb") and v ~= latestOrb then
latestOrb = v
if orbLabel then
orbLabel.Text = "Last Orb: " .. v.Name
end
notify("Orb", v.Name .. " appeared!")
end
end
end
end
end
-- ==================== ЗАХВАТ БИНДОВ ====================
local function startBindCapture(button, target)
button.Text = "..."
waitingForBind = {button = button, target = target}
end
local function updateBindButtons()
if damageBindButton then damageBindButton.Text = settings.damage.bind end
if farmBindButton then farmBindButton.Text = settings.farm.bind end
if autoclickerBindButton then autoclickerBindButton.Text = settings.autoclicker.bind end
if mainGUIBindButton then mainGUIBindButton.Text = bindSettings.mainGUI.bind end
if timeGUIBindButton then timeGUIBindButton.Text = bindSettings.timeGUI.bind end
if espBindButton then espBindButton.Text = bindSettings.esp.bind end
end
-- ==================== СОЗДАНИЕ GUI ====================
local function createOptimizedGUI()
local screenGui = Instance.new("ScreenGui")
screenGui.Parent = CoreGui
screenGui.ResetOnSpawn = false
screenGui.Name = "By MeXa"
screenGui.ZIndexBehavior = Enum.ZIndexBehavior.Sibling
screenGui.DisplayOrder = 100
screenGui.IgnoreGuiInset = true
local mainFrame = Instance.new("Frame")
mainFrame.Parent = screenGui
mainFrame.Size = UDim2.new(0, 600, 0, 700)
mainFrame.Position = UDim2.new(0.5, -300, 0.5, -350)
mainFrame.BackgroundColor3 = Color3.new(0.1, 0.1, 0.1)
mainFrame.BackgroundTransparency = 0.1
mainFrame.BorderSizePixel = 0
mainFrame.Active = true
mainFrame.Draggable = true
mainFrame.Visible = true
mainFrame.ClipsDescendants = true
local titleLabel = Instance.new("TextLabel")
titleLabel.Parent = mainFrame
titleLabel.Size = UDim2.new(1, 0, 0, 25)
titleLabel.Position = UDim2.new(0, 0, 0, 0)
titleLabel.BackgroundColor3 = Color3.new(0.2, 0.2, 0.2)
titleLabel.Text = "Unified Script v2.2 (All binds can be changed)"
titleLabel.TextColor3 = Color3.new(1, 1, 1)
titleLabel.TextSize = 14
titleLabel.Font = Enum.Font.SourceSans
local tabButtonsFrame = Instance.new("Frame")
tabButtonsFrame.Parent = mainFrame
tabButtonsFrame.Size = UDim2.new(1, 0, 0, 25)
tabButtonsFrame.Position = UDim2.new(0, 0, 0, 25)
tabButtonsFrame.BackgroundColor3 = Color3.new(0.15, 0.15, 0.15)
tabButtonsFrame.BorderSizePixel = 0
local damageTabButton = Instance.new("TextButton")
damageTabButton.Parent = tabButtonsFrame
damageTabButton.Size = UDim2.new(0.166, -1, 1, 0)
damageTabButton.Position = UDim2.new(0, 0, 0, 0)
damageTabButton.BackgroundColor3 = Color3.new(0.3, 0.3, 0.3)
damageTabButton.Text = "DAMAGE"
damageTabButton.TextColor3 = Color3.new(1, 1, 1)
damageTabButton.TextSize = 13
damageTabButton.Font = Enum.Font.SourceSans
damageTabButton.BorderSizePixel = 0
damageTabButton.AutoButtonColor = false
local farmTabButton = Instance.new("TextButton")
farmTabButton.Parent = tabButtonsFrame
farmTabButton.Size = UDim2.new(0.166, -1, 1, 0)
farmTabButton.Position = UDim2.new(0.166, 1, 0, 0)
farmTabButton.BackgroundColor3 = Color3.new(0.2, 0.2, 0.2)
farmTabButton.Text = "FARM"
farmTabButton.TextColor3 = Color3.new(1, 1, 1)
farmTabButton.TextSize = 13
farmTabButton.Font = Enum.Font.SourceSans
farmTabButton.BorderSizePixel = 0
farmTabButton.AutoButtonColor = false
local espTabButton = Instance.new("TextButton")
espTabButton.Parent = tabButtonsFrame
espTabButton.Size = UDim2.new(0.166, -1, 1, 0)
espTabButton.Position = UDim2.new(0.332, 2, 0, 0)
espTabButton.BackgroundColor3 = Color3.new(0.2, 0.2, 0.2)
espTabButton.Text = "ESP"
espTabButton.TextColor3 = Color3.new(1, 1, 1)
espTabButton.TextSize = 13
espTabButton.Font = Enum.Font.SourceSans
espTabButton.BorderSizePixel = 0
espTabButton.AutoButtonColor = false
local bindsTabButton = Instance.new("TextButton")
bindsTabButton.Parent = tabButtonsFrame
bindsTabButton.Size = UDim2.new(0.166, -1, 1, 0)
bindsTabButton.Position = UDim2.new(0.498, 3, 0, 0)
bindsTabButton.BackgroundColor3 = Color3.new(0.2, 0.2, 0.2)
bindsTabButton.Text = "BINDS"
bindsTabButton.TextColor3 = Color3.new(1, 1, 1)
bindsTabButton.TextSize = 13
bindsTabButton.Font = Enum.Font.SourceSans
bindsTabButton.BorderSizePixel = 0
bindsTabButton.AutoButtonColor = false
local miscTabButton = Instance.new("TextButton")
miscTabButton.Parent = tabButtonsFrame
miscTabButton.Size = UDim2.new(0.166, -1, 1, 0)
miscTabButton.Position = UDim2.new(0.664, 4, 0, 0)
miscTabButton.BackgroundColor3 = Color3.new(0.2, 0.2, 0.2)
miscTabButton.Text = "MISC"
miscTabButton.TextColor3 = Color3.new(1, 1, 1)
miscTabButton.TextSize = 13
miscTabButton.Font = Enum.Font.SourceSans
miscTabButton.BorderSizePixel = 0
miscTabButton.AutoButtonColor = false
local extraTabButton = Instance.new("TextButton")
extraTabButton.Parent = tabButtonsFrame
extraTabButton.Size = UDim2.new(0.166, -1, 1, 0)
extraTabButton.Position = UDim2.new(0.83, 5, 0, 0)
extraTabButton.BackgroundColor3 = Color3.new(0.2, 0.2, 0.2)
extraTabButton.Text = "EXTRA"
extraTabButton.TextColor3 = Color3.new(1, 1, 1)
extraTabButton.TextSize = 13
extraTabButton.Font = Enum.Font.SourceSans
extraTabButton.BorderSizePixel = 0
extraTabButton.AutoButtonColor = false
local contentFrame = Instance.new("Frame")
contentFrame.Parent = mainFrame
contentFrame.Size = UDim2.new(1, -20, 1, -80)
contentFrame.Position = UDim2.new(0, 10, 0, 60)
contentFrame.BackgroundColor3 = Color3.new(0.2, 0.2, 0.2)
contentFrame.BackgroundTransparency = 0.3
contentFrame.BorderSizePixel = 0
contentFrame.ClipsDescendants = true
return screenGui, mainFrame, contentFrame, damageTabButton, farmTabButton, espTabButton, bindsTabButton, miscTabButton, extraTabButton
end
local function createTimeGUI()
local timeGui = Instance.new("ScreenGui")
timeGui.Parent = CoreGui
timeGui.ResetOnSpawn = false
timeGui.Name = "CurrentTimeGUI"
timeGui.ZIndexBehavior = Enum.ZIndexBehavior.Sibling
timeGui.DisplayOrder = 200
local timeFrame = Instance.new("Frame")
timeFrame.Parent = timeGui
timeFrame.Size = UDim2.new(0, 250, 0, 100)
timeFrame.Position = UDim2.new(0.02, 0, 0.5, -50)
timeFrame.BackgroundColor3 = Color3.new(0, 0, 0)
timeFrame.BackgroundTransparency = 0.2
timeFrame.BorderSizePixel = 2
timeFrame.BorderColor3 = Color3.new(1, 1, 0)
timeFrame.Active = true
timeFrame.Draggable = true
timeFrame.Visible = true
local titleLabel = Instance.new("TextLabel")
titleLabel.Parent = timeFrame
titleLabel.Size = UDim2.new(1, 0, 0, 25)
titleLabel.Position = UDim2.new(0, 0, 0, 0)
titleLabel.BackgroundColor3 = Color3.new(0.2, 0.2, 0.2)
titleLabel.Text = "CURRENT TIME (Bind: " .. bindSettings.timeGUI.bind .. ")"
titleLabel.TextColor3 = Color3.new(1, 1, 0)
titleLabel.TextSize = 13
titleLabel.Font = Enum.Font.SourceSansBold
local timeValueLabel = Instance.new("TextLabel")
timeValueLabel.Parent = timeFrame
timeValueLabel.Size = UDim2.new(1, 0, 1, -25)
timeValueLabel.Position = UDim2.new(0, 0, 0, 25)
timeValueLabel.BackgroundTransparency = 1
timeValueLabel.Text = "Loading..."
timeValueLabel.TextColor3 = Color3.new(0, 1, 0)
timeValueLabel.TextSize = 36
timeValueLabel.Font = Enum.Font.SourceSansBold
return timeGui, timeFrame, timeValueLabel
end
-- Создание GUI
local screenGui, mainFrame, contentFrame, damageTabButton, farmTabButton, espTabButton, bindsTabButton, miscTabButton, extraTabButton = createOptimizedGUI()
local timeGui, timeFrame, timeValueLabel = createTimeGUI()
-- ==================== ВСПОМОГАТЕЛЬНЫЕ ФУНКЦИИ ДЛЯ GUI ====================
local function createLabel(parent, text, position, color, size)
local label = Instance.new("TextLabel")
label.Parent = parent
label.Size = UDim2.new(1, -20, 0, 20)
label.Position = position
label.BackgroundTransparency = 1
label.Text = text
label.TextColor3 = color or Color3.new(1, 1, 1)
label.TextSize = size or 12
label.Font = Enum.Font.SourceSans
label.TextXAlignment = Enum.TextXAlignment.Left
return label
end
local function createButton(parent, text, position, size, color)
local button = Instance.new("TextButton")
button.Parent = parent
button.Size = size or UDim2.new(0, 120, 0, 25)
button.Position = position
button.BackgroundColor3 = color or Color3.new(0.3, 0.3, 0.3)
button.Text = text
button.TextColor3 = Color3.new(1, 1, 1)
button.TextSize = 12
button.Font = Enum.Font.SourceSans
button.BorderSizePixel = 0
button.AutoButtonColor = false
return button
end
-- ==================== ВКЛАДКА ESP ====================
local espFrame = Instance.new("Frame")
espFrame.Parent = contentFrame
espFrame.Size = UDim2.new(1, 0, 1, 0)
espFrame.BackgroundTransparency = 1
espFrame.Visible = false
espFrame.ClipsDescendants = true
-- ESP Title
local espTitle = createLabel(espFrame, "=== ESP SETTINGS ===", UDim2.new(0, 10, 0, 5), Color3.new(0, 1, 0), 16)
espTitle.Size = UDim2.new(1, -20, 0, 25)
espTitle.BackgroundColor3 = Color3.new(0.3, 0.3, 0.3)
espTitle.BackgroundTransparency = 0
espTitle.TextXAlignment = Enum.TextXAlignment.Center
-- ESP Toggle
espToggleButton = createButton(espFrame, "ESP: ON", UDim2.new(0, 10, 0, 40), UDim2.new(0, 120, 0, 30), Color3.new(0, 0.5, 0))
espToggleButton.TextSize = 14
-- ESP Bind
createLabel(espFrame, "ESP Bind:", UDim2.new(0, 140, 0, 45))
espBindButton = createButton(espFrame, bindSettings.esp.bind, UDim2.new(0, 210, 0, 45), UDim2.new(0, 45, 0, 22))
-- ESP Categories
local categoriesTitle = createLabel(espFrame, "--- Categories ---", UDim2.new(0, 10, 0, 80), Color3.new(1, 1, 0), 14)
-- Entities toggle
local entitiesToggle = createButton(espFrame, "Entities: ON", UDim2.new(0, 10, 0, 105), UDim2.new(0, 150, 0, 25), Color3.new(0.7, 0, 0))
-- Exotic Gifts toggle
local exoticToggle = createButton(espFrame, "Exotic Gifts: ON", UDim2.new(0, 170, 0, 105), UDim2.new(0, 150, 0, 25), Color3.new(0.7, 0.7, 0))
-- Orbs toggle
local orbsToggle = createButton(espFrame, "Orbs: ON", UDim2.new(0, 10, 0, 135), UDim2.new(0, 150, 0, 25), Color3.new(0, 0.7, 0.7))
-- Players toggle
local playersToggle = createButton(espFrame, "Players: OFF", UDim2.new(0, 170, 0, 135), UDim2.new(0, 150, 0, 25), Color3.new(0, 0.7, 0))
-- Color preview
local colorsTitle = createLabel(espFrame, "--- Colors ---", UDim2.new(0, 10, 0, 175), Color3.new(1, 1, 0), 14)
local function createColorPreview(parent, text, color, pos)
local frame = Instance.new("Frame")
frame.Parent = parent
frame.Size = UDim2.new(0, 20, 0, 20)
frame.Position = pos
frame.BackgroundColor3 = color
frame.BorderSizePixel = 0
local label = Instance.new("TextLabel")
label.Parent = parent
label.Size = UDim2.new(0, 100, 0, 20)
label.Position = pos + UDim2.new(0, 25, 0, 0)
label.BackgroundTransparency = 1
label.Text = text
label.TextColor3 = Color3.new(1, 1, 1)
label.TextSize = 12
label.Font = Enum.Font.SourceSans
label.TextXAlignment = Enum.TextXAlignment.Left
end
createColorPreview(espFrame, "Entities", espSettings.colors.entities, UDim2.new(0, 10, 0, 200))
createColorPreview(espFrame, "Exotic", espSettings.colors.exotic, UDim2.new(0, 10, 0, 225))
createColorPreview(espFrame, "Orbs", espSettings.colors.orb, UDim2.new(0, 10, 0, 250))
createColorPreview(espFrame, "Players", espSettings.colors.player, UDim2.new(0, 10, 0, 275))
-- Info
local infoLabel = createLabel(espFrame, "ESP shows highlighted objects with names", UDim2.new(0, 10, 0, 310), Color3.new(1, 1, 1), 12)
infoLabel.Size = UDim2.new(1, -20, 0, 40)
infoLabel.TextWrapped = true
-- ==================== ВКЛАДКА BINDS ====================
local bindsFrame = Instance.new("Frame")
bindsFrame.Parent = contentFrame
bindsFrame.Size = UDim2.new(1, 0, 1, 0)
bindsFrame.BackgroundTransparency = 1
bindsFrame.Visible = false
bindsFrame.ClipsDescendants = true
-- Title
local bindsTitle = createLabel(bindsFrame, "=== KEY BINDINGS ===", UDim2.new(0, 10, 0, 5), Color3.new(1, 1, 0), 16)
bindsTitle.Size = UDim2.new(1, -20, 0, 25)
bindsTitle.BackgroundColor3 = Color3.new(0.3, 0.3, 0.3)
bindsTitle.BackgroundTransparency = 0
bindsTitle.TextXAlignment = Enum.TextXAlignment.Center
-- Damage bind
createLabel(bindsFrame, "Damage Toggle:", UDim2.new(0, 10, 0, 40))
local damageBindButtonBinds = createButton(bindsFrame, settings.damage.bind, UDim2.new(0, 120, 0, 40), UDim2.new(0, 45, 0, 22))
-- Farm bind
createLabel(bindsFrame, "Farm Toggle:", UDim2.new(0, 10, 0, 70))
local farmBindButtonBinds = createButton(bindsFrame, settings.farm.bind, UDim2.new(0, 120, 0, 70), UDim2.new(0, 45, 0, 22))
-- Auto Clicker bind
createLabel(bindsFrame, "Auto-Clicker:", UDim2.new(0, 10, 0, 100))
local autoclickerBindButtonBinds = createButton(bindsFrame, settings.autoclicker.bind, UDim2.new(0, 120, 0, 100), UDim2.new(0, 45, 0, 22))
-- Main GUI bind
createLabel(bindsFrame, "Main GUI:", UDim2.new(0, 10, 0, 130))
mainGUIBindButton = createButton(bindsFrame, bindSettings.mainGUI.bind, UDim2.new(0, 120, 0, 130), UDim2.new(0, 45, 0, 22))
-- Time GUI bind
createLabel(bindsFrame, "Time GUI:", UDim2.new(0, 10, 0, 160))
timeGUIBindButton = createButton(bindsFrame, bindSettings.timeGUI.bind, UDim2.new(0, 120, 0, 160), UDim2.new(0, 45, 0, 22))
-- ESP bind
createLabel(bindsFrame, "ESP Toggle:", UDim2.new(0, 10, 0, 190))
local espBindButtonBinds = createButton(bindsFrame, bindSettings.esp.bind, UDim2.new(0, 120, 0, 190), UDim2.new(0, 45, 0, 22))
-- Instruction
local instructionLabel = createLabel(bindsFrame, "Click any bind button then press a key to change it", UDim2.new(0, 10, 0, 230), Color3.new(1, 1, 0), 14)
instructionLabel.Size = UDim2.new(1, -20, 0, 40)
instructionLabel.TextWrapped = true
-- ==================== ВКЛАДКА MISC ====================
local miscFrame = Instance.new("Frame")
miscFrame.Parent = contentFrame
miscFrame.Size = UDim2.new(1, 0, 1, 0)
miscFrame.BackgroundTransparency = 1
miscFrame.Visible = false
miscFrame.ClipsDescendants = true
-- Title
local miscTitle = createLabel(miscFrame, "=== MISCELLANEOUS ===", UDim2.new(0, 10, 0, 5), Color3.new(0, 1, 1), 16)
miscTitle.Size = UDim2.new(1, -20, 0, 25)
miscTitle.BackgroundColor3 = Color3.new(0.3, 0.3, 0.3)
miscTitle.BackgroundTransparency = 0
miscTitle.TextXAlignment = Enum.TextXAlignment.Center
-- Script Status
local scriptStatusLabel = createLabel(miscFrame, "Script Status: RUNNING", UDim2.new(0, 10, 0, 40), Color3.new(0, 1, 0), 14)
scriptStatusLabel.Size = UDim2.new(1, -20, 0, 25)
scriptStatusLabel.BackgroundColor3 = Color3.new(0.2, 0.2, 0.2)
scriptStatusLabel.BackgroundTransparency = 0
scriptStatusLabel.TextXAlignment = Enum.TextXAlignment.Center
-- SETTINGS MANAGEMENT
local settingsTitle = createLabel(miscFrame, "--- SETTINGS ---", UDim2.new(0, 10, 0, 70), Color3.new(1, 1, 0), 14)
-- Save Settings button
local saveSettingsButton = createButton(miscFrame, "💾 SAVE SETTINGS", UDim2.new(0, 10, 0, 95), UDim2.new(1, -20, 0, 30), Color3.new(0, 0.5, 0))
saveSettingsButton.TextSize = 14
-- Load Settings button
local loadSettingsButton = createButton(miscFrame, "📂 LOAD SETTINGS", UDim2.new(0, 10, 0, 130), UDim2.new(1, -20, 0, 30), Color3.new(0, 0, 0.5))
loadSettingsButton.TextSize = 14
-- Memory Usage
local memoryLabel = createLabel(miscFrame, "Memory Usage: Calculating...", UDim2.new(0, 10, 0, 175), Color3.new(1, 1, 1), 12)
-- ESP Objects Count
local espCountLabel = createLabel(miscFrame, "ESP Objects: 0", UDim2.new(0, 10, 0, 200), Color3.new(1, 1, 1), 12)
-- Separator
local separator1 = createLabel(miscFrame, "------------------------", UDim2.new(0, 10, 0, 225), Color3.new(1, 1, 1), 12)
-- UNLOAD BUTTON
local unloadWarning = createLabel(miscFrame, "WARNING: This will remove the entire script!", UDim2.new(0, 10, 0, 250), Color3.new(1, 0, 0), 14)
unloadWarning.Size = UDim2.new(1, -20, 0, 25)
unloadWarning.BackgroundColor3 = Color3.new(0.3, 0, 0)
unloadWarning.BackgroundTransparency = 0
unloadWarning.TextXAlignment = Enum.TextXAlignment.Center
local unloadButton = createButton(miscFrame, "UNLOAD SCRIPT", UDim2.new(0, 10, 0, 280), UDim2.new(1, -20, 0, 40), Color3.new(0.8, 0, 0))
unloadButton.TextSize = 16
unloadButton.TextColor3 = Color3.new(1, 1, 1)
local confirmFrame = Instance.new("Frame")
confirmFrame.Parent = miscFrame
confirmFrame.Size = UDim2.new(1, -20, 0, 60)
confirmFrame.Position = UDim2.new(0, 10, 0, 330)
confirmFrame.BackgroundColor3 = Color3.new(0.3, 0.2, 0.2)
confirmFrame.BackgroundTransparency = 0
confirmFrame.BorderSizePixel = 2
confirmFrame.BorderColor3 = Color3.new(1, 0, 0)
confirmFrame.Visible = false
local confirmLabel = createLabel(confirmFrame, "Are you sure? This cannot be undone!", UDim2.new(0, 10, 0, 5), Color3.new(1, 1, 0), 14)
confirmLabel.Size = UDim2.new(1, -20, 0, 20)
local confirmYes = createButton(confirmFrame, "YES", UDim2.new(0, 10, 0, 30), UDim2.new(0, 100, 0, 25), Color3.new(0.8, 0, 0))
local confirmNo = createButton(confirmFrame, "NO", UDim2.new(1, -110, 0, 30), UDim2.new(0, 100, 0, 25), Color3.new(0.3, 0.3, 0.3))
-- Separator
local separator2 = createLabel(miscFrame, "------------------------", UDim2.new(0, 10, 0, 400), Color3.new(1, 1, 1), 12)
-- FPS Counter
local fpsLabel = createLabel(miscFrame, "FPS: 60", UDim2.new(0, 10, 0, 425), Color3.new(1, 1, 1), 12)
-- Info
local miscInfo = createLabel(miscFrame, "v2.2 - Added Auto-Clicker (no mouse) and Anti-AFK", UDim2.new(0, 10, 0, 450), Color3.new(1, 1, 0), 12)
miscInfo.Size = UDim2.new(1, -20, 0, 40)
miscInfo.TextWrapped = true
-- ==================== ВКЛАДКА EXTRA ====================
local extraFrame = Instance.new("Frame")
extraFrame.Parent = contentFrame
extraFrame.Size = UDim2.new(1, 0, 1, 0)
extraFrame.BackgroundTransparency = 1
extraFrame.Visible = false
extraFrame.ClipsDescendants = true
-- Title
local extraTitle = createLabel(extraFrame, "=== AUTO CLICKER & ANTI-AFK ===", UDim2.new(0, 10, 0, 5), Color3.new(0, 1, 0), 16)
extraTitle.Size = UDim2.new(1, -20, 0, 25)
extraTitle.BackgroundColor3 = Color3.new(0.3, 0.3, 0.3)
extraTitle.BackgroundTransparency = 0
extraTitle.TextXAlignment = Enum.TextXAlignment.Center
-- ===== AUTO CLICKER SECTION =====
local autoclickerTitle = createLabel(extraFrame, "--- AUTO CLICKER (NO MOUSE) ---", UDim2.new(0, 10, 0, 40), Color3.new(1, 1, 0), 14)
-- Status
autoclickerStatusLabel = createLabel(extraFrame, "Status: OFF", UDim2.new(0, 10, 0, 65), Color3.new(1, 0, 0), 14)
autoclickerStatusLabel.Size = UDim2.new(1, -20, 0, 20)
-- Toggle button
autoclickerToggleButton = createButton(extraFrame, "ENABLE", UDim2.new(0, 10, 0, 90), UDim2.new(0, 120, 0, 30), Color3.new(0.5, 0, 0))
autoclickerToggleButton.TextSize = 14
-- Bind button
createLabel(extraFrame, "Bind:", UDim2.new(0, 140, 0, 95))
autoclickerBindButton = createButton(extraFrame, settings.autoclicker.bind, UDim2.new(0, 180, 0, 95), UDim2.new(0, 45, 0, 22))
-- Interval settings
createLabel(extraFrame, "Current interval:", UDim2.new(0, 10, 0, 130))
local autoclickerIntervalLabel = createLabel(extraFrame, tostring(settings.autoclicker.interval) .. "s", UDim2.new(0, 120, 0, 130), Color3.new(0, 1, 0))
autoclickerIntervalLabel.TextXAlignment = Enum.TextXAlignment.Right
autoclickerIntervalLabel.Size = UDim2.new(0, 60, 0, 20)
local changeAutoclickerIntervalButton = createButton(extraFrame, "Change interval", UDim2.new(0, 190, 0, 130), UDim2.new(0, 120, 0, 22))
-- Info
local autoclickerInfo = createLabel(extraFrame, "Attacks automatically without mouse movement", UDim2.new(0, 10, 0, 165), Color3.new(0, 1, 1), 12)
autoclickerInfo.Size = UDim2.new(1, -20, 0, 20)
-- Separator
local separator3 = createLabel(extraFrame, "------------------------", UDim2.new(0, 10, 0, 195), Color3.new(1, 1, 1), 12)
-- ===== ANTI-AFK SECTION =====
local antiafkTitle = createLabel(extraFrame, "--- ANTI-AFK ---", UDim2.new(0, 10, 0, 220), Color3.new(1, 1, 0), 14)
-- Status
antiafkStatusLabel = createLabel(extraFrame, "Status: OFF", UDim2.new(0, 10, 0, 245), Color3.new(1, 0, 0), 14)
antiafkStatusLabel.Size = UDim2.new(1, -20, 0, 20)
-- Toggle button
antiafkToggleButton = createButton(extraFrame, "ENABLE", UDim2.new(0, 10, 0, 270), UDim2.new(0, 120, 0, 30), Color3.new(0.5, 0, 0))
antiafkToggleButton.TextSize = 14
-- Interval settings
createLabel(extraFrame, "Interval:", UDim2.new(0, 10, 0, 310))
local antiafkIntervalLabel = createLabel(extraFrame, tostring(settings.antiafk.interval) .. "s", UDim2.new(0, 120, 0, 310), Color3.new(0, 1, 0))
antiafkIntervalLabel.TextXAlignment = Enum.TextXAlignment.Right
antiafkIntervalLabel.Size = UDim2.new(0, 60, 0, 20)
local changeAntiafkIntervalButton = createButton(extraFrame, "Change interval", UDim2.new(0, 190, 0, 310), UDim2.new(0, 120, 0, 22))
-- Info
local antiafkInfo = createLabel(extraFrame, "Prevents being kicked for inactivity", UDim2.new(0, 10, 0, 345), Color3.new(0, 1, 1), 12)
antiafkInfo.Size = UDim2.new(1, -20, 0, 20)
-- ==================== УПРАВЛЕНИЕ ВКЛАДКАМИ ====================
local function selectTab(tab)
damageFrame.Visible = (tab == "damage")
farmFrame.Visible = (tab == "farm")
espFrame.Visible = (tab == "esp")
bindsFrame.Visible = (tab == "binds")
miscFrame.Visible = (tab == "misc")
extraFrame.Visible = (tab == "extra")
damageTabButton.BackgroundColor3 = Color3.new(0.2, 0.2, 0.2)
farmTabButton.BackgroundColor3 = Color3.new(0.2, 0.2, 0.2)
espTabButton.BackgroundColor3 = Color3.new(0.2, 0.2, 0.2)
bindsTabButton.BackgroundColor3 = Color3.new(0.2, 0.2, 0.2)
miscTabButton.BackgroundColor3 = Color3.new(0.2, 0.2, 0.2)
extraTabButton.BackgroundColor3 = Color3.new(0.2, 0.2, 0.2)
if tab == "damage" then
damageTabButton.BackgroundColor3 = Color3.new(0.3, 0.3, 0.3)
elseif tab == "farm" then
farmTabButton.BackgroundColor3 = Color3.new(0.3, 0.3, 0.3)
elseif tab == "esp" then
espTabButton.BackgroundColor3 = Color3.new(0.3, 0.3, 0.3)
elseif tab == "binds" then
bindsTabButton.BackgroundColor3 = Color3.new(0.3, 0.3, 0.3)
elseif tab == "misc" then
miscTabButton.BackgroundColor3 = Color3.new(0.3, 0.3, 0.3)
elseif tab == "extra" then
extraTabButton.BackgroundColor3 = Color3.new(0.3, 0.3, 0.3)
end
end
damageTabButton.MouseButton1Click:Connect(function() selectTab("damage") end)
farmTabButton.MouseButton1Click:Connect(function() selectTab("farm") end)
espTabButton.MouseButton1Click:Connect(function() selectTab("esp") end)
bindsTabButton.MouseButton1Click:Connect(function() selectTab("binds") end)
miscTabButton.MouseButton1Click:Connect(function() selectTab("misc") end)
extraTabButton.MouseButton1Click:Connect(function() selectTab("extra") end)
-- ==================== НАСТРОЙКА БИНДОВ ====================
UserInputService.InputBegan:Connect(function(input, gameProcessed)
if gameProcessed then return end
if waitingForBind and input.KeyCode ~= Enum.KeyCode.Unknown then
local key = input.KeyCode.Name
waitingForBind.button.Text = key
if waitingForBind.target == "farm" then
settings.farm.bind = key
elseif waitingForBind.target == "autoclicker" then
settings.autoclicker.bind = key
elseif waitingForBind.target == "mainGUI" then
bindSettings.mainGUI.bind = key
elseif waitingForBind.target == "timeGUI" then
bindSettings.timeGUI.bind = key
timeFrame.Title = "CURRENT TIME (Bind: " .. key .. ")"
elseif waitingForBind.target == "esp" then
bindSettings.esp.bind = key
end
waitingForBind = nil
updateBindButtons()
end
end)
-- Bind button connections
damageBindButton.MouseButton1Click:Connect(function() startBindCapture(damageBindButton, "damage") end)
damageBindButtonBinds.MouseButton1Click:Connect(function() startBindCapture(damageBindButtonBinds, "damage") end)
farmBindButton.MouseButton1Click:Connect(function() startBindCapture(farmBindButton, "farm") end)
farmBindButtonBinds.MouseButton1Click:Connect(function() startBindCapture(farmBindButtonBinds, "farm") end)
autoclickerBindButton.MouseButton1Click:Connect(function() startBindCapture(autoclickerBindButton, "autoclicker") end)
autoclickerBindButtonBinds.MouseButton1Click:Connect(function() startBindCapture(autoclickerBindButtonBinds, "autoclicker") end)
mainGUIBindButton.MouseButton1Click:Connect(function() startBindCapture(mainGUIBindButton, "mainGUI") end)
timeGUIBindButton.MouseButton1Click:Connect(function() startBindCapture(timeGUIBindButton, "timeGUI") end)
espBindButton.MouseButton1Click:Connect(function() startBindCapture(espBindButton, "esp") end)
espBindButtonBinds.MouseButton1Click:Connect(function() startBindCapture(espBindButtonBinds, "esp") end)
-- ==================== ОБРАБОТЧИК ВЫГРУЗКИ ====================
local confirmVisible = false
unloadButton.MouseButton1Click:Connect(function()
confirmVisible = not confirmVisible
confirmFrame.Visible = confirmVisible
end)
confirmYes.MouseButton1Click:Connect(function()
unloadScript()
end)
confirmNo.MouseButton1Click:Connect(function()
confirmFrame.Visible = false
confirmVisible = false
end)
-- ==================== ОБНОВЛЕНИЕ UI ====================
local function updateDamageUI()
if settings.damage.enabled then
damageStatusLabel.Text = "STATUS: ON"
damageStatusLabel.TextColor3 = Color3.new(0, 1, 0)
damageToggleButton.Text = "DISABLE"
damageToggleButton.BackgroundColor3 = Color3.new(0, 0.5, 0)
else
damageStatusLabel.Text = "STATUS: OFF"
damageStatusLabel.TextColor3 = Color3.new(1, 0, 0)
damageToggleButton.Text = "ENABLE"
damageToggleButton.BackgroundColor3 = Color3.new(0.5, 0, 0)
end
repeatValueLabel.Text = tostring(settings.damage.repeatamount)
damageBindButton.Text = settings.damage.bind
damageBindButtonBinds.Text = settings.damage.bind
end
local function updateFarmUI()
if settings.farm.enabled then
farmStatusLabel.Text = "STATUS: ON"
farmStatusLabel.TextColor3 = Color3.new(0, 1, 0)
farmToggleButton.Text = "DISABLE"
farmToggleButton.BackgroundColor3 = Color3.new(0, 0.5, 0)
else
farmStatusLabel.Text = "STATUS: OFF"
farmStatusLabel.TextColor3 = Color3.new(1, 0, 0)
farmToggleButton.Text = "ENABLE"
farmToggleButton.BackgroundColor3 = Color3.new(0.5, 0, 0)
end
farmBindButton.Text = settings.farm.bind
farmBindButtonBinds.Text = settings.farm.bind
end
local function updateAutoclickerUI()
if settings.autoclicker.enabled then
autoclickerStatusLabel.Text = "Status: ON"
autoclickerStatusLabel.TextColor3 = Color3.new(0, 1, 0)
autoclickerToggleButton.Text = "DISABLE"
autoclickerToggleButton.BackgroundColor3 = Color3.new(0, 0.5, 0)
else
autoclickerStatusLabel.Text = "Status: OFF"
autoclickerStatusLabel.TextColor3 = Color3.new(1, 0, 0)
autoclickerToggleButton.Text = "ENABLE"
autoclickerToggleButton.BackgroundColor3 = Color3.new(0.5, 0, 0)
end
autoclickerBindButton.Text = settings.autoclicker.bind
autoclickerBindButtonBinds.Text = settings.autoclicker.bind
autoclickerIntervalLabel.Text = tostring(settings.autoclicker.interval) .. "s"
end
local function updateAntiafkUI()
if settings.antiafk.enabled then
antiafkStatusLabel.Text = "Status: ON"
antiafkStatusLabel.TextColor3 = Color3.new(0, 1, 0)
antiafkToggleButton.Text = "DISABLE"
antiafkToggleButton.BackgroundColor3 = Color3.new(0, 0.5, 0)
else
antiafkStatusLabel.Text = "Status: OFF"
antiafkStatusLabel.TextColor3 = Color3.new(1, 0, 0)
antiafkToggleButton.Text = "ENABLE"
antiafkToggleButton.BackgroundColor3 = Color3.new(0.5, 0, 0)
end
antiafkIntervalLabel.Text = tostring(settings.antiafk.interval) .. "s"
end
-- Update MISC info
local function updateMiscInfo()
if not scriptLoaded then return end
local espCount = 0
for _ in pairs(espObjects) do
espCount = espCount + 1
end
espCountLabel.Text = "ESP Objects: " .. espCount
local fps = math.floor(1 / RunService.Heartbeat:Wait())
fpsLabel.Text = "FPS: " .. math.min(fps, 60)
local mem = collectgarbage("count")
memoryLabel.Text = string.format("Memory Usage: %.2f KB", mem)
end
-- ==================== ОБРАБОТЧИКИ КНОПОК ====================
damageToggleButton.MouseButton1Click:Connect(function()
settings.damage.enabled = not settings.damage.enabled
updateDamageUI()
end)
farmToggleButton.MouseButton1Click:Connect(function()
settings.farm.enabled = not settings.farm.enabled
updateFarmUI()
end)
espToggleButton.MouseButton1Click:Connect(function()
toggleESP()
end)
autoclickerToggleButton.MouseButton1Click:Connect(function()
toggleAutoclicker()
end)
antiafkToggleButton.MouseButton1Click:Connect(function()
toggleAntiAFK()
end)
entitiesToggle.MouseButton1Click:Connect(function()
espSettings.entities = not espSettings.entities
entitiesToggle.Text = "Entities: " .. (espSettings.entities and "ON" or "OFF")
entitiesToggle.BackgroundColor3 = espSettings.entities and Color3.new(0.7, 0, 0) or Color3.new(0.3, 0.3, 0.3)
updateESP()
end)
exoticToggle.MouseButton1Click:Connect(function()
espSettings.exoticGifts = not espSettings.exoticGifts
exoticToggle.Text = "Exotic Gifts: " .. (espSettings.exoticGifts and "ON" or "OFF")
exoticToggle.BackgroundColor3 = espSettings.exoticGifts and Color3.new(0.7, 0.7, 0) or Color3.new(0.3, 0.3, 0.3)
updateESP()
end)
orbsToggle.MouseButton1Click:Connect(function()
espSettings.orbs = not espSettings.orbs
orbsToggle.Text = "Orbs: " .. (espSettings.orbs and "ON" or "OFF")
orbsToggle.BackgroundColor3 = espSettings.orbs and Color3.new(0, 0.7, 0.7) or Color3.new(0.3, 0.3, 0.3)
updateESP()
end)
playersToggle.MouseButton1Click:Connect(function()
espSettings.players = not espSettings.players
playersToggle.Text = "Players: " .. (espSettings.players and "ON" or "OFF")
playersToggle.BackgroundColor3 = espSettings.players and Color3.new(0, 0.7, 0) or Color3.new(0.3, 0.3, 0.3)
updateESP()
end)
-- Settings Handlers
saveSettingsButton.MouseButton1Click:Connect(function()
SettingsManager:save()
end)
loadSettingsButton.MouseButton1Click:Connect(function()
if SettingsManager:load() then
updateDamageUI()
updateFarmUI()
updateAutoclickerUI()
updateAntiafkUI()
updateBindButtons()
updateESP()
if settings.autoclicker.enabled then
startAutoclicker()
else
stopAutoclicker()
end
if settings.antiafk.enabled then
startAntiAFK()
else
stopAntiAFK()
end
end
end)
-- ==================== ДИАЛОГИ ИЗМЕНЕНИЯ ИНТЕРВАЛОВ ====================
-- Change repeat amount dialog
changeRepeatButton.MouseButton1Click:Connect(function()
for _, v in pairs(screenGui:GetChildren()) do
if v.Name == "RepeatDialog" then
v:Destroy()
end
end
local dialogFrame = Instance.new("Frame")
dialogFrame.Name = "RepeatDialog"
dialogFrame.Parent = screenGui
dialogFrame.Size = UDim2.new(0, 220, 0, 130)
dialogFrame.Position = UDim2.new(0.5, -110, 0.5, -65)
dialogFrame.BackgroundColor3 = Color3.new(0.2, 0.2, 0.2)
dialogFrame.BorderSizePixel = 0
dialogFrame.ZIndex = 10
dialogFrame.Active = true
dialogFrame.Draggable = true
local backgroundBlur = Instance.new("Frame")
backgroundBlur.Parent = screenGui
backgroundBlur.Name = "DialogBackground"
backgroundBlur.Size = UDim2.new(1, 0, 1, 0)
backgroundBlur.BackgroundColor3 = Color3.new(0, 0, 0)
backgroundBlur.BackgroundTransparency = 0.5
backgroundBlur.BorderSizePixel = 0
backgroundBlur.ZIndex = 9
backgroundBlur.Active = true
local dialogTitle = Instance.new("TextLabel")
dialogTitle.Parent = dialogFrame
dialogTitle.Size = UDim2.new(1, 0, 0, 30)
dialogTitle.Position = UDim2.new(0, 0, 0, 0)
dialogTitle.BackgroundColor3 = Color3.new(0.3, 0.3, 0.3)
dialogTitle.Text = "Change repeat amount"
dialogTitle.TextColor3 = Color3.new(1, 1, 1)
dialogTitle.TextSize = 13
dialogTitle.Font = Enum.Font.SourceSans
dialogTitle.ZIndex = 10
local instructionLabel = Instance.new("TextLabel")
instructionLabel.Parent = dialogFrame
instructionLabel.Size = UDim2.new(1, -20, 0, 20)
instructionLabel.Position = UDim2.new(0, 10, 0, 35)
instructionLabel.BackgroundTransparency = 1
instructionLabel.Text = "Enter number from 10 to 500:"
instructionLabel.TextColor3 = Color3.new(1, 1, 1)
instructionLabel.TextSize = 12
instructionLabel.Font = Enum.Font.SourceSans
instructionLabel.TextXAlignment = Enum.TextXAlignment.Left
instructionLabel.ZIndex = 10
local textBox = Instance.new("TextBox")
textBox.Parent = dialogFrame
textBox.Size = UDim2.new(1, -20, 0, 25)
textBox.Position = UDim2.new(0, 10, 0, 60)
textBox.BackgroundColor3 = Color3.new(0.15, 0.15, 0.15)
textBox.Text = tostring(settings.damage.repeatamount)
textBox.TextColor3 = Color3.new(1, 1, 1)
textBox.TextSize = 14
textBox.Font = Enum.Font.SourceSans
textBox.ClearTextOnFocus = true
textBox.ZIndex = 10
local confirmButton = Instance.new("TextButton")
confirmButton.Parent = dialogFrame
confirmButton.Size = UDim2.new(0, 80, 0, 25)
confirmButton.Position = UDim2.new(0.5, -85, 0, 95)
confirmButton.BackgroundColor3 = Color3.new(0, 0.5, 0)
confirmButton.Text = "OK"
confirmButton.TextColor3 = Color3.new(1, 1, 1)
confirmButton.TextSize = 13
confirmButton.Font = Enum.Font.SourceSans
confirmButton.BorderSizePixel = 0
confirmButton.ZIndex = 10
local cancelButton = Instance.new("TextButton")
cancelButton.Parent = dialogFrame
cancelButton.Size = UDim2.new(0, 80, 0, 25)
cancelButton.Position = UDim2.new(0.5, 5, 0, 95)
cancelButton.BackgroundColor3 = Color3.new(0.5, 0, 0)
cancelButton.Text = "Cancel"
cancelButton.TextColor3 = Color3.new(1, 1, 1)
cancelButton.TextSize = 13
cancelButton.Font = Enum.Font.SourceSans
cancelButton.BorderSizePixel = 0
cancelButton.ZIndex = 10
local function closeDialog()
dialogFrame:Destroy()
backgroundBlur:Destroy()
end
confirmButton.MouseButton1Click:Connect(function()
local input = tonumber(textBox.Text)
if input and input >= 10 and input <= 500 then
settings.damage.repeatamount = math.floor(input)
updateDamageUI()
closeDialog()
else
textBox.Text = "Error! 10-500"
textBox.BackgroundColor3 = Color3.new(0.5, 0, 0)
task.wait(1)
textBox.BackgroundColor3 = Color3.new(0.15, 0.15, 0.15)
textBox.Text = tostring(settings.damage.repeatamount)
end
end)
cancelButton.MouseButton1Click:Connect(closeDialog)
local connection
connection = UserInputService.InputBegan:Connect(function(input)
if input.KeyCode == Enum.KeyCode.Escape then
closeDialog()
connection:Disconnect()
end
end)
backgroundBlur.MouseButton1Click:Connect(closeDialog)
textBox:CaptureFocus()
end)
-- Change autoclicker interval dialog
changeAutoclickerIntervalButton.MouseButton1Click:Connect(function()
for _, v in pairs(screenGui:GetChildren()) do
if v.Name == "IntervalDialog" then
v:Destroy()
end
end
local dialogFrame = Instance.new("Frame")
dialogFrame.Name = "IntervalDialog"
dialogFrame.Parent = screenGui
dialogFrame.Size = UDim2.new(0, 220, 0, 150)
dialogFrame.Position = UDim2.new(0.5, -110, 0.5, -75)
dialogFrame.BackgroundColor3 = Color3.new(0.2, 0.2, 0.2)
dialogFrame.BorderSizePixel = 0
dialogFrame.ZIndex = 10
dialogFrame.Active = true
dialogFrame.Draggable = true
local backgroundBlur = Instance.new("Frame")
backgroundBlur.Parent = screenGui
backgroundBlur.Name = "DialogBackground"
backgroundBlur.Size = UDim2.new(1, 0, 1, 0)
backgroundBlur.BackgroundColor3 = Color3.new(0, 0, 0)
backgroundBlur.BackgroundTransparency = 0.5
backgroundBlur.BorderSizePixel = 0
backgroundBlur.ZIndex = 9
backgroundBlur.Active = true
local dialogTitle = Instance.new("TextLabel")
dialogTitle.Parent = dialogFrame
dialogTitle.Size = UDim2.new(1, 0, 0, 30)
dialogTitle.Position = UDim2.new(0, 0, 0, 0)
dialogTitle.BackgroundColor3 = Color3.new(0.3, 0.3, 0.3)
dialogTitle.Text = "Change auto-clicker interval"
dialogTitle.TextColor3 = Color3.new(1, 1, 1)
dialogTitle.TextSize = 13
dialogTitle.Font = Enum.Font.SourceSans
dialogTitle.ZIndex = 10
local instructionLabel = Instance.new("TextLabel")
instructionLabel.Parent = dialogFrame
instructionLabel.Size = UDim2.new(1, -20, 0, 40)
instructionLabel.Position = UDim2.new(0, 10, 0, 35)
instructionLabel.BackgroundTransparency = 1
instructionLabel.Text = "Enter interval in seconds (0.01 to 1.0):"
instructionLabel.TextColor3 = Color3.new(1, 1, 1)
instructionLabel.TextSize = 12
instructionLabel.Font = Enum.Font.SourceSans
instructionLabel.TextXAlignment = Enum.TextXAlignment.Left
instructionLabel.TextWrapped = true
instructionLabel.ZIndex = 10
local textBox = Instance.new("TextBox")
textBox.Parent = dialogFrame
textBox.Size = UDim2.new(1, -20, 0, 25)
textBox.Position = UDim2.new(0, 10, 0, 75)
textBox.BackgroundColor3 = Color3.new(0.15, 0.15, 0.15)
textBox.Text = tostring(settings.autoclicker.interval)
textBox.TextColor3 = Color3.new(1, 1, 1)
textBox.TextSize = 14
textBox.Font = Enum.Font.SourceSans
textBox.ClearTextOnFocus = true
textBox.ZIndex = 10
local confirmButton = Instance.new("TextButton")
confirmButton.Parent = dialogFrame
confirmButton.Size = UDim2.new(0, 80, 0, 25)
confirmButton.Position = UDim2.new(0.5, -85, 0, 110)
confirmButton.BackgroundColor3 = Color3.new(0, 0.5, 0)
confirmButton.Text = "OK"
confirmButton.TextColor3 = Color3.new(1, 1, 1)
confirmButton.TextSize = 13
confirmButton.Font = Enum.Font.SourceSans
confirmButton.BorderSizePixel = 0
confirmButton.ZIndex = 10
local cancelButton = Instance.new("TextButton")
cancelButton.Parent = dialogFrame
cancelButton.Size = UDim2.new(0, 80, 0, 25)
cancelButton.Position = UDim2.new(0.5, 5, 0, 110)
cancelButton.BackgroundColor3 = Color3.new(0.5, 0, 0)
cancelButton.Text = "Cancel"
cancelButton.TextColor3 = Color3.new(1, 1, 1)
cancelButton.TextSize = 13
cancelButton.Font = Enum.Font.SourceSans
cancelButton.BorderSizePixel = 0
cancelButton.ZIndex = 10
local function closeDialog()
dialogFrame:Destroy()
backgroundBlur:Destroy()
end
confirmButton.MouseButton1Click:Connect(function()
local input = tonumber(textBox.Text)
if input and input >= 0.01 and input <= 1.0 then
settings.autoclicker.interval = input
updateAutoclickerUI()
if settings.autoclicker.enabled then
stopAutoclicker()
startAutoclicker()
end
closeDialog()
else
textBox.Text = "Error! 0.01-1.0"
textBox.BackgroundColor3 = Color3.new(0.5, 0, 0)
task.wait(1)
textBox.BackgroundColor3 = Color3.new(0.15, 0.15, 0.15)
textBox.Text = tostring(settings.autoclicker.interval)
end
end)
cancelButton.MouseButton1Click:Connect(closeDialog)
local connection
connection = UserInputService.InputBegan:Connect(function(input)
if input.KeyCode == Enum.KeyCode.Escape then
closeDialog()
connection:Disconnect()
end
end)
backgroundBlur.MouseButton1Click:Connect(closeDialog)
textBox:CaptureFocus()
end)
-- Change anti-afk interval dialog
changeAntiafkIntervalButton.MouseButton1Click:Connect(function()
for _, v in pairs(screenGui:GetChildren()) do
if v.Name == "AntiAfkIntervalDialog" then
v:Destroy()
end
end
local dialogFrame = Instance.new("Frame")
dialogFrame.Name = "AntiAfkIntervalDialog"
dialogFrame.Parent = screenGui
dialogFrame.Size = UDim2.new(0, 220, 0, 150)
dialogFrame.Position = UDim2.new(0.5, -110, 0.5, -75)
dialogFrame.BackgroundColor3 = Color3.new(0.2, 0.2, 0.2)
dialogFrame.BorderSizePixel = 0
dialogFrame.ZIndex = 10
dialogFrame.Active = true
dialogFrame.Draggable = true
local backgroundBlur = Instance.new("Frame")
backgroundBlur.Parent = screenGui
backgroundBlur.Name = "DialogBackground"
backgroundBlur.Size = UDim2.new(1, 0, 1, 0)
backgroundBlur.BackgroundColor3 = Color3.new(0, 0, 0)
backgroundBlur.BackgroundTransparency = 0.5
backgroundBlur.BorderSizePixel = 0
backgroundBlur.ZIndex = 9
backgroundBlur.Active = true
local dialogTitle = Instance.new("TextLabel")
dialogTitle.Parent = dialogFrame
dialogTitle.Size = UDim2.new(1, 0, 0, 30)
dialogTitle.Position = UDim2.new(0, 0, 0, 0)
dialogTitle.BackgroundColor3 = Color3.new(0.3, 0.3, 0.3)
dialogTitle.Text = "Change anti-AFK interval"
dialogTitle.TextColor3 = Color3.new(1, 1, 1)
dialogTitle.TextSize = 13
dialogTitle.Font = Enum.Font.SourceSans
dialogTitle.ZIndex = 10
local instructionLabel = Instance.new("TextLabel")
instructionLabel.Parent = dialogFrame
instructionLabel.Size = UDim2.new(1, -20, 0, 40)
instructionLabel.Position = UDim2.new(0, 10, 0, 35)
instructionLabel.BackgroundTransparency = 1
instructionLabel.Text = "Enter interval in seconds (10 to 300):"
instructionLabel.TextColor3 = Color3.new(1, 1, 1)
instructionLabel.TextSize = 12
instructionLabel.Font = Enum.Font.SourceSans
instructionLabel.TextXAlignment = Enum.TextXAlignment.Left
instructionLabel.TextWrapped = true
instructionLabel.ZIndex = 10
local textBox = Instance.new("TextBox")
textBox.Parent = dialogFrame
textBox.Size = UDim2.new(1, -20, 0, 25)
textBox.Position = UDim2.new(0, 10, 0, 75)
textBox.BackgroundColor3 = Color3.new(0.15, 0.15, 0.15)
textBox.Text = tostring(settings.antiafk.interval)
textBox.TextColor3 = Color3.new(1, 1, 1)
textBox.TextSize = 14
textBox.Font = Enum.Font.SourceSans
textBox.ClearTextOnFocus = true
textBox.ZIndex = 10
local confirmButton = Instance.new("TextButton")
confirmButton.Parent = dialogFrame
confirmButton.Size = UDim2.new(0, 80, 0, 25)
confirmButton.Position = UDim2.new(0.5, -85, 0, 110)
confirmButton.BackgroundColor3 = Color3.new(0, 0.5, 0)
confirmButton.Text = "OK"
confirmButton.TextColor3 = Color3.new(1, 1, 1)
confirmButton.TextSize = 13
confirmButton.Font = Enum.Font.SourceSans
confirmButton.BorderSizePixel = 0
confirmButton.ZIndex = 10
local cancelButton = Instance.new("TextButton")
cancelButton.Parent = dialogFrame
cancelButton.Size = UDim2.new(0, 80, 0, 25)
cancelButton.Position = UDim2.new(0.5, 5, 0, 110)
cancelButton.BackgroundColor3 = Color3.new(0.5, 0, 0)
cancelButton.Text = "Cancel"
cancelButton.TextColor3 = Color3.new(1, 1, 1)
cancelButton.TextSize = 13
cancelButton.Font = Enum.Font.SourceSans
cancelButton.BorderSizePixel = 0
cancelButton.ZIndex = 10
local function closeDialog()
dialogFrame:Destroy()
backgroundBlur:Destroy()
end
confirmButton.MouseButton1Click:Connect(function()
local input = tonumber(textBox.Text)
if input and input >= 10 and input <= 300 then
settings.antiafk.interval = math.floor(input)
updateAntiafkUI()
if settings.antiafk.enabled then
stopAntiAFK()
startAntiAFK()
end
closeDialog()
else
textBox.Text = "Error! 10-300"
textBox.BackgroundColor3 = Color3.new(0.5, 0, 0)
task.wait(1)
textBox.BackgroundColor3 = Color3.new(0.15, 0.15, 0.15)
textBox.Text = tostring(settings.antiafk.interval)
end
end)
cancelButton.MouseButton1Click:Connect(closeDialog)
local connection
connection = UserInputService.InputBegan:Connect(function(input)
if input.KeyCode == Enum.KeyCode.Escape then
closeDialog()
connection:Disconnect()
end
end)
backgroundBlur.MouseButton1Click:Connect(closeDialog)
textBox:CaptureFocus()
end)
-- ==================== ОПТИМИЗИРОВАННЫЙ ДАМАГ ====================
repeat task.wait() until game:IsLoaded()
local success, mtTable = pcall(getrawmetatable, game)
if success and mtTable then
mt = mtTable
oldNamecall = mt.__namecall
setreadonly(mt, false)
mt.__namecall = function(self, ...)
if not scriptLoaded or not settings.damage.enabled then
return oldNamecall(self, ...)
end
local method = getnamecallmethod()
if self and self.Name then
for i = 1, #settings.damage.exceptions do
if self.Name == settings.damage.exceptions[i] then
return oldNamecall(self, ...)
end
end
end
if method == "FireServer" or method == "InvokeServer" then
local repeatCount = settings.damage.repeatamount
if repeatCount > 50 then
local batchSize = 25
for i = 1, repeatCount, batchSize do
for j = 1, math.min(batchSize, repeatCount - i + 1) do
oldNamecall(self, ...)
end
if settings.damage.enabled and scriptLoaded then
task.wait()
else
break
end
end
else
for i = 1, repeatCount do
oldNamecall(self, ...)
end
end
return
end
return oldNamecall(self, ...)
end
setreadonly(mt, true)
end
-- ==================== ТЕКУЩЕЕ ВРЕМЯ ====================
local function updateCurrentTime()
if not scriptLoaded then return end
local valuesFolder = ReplicatedStorage:FindFirstChild("Values")
if valuesFolder then
local currentTimeValue = valuesFolder:FindFirstChild("currentTime")
if currentTimeValue then
local timeValue = currentTimeValue.Value
if type(timeValue) == "number" then
timeValueLabel.Text = string.format("%.2f", timeValue)
if timeValue < 0 then
timeValueLabel.TextColor3 = Color3.new(1, 0, 0)
elseif timeValue < 60 then
timeValueLabel.TextColor3 = Color3.new(1, 1, 0)
else
timeValueLabel.TextColor3 = Color3.new(0, 1, 0)
end
else
timeValueLabel.Text = tostring(timeValue)
timeValueLabel.TextColor3 = Color3.new(1, 1, 1)
end
return
end
end
timeValueLabel.Text = "N/A"
timeValueLabel.TextColor3 = Color3.new(1, 0, 0)
end
updateCurrentTime()
RunService.RenderStepped:Connect(function()
if scriptLoaded then
updateCurrentTime()
updateMiscInfo()
end
end)
local function setupValueListener()
local valuesFolder = ReplicatedStorage:FindFirstChild("Values")
if valuesFolder then
local currentTimeValue = valuesFolder:FindFirstChild("currentTime")
if currentTimeValue and currentTimeValue:IsA("NumberValue") then
currentTimeValue.Changed:Connect(function()
updateCurrentTime()
end)
end
end
end
setupValueListener()
task.spawn(function()
while scriptLoaded do
task.wait(5)
setupValueListener()
end
end)
-- ==================== ФУНКЦИЯ ФАРМА ====================
local function runFarmScript()
if not settings.farm.enabled or farmRunning or not scriptLoaded then return end
local currentTime = os.clock()
if currentTime - lastFarmTime < FARM_COOLDOWN then return end
farmRunning = true
lastFarmTime = currentTime
task.spawn(function()
local success = pcall(function()
local character = player.Character
if not character then return end
local humanoidRootPart = character:FindFirstChild("HumanoidRootPart")
if not humanoidRootPart then return end
local characterPos = humanoidRootPart.Position
local clickDetectors = {}
local touchParts = {}
local count = 0
for _, v in ipairs(workspace:GetDescendants()) do
if not settings.farm.enabled or not scriptLoaded then break end
if count > MAX_OBJECTS_PER_CYCLE then break end
if v:IsA("BasePart") and v.Position then
local dist = (v.Position - characterPos).Magnitude
if dist > SEARCH_RADIUS then
continue
end
end
if v:IsA("ClickDetector") and v.Parent then
table.insert(clickDetectors, v)
count = count + 1
end
if v:IsA("BasePart") and v:FindFirstChildOfClass("TouchTransmitter") and v.Parent then
if v.CanTouch then
table.insert(touchParts, v)
count = count + 1
end
end
end
for _, detector in ipairs(clickDetectors) do
if not settings.farm.enabled or not scriptLoaded then break end
pcall(function()
detector:FireServer()
end)
task.wait(0.01)
end
for _, part in ipairs(touchParts) do
if not settings.farm.enabled or not scriptLoaded then break end
pcall(function()
if part and part.Parent then
firetouchinterest(humanoidRootPart, part, 0)
task.wait(0.01)
firetouchinterest(humanoidRootPart, part, 1)
end
end)
task.wait(0.01)
end
end)
if success then
farmCount = farmCount + 1
countLabel.Text = "Runs: " .. farmCount
end
farmRunning = false
end)
end
-- Farm cycle
RunService.Heartbeat:Connect(function()
if settings.farm.enabled and not farmRunning and scriptLoaded then
runFarmScript()
end
end)
-- ==================== ЦИКЛ ОБНАРУЖЕНИЯ ОБЪЕКТОВ ====================
task.spawn(function()
while scriptLoaded do
local success, err = pcall(function()
detectObjects()
end)
if not success then
oldPrint("Error in detectObjects: " .. tostring(err))
end
task.wait(1)
end
end)
-- ==================== ОБРАБОТЧИКИ ДОБАВЛЕНИЯ/УДАЛЕНИЯ ОБЪЕКТОВ ====================
task.spawn(function()
while scriptLoaded do
local entitiesFolder = workspace:FindFirstChild("Entities")
if entitiesFolder then
entitiesFolder.ChildAdded:Connect(function(child)
task.wait(0.1)
local success, err = pcall(function()
if child and child.Parent and scriptLoaded then
detectObjects()
end
end)
if not success then
oldPrint("Error in ChildAdded: " .. tostring(err))
end
end)
entitiesFolder.ChildRemoved:Connect(function(child)
task.wait(0.1)
local success, err = pcall(function()
if scriptLoaded then
detectObjects()
end
end)
if not success then
oldPrint("Error in ChildRemoved: " .. tostring(err))
end
end)
break
end
task.wait(2)
end
end)
task.spawn(function()
while scriptLoaded do
local items = getItemsFolder()
if items then
items.ChildAdded:Connect(function(child)
task.wait(0.1)
local success, err = pcall(function()
if child and child.Parent and scriptLoaded then
detectObjects()
end
end)
if not success then
oldPrint("Error in ChildAdded: " .. tostring(err))
end
end)
items.ChildRemoved:Connect(function(child)
task.wait(0.1)
local success, err = pcall(function()
if scriptLoaded then
detectObjects()
end
end)
if not success then
oldPrint("Error in ChildRemoved: " .. tostring(err))
end
end)
break
end
task.wait(2)
end
end)
-- ==================== ОБРАБОТЧИКИ ДОБАВЛЕНИЯ/УДАЛЕНИЯ ИГРОКОВ ====================
Players.PlayerAdded:Connect(function(plr)
if espSettings.players and scriptLoaded then
task.wait(1)
updateESP()
end
end)
Players.PlayerRemoving:Connect(function(plr)
if espSettings.players and scriptLoaded then
updateESP()
end
end)
-- ==================== ОЧИСТКА УВЕДОМЛЕНИЙ ====================
task.spawn(function()
while scriptLoaded do
task.wait(60)
notifiedGifts = {}
notifiedOrbs = {}
end
end)
-- ==================== ГОРЯЧИЕ КЛАВИШИ ====================
UserInputService.InputBegan:Connect(function(input, gameProcessed)
if gameProcessed or not scriptLoaded then return end
local key = input.KeyCode.Name
-- Damage toggle
if key == settings.damage.bind then
settings.damage.enabled = not settings.damage.enabled
updateDamageUI()
end
-- Farm toggle
if key == settings.farm.bind then
settings.farm.enabled = not settings.farm.enabled
updateFarmUI()
end
-- Auto-clicker toggle
if key == settings.autoclicker.bind then
toggleAutoclicker()
end
-- Main GUI toggle
if key == bindSettings.mainGUI.bind then
mainFrame.Visible = not mainFrame.Visible
end
-- Time GUI toggle
if key == bindSettings.timeGUI.bind then
timeFrame.Visible = not timeFrame.Visible
end
-- ESP toggle
if key == bindSettings.esp.bind then
toggleESP()
end
end)
-- ==================== ЗАГРУЗКА СОХРАНЁННЫХ НАСТРОЕК ====================
task.spawn(function()
task.wait(1)
SettingsManager:load()
updateDamageUI()
updateFarmUI()
updateAutoclickerUI()
updateAntiafkUI()
updateBindButtons()
updateESP()
if settings.autoclicker.enabled then
startAutoclicker()
end
if settings.antiafk.enabled then
startAntiAFK()
end
end)
-- ==================== ИНИЦИАЛИЗАЦИЯ ====================
updateDamageUI()
updateFarmUI()
updateAutoclickerUI()
updateAntiafkUI()
updateItemsCounts()
updateEntitiesList()
updateBindButtons()
oldPrint("✓ Optimized script v2.2 loaded!")
oldPrint("✓ Added: Auto-Clicker (no mouse movement)")
oldPrint("✓ Added: Anti-AFK system")
oldPrint("✓ Fixed: Unload function now completely removes the script")
oldPrint("✓ Added: Settings Save/Load system")
oldPrint("✓ ESP is now working with Highlight and BillboardGui")
oldPrint("✓ All binds can be changed in the BINDS tab")
oldPrint("✓ Default binds: L - Main GUI, K - Time GUI, J - ESP, U - Auto-Clicker")


i am add notification
hi i am add damage up, (damage up bugged tip always disable when buying in the store) only work ranged (mb soon add melee)
I would have done more than 500x, but it's already kicking in
lol noob ezzzz
write what you would like
Not working bro
if you use Xeno, don't use Xeno *
don't use Solara
а там телепортируется к wraith когда фарм? или он просто атакует его?
А можно подробнее