-- Multi-Slot Position Saver & Configurable Auto Farm (Speed Display in Status) local Players = game:GetService("Players") local CoreGui = game:GetService("CoreGui") local UserInputService = game:GetService("UserInputService") local HttpService = game:GetService("HttpService") local ProximityPromptService = game:GetService("ProximityPromptService") local LocalPlayer = Players.LocalPlayer -- File storage settings local fileName = "PositionSaver_Data.json" -- Auto Farm State, Target & Speed Settings local _G_AutoFarmActive = false local TargetPosition = Vector3.new(1968.1, 374.6, 805.0) local currentFarmDelay = 0.00001 -- Default Ultra Fast local currentSpeedName = "Ultra Fast" -- Exact Staff / Member List compiled from your screenshots local staffList = { "cupof_soda3", "manhattanristretto", "babang_gaming120", "theconduitofbalance", "wyj0101", "heheboys1013", "meiltsuki", "ps_lol", "creeper_thai2551", "winchieuk", "kasmare_king", "chewypeaches", "westiealtacc", "posicos", "pawpogen", "1wmaul", "bonelessbones1", "subru127pc", "andrabag_3", "knighted_vessel", "dev_pandaz0", "brokenzdevs", "baconlostsky30", "paxtonmantara", "memorybased", "shrk_vincent", "jshazelnc", "flfinland", "zzaaaam9", "dgt21d4c", "earthfox25", "sypfur", "twelvespade", "orrorrrorror", "meanddaboi1" } -- Anti Gameplay Paused pcall(function() if UserSettings():GetService("UserGameSettings") then UserSettings():GetService("UserGameSettings").SavedQualityLevel = Enum.SavedQualityLevel.Level1 end end) -- Default data structure local slotData = { {name = "Slot 1", coords = "X: ??? , Y: ??? , Z: ???", pos = nil}, {name = "Slot 2", coords = "X: ??? , Y: ??? , Z: ???", pos = nil}, {name = "Slot 3", coords = "X: ??? , Y: ??? , Z: ???", pos = nil} } -- Load saved data pcall(function() if isfile and isfile(fileName) and readfile then local success, decoded = pcall(function() return HttpService:JSONDecode(readfile(fileName)) end) if success and decoded and type(decoded) == "table" and #decoded > 0 then slotData = {} for i, v in ipairs(decoded) do table.insert(slotData, { name = v.name or ("Slot " .. i), coords = v.coords or "X: ??? , Y: ??? , Z: ???", pos = (v.x and v.y and v.z) and Vector3.new(v.x, v.y, v.z) or nil }) end end end end) local function saveToFile() pcall(function() if writefile then local serializable = {} for i, v in ipairs(slotData) do serializable[i] = { name = v.name, coords = v.coords, x = v.pos and v.pos.X or nil, y = v.pos and v.pos.Y or nil, z = v.pos and v.pos.Z or nil } end writefile(fileName, HttpService:JSONEncode(serializable)) end end) end -- Remove existing UI if already running if CoreGui:FindFirstChild("PositionSaverUI") then CoreGui.PositionSaverUI:Destroy() end -- Create ScreenGui local ScreenGui = Instance.new("ScreenGui") ScreenGui.Name = "PositionSaverUI" ScreenGui.ResetOnSpawn = false pcall(function() ScreenGui.Parent = CoreGui end) if not ScreenGui.Parent then ScreenGui.Parent = LocalPlayer:WaitForChild("PlayerGui") end -- Floating UI Toggle Button local ToggleBtn = Instance.new("TextButton") ToggleBtn.Name = "ToggleBtn" ToggleBtn.Size = UDim2.new(0, 45, 0, 45) ToggleBtn.Position = UDim2.new(0, 15, 0.4, 0) ToggleBtn.BackgroundColor3 = Color3.fromRGB(40, 40, 48) ToggleBtn.Text = "UI" ToggleBtn.TextColor3 = Color3.fromRGB(255, 255, 255) ToggleBtn.TextSize = 14 ToggleBtn.Font = Enum.Font.SourceSansBold ToggleBtn.BorderSizePixel = 0 ToggleBtn.Active = true ToggleBtn.ZIndex = 200 ToggleBtn.Parent = ScreenGui local ToggleCorner = Instance.new("UICorner") ToggleCorner.CornerRadius = UDim.new(0, 8) ToggleCorner.Parent = ToggleBtn -- Main Window Frame local MainFrame = Instance.new("Frame") MainFrame.Name = "MainFrame" MainFrame.Size = UDim2.new(0, 430, 0, 395) MainFrame.Position = UDim2.new(0.5, -215, 0.4, -195) MainFrame.BackgroundColor3 = Color3.fromRGB(28, 28, 35) MainFrame.BorderSizePixel = 0 MainFrame.Visible = true MainFrame.Active = true MainFrame.Parent = ScreenGui MainFrame.DescendantAdded:Connect(function() end) local MainCorner = Instance.new("UICorner") MainCorner.CornerRadius = UDim.new(0, 8) MainCorner.Parent = MainFrame -- Fixed Toggle Logic for UI Button local function toggleUI() MainFrame.Visible = not MainFrame.Visible end ToggleBtn.MouseButton1Click:Connect(toggleUI) ToggleBtn.Activated:Connect(toggleUI) ToggleBtn.InputBegan:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then toggleUI() end end) -- Title Bar Label local Title = Instance.new("TextLabel") Title.Name = "Title" Title.Size = UDim2.new(1, -45, 0, 35) Title.Position = UDim2.new(0, 12, 0, 0) Title.BackgroundTransparency = 1 Title.Text = "Position Saver + Speed Selector" Title.TextColor3 = Color3.fromRGB(240, 240, 240) Title.TextSize = 15 Title.Font = Enum.Font.SourceSansBold Title.TextXAlignment = Enum.TextXAlignment.Left Title.Parent = MainFrame -- Close Button ("X") local CloseButton = Instance.new("TextButton") CloseButton.Name = "CloseButton" CloseButton.Size = UDim2.new(0, 28, 0, 28) CloseButton.Position = UDim2.new(1, -32, 0, 4) CloseButton.BackgroundColor3 = Color3.fromRGB(220, 50, 50) CloseButton.Text = "X" CloseButton.TextColor3 = Color3.fromRGB(255, 255, 255) CloseButton.TextSize = 14 CloseButton.Font = Enum.Font.SourceSansBold CloseButton.BorderSizePixel = 0 CloseButton.Active = true CloseButton.ZIndex = 10 CloseButton.Parent = MainFrame local CloseCorner = Instance.new("UICorner") CloseCorner.CornerRadius = UDim.new(0, 6) CloseCorner.Parent = CloseButton CloseButton.MouseButton1Click:Connect(function() ScreenGui:Destroy() end) CloseButton.Activated:Connect(function() ScreenGui:Destroy() end) -- Smooth Dragging Implementation local dragging, dragStart, startPos MainFrame.InputBegan:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then local mousePos = input.Position local absPos = MainFrame.AbsolutePosition if mousePos.Y <= absPos.Y + 35 then dragging = true dragStart = input.Position startPos = MainFrame.Position input.Changed:Connect(function() if input.UserInputState == Enum.UserInputState.End then dragging = false end end) end end end) UserInputService.InputChanged:Connect(function(input) if dragging and (input.UserInputType == Enum.UserInputType.MouseMovement or input.UserInputType == Enum.UserInputType.Touch) 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) -- Auto Farm Control Panel local AutoFarmPanel = Instance.new("Frame") AutoFarmPanel.Name = "AutoFarmPanel" AutoFarmPanel.Size = UDim2.new(1, -16, 0, 70) AutoFarmPanel.Position = UDim2.new(0, 8, 0, 38) AutoFarmPanel.BackgroundColor3 = Color3.fromRGB(35, 35, 42) AutoFarmPanel.BorderSizePixel = 0 AutoFarmPanel.ZIndex = 5 AutoFarmPanel.Parent = MainFrame local PanelCorner = Instance.new("UICorner") PanelCorner.CornerRadius = UDim.new(0, 6) PanelCorner.Parent = AutoFarmPanel -- Start Farm Button local ToggleFarmBtn = Instance.new("TextButton") ToggleFarmBtn.Size = UDim2.new(1, -55, 0, 30) ToggleFarmBtn.Position = UDim2.new(0, 8, 0, 6) ToggleFarmBtn.BackgroundColor3 = Color3.fromRGB(0, 120, 215) ToggleFarmBtn.Text = "Start Auto Farm" ToggleFarmBtn.TextColor3 = Color3.fromRGB(255, 255, 255) ToggleFarmBtn.TextSize = 13 ToggleFarmBtn.Font = Enum.Font.SourceSansBold ToggleFarmBtn.BorderSizePixel = 0 ToggleFarmBtn.Active = true ToggleFarmBtn.ZIndex = 6 ToggleFarmBtn.Parent = AutoFarmPanel local FarmBtnCorner = Instance.new("UICorner") FarmBtnCorner.CornerRadius = UDim.new(0, 4) FarmBtnCorner.Parent = ToggleFarmBtn -- Speed Dropdown Toggle Button ("^") local SpeedMenuBtn = Instance.new("TextButton") SpeedMenuBtn.Size = UDim2.new(0, 35, 0, 30) SpeedMenuBtn.Position = UDim2.new(1, -43, 0, 6) SpeedMenuBtn.BackgroundColor3 = Color3.fromRGB(60, 60, 70) SpeedMenuBtn.Text = "^" SpeedMenuBtn.TextColor3 = Color3.fromRGB(255, 255, 255) SpeedMenuBtn.TextSize = 16 SpeedMenuBtn.Font = Enum.Font.SourceSansBold SpeedMenuBtn.BorderSizePixel = 0 SpeedMenuBtn.Active = true SpeedMenuBtn.ZIndex = 6 SpeedMenuBtn.Parent = AutoFarmPanel local SpeedMenuCorner = Instance.new("UICorner") SpeedMenuCorner.CornerRadius = UDim.new(0, 4) SpeedMenuCorner.Parent = SpeedMenuBtn local StatusLabel = Instance.new("TextLabel") StatusLabel.Size = UDim2.new(1, -16, 0, 22) StatusLabel.Position = UDim2.new(0, 8, 0, 40) StatusLabel.BackgroundTransparency = 1 StatusLabel.Text = "Status: Scanning Staff..." StatusLabel.TextColor3 = Color3.fromRGB(180, 180, 190) StatusLabel.TextSize = 11 StatusLabel.Font = Enum.Font.SourceSans StatusLabel.TextXAlignment = Enum.TextXAlignment.Left StatusLabel.ZIndex = 6 StatusLabel.Parent = AutoFarmPanel -- Popup Speed Options Frame (Parented to MainFrame) local SpeedDropdown = Instance.new("Frame") SpeedDropdown.Size = UDim2.new(0, 120, 0, 110) SpeedDropdown.Position = UDim2.new(1, -125, 0, 42) SpeedDropdown.BackgroundColor3 = Color3.fromRGB(45, 45, 55) SpeedDropdown.BorderSizePixel = 0 SpeedDropdown.Visible = false SpeedDropdown.Active = true SpeedDropdown.ZIndex = 500 SpeedDropdown.Parent = MainFrame local DropdownCorner = Instance.new("UICorner") DropdownCorner.CornerRadius = UDim.new(0, 6) DropdownCorner.Parent = SpeedDropdown local speeds = { {name = "Slow (0.5s)", val = 0.5}, {name = "Normal (0.2s)", val = 0.2}, {name = "Fast (0.05s)", val = 0.05}, {name = "Ultra Fast", val = 0.00001} } -- Global function to update status text cleanly local cachedStaffStatus = "Safe (No Staff)" local function updateStatusDisplay() StatusLabel.Text = "Status: " .. cachedStaffStatus .. " | Speed: " .. currentSpeedName end for idx, spd in ipairs(speeds) do local optBtn = Instance.new("TextButton") optBtn.Size = UDim2.new(1, -8, 0, 24) optBtn.Position = UDim2.new(0, 4, 0, 4 + ((idx - 1) * 26)) optBtn.BackgroundColor3 = Color3.fromRGB(70, 70, 85) optBtn.Text = spd.name optBtn.TextColor3 = Color3.fromRGB(255, 255, 255) optBtn.TextSize = 11 optBtn.Font = Enum.Font.SourceSansBold optBtn.BorderSizePixel = 0 optBtn.Active = true optBtn.ZIndex = 501 optBtn.Parent = SpeedDropdown local optCorner = Instance.new("UICorner") optCorner.CornerRadius = UDim.new(0, 4) optCorner.Parent = optBtn local function selectSpeed() currentFarmDelay = spd.val currentSpeedName = spd.name SpeedDropdown.Visible = false updateStatusDisplay() end optBtn.MouseButton1Click:Connect(selectSpeed) optBtn.Activated:Connect(selectSpeed) optBtn.InputBegan:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then selectSpeed() end end) end local function toggleDropdownMenu() SpeedDropdown.Visible = not SpeedDropdown.Visible end SpeedMenuBtn.MouseButton1Click:Connect(toggleDropdownMenu) SpeedMenuBtn.Activated:Connect(toggleDropdownMenu) SpeedMenuBtn.InputBegan:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then toggleDropdownMenu() end end) -- Scrolling Frame for Slots local ScrollingFrame = Instance.new("ScrollingFrame") ScrollingFrame.Name = "SlotContainer" ScrollingFrame.Size = UDim2.new(1, -16, 1, -120) ScrollingFrame.Position = UDim2.new(0, 8, 0, 114) ScrollingFrame.BackgroundTransparency = 1 ScrollingFrame.BorderSizePixel = 0 ScrollingFrame.CanvasSize = UDim2.new(0, 0, 0, 0) ScrollingFrame.ScrollBarThickness = 4 ScrollingFrame.Parent = MainFrame -- Resize Handle at Bottom Right ("◢") local ResizeHandle = Instance.new("TextButton") ResizeHandle.Name = "ResizeHandle" ResizeHandle.Size = UDim2.new(0, 22, 0, 22) ResizeHandle.Position = UDim2.new(1, -22, 1, -22) ResizeHandle.BackgroundTransparency = 1 ResizeHandle.Text = "◢" ResizeHandle.TextColor3 = Color3.fromRGB(150, 150, 160) ResizeHandle.TextSize = 12 ResizeHandle.Font = Enum.Font.SourceSansBold ResizeHandle.ZIndex = 10 ResizeHandle.Parent = MainFrame local resizing = false local refreshSlots local resizeStart, startSize ResizeHandle.InputBegan:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then resizing = true resizeStart = input.Position startSize = MainFrame.Size input.Changed:Connect(function() if input.UserInputState == Enum.UserInputState.End then resizing = false end end) end end) UserInputService.InputChanged:Connect(function(input) if resizing and (input.UserInputType == Enum.UserInputType.MouseMovement or input.UserInputType == Enum.UserInputType.Touch) then local delta = input.Position - resizeStart local newW = math.clamp(startSize.X.Offset + delta.X, 390, 800) local newH = math.clamp(startSize.Y.Offset + delta.Y, 250, 700) MainFrame.Size = UDim2.new(0, newW, 0, newH) refreshSlots() end end) -- Function to Render All Slots & Buttons Dynamically refreshSlots = function() for _, child in ipairs(ScrollingFrame:GetChildren()) do if child:IsA("Frame") or child:IsA("TextButton") then child:Destroy() end end local currentWidth = MainFrame.AbsoluteSize.X - 24 if currentWidth < 300 then currentWidth = 406 end local yOffset = 0 local slotHeight = 68 local spacing = 8 for i, data in ipairs(slotData) do local SlotFrame = Instance.new("Frame") SlotFrame.Name = "Slot_" .. i SlotFrame.Size = UDim2.new(0, currentWidth, 0, slotHeight) SlotFrame.Position = UDim2.new(0, 0, 0, yOffset) SlotFrame.BackgroundColor3 = Color3.fromRGB(38, 38, 45) SlotFrame.BorderSizePixel = 0 SlotFrame.Parent = ScrollingFrame local SlotCorner = Instance.new("UICorner") SlotCorner.CornerRadius = UDim.new(0, 6) SlotCorner.Parent = SlotFrame -- Editable Name TextBox local NameBox = Instance.new("TextBox") NameBox.Name = "NameBox" NameBox.Size = UDim2.new(0, 110, 0, 26) NameBox.Position = UDim2.new(0, 8, 0, 6) NameBox.BackgroundColor3 = Color3.fromRGB(50, 50, 60) NameBox.Text = data.name NameBox.TextColor3 = Color3.fromRGB(255, 255, 255) NameBox.TextSize = 12 NameBox.Font = Enum.Font.SourceSansBold NameBox.ClearTextOnFocus = false NameBox.Parent = SlotFrame local NameCorner = Instance.new("UICorner") NameCorner.CornerRadius = UDim.new(0, 4) NameCorner.Parent = NameBox -- Editable Coordinates TextBox local coordBoxWidth = currentWidth - 170 if coordBoxWidth < 150 then coordBoxWidth = 150 end local CoordBox = Instance.new("TextBox") CoordBox.Name = "CoordBox" CoordBox.Size = UDim2.new(0, coordBoxWidth, 0, 26) CoordBox.Position = UDim2.new(0, 124, 0, 6) CoordBox.BackgroundColor3 = Color3.fromRGB(50, 50, 60) CoordBox.Text = data.coords CoordBox.TextColor3 = Color3.fromRGB(200, 200, 200) CoordBox.TextSize = 12 CoordBox.Font = Enum.Font.SourceSans CoordBox.ClearTextOnFocus = false CoordBox.Parent = SlotFrame local CoordCorner = Instance.new("UICorner") CoordCorner.CornerRadius = UDim.new(0, 4) CoordCorner.Parent = CoordBox -- Delete Slot Button local DeleteSlotBtn = Instance.new("TextButton") DeleteSlotBtn.Name = "DeleteSlotBtn" DeleteSlotBtn.Size = UDim2.new(0, 26, 0, 26) DeleteSlotBtn.Position = UDim2.new(1, -32, 0, 6) DeleteSlotBtn.BackgroundColor3 = Color3.fromRGB(180, 40, 40) DeleteSlotBtn.Text = "X" DeleteSlotBtn.TextColor3 = Color3.fromRGB(255, 255, 255) DeleteSlotBtn.TextSize = 12 DeleteSlotBtn.Font = Enum.Font.SourceSansBold DeleteSlotBtn.BorderSizePixel = 0 DeleteSlotBtn.Active = true DeleteSlotBtn.Parent = SlotFrame local DelCorner = Instance.new("UICorner") DelCorner.CornerRadius = UDim.new(0, 4) DelCorner.Parent = DeleteSlotBtn DeleteSlotBtn.MouseButton1Click:Connect(function() table.remove(slotData, i) saveToFile() refreshSlots() end) DeleteSlotBtn.Activated:Connect(function() table.remove(slotData, i) saveToFile() refreshSlots() end) -- 3 Main Buttons (Save, Teleport, Copy) local totalSpacing = 22 local usableWidth = currentWidth - 16 - totalSpacing local btnWidth = math.floor(usableWidth / 3) local SaveBtn = Instance.new("TextButton") SaveBtn.Name = "SaveBtn" SaveBtn.Size = UDim2.new(0, btnWidth, 0, 26) SaveBtn.Position = UDim2.new(0, 8, 0, 36) SaveBtn.BackgroundColor3 = Color3.fromRGB(46, 160, 67) SaveBtn.Text = "Save Pos" SaveBtn.TextColor3 = Color3.fromRGB(255, 255, 255) SaveBtn.TextSize = 12 SaveBtn.Font = Enum.Font.SourceSansBold SaveBtn.BorderSizePixel = 0 SaveBtn.Active = true SaveBtn.Parent = SlotFrame local SaveCorner = Instance.new("UICorner") SaveCorner.CornerRadius = UDim.new(0, 4) SaveCorner.Parent = SaveBtn local TPBtn = Instance.new("TextButton") TPBtn.Name = "TPBtn" TPBtn.Size = UDim2.new(0, btnWidth, 0, 26) TPBtn.Position = UDim2.new(0, 8 + btnWidth + 11, 0, 36) TPBtn.BackgroundColor3 = Color3.fromRGB(0, 115, 230) TPBtn.Text = "Teleport" TPBtn.TextColor3 = Color3.fromRGB(255, 255, 255) TPBtn.TextSize = 12 TPBtn.Font = Enum.Font.SourceSansBold TPBtn.BorderSizePixel = 0 TPBtn.Active = true TPBtn.Parent = SlotFrame local TPCorner = Instance.new("UICorner") TPCorner.CornerRadius = UDim.new(0, 4) TPCorner.Parent = TPBtn local CopyBtn = Instance.new("TextButton") CopyBtn.Name = "CopyBtn" CopyBtn.Size = UDim2.new(0, btnWidth, 0, 26) CopyBtn.Position = UDim2.new(0, 8 + (btnWidth * 2) + 22, 0, 36) CopyBtn.BackgroundColor3 = Color3.fromRGB(100, 100, 115) CopyBtn.Text = "Copy Pos" CopyBtn.TextColor3 = Color3.fromRGB(255, 255, 255) CopyBtn.TextSize = 12 CopyBtn.Font = Enum.Font.SourceSansBold CopyBtn.BorderSizePixel = 0 CopyBtn.Active = true CopyBtn.Parent = SlotFrame local CopyCorner = Instance.new("UICorner") CopyCorner.CornerRadius = UDim.new(0, 4) CopyCorner.Parent = CopyBtn -- --- Slot Actions --- local function parseCoords() slotData[i].coords = CoordBox.Text local text = CoordBox.Text local nums = {} for num in string.gmatch(text, "([%-?%d%.]+)") do table.insert(nums, tonumber(num)) end if #nums >= 3 then slotData[i].pos = Vector3.new(nums[1], nums[2], nums[3]) end saveToFile() end SaveBtn.MouseButton1Click:Connect(function() local character = LocalPlayer.Character if character and character:FindFirstChild("HumanoidRootPart") then local rootPart = character.HumanoidRootPart slotData[i].pos = rootPart.Position local p = rootPart.Position CoordBox.Text = string.format("X: %.1f , Y: %.1f , Z: %.1f", p.X, p.Y, p.Z) slotData[i].coords = CoordBox.Text saveToFile() SaveBtn.Text = "Saved!" task.wait(1) SaveBtn.Text = "Save Pos" end end) SaveBtn.Activated:Connect(function() local character = LocalPlayer.Character if character and character:FindFirstChild("HumanoidRootPart") then local rootPart = character.HumanoidRootPart slotData[i].pos = rootPart.Position local p = rootPart.Position CoordBox.Text = string.format("X: %.1f , Y: %.1f , Z: %.1f", p.X, p.Y, p.Z) slotData[i].coords = CoordBox.Text saveToFile() SaveBtn.Text = "Saved!" task.wait(1) SaveBtn.Text = "Save Pos" end end) TPBtn.MouseButton1Click:Connect(function() parseCoords() if slotData[i].pos then local character = LocalPlayer.Character if character and character:FindFirstChild("HumanoidRootPart") then local hrp = character.HumanoidRootPart pcall(function() hrp.CFrame = CFrame.new(slotData[i].pos) end) TPBtn.Text = "TP'd!" task.wait(1) TPBtn.Text = "Teleport" end end end) TPBtn.Activated:Connect(function() parseCoords() if slotData[i].pos then local character = LocalPlayer.Character if character and character:FindFirstChild("HumanoidRootPart") then local hrp = character.HumanoidRootPart pcall(function() hrp.CFrame = CFrame.new(slotData[i].pos) end) TPBtn.Text = "TP'd!" task.wait(1) TPBtn.Text = "Teleport" end end end) CopyBtn.MouseButton1Click:Connect(function() parseCoords() pcall(function() setclipboard(NameBox.Text .. " -> " .. CoordBox.Text) end) CopyBtn.Text = "Copied!" task.wait(1) CopyBtn.Text = "Copy Pos" end) CopyBtn.Activated:Connect(function() parseCoords() pcall(function() setclipboard(NameBox.Text .. " -> " .. CoordBox.Text) end) CopyBtn.Text = "Copied!" task.wait(1) CopyBtn.Text = "Copy Pos" end) NameBox.FocusLost:Connect(function() slotData[i].name = NameBox.Text saveToFile() end) CoordBox.FocusLost:Connect(function() parseCoords() end) yOffset = yOffset + slotHeight + spacing end -- Add New Slot Button local AddSlotBtn = Instance.new("TextButton") AddSlotBtn.Name = "AddSlotBtn" AddSlotBtn.Size = UDim2.new(0, currentWidth, 0, 36) AddSlotBtn.Position = UDim2.new(0, 0, 0, yOffset) AddSlotBtn.BackgroundColor3 = Color3.fromRGB(50, 130, 246) AddSlotBtn.Text = "+ Add New Slot" AddSlotBtn.TextColor3 = Color3.fromRGB(255, 255, 255) AddSlotBtn.TextSize = 13 AddSlotBtn.Font = Enum.Font.SourceSansBold AddSlotBtn.BorderSizePixel = 0 AddSlotBtn.Active = true AddSlotBtn.Parent = ScrollingFrame local AddCorner = Instance.new("UICorner") AddCorner.CornerRadius = UDim.new(0, 6) AddCorner.Parent = AddSlotBtn local function addSlotAction() local newIdx = #slotData + 1 table.insert(slotData, { name = "Slot " .. newIdx, coords = "X: ??? , Y: ??? , Z: ???", pos = nil }) saveToFile() refreshSlots() end AddSlotBtn.MouseButton1Click:Connect(addSlotAction) AddSlotBtn.Activated:Connect(addSlotAction) ScrollingFrame.CanvasSize = UDim2.new(0, 0, 0, yOffset + 50) end -- Initial render task.spawn(function() task.wait(0.1) refreshSlots() end) ---------------------------------------------------- -- ONE-TIME JOIN STAFF SCAN & CONFIGURABLE FARM LOOP ---------------------------------------------------- -- Perform one-time check when joining the game against the staff list task.spawn(function() task.wait(1.5) local foundStaff = {} for _, player in ipairs(Players:GetPlayers()) do if player ~= LocalPlayer then local nameLower = player.Name:lower() local dispLower = player.DisplayName:lower() for _, staffName in ipairs(staffList) do if nameLower:find(staffName) or dispLower:find(staffName) then table.insert(foundStaff, player.Name) break end end end end if #foundStaff > 0 then cachedStaffStatus = "⚠️ Staff Detected: " .. table.concat(foundStaff, ", ") StatusLabel.TextColor3 = Color3.fromRGB(255, 80, 80) else cachedStaffStatus = "Safe (No Staff)" StatusLabel.TextColor3 = Color3.fromRGB(100, 255, 100) end updateStatusDisplay() end) local function toggleFarmAction() _G_AutoFarmActive = not _G_AutoFarmActive if _G_AutoFarmActive then ToggleFarmBtn.Text = "Stop Auto Farm" ToggleFarmBtn.BackgroundColor3 = Color3.fromRGB(215, 50, 50) else ToggleFarmBtn.Text = "Start Auto Farm" ToggleFarmBtn.BackgroundColor3 = Color3.fromRGB(0, 120, 215) end end ToggleFarmBtn.MouseButton1Click:Connect(toggleFarmAction) ToggleFarmBtn.Activated:Connect(toggleFarmAction) ToggleFarmBtn.InputBegan:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then toggleFarmAction() end end) -- Proximity Prompts Modifier local function instantPrompts() for _, v in ipairs(workspace:GetDescendants()) do if v:IsA("ProximityPrompt") then v.HoldDuration = 0 v.MaxActivationDistance = math.max(v.MaxActivationDistance, 25) end end end ProximityPromptService.PromptShown:Connect(function(prompt) if _G_AutoFarmActive then prompt.HoldDuration = 0 fireproximityprompt(prompt) end end) -- Configurable Speed Auto Farm Loop task.spawn(function() while ScreenGui.Parent do if _G_AutoFarmActive then instantPrompts() local char = LocalPlayer.Character if char and char:FindFirstChild("HumanoidRootPart") then local hrp = char.HumanoidRootPart pcall(function() hrp.CFrame = CFrame.new(TargetPosition) end) for _, v in ipairs(workspace:GetDescendants()) do if v:IsA("ProximityPrompt") and char:FindFirstChild("HumanoidRootPart") then if (v.Parent.Position - char.HumanoidRootPart.Position).Magnitude <= 35 then fireproximityprompt(v) end end end end task.wait(currentFarmDelay) else task.wait(0.2) end end end)