local Rayfield = loadstring(game:HttpGet('https://sirius.menu/rayfield'))() local Window = Rayfield:CreateWindow({ Name = "Universal Farm", LoadingTitle = "Universal Farm System", LoadingSubtitle = "by RoBH", ConfigurationSaving = { Enabled = false }, KeySystem = false }) local Settings = { AutoFarm = false, OneHit = false, AutoClick = false, Distance = 5, Position = "Behind", TargetName = nil, TargetType = "Mob" } local function GetLatestLists() local mobs = {} local players = {} for _, v in pairs(workspace:GetDescendants()) do if v:IsA("Humanoid") and v.Parent and v.Parent:IsA("Model") then local name = v.Parent.Name if game.Players:GetPlayerFromCharacter(v.Parent) then if v.Parent ~= game.Players.LocalPlayer.Character and not table.find(players, name) then table.insert(players, name) end else if not table.find(mobs, name) then table.insert(mobs, name) end end end end table.sort(mobs) return mobs, players end local FarmTab = Window:CreateTab("Farm Settings", 4483362458) local mList, pList = GetLatestLists() local MobDropdown local PlayerDropdown MobDropdown = FarmTab:CreateDropdown({ Name = "Select Mob", Options = mList, CurrentOption = "", Callback = function(Option) if Option[1] and Option[1] ~= "" then Settings.TargetName = Option[1] Settings.TargetType = "Mob" PlayerDropdown:Set({""}) end end, }) PlayerDropdown = FarmTab:CreateDropdown({ Name = "Select Player", Options = pList, CurrentOption = "", Callback = function(Option) if Option[1] and Option[1] ~= "" then Settings.TargetName = Option[1] Settings.TargetType = "Player" MobDropdown:Set({""}) end end, }) FarmTab:CreateButton({ Name = "Refresh Lists", Callback = function() local m, p = GetLatestLists() MobDropdown:Refresh(m) PlayerDropdown:Refresh(p) end, }) FarmTab:CreateSection("Combat") FarmTab:CreateToggle({ Name = "Auto Click Screen", CurrentValue = false, Callback = function(Value) Settings.AutoClick = Value end, }) FarmTab:CreateToggle({ Name = "One Hit Kill", CurrentValue = false, Callback = function(Value) Settings.OneHit = Value end, }) FarmTab:CreateSection("Movement") FarmTab:CreateDropdown({ Name = "Farm Position", Options = {"Behind", "Above", "Under"}, CurrentOption = "Behind", Callback = function(Option) if Option[1] then Settings.Position = Option[1] end end, }) FarmTab:CreateSlider({ Name = "Distance Offset", Range = {0, 25}, Increment = 1, CurrentValue = 5, Callback = function(Value) Settings.Distance = Value end, }) FarmTab:CreateToggle({ Name = "START AUTO FARM", CurrentValue = false, Callback = function(Value) Settings.AutoFarm = Value end, }) FarmTab:CreateSection("UI Management") FarmTab:CreateButton({ Name = "Destroy UI", Callback = function() Rayfield:Destroy() end, }) local CurrentTarget = nil game:GetService("RunService").Heartbeat:Connect(function() if Settings.AutoFarm and Settings.TargetName and Settings.TargetName ~= "" then local char = game.Players.LocalPlayer.Character local myRoot = char and char:FindFirstChild("HumanoidRootPart") if not myRoot then return end if not CurrentTarget or not CurrentTarget.Parent or not CurrentTarget.Parent:FindFirstChild("Humanoid") or CurrentTarget.Parent.Humanoid.Health <= 0 then CurrentTarget = nil if Settings.TargetType == "Mob" then for _, v in pairs(workspace:GetDescendants()) do if v.Name == Settings.TargetName and v:FindFirstChild("Humanoid") and v.Humanoid.Health > 0 then CurrentTarget = v:FindFirstChild("HumanoidRootPart")