Sắp Xếp Sách — Clean The Library Scripts

  • 14:31, 23.06.2026

Sắp Xếp Sách — Clean The Library Scripts

Kịch bản Clean The Library được xây dựng xung quanh mục tiêu chính của trò chơi: sắp xếp sách và trả chúng về đúng vị trí. Chức năng Organize Book của nó loại bỏ một phần đáng kể công việc đơn điệu, làm cho việc đặt sách trở nên mượt mà hơn để người chơi không phải điều khiển thủ công mọi di chuyển giữa các kệ.

Với công cụ này, việc dọn dẹp thư viện trở nên ít tốn thời gian hơn nhiều. Thay vì dành phần lớn thời gian trò chơi để di chuyển từng cuốn sách một, bạn có thể hoàn thành nhiệm vụ nhanh hơn, mở khóa nâng cấp sớm hơn và tiến tới những khả năng mạnh mẽ hơn và kết quả bảng xếp hạng tốt hơn. Đây là một lựa chọn thực tế cho những ai muốn thu thập phần thưởng hiệu quả hơn hoặc dọn dẹp các khu vực lớn của thư viện trong thời gian ngắn hơn.

NỘI DUNG

Làm thế nào để tải kịch bản Clean The Library

Trên trang web của chúng tôi, bạn có thể tự do truy cập các kịch bản cho Clean The Library mà không có bất kỳ điều kiện bổ sung nào—không cần xem quảng cáo, đăng ký, hoặc thực hiện các bước bổ sung. Cũng không cần tải xuống tệp: chỉ cần sao chép mã đã sẵn sàng và dán vào bất kỳ trình thực thi Roblox nào tiện lợi.

Đối với những ai chưa từng làm việc với các kịch bản trong Roblox, điều quan trọng là phải biết rằng cần có một công cụ riêng—một trình thực thi—để chạy chúng. Đây là một chương trình thông qua đó các lệnh bên ngoài và các chức năng gian lận khác nhau được thêm vào trò chơi.

Có nhiều giải pháp như vậy, và mặc dù mục đích của chúng thường tương tự nhau, nhưng có những khác biệt đáng chú ý giữa chúng. Một số hoạt động tốt hơn với các kịch bản phức tạp, một số khác ổn định hơn trong quá trình chơi, một số có sẵn miễn phí, trong khi một số khác có tính năng trả phí. Ngoài ra, điều quan trọng là phải xem xét nền tảng: một số trình thực thi phù hợp cho máy tính, trong khi một số khác được thiết kế dành riêng cho thiết bị di động.

TRÌNH THỰC THI
NỀN TẢNG HỖ TRỢ
HẠN CHẾ
LIÊN KẾT
Windows PC
Không có phiên bản cho Android và iOS. Yếu, có thể không hỗ trợ một số kịch bản
https://xeno-executor.com
Android, iOS và PC
Yêu cầu cập nhật thủ công sau các bản vá Roblox
https://delta-executor.com/
KRNL Executor
Android và iOS
Không hỗ trợ Windows PC
https://krnlexecutor.com/
Arceus X Neo
Android và iOS
Không hỗ trợ Windows PC
https://arceusx.com/
Hướng dẫn trang phục Evomon Adventure
Hướng dẫn trang phục Evomon Adventure   
Guides

Danh sách tất cả các kịch bản Clean The Library

