-- [[ 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 ]] -- Cargar Rayfield Library local Rayfield = loadstring(game:HttpGet('https://sirius.menu/rayfield'))() -- Variables de Estado local Config = { ModEnabled = true, OnlyMe = true, CustomPierce = 999, CustomLifetime = 60, CustomDamage = 500, CustomHomingRadius = 300, CustomHomingForce = 3000, CustomSpeedMultiplier = 2, -- Multiplicador de velocidad del proyectil CustomCooldown = 0.05, -- Cadencia de tiro EnableHomingBoost = true, EnableDamageBoost = true, EnableSpeedBoost = true, EnableFireRateBoost = true, MaxSpawnDistance = 15, TargetMode = "Más Cercano" -- Opciones: Más Cercano, Más Lejano, Más Débil, Más Fuerte, Aleatorio } -- Guardar referencias originales local ReplicatedStorage = game:GetService("ReplicatedStorage") local Players = game:GetService("Players") local Workspace = game:GetService("Workspace") local LocalPlayer = Players.LocalPlayer local roundFolder = ReplicatedStorage:FindFirstChild("Shared") and ReplicatedStorage.Shared:FindFirstChild("Round") local ProjectileShared = nil local ToolShared = nil local originalSpawn = nil if roundFolder then if roundFolder:FindFirstChild("ProjectileShared") then local success, module = pcall(function() return require(roundFolder.ProjectileShared) end) if success and type(module) == "table" and rawget(module, "spawn") then ProjectileShared = module originalSpawn = module.spawn end end if roundFolder:FindFirstChild("ToolShared") then pcall(function() ToolShared = require(roundFolder.ToolShared) end) end end -- Función para seleccionar el objetivo según el modo activo local function getTargetPosition(originPos, radius) local targets = {} -- Escaneo seguro en el Workspace buscando modelos con Humanoid/Health for _, model in ipairs(Workspace:GetChildren()) do if model:IsA("Model") and model ~= LocalPlayer.Character then local hum = model:FindFirstChildOfClass("Humanoid") local root = model:FindFirstChild("HumanoidRootPart") or model:FindFirstChild("Torso") or model.PrimaryPart if hum and root and hum.Health > 0 then local dist = (root.Position - originPos).Magnitude if dist <= radius then table.insert(targets, { Root = root, Distance = dist, Health = hum.Health }) end end end end if #targets == 0 then return nil end if Config.TargetMode == "Más Lejano" then table.sort(targets, function(a, b) return a.Distance > b.Distance end) return targets[1].Root.Position elseif Config.TargetMode == "Más Débil" then table.sort(targets, function(a, b) return a.Health < b.Health end) return targets[1].Root.Position elseif Config.TargetMode == "Más Fuerte" then table.sort(targets, function(a, b) return a.Health > b.Health end) return targets[1].Root.Position elseif Config.TargetMode == "Aleatorio" then return targets[math.random(1, #targets)].Root.Position else -- "Más Cercano" o por defecto table.sort(targets, function(a, b) return a.Distance < b.Distance end) return targets[1].Root.Position end end -- Crear Ventana Principal local Window = Rayfield:CreateWindow({ Name = "UNKNOWN HUB | Arena Control", LoadingTitle = "Iniciando UNKNOWN HUB...", LoadingSubtitle = "By Plan Executor", ConfigurationSaving = { Enabled = false }, KeySystem = false }) -- --- PESTAÑA COMBATE --- local MainTab = Window:CreateTab("Combate", 4483362458) MainTab:CreateSection("Ajustes Principales") MainTab:CreateToggle({ Name = "Activar Modificaciones de Proyectil", CurrentValue = Config.ModEnabled, Flag = "Toggle_EnableMods", Callback = function(Value) Config.ModEnabled = Value end, }) MainTab:CreateToggle({ Name = "🎯 Afectar Solo a Mis Proyectiles", CurrentValue = Config.OnlyMe, Flag = "Toggle_OnlyMe", Callback = function(Value) Config.OnlyMe = Value end, }) MainTab:CreateSlider({ Name = "Penetración (Pierce)", Range = {1, 9999}, Increment = 1, Suffix = " Hits", CurrentValue = Config.CustomPierce, Flag = "Slider_Pierce", Textbox = true, Callback = function(Value) Config.CustomPierce = Value end, }) MainTab:CreateSlider({ Name = "Tiempo de Vida (Lifetime)", Range = {1, 9999}, Increment = 1, Suffix = " seg", CurrentValue = Config.CustomLifetime, Flag = "Slider_Lifetime", Textbox = true, Callback = function(Value) Config.CustomLifetime = Value end, }) MainTab:CreateSection("Velocidad & Cadencia de Tiro") MainTab:CreateToggle({ Name = "Activar Multiplicador de Velocidad de Proyectil", CurrentValue = Config.EnableSpeedBoost, Flag = "Toggle_SpeedBoost", Callback = function(Value) Config.EnableSpeedBoost = Value end, }) MainTab:CreateSlider({ Name = "Velocidad de Proyectil (Multiplicador)", Range = {1, 20}, Increment = 0.5, Suffix = "x Speed", CurrentValue = Config.CustomSpeedMultiplier, Flag = "Slider_SpeedMult", Textbox = true, Callback = function(Value) Config.CustomSpeedMultiplier = Value end, }) MainTab:CreateToggle({ Name = "Activar Cadencia de Tiro Rápida (Fire Rate)", CurrentValue = Config.EnableFireRateBoost, Flag = "Toggle_FireRateBoost", Callback = function(Value) Config.EnableFireRateBoost = Value if ToolShared and type(ToolShared) == "table" then for _, toolData in pairs(ToolShared) do if type(toolData) == "table" and (toolData.Cooldown or toolData.AttackSpeed or toolData.FireRate) then if not toolData.OriginalCooldown then toolData.OriginalCooldown = toolData.Cooldown or toolData.AttackSpeed or toolData.FireRate end if Value then if toolData.Cooldown then toolData.Cooldown = Config.CustomCooldown end if toolData.AttackSpeed then toolData.AttackSpeed = Config.CustomCooldown end if toolData.FireRate then toolData.FireRate = Config.CustomCooldown end else if toolData.Cooldown then toolData.Cooldown = toolData.OriginalCooldown end if toolData.AttackSpeed then toolData.AttackSpeed = toolData.OriginalCooldown end if toolData.FireRate then toolData.FireRate = toolData.OriginalCooldown end end end end end end, }) MainTab:CreateSection("Daño del Proyectil") MainTab:CreateToggle({ Name = "Forzar Multiplicador de Daño", CurrentValue = Config.EnableDamageBoost, Flag = "Toggle_DamageBoost", Callback = function(Value) Config.EnableDamageBoost = Value end, }) MainTab:CreateSlider({ Name = "Daño Personalizado", Range = {1, 100000}, Increment = 10, Suffix = " Dmg", CurrentValue = Config.CustomDamage, Flag = "Slider_Damage", Textbox = true, Callback = function(Value) Config.CustomDamage = Value end, }) MainTab:CreateSection("Búsqueda & Rastreo Agresivo (Homing)") MainTab:CreateToggle({ Name = "Forzar Rastreo / Homing Boost", CurrentValue = Config.EnableHomingBoost, Flag = "Toggle_HomingBoost", Callback = function(Value) Config.EnableHomingBoost = Value end, }) MainTab:CreateDropdown({ Name = "Objetivo Objetivo (Target Priority)", Options = {"Más Cercano", "Más Lejano", "Más Débil", "Más Fuerte", "Aleatorio"}, CurrentOption = Config.TargetMode, Flag = "Dropdown_TargetMode", Callback = function(Option) Config.TargetMode = Option end, }) MainTab:CreateSlider({ Name = "Radio de Búsqueda (Homing Radius)", Range = {10, 20000}, Increment = 50, Suffix = " studs", CurrentValue = Config.CustomHomingRadius, Flag = "Slider_HomingRadius", Textbox = true, Callback = function(Value) Config.CustomHomingRadius = Value end, }) MainTab:CreateSlider({ Name = "Fuerza de Giro Extrema (Homing Force)", Range = {10, 50000}, Increment = 100, Suffix = " force", CurrentValue = Config.CustomHomingForce, Flag = "Slider_HomingForce", Textbox = true, Callback = function(Value) Config.CustomHomingForce = Value end, }) -- --- PESTAÑA AJUSTES / RESTAURACIÓN --- local SettingsTab = Window:CreateTab("Ajustes del Hub", 4483362458) SettingsTab:CreateSection("Restauración de Juego") SettingsTab:CreateButton({ Name = "⚠️ Restaurar Juego y Borrar Hub", Callback = function() Config.ModEnabled = false if ProjectileShared and originalSpawn then ProjectileShared.spawn = originalSpawn end if ToolShared and type(ToolShared) == "table" then for _, toolData in pairs(ToolShared) do if type(toolData) == "table" and toolData.OriginalCooldown then if toolData.Cooldown then toolData.Cooldown = toolData.OriginalCooldown end if toolData.AttackSpeed then toolData.AttackSpeed = toolData.OriginalCooldown end if toolData.FireRate then toolData.FireRate = toolData.OriginalCooldown end end end end Rayfield:Notify({ Title = "UNKNOWN HUB", Content = "El juego ha vuelto a su estado original. Destruyendo Hub...", Duration = 3 }) task.wait(1) Rayfield:Destroy() end, }) -- Aplicar el Hook comprobando posición a4 y ajustando velocidad a5 if ProjectileShared and originalSpawn then ProjectileShared.spawn = function(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12) if Config.ModEnabled then local esMio = true if Config.OnlyMe then local char = LocalPlayer.Character local root = char and (char:FindFirstChild("HumanoidRootPart") or char:FindFirstChild("Torso") or char.PrimaryPart) if typeof(a4) == "Vector3" and root then local distancia = (a4 - root.Position).Magnitude if distancia > Config.MaxSpawnDistance then esMio = false end end end if esMio then a6 = Config.CustomLifetime a7 = Config.CustomPierce -- Si se seleccionó un modo diferente a "Más Cercano", recalculamos la dirección inicial if Config.EnableHomingBoost and typeof(a4) == "Vector3" and Config.TargetMode ~= "Más Cercano" then local targetPos = getTargetPosition(a4, Config.CustomHomingRadius) if targetPos and typeof(a5) == "Vector3" then local speed = a5.Magnitude if speed > 0 then a5 = (targetPos - a4).Unit * speed end end end if Config.EnableSpeedBoost and typeof(a5) == "Vector3" then a5 = a5 * Config.CustomSpeedMultiplier end if Config.EnableDamageBoost then a11 = Config.CustomDamage end if Config.EnableHomingBoost then a9 = Config.CustomHomingRadius a10 = Config.CustomHomingForce end end end return originalSpawn(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12) end Rayfield:Notify({ Title = "UNKNOWN HUB Cargado", Content = "Sistema de proyectiles con selección de objetivos listo.", Duration = 4 }) else Rayfield:Notify({ Title = "Atención", Content = "No se pudo acceder a ProjectileShared.", Duration = 5 }) end