-- [[ Rscripts Risk Notice ]] -- This script is not verified by rscripts.net. Deal with caution. -- -- Stay safe: -- • Never log in on unofficial Roblox sites or lookalike domains. -- • Real Roblox links use roblox.com (check the .com ending). -- • Treat fake Roblox login / "claim reward" pages as phishing. -- [[ End Rscripts Risk Notice ]] local Players = game:GetService("Players") local RunService = game:GetService("RunService") local player = Players.LocalPlayer -- ========================= -- CONFIGURATION -- ========================= local Config = { FarmEnabled = false, AFKEnabled = false, FarmRadius = 100, AttackRange = 12, AttackCooldown = 0.25, -- Change this to wherever you want the player to farm. FarmLocation = Vector3.new(0, 5, 0), -- Folder containing NPCs/enemies. EnemyFolderName = "Enemies", } -- ========================= -- CHARACTER -- ========================= local function getCharacter() return player.Character or player.CharacterAdded:Wait() end local function getRoot() local character = getCharacter() return character:FindFirstChild("HumanoidRootPart") end local function getHumanoid() local character = getCharacter() return character:FindFirstChildOfClass("Humanoid") end -- ========================= -- FIND ENEMY -- ========================= local function getNearestEnemy() local root = getRoot() if not root then return nil end local folder = workspace:FindFirstChild(Config.EnemyFolderName) if not folder then return nil end local nearest = nil local nearestDistance = Config.FarmRadius for _, enemy in ipairs(folder:GetChildren()) do local enemyRoot = enemy:FindFirstChild("HumanoidRootPart") local enemyHumanoid = enemy:FindFirstChildOfClass("Humanoid") if enemyRoot and enemyHumanoid and enemyHumanoid.Health > 0 then local distance = (enemyRoot.Position - root.Position).Magnitude if distance < nearestDistance then nearest = enemy nearestDistance = distance end end end return nearest end -- ========================= -- MOVE TO FARM AREA -- ========================= local function moveToFarmLocation() local root = getRoot() if not root then return end root.CFrame = CFrame.new(Config.FarmLocation) end -- ========================= -- ATTACK -- ========================= local function attackEnemy(enemy) if not enemy then return end local enemyRoot = enemy:FindFirstChild("HumanoidRootPart") if not enemyRoot then return end local root = getRoot() if not root then return end -- Move next to the enemy. root.CFrame = CFrame.new( enemyRoot.Position + Vector3.new(0, 0, Config.AttackRange) ) -- IMPORTANT: -- Replace this with your game's legitimate attack function. -- -- Example: -- ReplicatedStorage.Remotes.Attack:FireServer(enemy) task.wait(Config.AttackCooldown) end -- ========================= -- FARM LOOP -- ========================= local farmThread local function startFarm() if farmThread then return end Config.FarmEnabled = true farmThread = task.spawn(function() while Config.FarmEnabled do if not Config.AFKEnabled then moveToFarmLocation() end local enemy = getNearestEnemy() if enemy then attackEnemy(enemy) else task.wait(0.5) end task.wait() end farmThread = nil end) end local function stopFarm() Config.FarmEnabled = false end -- ========================= -- AFK TOGGLE -- ========================= local function setAFK(enabled) Config.AFKEnabled = enabled if enabled then print("AFK mode enabled") else print("AFK mode disabled") end end -- ========================= -- SIMPLE CONTROLS -- ========================= -- Start farming: startFarm() -- Toggle AFK: setAFK(true) -- Examples: -- -- setAFK(false) -- disable AFK -- stopFarm() -- completely stop farming -- startFarm() -- start farming again -- -- Change farm position: -- Config.FarmLocation = Vector3.new(100, 5, 50)