Kịch bản Clean The Library Script (No Key) – Auto Organize Books
-- Đơn giản hóa việc tổ chức sách với một nút chuyển local Players = game:GetService("Players") local ReplicatedStorage = game:GetService("ReplicatedStorage") local Workspace = game:GetService("Workspace") local CollectionService = game:GetService("CollectionService") local UserInputService = game:GetService("UserInputService") -- Cài đặt local Settings = { Enabled = false, FastMode = false -- Tùy chọn: có thể thêm như một nút chuyển phụ } -- Tạo giao diện người dùng local function CreateUI() local screenGui = Instance.new("ScreenGui") screenGui.Name = "BookOrganizerGUI" screenGui.Parent = Players.LocalPlayer:WaitForChild("PlayerGui") -- Khung chính local mainFrame = Instance.new("Frame") mainFrame.Size = UDim2.new(0, 300, 0, 120) mainFrame.Position = UDim2.new(0.5, -150, 0.5, -60) mainFrame.BackgroundColor3 = Color3.fromRGB(25, 25, 35) mainFrame.BackgroundTransparency = 0.05 mainFrame.BorderSizePixel = 0 mainFrame.ClipsDescendants = true mainFrame.Parent = screenGui -- Tiêu đề local title = Instance.new("TextLabel") title.Size = UDim2.new(1, 0, 0, 35) title.Position = UDim2.new(0, 0, 0, 0) title.BackgroundColor3 = Color3.fromRGB(50, 50, 70) title.BackgroundTransparency = 0.3 title.Text = "📚 Book Organizer" title.TextColor3 = Color3.fromRGB(255, 255, 255) title.TextSize = 16 title.Font = Enum.Font.GothamBold title.BorderSizePixel = 0 title.Parent = mainFrame -- Nút đóng local closeBtn = Instance.new("TextButton") closeBtn.Size = UDim2.new(0, 25, 0, 25) closeBtn.Position = UDim2.new(1, -30, 0, 5) closeBtn.BackgroundColor3 = Color3.fromRGB(200, 50, 50) closeBtn.BackgroundTransparency = 0.5 closeBtn.Text = "✕" closeBtn.TextColor3 = Color3.fromRGB(255, 255, 255) closeBtn.TextSize = 14 closeBtn.Font = Enum.Font.GothamBold closeBtn.BorderSizePixel = 0 closeBtn.Parent = mainFrame -- Nhãn trạng thái local statusLabel = Instance.new("TextLabel") statusLabel.Size = UDim2.new(1, -20, 0, 25) statusLabel.Position = UDim2.new(0, 10, 0, 40) statusLabel.BackgroundTransparency = 1 statusLabel.Text = "🔴 Disabled" statusLabel.TextColor3 = Color3.fromRGB(255, 100, 100) statusLabel.TextSize = 14 statusLabel.Font = Enum.Font.Gotham statusLabel.TextXAlignment = Enum.TextXAlignment.Left statusLabel.Parent = mainFrame -- Nút chuyển local toggleBtn = Instance.new("TextButton") toggleBtn.Size = UDim2.new(0, 80, 0, 35) toggleBtn.Position = UDim2.new(1, -90, 0, 70) toggleBtn.BackgroundColor3 = Color3.fromRGB(200, 60, 60) toggleBtn.BackgroundTransparency = 0.2 toggleBtn.Text = "START" toggleBtn.TextColor3 = Color3.fromRGB(255, 255, 255) toggleBtn.TextSize = 14 toggleBtn.Font = Enum.Font.GothamBold toggleBtn.BorderSizePixel = 0 toggleBtn.Parent = mainFrame -- Kéo thả local dragging = false local dragStart, startPos mainFrame.InputBegan:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 then dragging = true dragStart = input.Position startPos = mainFrame.Position end end) mainFrame.InputEnded:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 then dragging = false end end) UserInputService.InputChanged:Connect(function(input) if dragging and input.UserInputType == Enum.UserInputType.MouseMovement then local delta = input.Position - dragStart mainFrame.Position = UDim2.new(startPos.X.Scale, startPos.X.Offset + delta.X, startPos.Y.Scale, startPos.Y.Offset + delta.Y) end end) closeBtn.MouseButton1Click:Connect(function() Settings.Enabled = false screenGui:Destroy() end) return screenGui, toggleBtn, statusLabel end -- Logic chính của kịch bản local gui, toggleBtn, statusLabel = CreateUI() local isRunning = false local currentCoroutine = nil local Loader = require(ReplicatedStorage.Packages.Loader) local ReplicaController = require(Loader.Shared.Utility.ReplicaController) local BooksData = require(Loader.Shared.Data.Books) local LibraryReplica = nil for _, r in pairs(ReplicaController._replicas) do if r.Class == "Library" then LibraryReplica = r break end end if not LibraryReplica then ReplicaController.ReplicaOfClassCreated("Library", function(replica) LibraryReplica = replica end) while not LibraryReplica do task.wait() end end local Library = Workspace.Library local BooksFolder = Library.Books local player = Players.LocalPlayer -- Thiết lập Camera player.CameraMode = Enum.CameraMode.Classic player.CameraMinZoomDistance = 20 task.spawn(function() task.wait(0.1) player.CameraMinZoomDistance = 0.5 end) local shelfModels = {} for _, shelfModel in ipairs(CollectionService:GetTagged("Shelf")) do shelfModels[shelfModel.Name] = shelfModel end local function getShelfAssignedSeries(shelfId) local shelfData = LibraryReplica.Data.Shelves[shelfId] if not shelfData then return nil end for _, placedBook in pairs(shelfData.Books) do local bookName = typeof(placedBook) == "Instance" and placedBook.Name or placedBook local seriesName = bookName:match("^(.-)_(.+)$") if seriesName then return seriesName end end end local function findShelfForSeries(seriesName, genreName, volumeCount) for shelfId, shelfData in pairs(LibraryReplica.Data.Shelves) do if not shelfData.Completed and shelfData.Category == genreName then local shelfModel = shelfModels[shelfId] if shelfModel and shelfModel:GetAttribute("Width") == volumeCount then if getShelfAssignedSeries(shelfId) == seriesName then return shelfModel end end end end for shelfId, shelfData in pairs(LibraryReplica.Data.Shelves) do if not shelfData.Completed and shelfData.Category == genreName then local shelfModel = shelfModels[shelfId] if shelfModel and shelfModel:GetAttribute("Width") == volumeCount then if not getShelfAssignedSeries(shelfId) and next(shelfData.Books) == nil then return shelfModel end end end end end local function teleportTo(obj) local char = player.Character local root = char and char:FindFirstChild("HumanoidRootPart") local part = obj:IsA("Model") and (obj.PrimaryPart or obj:FindFirstChildOfClass("BasePart")) or obj if root and part then root.CFrame = CFrame.new(part.Position + Vector3.new(0, 2, 0)) task.wait(0.05) end end local function organizeBooks() for _, book in ipairs(BooksFolder:GetChildren()) do if not isRunning then break end task.wait(0.02) local seriesName, volumeStr = book.Name:match("^(.-)_(.+)$") local volumeNum = tonumber(volumeStr) if seriesName and volumeNum then local genreName, bookInfo = BooksData.GetCategory(seriesName) if genreName và bookInfo then local shelfModel = findShelfForSeries(seriesName, genreName, bookInfo.VolumeCount) if shelfModel then local shelfData = LibraryReplica.Data.Shelves[shelfModel.Name] if not (shelfData and shelfData.Books[tostring(volumeNum)]) then teleportTo(book) LibraryReplica:FireServer("Grab", book) task.wait(0.1) teleportTo(shelfModel) LibraryReplica:FireServer("Place", shelfModel, volumeNum - 1) task.wait(0.4) end end end end end end -- Chức năng chuyển đổi local function toggleScript() isRunning = not isRunning if isRunning then toggleBtn.Text = "STOP" toggleBtn.BackgroundColor3 = Color3.fromRGB(60, 200, 60) statusLabel.Text = "🟢 Running..." statusLabel.TextColor3 = Color3.fromRGB(100, 255, 100) Settings.Enabled = true if currentCoroutine then task.cancel(currentCoroutine) end currentCoroutine = task.spawn(function() while isRunning do local success, err = pcall(organizeBooks) if not success then warn("Error: " .. err) statusLabel.Text = "❌ Error: " .. err statusLabel.TextColor3 = Color3.fromRGB(255, 100, 100) task.wait(2) end task.wait(5) -- Chờ trước khi thực hiện vòng lặp tiếp theo end end) else toggleBtn.Text = "START" toggleBtn.BackgroundColor3 = Color3.fromRGB(200, 60, 60) statusLabel.Text = "🔴 Disabled" statusLabel.TextColor3 = Color3.fromRGB(255, 100, 100) Settings.Enabled = false if currentCoroutine then task.cancel(currentCoroutine) currentCoroutine = nil end end end toggleBtn.MouseButton1Click:Connect(toggleScript) -- Dọn dẹp game:GetService("Players").LocalPlayer:WaitForChild("PlayerGui").ChildRemoved:Connect(function(child) if child.Name == "BookOrganizerGUI" and isRunning then isRunning = false if currentCoroutine then task.cancel(currentCoroutine) end end end) print("✅ Book Organizer loaded! Click START to begin organizing.")
Kịch bản Clean The Library Organize Book Script
getgenv().Running = true local Players = game:GetService("Players") local ReplicatedStorage = game:GetService("ReplicatedStorage") local Workspace = game:GetService("Workspace") local CollectionService = game:GetService("CollectionService") local Loader = require(ReplicatedStorage.Packages.Loader) local ReplicaController = require(Loader.Shared.Utility.ReplicaController) local BooksData = require(Loader.Shared.Data.Books) local LibraryReplica = nil for _, r in pairs(ReplicaController._replicas) do if r.Class == "Library" then LibraryReplica = r break end end if not LibraryReplica then ReplicaController.ReplicaOfClassCreated("Library", function(replica) LibraryReplica = replica end) while not LibraryReplica do task.wait() end end local Library = Workspace.Library local BooksFolder = Library.Books local player = Players.LocalPlayer player.CameraMode = Enum.CameraMode.Classic player.CameraMinZoomDistance = 20 task.spawn(function() task.wait(0.1) player.CameraMinZoomDistance = 0.5 end) local shelfModels = {} for _, shelfModel in ipairs(CollectionService:GetTagged("Shelf")) do shelfModels[shelfModel.Name] = shelfModel end local function getShelfAssignedSeries(shelfId) local shelfData = LibraryReplica.Data.Shelves[shelfId] if not shelfData then return nil end for _, placedBook in pairs(shelfData.Books) do local bookName = typeof(placedBook) == "Instance" and placedBook.Name or placedBook local seriesName = bookName:match("^(.-)_(.+)$") if seriesName then return seriesName end end end local function findShelfForSeries(seriesName, genreName, volumeCount) for shelfId, shelfData in pairs(LibraryReplica.Data.Shelves) do if not shelfData.Completed and shelfData.Category == genreName then local shelfModel = shelfModels[shelfId] if shelfModel and shelfModel:GetAttribute("Width") == volumeCount then if getShelfAssignedSeries(shelfId) == seriesName then return shelfModel end end end end for shelfId, shelfData in pairs(LibraryReplica.Data.Shelves) do if not shelfData.Completed and shelfData.Category == genreName then local shelfModel = shelfModels[shelfId] if shelfModel and shelfModel:GetAttribute("Width") == volumeCount then if not getShelfAssignedSeries(shelfId) and next(shelfData.Books) == nil then return shelfModel end end end end end local function teleportTo(obj) local char = player.Character local root = char and char:FindFirstChild("HumanoidRootPart") local part = obj:IsA("Model") and (obj.PrimaryPart or obj:FindFirstChildOfClass("BasePart")) or obj if root and part then root.CFrame = CFrame.new(part.Position + Vector3.new(0, 2, 0)) task.wait(0.05) end end task.spawn(function() for _, book in ipairs(BooksFolder:GetChildren()) do if not getgenv().Running then break end task.wait(0.02) local seriesName, volumeStr = book.Name:match("^(.-)_(.+)$") local volumeNum = tonumber(volumeStr) if seriesName and volumeNum then local genreName, bookInfo = BooksData.GetCategory(seriesName) if genreName và bookInfo then local shelfModel = findShelfForSeries(seriesName, genreName, bookInfo.VolumeCount) if shelfModel then local shelfData = LibraryReplica.Data.Shelves[shelfModel.Name] if not (shelfData and shelfData.Books[tostring(volumeNum)]) then teleportTo(book) LibraryReplica:FireServer("Grab", book) task.wait(0.1) teleportTo(shelfModel) LibraryReplica:FireServer("Place", shelfModel, volumeNum - 1) task.wait(0.4) end end end end end getgenv().Running = false end)
Clean The Library Finish Game And More Scripts
loadstring(game:HttpGet("https://raw.githubusercontent.com/2desp/flya/refs/heads/main/loader.lua"))()

