local p = game:GetService("Players") local ws = game:GetService("Workspace") local vim = game:GetService("VirtualInputManager") local uis = game:GetService("UserInputService") local rs = game:GetService("RunService") local lp = p.LocalPlayer local gui = Instance.new("ScreenGui") gui.Name = "ChulFarm" gui.ResetOnSpawn = false if lp.PlayerGui:FindFirstChild("ChulFarm") then lp.PlayerGui:FindFirstChild("ChulFarm"):Destroy() end gui.Parent = lp.PlayerGui local function drag(btn) local dragging = false local dragStart = nil local btnStart = nil btn.MouseButton1Down:Connect(function() dragging = true dragStart = uis:GetMouseLocation() btnStart = btn.Position end) uis.InputChanged:Connect(function(input) if dragging and input.UserInputType == Enum.UserInputType.MouseMovement then local delta = input.Position - dragStart btn.Position = UDim2.new(btnStart.X.Scale, btnStart.X.Offset + delta.X, btnStart.Y.Scale, btnStart.Y.Offset + delta.Y) end end) uis.InputEnded:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 then dragging = false end end) end local farmBtn = Instance.new("TextButton") farmBtn.Size = UDim2.new(0, 80, 0, 30) farmBtn.Position = UDim2.new(0.02, 0, 0.80, 0) farmBtn.BackgroundColor3 = Color3.fromRGB(30, 30, 30) farmBtn.Text = "Temp V" farmBtn.TextColor3 = Color3.fromRGB(255, 255, 255) farmBtn.TextSize = 12 farmBtn.Font = Enum.Font.SourceSansBold farmBtn.Parent = gui Instance.new("UICorner").Parent = farmBtn drag(farmBtn) local espBtn = Instance.new("TextButton") espBtn.Size = UDim2.new(0, 80, 0, 30) espBtn.Position = UDim2.new(0.02, 0, 0.87, 0) espBtn.BackgroundColor3 = Color3.fromRGB(30, 30, 30) espBtn.Text = "ESP: ON" espBtn.TextColor3 = Color3.fromRGB(0, 255, 0) espBtn.TextSize = 12 espBtn.Font = Enum.Font.SourceSansBold espBtn.Parent = gui Instance.new("UICorner").Parent = espBtn drag(espBtn) local playerESP = {} local tempVESP = {} local espEnabled = true local function createPlayerESP(character) local highlight = Instance.new("Highlight") highlight.FillTransparency = 1 highlight.OutlineTransparency = 0.2 highlight.OutlineColor = Color3.fromRGB(173, 216, 230) highlight.DepthMode = Enum.HighlightDepthMode.AlwaysOnTop highlight.Enabled = espEnabled highlight.Parent = character local conn conn = rs.RenderStepped:Connect(function() if not character or not character.Parent then if highlight then highlight:Destroy() end if conn then conn:Disconnect() end end end) return {highlight = highlight, conn = conn} end local function createTempVESP(part) local box = Instance.new("SelectionBox") box.Adornee = part box.Color3 = Color3.fromRGB(0, 255, 0) box.LineThickness = 0.08 box.Transparency = 0.2 box.Visible = espEnabled box.Parent = part local bill = Instance.new("BillboardGui") bill.Size = UDim2.new(0, 50, 0, 15) bill.StudsOffset = Vector3.new(0, 1.5, 0) bill.AlwaysOnTop = true bill.Enabled = espEnabled bill.Parent = part local label = Instance.new("TextLabel") label.Size = UDim2.new(1, 0, 1, 0) label.BackgroundTransparency = 1 label.TextColor3 = Color3.fromRGB(0, 255, 0) label.TextStrokeTransparency = 0.2 label.TextStrokeColor3 = Color3.fromRGB(0, 0, 0) label.TextScaled = true label.Font = Enum.Font.GothamBold label.Text = "V" label.Parent = bill local conn conn = rs.RenderStepped:Connect(function() if not part or not part.Parent then box:Destroy() bill:Destroy() if conn then conn:Disconnect() end end end) return {box = box, bill = bill, conn = conn} end local function updateTempV() local folder = ws:FindFirstChild("_TempVPickups") if not folder then return end for _, obj in ipairs(folder:GetDescendants()) do if obj:IsA("ProximityPrompt") and obj.Name == "TempVPickupPrompt" then local parent = obj.Parent if parent and parent:IsA("BasePart") and not tempVESP[parent] then tempVESP[parent] = createTempVESP(parent) end end end for obj, data in pairs(tempVESP) do if not obj or not obj.Parent then if data.box then data.box:Destroy() end if data.bill then data.bill:Destroy() end if data.conn then data.conn:Disconnect() end tempVESP[obj] = nil end end end local function addPlayerESP(player) if player == lp then return end if playerESP[player] then local old = playerESP[player] if old.highlight then old.highlight:Destroy() end if old.conn then old.conn:Disconnect() end playerESP[player] = nil end local char = player.Character if char then local esp = createPlayerESP(char) if esp then playerESP[player] = esp end end end local function updatePlayers() for _, player in ipairs(p:GetPlayers()) do if player ~= lp then addPlayerESP(player) end end for player, data in pairs(playerESP) do if not player or not player.Parent then if data.highlight then data.highlight:Destroy() end if data.conn then data.conn:Disconnect() end playerESP[player] = nil end end end local function toggleESP() espEnabled = not espEnabled for _, data in pairs(playerESP) do if data.highlight then data.highlight.Enabled = espEnabled end end for _, data in pairs(tempVESP) do if data.box then data.box.Visible = espEnabled end if data.bill then data.bill.Enabled = espEnabled end end if espEnabled then updatePlayers() updateTempV() end espBtn.Text = espEnabled and "ESP: ON" or "ESP: OFF" espBtn.TextColor3 = espEnabled and Color3.fromRGB(0, 255, 0) or Color3.fromRGB(255, 0, 0) end local function getClosestPrompt() local char = lp.Character if not char or not char:FindFirstChild("HumanoidRootPart") then return nil end local hrp = char.HumanoidRootPart local folder = ws:FindFirstChild("_TempVPickups") if not folder then return nil end local minDist = math.huge local closest = nil for _, obj in ipairs(folder:GetDescendants()) do if obj:IsA("ProximityPrompt") and obj.Name == "TempVPickupPrompt" then local parent = obj.Parent if parent and parent:IsA("BasePart") then local dist = (hrp.Position - parent.Position).Magnitude if dist < minDist then minDist = dist closest = obj end end end end return closest end local function activatePrompt(prompt) prompt.HoldDuration = 0 local success = pcall(function() fireproximityprompt(prompt, 1) end) if not success then local key = Enum.KeyCode.E pcall(function() if prompt.KeyboardKeyCode then key = prompt.KeyboardKeyCode end end) vim:SendKeyEvent(true, key, false, game) task.wait(0.05) vim:SendKeyEvent(false, key, false, game) end end local function onCharacterAdded(player, character) task.wait(0.2) if espEnabled and player ~= lp then addPlayerESP(player) end end for _, player in ipairs(p:GetPlayers()) do if player ~= lp then player.CharacterAdded:Connect(function(character) onCharacterAdded(player, character) end) end end p.PlayerAdded:Connect(function(player) if player ~= lp then task.wait(0.5) if espEnabled then addPlayerESP(player) end player.CharacterAdded:Connect(function(character) onCharacterAdded(player, character) end) end end) p.PlayerRemoving:Connect(function(player) if playerESP[player] then local data = playerESP[player] if data.highlight then data.highlight:Destroy() end if data.conn then data.conn:Disconnect() end playerESP[player] = nil end end) task.wait(0.5) updatePlayers() updateTempV() spawn(function() while true do task.wait(2) if espEnabled then updatePlayers() updateTempV() end end end) farmBtn.MouseButton1Click:Connect(function() local char = lp.Character local hrp = char and char:FindFirstChild("HumanoidRootPart") if not hrp then farmBtn.Text = "Wait" task.wait(1) farmBtn.Text = "Temp V" return end local target = getClosestPrompt() if target and target.Parent then local part = target.Parent local originalColor = part.Color or Color3.fromRGB(255, 255, 255) part.Color = Color3.fromRGB(255, 200, 0) local originalPos = hrp.CFrame hrp.Velocity = Vector3.new(0, 0, 0) hrp.CFrame = part.CFrame * CFrame.new(0, 3, 0) task.wait(0.15) activatePrompt(target) task.wait(0.25) hrp.Velocity = Vector3.new(0, 0, 0) hrp.CFrame = originalPos task.wait(0.1) part.Color = originalColor farmBtn.Text = "Got!" task.wait(0.5) farmBtn.Text = "Temp V" else farmBtn.Text = "No item" task.wait(1) farmBtn.Text = "Temp V" end end) espBtn.MouseButton1Click:Connect(function() toggleESP() end) print("idk")