도서관 스크립트 정리 — 책 정리 도우미

  • 14:31, 23.06.2026

도서관 스크립트 정리 — 책 정리 도우미

게임의 주요 목표는 도서 정리 및 제자리에 책을 반환하는 것입니다. Clean The Library 스크립트는 이 목표를 중심으로 설계되었습니다. Organize Book 기능은 반복적인 작업의 많은 부분을 제거하여 책 배치를 부드럽게 만들어, 플레이어가 선반 사이를 수동으로 이동할 필요가 없도록 합니다.

이 도구를 사용하면 도서관 청소가 훨씬 덜 시간이 소요됩니다. 게임 대부분의 시간을 책을 하나씩 옮기는 데 보내는 대신, 더 빠르게 작업을 완료하고 업그레이드를 더 일찍 잠금 해제하며, 더 강력한 능력과 더 나은 리더보드 결과를 얻을 수 있습니다. 이는 보상을 더 효율적으로 수집하거나 도서관의 넓은 영역을 더 짧은 시간 안에 정리하고자 하는 사람들에게 실용적인 옵션입니다.

목차

Clean The Library 스크립트 다운로드 방법

저희 웹사이트에서는 광고 시청, 구독, 추가 단계 없이 Clean The Library 스크립트를 자유롭게 접근할 수 있습니다. 파일 다운로드도 필요하지 않습니다. 준비된 코드를 복사하여 편리한 Roblox 실행기에 붙여 넣기만 하면 됩니다.

Roblox에서 스크립트를 사용해 본 적이 없는 분들은 별도의 도구인 실행기가 필요하다는 것을 아셔야 합니다. 이것은 외부 명령 및 다양한 치트 기능을 게임에 추가하는 프로그램입니다.

이러한 솔루션은 많으며, 일반적으로 목적은 비슷하지만 서로 눈에 띄는 차이가 있습니다. 어떤 것은 복잡한 스크립트와 더 잘 작동하고, 다른 것들은 게임 플레이 중 더 안정적이며, 어떤 것은 무료로 제공되고, 다른 것들은 유료 기능을 가지고 있습니다. 또한 플랫폼도 고려해야 합니다. 특정 실행기는 컴퓨터에 적합하고, 다른 것은 모바일 장치에만 설계되어 있습니다.

EXECUTOR
지원 플랫폼
단점
링크
Windows PC
Android 및 iOS 버전 없음. 약하며 일부 스크립트를 지원하지 않을 수 있음
https://xeno-executor.com
Android, iOS, PC
Roblox 패치 후 수동 업데이트 필요
https://delta-executor.com/
KRNL Executor
Android, iOS
Windows PC 지원하지 않음
https://krnlexecutor.com/
Arceus X Neo
Android, iOS
Windows PC 지원하지 않음
https://arceusx.com/
Demonology 스크립트: ESP, 증거 표시, 무한 스태미너 등!
Demonology 스크립트: ESP, 증거 표시, 무한 스태미너 등!   
Article
어제

모든 Clean The Library 스크립트 목록

Script Clean The Library Script (No Key) – Auto Organize Books
-- 단일 토글로 간단한 책 정리 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") -- 설정 local Settings = { Enabled = false, FastMode = false -- 선택 사항: 하위 토글로 추가 가능 } -- GUI 생성 local function CreateUI() local screenGui = Instance.new("ScreenGui") screenGui.Name = "BookOrganizerGUI" screenGui.Parent = Players.LocalPlayer:WaitForChild("PlayerGui") -- 메인 프레임 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 -- 제목 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 -- 닫기 버튼 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 -- 상태 레이블 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 -- 토글 버튼 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 -- 드래깅 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 -- 메인 스크립트 로직 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 -- 카메라 설정 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 and 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 -- 토글 기능 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) -- 다음 사이클 전 대기 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) -- 정리 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.")
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 and 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"))()

Clean The Library에서 스크립트 실행 방법

1단계

먼저, 스크립트를 실행할 실행기를 준비합니다. 해당 프로그램이 기기에 설치되어 있지 않다면 Xeno Executor를 사용할 수 있습니다. 지정된 웹사이트를 열고 Download 버튼을 클릭하여 프로그램 아카이브를 컴퓨터에 다운로드합니다.

  • https://www.xeno.now/
Xeno Executor 다운로드 사이트
Xeno Executor 다운로드 사이트
Fisch Fischfest 2에서 모든 게 위치
Fisch Fischfest 2에서 모든 게 위치   
Guides
어제

2단계

파일을 다운로드한 후, 아카이브를 편리한 폴더(예: 바탕 화면)에 추출하고 Xeno.exe를 엽니다. 다른 Roblox 실행기를 선택했다면 해당 프로그램의 메인 파일을 실행합니다.