Làm thế nào để chạy kịch bản Clean The Library

Bước 1

Đầu tiên, chuẩn bị trình thực thi thông qua đó kịch bản sẽ được chạy. Nếu bạn không có chương trình như vậy trên thiết bị của mình, bạn có thể sử dụng Xeno Executor. Mở trang web được chỉ định, nhấp vào Tải xuống, và tải xuống tệp chương trình về máy tính của bạn.

  • https://www.xeno.now/
Trang tải xuống Xeno Executor
Trang tải xuống Xeno Executor
Cách Nhận Prismatic Balls trong Evomon
Cách Nhận Prismatic Balls trong Evomon   
Guides

Bước 2

Khi tệp đã được tải xuống, giải nén tệp vào bất kỳ thư mục tiện lợi nào, chẳng hạn như trên màn hình máy tính của bạn, sau đó mở Xeno.exe. Nếu bạn đã chọn một trình thực thi Roblox khác, hãy chạy tệp chính của chương trình đó.

Trong lần khởi động đầu tiên, công cụ có thể thông báo rằng cần có các thành phần Windows bổ sung, chẳng hạn như .NET SDK hoặc Visual C++ Runtime. Những thứ này cần được cài đặt hoặc cập nhật, nếu không trình thực thi có thể không khởi động hoặc hoạt động không đúng cách.

