local Players = game:GetService("Players") local workspace = game:GetService("Workspace") local RunService = game:GetService("RunService") local VirtualUser = game:GetService("VirtualUser") local HttpService = game:GetService("HttpService") local UserInputService = game:GetService("UserInputService") local player = Players.LocalPlayer ------------------------------------------ -- 1. СИСТЕМА СОХРАНЕНИЯ КОНФИГА И ЯЗЫКОВ ------------------------------------------ local cfgName = "AutoDump_ConfigV3.json" local cfg = { AutoTP = false, Return = true, AnchorReturn = true, LockPos = true, FilterNum = true, CustomWait = 0.5, WaitGone = false, AntiAFK = true, Lang = "RU", BlockedNames = { ["Meshes/Pizza"] = true, ["Bloxy Cola HD"] = true } } local write = writefile or function() end local read = readfile or function() return "{}" end local isf = isfile or function() return false end local function saveConfig() pcall(function() local data = HttpService:JSONEncode(cfg) write(cfgName, data) end) end pcall(function() if isf(cfgName) then local data = HttpService:JSONDecode(read(cfgName)) for k, v in pairs(data) do if k == "BlockedNames" then for bName, bVal in pairs(v) do cfg.BlockedNames[bName] = bVal end else cfg[k] = v end end end end) local dict = { RU = { Farm = "Фарм", Blocks = "Блоки", Set = "Настройки", Search = "Поиск папки...", Tracking = "Отслеживание: ", HideNum = "Скрывать мусор (цифры)", AutoTP = "Включить Авто-ТП", Ret = "Возврат на базу", Anchor = "Фриз при возврате (0.5с)", Lock = "Жёсткий закреп позиции", WaitMode = "Время на объекте (сек):", WaitGone = "Ждать исчезновения предмета", AntiAFK = "Анти-АФК система", Unblock = "Разблок", Block = "Блок", TP = "ТП", Clear = "Очистить блок-лист", Save = "Сохранить конфиг вручную", SectTP = "— НАСТРОЙКИ АВТО-ТП —", SectRet = "— НАСТРОЙКИ ВОЗВРАТА —", SectSys = "— СИСТЕМНЫЕ НАСТРОЙКИ —" }, EN = { Farm = "Farm", Blocks = "Blocklist", Set = "Settings", Search = "Searching folder...", Tracking = "Tracking: ", HideNum = "Hide numbers (Trash)", AutoTP = "Enable Auto-TP", Ret = "Return to base", Anchor = "Freeze on return (0.5s)", Lock = "Hard position lock", WaitMode = "Time on object (sec):", WaitGone = "Wait until item disappears", AntiAFK = "Anti-AFK System", Unblock = "Unblock", Block = "Block", TP = "TP", Clear = "Clear Blocklist", Save = "Save config manually", SectTP = "— AUTO-TP SETTINGS —", SectRet = "— RETURN SETTINGS —", SectSys = "— SYSTEM SETTINGS —" }, ES = { Farm = "Granja", Blocks = "Bloqueados", Set = "Ajustes", Search = "Buscando carpeta...", Tracking = "Rastreo: ", HideNum = "Ocultar números (Basura)", AutoTP = "Habilitar Auto-TP", Ret = "Volver a la base", Anchor = "Congelar al volver (0.5s)", Lock = "Bloqueo de posición duro", WaitMode = "Tiempo en objeto (seg):", WaitGone = "Esperar a que desaparezca", AntiAFK = "Sistema Anti-AFK", Unblock = "Desbloq", Block = "Bloq", TP = "TP", Clear = "Limpiar Bloqueados", Save = "Guardar config manual", SectTP = "— AJUSTES DE AUTO-TP —", SectRet = "— AJUSTES DE RETORNO —", SectSys = "— AJUSTES DEL SISTEMA —" } } local function L(key) return dict[cfg.Lang][key] or key end ------------------------------------------ -- 2. ОЧИСТКА ПРЕДЫДУЩИХ ЗАПУСКОВ ------------------------------------------ _G.AutoDumpConnections = _G.AutoDumpConnections or {} local function CleanupAll() for _, conn in pairs(_G.AutoDumpConnections) do if conn then conn:Disconnect() end end _G.AutoDumpConnections = {} local old = player.PlayerGui:FindFirstChild("AutoDumpV3") if old then old:Destroy() end end CleanupAll() local function addConn(c) table.insert(_G.AutoDumpConnections, c) end ------------------------------------------ -- 3. АБСОЛЮТНЫЙ ANTI-AFK ------------------------------------------ addConn(player.Idled:Connect(function() if cfg.AntiAFK then VirtualUser:CaptureController() VirtualUser:ClickButton2(Vector2.new()) end end)) ------------------------------------------ -- 4. ИНТЕРФЕЙС (GUI) ------------------------------------------ local sg = Instance.new("ScreenGui") sg.Name = "AutoDumpV3" sg.ResetOnSpawn = false sg.Parent = player:WaitForChild("PlayerGui") local main = Instance.new("Frame") main.Size = UDim2.new(0, 360, 0, 480) main.Position = UDim2.new(0.5, -180, 0.5, -240) main.BackgroundColor3 = Color3.fromRGB(25, 25, 30) main.BorderSizePixel = 0 main.Active = true main.Parent = sg -- Плавное перетаскивание local dragging, dragInput, dragStart, startPos addConn(main.InputBegan:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then dragging = true dragStart = input.Position startPos = main.Position end end)) addConn(UserInputService.InputChanged:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseMovement or input.UserInputType == Enum.UserInputType.Touch then dragInput = input end end)) addConn(UserInputService.InputChanged:Connect(function(input) if input == dragInput and dragging then local delta = input.Position - dragStart main.Position = UDim2.new(startPos.X.Scale, startPos.X.Offset + delta.X, startPos.Y.Scale, startPos.Y.Offset + delta.Y) end end)) addConn(UserInputService.InputEnded:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then dragging = false end end)) -- ВЕРХНЯЯ ПАНЕЛЬ local topBar = Instance.new("Frame", main) topBar.Size = UDim2.new(1, 0, 0, 30) topBar.BackgroundColor3 = Color3.fromRGB(40, 40, 48) topBar.BorderSizePixel = 0 -- Кнопка языка (Слева сверху) local btnLang = Instance.new("TextButton", topBar) btnLang.Size = UDim2.new(0, 40, 0, 30) btnLang.Position = UDim2.new(0, 0, 0, 0) btnLang.BackgroundTransparency = 1 btnLang.Text = "[" .. cfg.Lang .. "]" btnLang.TextColor3 = Color3.fromRGB(200, 200, 255) btnLang.Font = Enum.Font.GothamBold btnLang.TextSize = 12 local title = Instance.new("TextLabel", topBar) title.Size = UDim2.new(0.5, 0, 1, 0) title.Position = UDim2.new(0, 45, 0, 0) title.BackgroundTransparency = 1 title.Text = "AutoDump V3" title.TextColor3 = Color3.fromRGB(150, 255, 150) title.Font = Enum.Font.GothamBold title.TextSize = 13 title.TextXAlignment = Enum.TextXAlignment.Left local btnMin = Instance.new("TextButton", topBar) btnMin.Size = UDim2.new(0, 30, 0, 30) btnMin.Position = UDim2.new(1, -60, 0, 0) btnMin.BackgroundTransparency = 1 btnMin.Text = "-" btnMin.TextColor3 = Color3.fromRGB(255, 255, 255) btnMin.Font = Enum.Font.GothamBold; btnMin.TextSize = 18 local minimized = false addConn(btnMin.MouseButton1Click:Connect(function() minimized = not minimized for _, v in pairs(main:GetChildren()) do if v ~= topBar then v.Visible = not minimized end end main.Size = minimized and UDim2.new(0, 360, 0, 30) or UDim2.new(0, 360, 0, 480) end)) local btnClose = Instance.new("TextButton", topBar) btnClose.Size = UDim2.new(0, 30, 0, 30) btnClose.Position = UDim2.new(1, -30, 0, 0) btnClose.BackgroundTransparency = 1 btnClose.Text = "X" btnClose.TextColor3 = Color3.fromRGB(255, 100, 100) btnClose.Font = Enum.Font.GothamBold; btnClose.TextSize = 16 addConn(btnClose.MouseButton1Click:Connect(CleanupAll)) -- ВКЛАДКИ local tabContainer = Instance.new("Frame", main) tabContainer.Size = UDim2.new(1, 0, 0, 30) tabContainer.Position = UDim2.new(0, 0, 0, 30) tabContainer.BackgroundColor3 = Color3.fromRGB(35, 35, 40) tabContainer.BorderSizePixel = 0 local contentContainer = Instance.new("Frame", main) contentContainer.Size = UDim2.new(1, 0, 1, -60) contentContainer.Position = UDim2.new(0, 0, 0, 60) contentContainer.BackgroundTransparency = 1 local tabs = {} local uiElementsToTranslate = {} -- Массив для обновления текстов при смене языка local function createTab(nameKey, xPos) local btn = Instance.new("TextButton", tabContainer) btn.Size = UDim2.new(0.33, 0, 1, 0) btn.Position = UDim2.new(xPos, 0, 0, 0) btn.BackgroundColor3 = Color3.fromRGB(35, 35, 40) btn.BorderSizePixel = 0 btn.Text = L(nameKey) btn.TextColor3 = Color3.fromRGB(200, 200, 200) btn.Font = Enum.Font.GothamBold; btn.TextSize = 12 table.insert(uiElementsToTranslate, {obj = btn, key = nameKey}) local page = Instance.new("ScrollingFrame", contentContainer) page.Size = UDim2.new(1, -20, 1, -10) page.Position = UDim2.new(0, 10, 0, 5) page.BackgroundTransparency = 1 page.ScrollBarThickness = 4 page.Visible = false local layout = Instance.new("UIListLayout", page) layout.Padding = UDim.new(0, 5) addConn(layout:GetPropertyChangedSignal("AbsoluteContentSize"):Connect(function() page.CanvasSize = UDim2.new(0, 0, 0, layout.AbsoluteContentSize.Y) end)) tabs[nameKey] = {Btn = btn, Page = page} return page end local pageFarm = createTab("Farm", 0) local pageBlocks = createTab("Blocks", 0.33) local pageSet = createTab("Set", 0.66) local function switchTab(name) for k, v in pairs(tabs) do v.Btn.TextColor3 = (k == name) and Color3.fromRGB(255, 255, 255) or Color3.fromRGB(150, 150, 150) v.Btn.BackgroundColor3 = (k == name) and Color3.fromRGB(50, 50, 60) or Color3.fromRGB(35, 35, 40) v.Page.Visible = (k == name) end end addConn(tabs["Farm"].Btn.MouseButton1Click:Connect(function() switchTab("Farm") end)) addConn(tabs["Blocks"].Btn.MouseButton1Click:Connect(function() switchTab("Blocks") end)) addConn(tabs["Set"].Btn.MouseButton1Click:Connect(function() switchTab("Set") end)) switchTab("Farm") ------------------------------------------ -- 5. ФИЗИКА ТЕЛЕПОРТОВ И ЖЕСТКИЙ ЗАКРЕП ------------------------------------------ local activeUIItems = {} local isAutoWorking = false local baseCFrame = nil local isTeleportingNow = false local function getTargetCFrame(obj) if not obj then return nil end if obj:IsA("Model") then return obj:GetPivot() end if obj:IsA("BasePart") then return obj.CFrame end local first = obj:FindFirstChildWhichIsA("BasePart", true) if first then return first.CFrame end return nil end -- Жесткий закреп (Анти-сдвиг) addConn(RunService.Heartbeat:Connect(function() if cfg.LockPos and baseCFrame and not isTeleportingNow then local char = player.Character if char and char:FindFirstChild("HumanoidRootPart") then local root = char.HumanoidRootPart -- Если сдвинуло больше чем на 1 стад - принудительно возвращаем if (root.Position - baseCFrame.Position).Magnitude > 1 then root.Velocity = Vector3.zero root.RotVelocity = Vector3.zero root:PivotTo(baseCFrame) end end end end)) local function executeTeleport(item) if not item or not item.Parent then return end local char = player.Character if not char or not char:FindFirstChild("HumanoidRootPart") then return end local root = char.HumanoidRootPart -- Сохраняем базу ТОЛЬКО если мы сейчас не в процессе телепорта if not isTeleportingNow then baseCFrame = root.CFrame end isTeleportingNow = true local targetCFrame = getTargetCFrame(item) if targetCFrame then -- Обнуляем физику и прыгаем root.Velocity = Vector3.zero root.RotVelocity = Vector3.zero root:PivotTo(targetCFrame) if cfg.Return then if cfg.WaitGone then local t = 0 while item and item.Parent and string.lower(item.Parent.Name) == "dump" and t < 15 do task.wait(0.2); t = t + 0.2 end else task.wait(tonumber(cfg.CustomWait) or 0.5) end -- ВОЗВРАТ if char and char:FindFirstChild("HumanoidRootPart") then root.Velocity = Vector3.zero root.RotVelocity = Vector3.zero root:PivotTo(baseCFrame) if cfg.AnchorReturn then root.Anchored = true task.wait(0.5) root.Anchored = false end end else task.wait(0.5) end end isTeleportingNow = false end local function processAutoTP() if isAutoWorking then return end isAutoWorking = true local i = 1 while cfg.AutoTP do if i > #activeUIItems then i = 1 task.wait(0.5) else local data = activeUIItems[i] if data.frame.Visible and data.item and data.item.Parent then executeTeleport(data.item) end i = i + 1 task.wait(0.1) end end isAutoWorking = false end ------------------------------------------ -- 6. КРАСИВЫЕ НАСТРОЙКИ (Вкладка Set) ------------------------------------------ local allToggles = {} local function createHeader(textKey) local frame = Instance.new("Frame", pageSet) frame.Size = UDim2.new(1, 0, 0, 25) frame.BackgroundTransparency = 1 local lbl = Instance.new("TextLabel", frame) lbl.Size = UDim2.new(1, 0, 1, 0) lbl.BackgroundTransparency = 1 lbl.Text = L(textKey) lbl.TextColor3 = Color3.fromRGB(150, 200, 255) lbl.Font = Enum.Font.GothamBold; lbl.TextSize = 11 table.insert(uiElementsToTranslate, {obj = lbl, key = textKey}) end local function createToggle(textKey, cfgKey, action) local btn = Instance.new("TextButton", pageSet) btn.Size = UDim2.new(1, 0, 0, 30) btn.BackgroundColor3 = cfg[cfgKey] and Color3.fromRGB(80, 180, 80) or Color3.fromRGB(180, 80, 80) btn.Text = L(textKey) .. ": " .. (cfg[cfgKey] and "ON" or "OFF") btn.TextColor3 = Color3.fromRGB(255,255,255) btn.Font = Enum.Font.GothamBold; btn.TextSize = 12 btn.BorderSizePixel = 0 table.insert(allToggles, {btn = btn, textKey = textKey, cfgKey = cfgKey}) addConn(btn.MouseButton1Click:Connect(function() cfg[cfgKey] = not cfg[cfgKey] btn.BackgroundColor3 = cfg[cfgKey] and Color3.fromRGB(80, 180, 80) or Color3.fromRGB(180, 80, 80) btn.Text = L(textKey) .. ": " .. (cfg[cfgKey] and "ON" or "OFF") if action then action(cfg[cfgKey]) end saveConfig() end)) end -- Секция Авто-ТП createHeader("SectTP") createToggle("AutoTP", "AutoTP", function(val) if val then task.spawn(processAutoTP) end end) createToggle("WaitGone", "WaitGone") local waitBox = Instance.new("TextBox", pageSet) waitBox.Size = UDim2.new(1, 0, 0, 30) waitBox.BackgroundColor3 = Color3.fromRGB(45, 45, 55) waitBox.Text = L("WaitMode") .. " " .. tostring(cfg.CustomWait) waitBox.TextColor3 = Color3.fromRGB(255,255,255) waitBox.Font = Enum.Font.GothamBold; waitBox.TextSize = 12 table.insert(uiElementsToTranslate, {obj = waitBox, key = "WaitMode", suffix = " " .. tostring(cfg.CustomWait)}) addConn(waitBox.FocusLost:Connect(function() local num = tonumber(waitBox.Text:match("[%d%.]+")) if num then cfg.CustomWait = num end waitBox.Text = L("WaitMode") .. " " .. tostring(cfg.CustomWait) saveConfig() end)) -- Секция Возврата createHeader("SectRet") createToggle("Ret", "Return") createToggle("Anchor", "AnchorReturn") createToggle("Lock", "LockPos", function(val) if not val then baseCFrame = nil end -- Отключаем лок, сбрасываем базу end) -- Секция Системы createHeader("SectSys") createToggle("AntiAFK", "AntiAFK") createToggle("HideNum", "FilterNum", function() for _, d in ipairs(activeUIItems) do local blocked = cfg.BlockedNames[d.name] d.frame.Visible = not blocked and not (cfg.FilterNum and d.isNum) end end) local btnSave = Instance.new("TextButton", pageSet) btnSave.Size = UDim2.new(1, 0, 0, 30) btnSave.BackgroundColor3 = Color3.fromRGB(150, 100, 40) btnSave.Text = L("Save") btnSave.TextColor3 = Color3.fromRGB(255,255,255) btnSave.Font = Enum.Font.GothamBold; btnSave.TextSize = 12 table.insert(uiElementsToTranslate, {obj = btnSave, key = "Save"}) addConn(btnSave.MouseButton1Click:Connect(saveConfig)) ------------------------------------------ -- ОБНОВЛЕНИЕ ЯЗЫКА (LIVE) ------------------------------------------ local currentDumpFolder = nil local infoLabel -- Объявляем заранее local function updateLanguageLive() btnLang.Text = "[" .. cfg.Lang .. "]" -- Обновляем обычные элементы (Вкладки, Заголовки, Кнопки) for _, data in ipairs(uiElementsToTranslate) do if data.suffix then data.obj.Text = L(data.key) .. data.suffix else data.obj.Text = L(data.key) end end -- Обновляем тогглы for _, data in ipairs(allToggles) do data.btn.Text = L(data.textKey) .. ": " .. (cfg[data.cfgKey] and "ON" or "OFF") end -- Обновляем статус поиска if currentDumpFolder then infoLabel.Text = L("Tracking") .. currentDumpFolder.Name else infoLabel.Text = L("Search") end end addConn(btnLang.MouseButton1Click:Connect(function() if cfg.Lang == "RU" then cfg.Lang = "EN" elseif cfg.Lang == "EN" then cfg.Lang = "ES" else cfg.Lang = "RU" end saveConfig() updateLanguageLive() end)) ------------------------------------------ -- 7. ВКЛАДКА БЛОКЛИСТА ------------------------------------------ local function refreshBlocklistUI() for _, v in pairs(pageBlocks:GetChildren()) do if v:IsA("Frame") then v:Destroy() end end for name, _ in pairs(cfg.BlockedNames) do local bf = Instance.new("Frame", pageBlocks) bf.Size = UDim2.new(1, 0, 0, 30) bf.BackgroundColor3 = Color3.fromRGB(60, 40, 40) local txt = Instance.new("TextLabel", bf) txt.Size = UDim2.new(0.7, 0, 1, 0) txt.Position = UDim2.new(0, 10, 0, 0) txt.BackgroundTransparency = 1 txt.Text = name; txt.TextColor3 = Color3.fromRGB(255,150,150) txt.TextXAlignment = Enum.TextXAlignment.Left txt.Font = Enum.Font.Gotham; txt.TextSize = 13 local unBtn = Instance.new("TextButton", bf) unBtn.Size = UDim2.new(0.25, 0, 0, 24) unBtn.Position = UDim2.new(0.75, -5, 0.5, -12) unBtn.BackgroundColor3 = Color3.fromRGB(80, 150, 80) unBtn.Text = "X" unBtn.TextColor3 = Color3.fromRGB(255,255,255) unBtn.Font = Enum.Font.GothamBold; unBtn.TextSize = 14 addConn(unBtn.MouseButton1Click:Connect(function() cfg.BlockedNames[name] = nil saveConfig() refreshBlocklistUI() for _, d in ipairs(activeUIItems) do if d.name == name then d.frame.Visible = not (cfg.FilterNum and d.isNum) end end end)) end end refreshBlocklistUI() local btnClear = Instance.new("TextButton", pageBlocks) btnClear.Size = UDim2.new(1, 0, 0, 30) btnClear.BackgroundColor3 = Color3.fromRGB(150, 50, 50) btnClear.Text = L("Clear") btnClear.TextColor3 = Color3.fromRGB(255,255,255) btnClear.Font = Enum.Font.GothamBold; btnClear.TextSize = 12 table.insert(uiElementsToTranslate, {obj = btnClear, key = "Clear"}) addConn(btnClear.MouseButton1Click:Connect(function() cfg.BlockedNames = {} saveConfig() refreshBlocklistUI() for _, d in ipairs(activeUIItems) do d.frame.Visible = not (cfg.FilterNum and d.isNum) end end)) ------------------------------------------ -- 8. ДОБАВЛЕНИЕ ПРЕДМЕТОВ (ФАРМ) ------------------------------------------ local addedItems = {} infoLabel = Instance.new("TextLabel", pageFarm) infoLabel.Size = UDim2.new(1, 0, 0, 20) infoLabel.BackgroundTransparency = 1 infoLabel.Text = L("Search") infoLabel.TextColor3 = Color3.fromRGB(100, 255, 100) infoLabel.Font = Enum.Font.Gotham; infoLabel.TextSize = 12 local function addUIItem(item) local name = item.Name if string.lower(name) == "clone" then return end if addedItems[item] then return end addedItems[item] = true local isNum = string.match(name, "^%s*%d+%s*$") ~= nil local frame = Instance.new("Frame", pageFarm) frame.Size = UDim2.new(1, 0, 0, 30) frame.BackgroundColor3 = Color3.fromRGB(45, 45, 50) frame.BorderSizePixel = 0 local isBlocked = cfg.BlockedNames[name] if isBlocked or (cfg.FilterNum and isNum) then frame.Visible = false end local nameLabel = Instance.new("TextLabel", frame) nameLabel.Size = UDim2.new(0.55, 0, 1, 0) nameLabel.Position = UDim2.new(0, 10, 0, 0) nameLabel.BackgroundTransparency = 1 nameLabel.Text = name; nameLabel.TextColor3 = Color3.fromRGB(220, 220, 220) nameLabel.TextXAlignment = Enum.TextXAlignment.Left nameLabel.Font = Enum.Font.Gotham; nameLabel.TextSize = 13 nameLabel.TextTruncate = Enum.TextTruncate.AtEnd local tpBtn = Instance.new("TextButton", frame) tpBtn.Size = UDim2.new(0, 35, 0, 22) tpBtn.Position = UDim2.new(1, -40, 0.5, -11) tpBtn.BackgroundColor3 = Color3.fromRGB(80, 180, 80) tpBtn.Text = "ТП" tpBtn.TextColor3 = Color3.fromRGB(255, 255, 255) tpBtn.Font = Enum.Font.GothamBold; tpBtn.TextSize = 11 addConn(tpBtn.MouseButton1Click:Connect(function() if isAutoWorking then return end task.spawn(function() executeTeleport(item) end) end)) local blockBtn = Instance.new("TextButton", frame) blockBtn.Size = UDim2.new(0, 45, 0, 22) blockBtn.Position = UDim2.new(1, -90, 0.5, -11) blockBtn.BackgroundColor3 = Color3.fromRGB(180, 80, 80) blockBtn.Text = "БЛОК" blockBtn.TextColor3 = Color3.fromRGB(255, 255, 255) blockBtn.Font = Enum.Font.GothamBold; blockBtn.TextSize = 10 addConn(blockBtn.MouseButton1Click:Connect(function() cfg.BlockedNames[name] = true saveConfig() refreshBlocklistUI() for _, d in ipairs(activeUIItems) do if d.name == name then d.frame.Visible = false end end end)) local itemData = {item = item, frame = frame, isNum = isNum, name = name} table.insert(activeUIItems, itemData) addConn(item.AncestryChanged:Connect(function(_, newParent) if not newParent or string.lower(newParent.Name) ~= "dump" then frame:Destroy() addedItems[item] = nil for idx, d in ipairs(activeUIItems) do if d.item == item then table.remove(activeUIItems, idx); break end end end end)) end ------------------------------------------ -- 9. ИНИЦИАЛИЗАЦИЯ DUMP ------------------------------------------ local function setupFolder(f) currentDumpFolder = f infoLabel.Text = L("Tracking") .. f.Name for _, i in pairs(f:GetChildren()) do addUIItem(i) end addConn(f.ChildAdded:Connect(addUIItem)) end local function scanWorkspace() for _, v in pairs(workspace:GetChildren()) do if string.lower(v.Name) == "dump" then setupFolder(v) return true end end return false end scanWorkspace() addConn(workspace.ChildAdded:Connect(function(child) if string.lower(child.Name) == "dump" then setupFolder(child) end end)) updateLanguageLive() -- Применяем язык сразу при запуске print("[AutoDump] Успешно загружен.")