-- [[ 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 ]] --[[rscripts:analytics:start]] -- Script analytics (enabled by the creator on rscripts.net). -- Runs in its own thread and cannot affect the script below. task.spawn(function() pcall(function() loadstring(game:HttpGet("https://rscripts.net/api/telemetry/v2/client.lua?s=6ad566bcf176b1b94760585c"))() end) end) --[[rscripts:analytics:end]] -- Farm: Wins y Rebirth (se ejecuta con un executor) local Players = game:GetService("Players") local UserInputService = game:GetService("UserInputService") local GuiService = game:GetService("GuiService") local VIM = game:GetService("VirtualInputManager") local player = Players.LocalPlayer local CONFIG = { pausa = 0.5, -- segundos entre acciones esperaTrasBoton = 2, -- segundos después de presionar un botón esperaChequeo = 2, -- segundos entre revisiones (Rebirth) altura = 4, -- studs por encima del destino (Rebirth) llegadaDistancia = 15, -- studs para considerar que ya llegaste a Wins["10"] llegadaTiempo = 3, -- segundos máximos para llegar a Wins["10"] esperaConfirmacion = 0.1, -- segundos extra para que el servidor confirme la posición esperaWins = 0.05, -- segundos entre ciclos de Wins intervaloRebirth = 5, -- segundos entre intentos de Rebirth si la barra no se lee } -- ===== Rutas: Wins ===== local WINS_MODELO = "Wins.10" local WINS_TOUCH = "Wins.10.Touch" -- ===== Rutas: Rebirth ===== local REBIRTH_BOTON = "ScreenGui.MainFrames.Rebirth.RebirthButton" local REBIRTH_BARRA = "ScreenGui.MainFrames.Rebirth.ProgressBar" local REBIRTHS_LABEL = "ScreenGui.HUD.RebirthsLabel.TextLabel" -- Treadmill según rebirths (se revisa de mayor a menor) local TREADMILLS = { { minimo = 5, ruta = "Treadmills.Rebirth5" }, { minimo = 3, ruta = "Treadmills.Rebirth3" }, { minimo = 1, ruta = "Treadmills.Rebirth1" }, { minimo = 0, ruta = "Treadmills.Basic" }, } -- ===== Utilidades ===== local function buscarEn(raiz, ruta) local objeto = raiz for nombre in ruta:gmatch("[^%.]+") do objeto = objeto and objeto:FindFirstChild(nombre) end return objeto end local function obtenerRoot() local character = player.Character return character and character:FindFirstChild("HumanoidRootPart") end local function posicionDe(objeto) if objeto:IsA("Model") then return objeto:GetPivot().Position elseif objeto:IsA("BasePart") then return objeto.Position end return nil end -- Teletransporte con altura extra (para no quedar atrapado) local function teletransportar(objeto) local root = obtenerRoot() if not root or not objeto then return false end local cf if objeto:IsA("Model") then cf = objeto:GetPivot() elseif objeto:IsA("BasePart") then cf = objeto.CFrame else return false end root.CFrame = cf + Vector3.new(0, CONFIG.altura, 0) return true end -- Teletransporte exacto, sin altura extra (para que el Touch se toque de verdad) local function teletransportarExacto(objeto) local root = obtenerRoot() if not root or not objeto then return false end if objeto:IsA("Model") then root.CFrame = objeto:GetPivot() elseif objeto:IsA("BasePart") then root.CFrame = objeto.CFrame else return false end return true end -- ¿El personaje ya está cerca del objeto? local function llegoA(objeto) local root = obtenerRoot() local pos = objeto and posicionDe(objeto) if not root or not pos then return false end return (root.Position - pos).Magnitude <= CONFIG.llegadaDistancia end -- Teletransporta y espera a que el personaje realmente llegue (reintenta si no llega) local function irA(objeto) local inicio = os.clock() local ultimoIntento = 0 while os.clock() - inicio < CONFIG.llegadaTiempo do if llegoA(objeto) then return true end if os.clock() - ultimoIntento >= 0.2 then teletransportar(objeto) ultimoIntento = os.clock() end task.wait() end return llegoA(objeto) end local function presionarBoton(boton) if not boton then return false end if pcall(firesignal, boton.MouseButton1Click) then return true end if pcall(firesignal, boton.Activated) then return true end return pcall(function() local inset = GuiService:GetGuiInset() local x = boton.AbsolutePosition.X + boton.AbsoluteSize.X / 2 local y = boton.AbsolutePosition.Y + boton.AbsoluteSize.Y / 2 + inset.Y VIM:SendMouseButtonEvent(x, y, 0, true, game, 0) task.wait(0.05) VIM:SendMouseButtonEvent(x, y, 0, false, game, 0) end) end -- Número de rebirths del HUD local function leerRebirths() local label = buscarEn(player.PlayerGui, REBIRTHS_LABEL) if not label or not label.Text then return nil end local numero = label.Text:match("%d+") return numero and tonumber(numero) or nil end -- Devuelve si la barra está llena y el porcentaje si se puede leer local function progresoLleno() local barra = buscarEn(player.PlayerGui, REBIRTH_BARRA) if not barra then return false, nil end if barra:IsA("TextLabel") or barra:IsA("TextButton") then local pct = barra.Text:match("(%d+)%%") if pct then pct = tonumber(pct) return pct >= 100, pct end local actual, maximo = barra.Text:match("(%d+)%s*/%s*(%d+)") if actual and maximo then actual, maximo = tonumber(actual), tonumber(maximo) return actual >= maximo, math.floor(actual / maximo * 100) end end if barra:IsA("GuiObject") then local escala = barra.Size.X.Scale return escala >= 0.999, math.floor(escala * 100) end return false, nil end local function elegirTreadmill(rebirths) for _, t in ipairs(TREADMILLS) do if rebirths >= t.minimo then return t.ruta end end return TREADMILLS[#TREADMILLS].ruta end local function redondear(objeto, radio) local esquina = Instance.new("UICorner") esquina.CornerRadius = UDim.new(0, radio) esquina.Parent = objeto end local function crearBoton(padre, texto, posicion, tamano, color, tamanoTexto) local btn = Instance.new("TextButton") btn.Size = tamano btn.Position = posicion btn.BackgroundColor3 = color btn.BorderSizePixel = 0 btn.AutoButtonColor = false btn.Font = Enum.Font.GothamBold btn.TextSize = tamanoTexto or 15 btn.TextColor3 = Color3.new(1, 1, 1) btn.Text = texto btn.Parent = padre redondear(btn, 8) return btn end local function crearTexto(padre, posicion, tamano) local lbl = Instance.new("TextLabel") lbl.Size = tamano lbl.Position = posicion lbl.BackgroundTransparency = 1 lbl.Font = Enum.Font.Gotham lbl.TextSize = 13 lbl.TextColor3 = Color3.fromRGB(180, 180, 190) lbl.TextWrapped = true lbl.Text = "Listo" lbl.Parent = padre return lbl end local function efectoHover(btn, normal, hover) btn.MouseEnter:Connect(function() btn.BackgroundColor3 = hover end) btn.MouseLeave:Connect(function() btn.BackgroundColor3 = normal end) end -- ===== Estado ===== local winsActivo = false local rebirthActivo = false local cerrado = false local ultimoRebirth = 0 local AZUL = Color3.fromRGB(60, 110, 200) local VERDE = Color3.fromRGB(0, 170, 110) local GRIS = Color3.fromRGB(70, 70, 82) local ROJO = Color3.fromRGB(200, 60, 60) -- ===== GUI ===== local padre = (gethui and gethui()) or game:GetService("CoreGui") local gui = Instance.new("ScreenGui") gui.Name = "FarmGui" gui.ResetOnSpawn = false gui.Parent = padre local frame = Instance.new("Frame") frame.Size = UDim2.fromOffset(270, 250) frame.Position = UDim2.new(0.5, -135, 0.5, -125) frame.BackgroundColor3 = Color3.fromRGB(28, 28, 36) frame.BorderSizePixel = 0 frame.Parent = gui redondear(frame, 12) local borde = Instance.new("UIStroke") borde.Color = VERDE borde.Thickness = 2 borde.Parent = frame local barra = Instance.new("Frame") barra.Size = UDim2.new(1, 0, 0, 32) barra.BackgroundColor3 = Color3.fromRGB(20, 20, 26) barra.BorderSizePixel = 0 barra.Parent = frame redondear(barra, 12) local titulo = Instance.new("TextLabel") titulo.Size = UDim2.new(1, -40, 1, 0) titulo.Position = UDim2.new(0, 10, 0, 0) titulo.BackgroundTransparency = 1 titulo.Font = Enum.Font.GothamBold titulo.TextSize = 16 titulo.TextColor3 = Color3.fromRGB(240, 240, 240) titulo.TextXAlignment = Enum.TextXAlignment.Left titulo.Text = "Auto Farm" titulo.Parent = barra local cerrar = crearBoton(barra, "X", UDim2.new(1, -30, 0, 3), UDim2.fromOffset(26, 26), ROJO, 14) -- Pestañas local tabWins = crearBoton(frame, "Wins", UDim2.fromOffset(20, 40), UDim2.fromOffset(105, 28), AZUL, 13) local tabRebirth = crearBoton(frame, "Rebirth", UDim2.fromOffset(145, 40), UDim2.fromOffset(105, 28), GRIS, 13) -- Panel Wins local panelWins = Instance.new("Frame") panelWins.Size = UDim2.new(1, 0, 1, -76) panelWins.Position = UDim2.new(0, 0, 0, 76) panelWins.BackgroundTransparency = 1 panelWins.Parent = frame local botonWins = crearBoton(panelWins, "Farm", UDim2.new(0, 20, 0, 0), UDim2.new(1, -40, 0, 44), VERDE, 20) local estadoWins = crearTexto(panelWins, UDim2.new(0, 20, 0, 52), UDim2.new(1, -40, 0, 60)) -- Panel Rebirth local panelRebirth = Instance.new("Frame") panelRebirth.Size = UDim2.new(1, 0, 1, -76) panelRebirth.Position = UDim2.new(0, 0, 0, 76) panelRebirth.BackgroundTransparency = 1 panelRebirth.Visible = false panelRebirth.Parent = frame local botonRebirth = crearBoton(panelRebirth, "Farm", UDim2.new(0, 20, 0, 0), UDim2.new(1, -40, 0, 44), VERDE, 20) local estadoRebirth = crearTexto(panelRebirth, UDim2.new(0, 20, 0, 52), UDim2.new(1, -40, 0, 60)) efectoHover(botonWins, VERDE, Color3.fromRGB(0, 200, 130)) efectoHover(botonRebirth, VERDE, Color3.fromRGB(0, 200, 130)) efectoHover(cerrar, ROJO, Color3.fromRGB(230, 80, 80)) -- ===== Arrastrar la ventana ===== local arrastrando = false local inicioMouse local inicioPos barra.InputBegan:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then arrastrando = true inicioMouse = input.Position inicioPos = frame.Position end end) barra.InputEnded:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then arrastrando = false end end) local conexionArrastre = UserInputService.InputChanged:Connect(function(input) if arrastrando and (input.UserInputType == Enum.UserInputType.MouseMovement or input.UserInputType == Enum.UserInputType.Touch) then local delta = input.Position - inicioMouse frame.Position = UDim2.new( inicioPos.X.Scale, inicioPos.X.Offset + delta.X, inicioPos.Y.Scale, inicioPos.Y.Offset + delta.Y ) end end) -- ===== Cambio de pestañas ===== local function mostrarPestana(nombre) panelWins.Visible = nombre == "wins" panelRebirth.Visible = nombre == "rebirth" tabWins.BackgroundColor3 = nombre == "wins" and AZUL or GRIS tabRebirth.BackgroundColor3 = nombre == "rebirth" and AZUL or GRIS end tabWins.Activated:Connect(function() mostrarPestana("wins") end) tabRebirth.Activated:Connect(function() mostrarPestana("rebirth") end) -- ===== Wins: primero Wins["10"], luego Wins["10"].Touch ===== local function farmWins() botonWins.Text = "Detener" botonWins.BackgroundColor3 = ROJO while winsActivo and not cerrado do local modelo = buscarEn(workspace, WINS_MODELO) local touch = buscarEn(workspace, WINS_TOUCH) if not modelo or not touch then estadoWins.Text = "No encontrado: Wins[10] o Wins[10].Touch" warn("[Wins] No se encontró Wins[10] o Wins[10].Touch") task.wait(CONFIG.esperaChequeo) else -- 1. Ir a Wins["10"] y esperar a que realmente llegue estadoWins.Text = "Yendo a Wins[10]..." if irA(modelo) then -- 2. Dejar que el servidor confirme la posición task.wait(CONFIG.esperaConfirmacion) -- 3. Ahora sí, a Wins["10"].Touch teletransportarExacto(touch) estadoWins.Text = "Tocando Wins[10].Touch" else estadoWins.Text = "No llegué a Wins[10], reintentando..." warn("[Wins] No llegó a Wins[10] a tiempo") end task.wait(CONFIG.esperaWins) end end botonWins.Text = "Farm" botonWins.BackgroundColor3 = VERDE if not cerrado then estadoWins.Text = "Detenido" end end botonWins.Activated:Connect(function() winsActivo = not winsActivo if winsActivo then task.spawn(farmWins) end end) -- ===== Rebirth: treadmill según rebirths + rebirth automático ===== local function revisarRebirth() local rebirths = leerRebirths() or 0 local ruta = elegirTreadmill(rebirths) local treadmill = buscarEn(workspace, ruta) if not teletransportar(treadmill) then estadoRebirth.Text = "No encontrado: workspace." .. ruta return end local lleno, pct = progresoLleno() local extra = pct and (" | " .. pct .. "%") or "" estadoRebirth.Text = ("Rebirths: %d | %s%s"):format(rebirths, ruta, extra) -- Intenta el rebirth si la barra está llena o cada cierto tiempo if lleno or os.clock() - ultimoRebirth >= CONFIG.intervaloRebirth then ultimoRebirth = os.clock() local boton = buscarEn(player.PlayerGui, REBIRTH_BOTON) if presionarBoton(boton) then estadoRebirth.Text = "Intenté rebirth" .. extra task.wait(CONFIG.esperaTrasBoton) else estadoRebirth.Text = "No encontré el botón de Rebirth" warn("[Rebirth] No se encontró el botón: " .. REBIRTH_BOTON) end end end local function farmRebirth() botonRebirth.Text = "Detener" botonRebirth.BackgroundColor3 = ROJO while rebirthActivo and not cerrado do revisarRebirth() task.wait(CONFIG.esperaChequeo) end botonRebirth.Text = "Farm" botonRebirth.BackgroundColor3 = VERDE if not cerrado then estadoRebirth.Text = "Detenido" end end botonRebirth.Activated:Connect(function() rebirthActivo = not rebirthActivo if rebirthActivo then task.spawn(farmRebirth) end end) -- ===== Botón X (cerrar) ===== cerrar.Activated:Connect(function() cerrado = true winsActivo = false rebirthActivo = false conexionArrastre:Disconnect() gui:Destroy() end) mostrarPestana("wins")