Tệp khởi động Xeno.exe
Tệp khởi động Xeno.exe

Bước 3

Tiếp theo, mở Clean The Library và để trò chơi chạy cùng với trình thực thi. Sau đó, quay lại cửa sổ chương trình và sử dụng nút Attach để kết nối trình thực thi với Roblox. Nếu mọi thứ được thực hiện chính xác, trạng thái Attached Ingame! sẽ xuất hiện ở cuối giao diện.

Chạy trình thực thi trong Clean The Library
Chạy trình thực thi trong Clean The Library

Bước 4

Bây giờ chọn kịch bản mong muốn từ danh sách các tùy chọn có sẵn, sao chép nó và dán vào trường mã bên trong trình thực thi. Để chạy nó, nhấp vào Execute—sau đó, kịch bản sẽ được kích hoạt trong Clean The Library.

Chạy kịch bản trong Clean The Library
Chạy kịch bản trong Clean The Library
Cách nhận Acorns trong Adopt Me!
Cách nhận Acorns trong Adopt Me!   1
Guides

Bước 5

Đôi khi menu kịch bản không xuất hiện ngay lập tức mà sau vài giây—điều này phụ thuộc vào mã và trình thực thi bạn đang sử dụng. Khi giao diện xuất hiện, bạn sẽ có thể quản lý các chức năng có sẵn, bật các tính năng mong muốn và điều chỉnh cài đặt sao cho phù hợp với phong cách chơi của bạn.