첫 실행 시, .NET SDK 또는 Visual C++ Runtime과 같은 추가 Windows 구성 요소가 필요하다는 메시지가 표시될 수 있습니다. 이를 설치하거나 업데이트하지 않으면 실행기가 실행되지 않거나 제대로 작동하지 않을 수 있습니다.

Xeno.exe 실행 파일
Xeno.exe 실행 파일

3단계

그다음, Clean The Library를 열고 게임과 실행기를 함께 실행 상태로 둡니다. 이후 프로그램 창으로 돌아가 Attach 버튼을 사용하여 실행기를 Roblox에 연결합니다. 모든 작업이 올바르게 완료되면 인터페이스 하단에 Attached Ingame! 상태가 표시됩니다.

Clean The Library 실행 중 실행기
Clean The Library 실행 중 실행기

4단계

이제 사용 가능한 옵션 목록에서 원하는 스크립트를 선택하고 복사하여 실행기 내 코드 필드에 붙여 넣습니다. 실행하려면 Execute를 클릭합니다. 그러면 스크립트가 Clean The Library에서 활성화됩니다.

Clean The Library에서 스크립트 실행
Clean The Library에서 스크립트 실행
Merge a Nuke 스크립트 — 자동 병합, 자동 업그레이드 등!
Merge a Nuke 스크립트 — 자동 병합, 자동 업그레이드 등!   1
Article
어제

5단계

때때로 스크립트 메뉴가 즉시 나타나지 않고 몇 초 후에 나타날 수 있습니다. 이는 코드 자체와 사용하는 실행기에 따라 다릅니다. GUI가 나타나면 사용 가능한 기능을 관리하고 원하는 기능을 활성화하며 게임 스타일에 맞게 설정을 조정할 수 있습니다.

Clean The Library 스크립트의 주요 기능

기능
설명
Auto Organize Books
자동으로 책을 정리하고 배열합니다
Clean The Library 스크립트의 GUI 메뉴
Clean The Library 스크립트의 GUI 메뉴

Clean The Library 스크립트가 작동하지 않는 이유

Grow a Garden: 관리자 남용은 언제 시작될까?
Grow a Garden: 관리자 남용은 언제 시작될까?   23
Article
어제

오래된 Clean The Library 스크립트

Clean The Library 스크립트가 제대로 작동하지 않는 가장 일반적인 이유 중 하나는 최신 버전의 게임과의 호환성 문제입니다. 업데이트 후 개발자가 내부 로직, 요소 이름, 상호작용 시스템 또는 개별 게임 메커니즘을 변경할 수 있어, 이전 코드가 호환성을 잃게 됩니다.

그 결과 스크립트는 예측할 수 없이 작동할 수 있습니다. 일부 기능은 작동하고, 다른 기능은 응답하지 않으며, 일부 버튼은 멈추고, 특정 기능은 오류를 일으킬 수 있습니다. 스크립트가 오랫동안 업데이트되지 않았다면 실행하는 데 시간을 낭비할 필요가 없습니다. 검증된 옵션 목록에서 더 신선한 대안을 선택하는 것이 좋습니다.

실행기 문제

때때로 문제는 스크립트 자체가 아니라 그것을 실행하는 프로그램에 있습니다. 실행기는 호환성 수준이 다르고, 코드를 처리하는 방식이 다르며, 항상 동일한 명령, 라이브러리 또는 추가 기능을 지원하지 않습니다.

따라서 동일한 스크립트가 한 도구에서는 안정적으로 작동하지만 다른 도구에서는 오류를 일으키거나 부분적으로만 실행될 수 있습니다. Xeno나 SOLAR와 같은 간단한 실행기는 더 복잡한 스크립트를 지원하는 데 제한이 있을 수 있습니다. 예를 들어, Xeno는 편리함과 간단한 실행으로 자주 선택되지만 문제가 발생하면 다른 실행기에서 스크립트의 성능을 확인해 볼 가치가 있습니다.

서버 또는 게임에서의 연결 끊김

또 다른 상황은 스크립트를 활성화한 후 서버에서 즉시 연결이 끊기는 경우입니다. 이는 Clean The Library의 현재 버전과 코드의 호환성 문제, 게임의 내부 시스템과의 충돌, 또는 보호 메커니즘의 발동으로 인해 발생합니다.

서버에 다시 들어가 실행을 반복해 볼 수 있지만, 문제가 반복되면 스크립트가 잘못 작동하거나 현재 업데이트에 적합하지 않다는 명확한 신호입니다. 이런 경우, 지속적인 오류, 불안정한 게임 성능, 계정 제한의 위험을 피하기 위해 사용을 중단하는 것이 안전합니다.

추가 콘텐츠 이용 가능
Twitter bo3.gg로 이동하세요
댓글
날짜별