Các tính năng chính của kịch bản Clean The Library

CHỨC NĂNG
CHỨC NĂNG NÀY LÀM GÌ
Tự động sắp xếp sách
Tự động sắp xếp và sắp đặt sách
Menu GUI của kịch bản Clean The Library
Menu GUI của kịch bản Clean The Library

Tại sao kịch bản Clean The Library không hoạt động

[Hướng dẫn] Thẻ Chiến Đấu Mùa Evomon
[Hướng dẫn] Thẻ Chiến Đấu Mùa Evomon   1
Guides

Kịch bản Clean The Library lỗi thời

Một trong những lý do phổ biến nhất khiến kịch bản Clean The Library ngừng hoạt động chính xác là do không tương thích với phiên bản mới nhất của trò chơi. Sau các bản cập nhật, nhà phát triển có thể thay đổi logic nội bộ, tên phần tử, hệ thống tương tác, hoặc cơ chế trò chơi cá nhân, khiến mã cũ mất tương thích.

Kết quả là, kịch bản có thể hoạt động không như mong đợi: một số chức năng hoạt động, một số khác không phản hồi, một số nút bị treo, và một số tính năng gây ra lỗi. Nếu kịch bản chưa được cập nhật trong thời gian dài, thường không đáng để dành thời gian chạy nó. Tốt hơn là chọn một lựa chọn mới hơn từ danh sách các tùy chọn đã được xác minh.

Vấn đề với trình thực thi

Đôi khi vấn đề không phải ở kịch bản mà là ở chương trình thông qua đó nó được chạy. Các trình thực thi có các mức độ tương thích khác nhau, xử lý mã khác nhau, và không phải lúc nào cũng hỗ trợ cùng các lệnh, thư viện hoặc các tính năng bổ sung.

Đó là lý do tại sao cùng một kịch bản có thể hoạt động ổn định trong một công cụ nhưng gây ra lỗi hoặc chỉ chạy một phần trong một công cụ khác. Một số trình thực thi đơn giản hơn, như Xeno hoặc SOLAR, có thể có giới hạn về việc hỗ trợ các kịch bản phức tạp hơn. Ví dụ, Xeno thường được chọn vì sự tiện lợi và dễ dàng khởi động, nhưng nếu có vấn đề, đáng để kiểm tra hiệu suất của kịch bản trong một trình thực thi khác.

Ngắt kết nối khỏi máy chủ hoặc trò chơi

Một tình huống khác mà người chơi có thể gặp phải là ngắt kết nối ngay lập tức khỏi máy chủ sau khi kích hoạt một kịch bản. Điều này xảy ra do mã không tương thích với phiên bản hiện tại của Clean The Library, xung đột với hệ thống nội bộ của trò chơi, hoặc kích hoạt các cơ chế bảo vệ.

Bạn có thể thử vào lại máy chủ và lặp lại việc khởi động, nhưng nếu vấn đề tái diễn, đó là dấu hiệu rõ ràng rằng kịch bản đang hoạt động không đúng hoặc không phù hợp với bản cập nhật hiện tại. Trong trường hợp như vậy, an toàn hơn là ngừng sử dụng nó để tránh các lỗi liên tục, hiệu suất trò chơi không ổn định, và nguy cơ bị hạn chế tài khoản.

Nội dung bổ sung có sẵn
Truy cập Twitter bo3.gg
Bình luận
Theo ngày