-- Evitar duplicados del menú en PlayerGui local jugadorLocal = game:GetService("Players").LocalPlayer local antiguoSupervivencia = jugadorLocal:WaitForChild("PlayerGui"):FindFirstChild("CoquetteSurvivalUltimateV7") if antiguoSupervivencia then antiguoSupervivencia:Destroy() end local RunService = game:GetService("RunService") local Lighting = game:GetService("Lighting") local Workspace = game:GetService("Workspace") local TweenService = game:GetService("TweenService") local Camara = Workspace.CurrentCamera -- --- VARIABLES DE SUPERVIVENCIA Y ESTADO --- local hambre = 100 local sed = 100 local saludCustom = 100 local velocidadCamaraPrevia = Vector3.new(0,0,0) local parpadeandoActivo = false local modoPrimeraPersona = true local apuntando = false local fovVehiculoTarget = 95 local fovNormalTarget = 70 local fovApuntadoTarget = 50 -- --- CREACIÓN DE LA INTERFAZ GRÁFICA EN PLAYERGUI --- local ScreenGui = Instance.new("ScreenGui") ScreenGui.Name = "CoquetteSurvivalUltimateV7" ScreenGui.ResetOnSpawn = false ScreenGui.Parent = jugadorLocal:WaitForChild("PlayerGui") -- --- INTERFAZ DE CRÉDITOS (ESTILO NEGRO Y GOLD TRANSPARENTE) --- local PanelCreditos = Instance.new("Frame", ScreenGui) PanelCreditos.Size = UDim2.new(0, 260, 0, 150) PanelCreditos.Position = UDim2.new(0, 20, 0.1, 0) PanelCreditos.BackgroundColor3 = Color3.fromRGB(15, 15, 15) PanelCreditos.BackgroundTransparency = 0.35 Instance.new("UICorner", PanelCreditos).CornerRadius = UDim.new(0, 12) local StrokeGold = Instance.new("UIStroke", PanelCreditos) StrokeGold.Color = Color3.fromRGB(212, 175, 55) StrokeGold.Thickness = 2 local TituloCreditos = Instance.new("TextLabel", PanelCreditos) TituloCreditos.Size = UDim2.new(1, 0, 0, 30) TituloCreditos.BackgroundTransparency = 1 TituloCreditos.Text = "✨ ULTIMATE REALISM ENGINE ✨" TituloCreditos.TextColor3 = Color3.fromRGB(212, 175, 55) TituloCreditos.Font = Enum.Font.GothamBold TituloCreditos.TextSize = 12 local InfoCreditos = Instance.new("TextLabel", PanelCreditos) InfoCreditos.Size = UDim2.new(1, -20, 1, -40) InfoCreditos.Position = UDim2.new(0, 10, 0, 30) InfoCreditos.BackgroundTransparency = 1 InfoCreditos.Text = "Developer: ueu9195\nUser: ueu9195\nTikTok: @El_Pantera's-50_crRd\nDiscord: https://discord.gg/eprXQ3E8f\n\n[ Enlace copiado al portapapeles ]" InfoCreditos.TextColor3 = Color3.fromRGB(255, 255, 255) InfoCreditos.Font = Enum.Font.GothamSemibold InfoCreditos.TextSize = 10 InfoCreditos.TextXAlignment = Enum.TextXAlignment.Left -- Copiar enlace de Discord automáticamente al portapapeles if setclipboard then setclipboard("https://discord.gg/eprXQ3E8f") end -- ANIMACIÓN MODERNA Y SUAVE DE DESVANECIMIENTO TRAS 11 SEGUNDOS task.spawn(function() task.wait(11) local infoDesvanecer = TweenInfo.new(1.2, Enum.EasingStyle.Sine, Enum.EasingDirection.Out) local t1 = TweenService:Create(PanelCreditos, infoDesvanecer, {BackgroundTransparency = 1}) local t2 = TweenService:Create(StrokeGold, infoDesvanecer, {Transparency = 1}) local t3 = TweenService:Create(TituloCreditos, infoDesvanecer, {TextTransparency = 1}) local t4 = TweenService:Create(InfoCreditos, infoDesvanecer, {TextTransparency = 1}) t1:Play() t2:Play() t3:Play() t4:Play() t1.Completed:Connect(function() PanelCreditos:Destroy() end) end) -- --- CROSSHAIR (PUNTITO BLANCO) --- local Crosshair = Instance.new("Frame", ScreenGui) Crosshair.Name = "CentroCrosshair" Crosshair.Size = UDim2.new(0, 4, 0, 4) Crosshair.Position = UDim2.new(0.5, -2, 0.5, -2) Crosshair.BackgroundColor3 = Color3.fromRGB(255, 255, 255) Crosshair.BorderSizePixel = 0 Instance.new("UICorner", Crosshair).CornerRadius = UDim.new(1, 0) local CrosshairStroke = Instance.new("UIStroke", Crosshair) CrosshairStroke.Color = Color3.fromRGB(0, 0, 0) CrosshairStroke.Thickness = 1 -- Contenedor de las Barras de Supervivencia local ContenedorBarras = Instance.new("Frame", ScreenGui) ContenedorBarras.Size = UDim2.new(0, 210, 0, 110) ContenedorBarras.Position = UDim2.new(1, -230, 1, -130) ContenedorBarras.BackgroundColor3 = Color3.fromRGB(15, 15, 15) ContenedorBarras.BackgroundTransparency = 0.2 Instance.new("UICorner", ContenedorBarras).CornerRadius = UDim.new(0, 12) local StrokeBarras = Instance.new("UIStroke", ContenedorBarras) StrokeBarras.Color = Color3.fromRGB(212, 175, 55) StrokeBarras.Thickness = 1.5 local function crearBarra(nombre, color, posicionY) local fondo = Instance.new("Frame", ContenedorBarras) fondo.Size = UDim2.new(1, -30, 0, 14) fondo.Position = UDim2.new(0, 15, 0, posicionY) fondo.BackgroundColor3 = Color3.fromRGB(40, 40, 45) Instance.new("UICorner", fondo).CornerRadius = UDim.new(0, 4) local relleno = Instance.new("Frame", fondo) relleno.Name = nombre relleno.Size = UDim2.new(1, 0, 1, 0) relleno.BackgroundColor3 = color Instance.new("UICorner", relleno).CornerRadius = UDim.new(0, 4) local texto = Instance.new("TextLabel", fondo) texto.Size = UDim2.new(1, 0, 1, 0) texto.BackgroundTransparency = 1 texto.Text = nombre .. ": 100%" texto.TextColor3 = Color3.fromRGB(255, 255, 255) texto.Font = Enum.Font.GothamBold texto.TextSize = 9 return relleno, texto end local barraVida, txtVida = crearBarra("SALUD", Color3.fromRGB(200, 50, 50), 20) local barraHambre, txtHambre = crearBarra("HAMBRE", Color3.fromRGB(200, 140, 40), 50) local barraAgua, txtAgua = crearBarra("AGUA", Color3.fromRGB(40, 120, 200), 80) -- --- PÁRPADOS CINEMÁTICOS --- local ParpadoSuperior = Instance.new("Frame", ScreenGui) ParpadoSuperior.Size = UDim2.new(1, 0, 0, 0) ParpadoSuperior.BackgroundColor3 = Color3.fromRGB(0, 0, 0) ParpadoSuperior.BorderSizePixel = 0 local ParpadoInferior = Instance.new("Frame", ScreenGui) ParpadoInferior.Size = UDim2.new(1, 0, 0, 0) ParpadoInferior.Position = UDim2.new(0, 0, 1, 0) ParpadoInferior.BackgroundColor3 = Color3.fromRGB(0, 0, 0) ParpadoInferior.BorderSizePixel = 0 -- --- SHADERS GRÁFICOS Y MEJORAS DE ENTORNO --- setfpscap(1000) Lighting.GlobalShadows = true Lighting.Brightness = 3.9 Lighting.ShadowSoftness = 0.01 Lighting.ExposureCompensation = 0.35 Lighting.EnvironmentDiffuseScale = 1 Lighting.EnvironmentSpecularScale = 1 local BlurEfecto = Lighting:FindFirstChild("SurvivalBlur") or Instance.new("BlurEffect", Lighting) BlurEfecto.Name = "SurvivalBlur" BlurEfecto.Size = 0 local BloomEfecto = Lighting:FindFirstChild("SurvivalBloom") or Instance.new("BloomEffect", Lighting) BloomEfecto.Name = "SurvivalBloom" BloomEfecto.Intensity = 1.6 BloomEfecto.Size = 30 BloomEfecto.Threshold = 0.3 local Color4K = Lighting:FindFirstChild("ColorUltra4K") or Instance.new("ColorCorrectionEffect", Lighting) Color4K.Name = "ColorUltra4K" Color4K.Contrast = 0.2 Color4K.Saturation = 0.25 Color4K.TintColor = Color3.fromRGB(255, 252, 245) -- --- MOTOR DE TEXTURAS ULTRA REALISTAS --- local function inyectarTexturasFotorrealistas() for _, objeto in ipairs(Workspace:GetDescendants()) do if objeto:IsA("BasePart") then -- Incrementar nitidez física de renderizado para asfalto, concreto y suelos if objeto.Material == Enum.Material.Concrete or objeto.Material == Enum.Material.Asphalt or objeto.Material == Enum.Material.CorrodedMetal then objeto.Reflectance = 0.05 elseif objeto.Material == Enum.Material.Grass then objeto.Color = Color3.fromRGB(90, 130, 75) -- Ajuste de tono realista para pasto end end end end task.spawn(inyectarTexturasFotorrealistas) -- --- AJUSTADOR DE SUSPENSIONES REALISTAS Y SUAVES --- local function suavizarSuspensionVehiculo(asiento) local vehiculo = asiento.Parent if vehiculo then for _, pieza in ipairs(vehiculo:GetDescendants()) do -- Configurar dinámicamente cualquier resorte físico del auto para que sea suave y elástico if pieza:IsA("SpringConstraint") then pieza.Stiffness = 3500 -- Más elástico (blando ante baches) pieza.Damping = 450 -- Amortiguación realista para evitar balanceo infinito pieza.FreeLength = pieza.FreeLength + 0.3 elseif pieza:IsA("PrismaticConstraint") and pieza.ActuatorType == Enum.ActuatorType.Spring then pieza.VelocityConstraintMaxForce = 1500 end end end end -- Comandos por Chat local function alEnviarMensaje(mensaje) local msg = mensaje:lower() if msg == "!2pr" then modoPrimeraPersona = false jugadorLocal.CameraMode = Enum.CameraMode.Classic Crosshair.Visible = false elseif msg == "!1pr" then modoPrimeraPersona = true jugadorLocal.CameraMode = Enum.CameraMode.LockFirstPerson Crosshair.Visible = true end end jugadorLocal.Chatted:Connect(alEnviarMensaje) -- Ver manos en primera persona local function hacerBrazosVisibles() local personaje = jugadorLocal.Character if personaje and modoPrimeraPersona then for _, parte in ipairs(personaje:GetChildren()) do if parte:IsA("BasePart") and (parte.Name:find("Arm") or parte.Name:find("Hand") or parte.Name:find("Limb")) then parte.LocalTransparencyModifier = 0 end end end end -- Detector de comida e interacciones de Brookhaven local function conectarDeteccionHerramientas(personaje) personaje.ChildAdded:Connect(function(objeto) if objeto:IsA("Tool") then local nombreItem = objeto.Name:lower() if nombreItem:find("gun") or nombreItem:find("rifle") or nombreItem:find("pistol") or nombreItem:find("weapon") or nombreItem:find("mira") then apuntando = true end objeto.Activated:Connect(function() if nombreItem:find("food") or nombreItem:find("burger") or nombreItem:find("pizza") or nombreItem:find("donut") or nombreItem:find("sandwich") or nombreItem:find("fruit") or nombreItem:find("apple") or nombreItem:find("berry") or nombreItem:find("icecream") then hambre = math.min(hambre + 30, 100) elseif nombreItem:find("drink") or nombreItem:find("water") or nombreItem:find("soda") or nombreItem:find("juice") or nombreItem:find("coffee") or nombreItem:find("milk") or nombreItem:find("bottle") then sed = math.min(sed + 35, 100) end end) end end) personaje.ChildRemoved:Connect(function(objeto) if objeto:IsA("Tool") then apuntando = false end end) end -- Parpadeo Realista local function ejecutarParpadoAnimado(duracionCierre, duracionEspera, duracionApertura) if parpadeandoActivo then return end parpadeandoActivo = true local infoCierre = TweenInfo.new(duracionCierre, Enum.EasingStyle.Sine, Enum.EasingDirection.In) local infoApertura = TweenInfo.new(duracionApertura, Enum.EasingStyle.Sine, Enum.EasingDirection.Out) local tweenSupCerrar = TweenService:Create(ParpadoSuperior, infoCierre, {Size = UDim2.new(1, 0, 0.5, 0)}) local tweenInfCerrar = TweenService:Create(ParpadoInferior, infoCierre, {Size = UDim2.new(1, 0, 0.5, 0), Position = UDim2.new(0, 0, 0.5, 0)}) local tweenSupAbrir = TweenService:Create(ParpadoSuperior, infoApertura, {Size = UDim2.new(1, 0, 0, 0)}) local tweenInfAbrir = TweenService:Create(ParpadoInferior, infoApertura, {Size = UDim2.new(1, 0, 0, 0), Position = UDim2.new(0, 0, 1, 0)}) tweenSupCerrar:Play() tweenInfCerrar:Play() tweenSupCerrar.Completed:Connect(function() task.wait(duracionEspera) tweenSupAbrir:Play() tweenInfAbrir:Play() end) tweenSupAbrir.Completed:Connect(function() parpadeandoActivo = false end) end jugadorLocal.CharacterAdded:Connect(function(nuevoPersonaje) conectarDeteccionHerramientas(nuevoPersonaje) task.wait(0.2) if modoPrimeraPersona then jugadorLocal.CameraMode = Enum.CameraMode.LockFirstPerson Crosshair.Visible = true end end) if jugadorLocal.Character then conectarDeteccionHerramientas(jugadorLocal.Character) end -- --- BUCLE CENTRAL ULTIMATE --- local cronometroParpadeo = 0 local intervaloParpadeoEstablecido = math.random(600, 1200) RunService.RenderStepped:Connect(function(delta) local personaje = jugadorLocal.Character if not personaje then return end local humanoide = personaje:FindFirstChildOfClass("Humanoid") local hrp = personaje:FindFirstChild("HumanoidRootPart") if modoPrimeraPersona and jugadorLocal.CameraMode ~= Enum.CameraMode.LockFirstPerson then jugadorLocal.CameraMode = Enum.CameraMode.LockFirstPerson Crosshair.Visible = true end hacerBrazosVisibles() -- 1. EFECTO MOTION BLUR Y CAMERA BOBBING if hrp then local velocidadCamaraActual = Camara.CFrame.LookVector local rotacionVelocidad = (velocidadCamaraActual - velocidadCamaraPrevia).Magnitude if rotacionVelocidad > 0.04 then BlurEfecto.Size = math.min(rotacionVelocidad * 140, 18) else BlurEfecto.Size = BlurEfecto.Size + (0 - BlurEfecto.Size) * 0.15 end velocidadCamaraPrevia = velocidadCamaraActual -- Balanceo realista de cámara al caminar if humanoide and humanoide.MoveDirection.Magnitude > 0 and humanoide.FloorMaterial ~= Enum.Material.Air then local tiempo = tick() * (humanoide.WalkSpeed * 0.7) local balanceoX = math.cos(tiempo) * 0.04 local balanceoY = math.abs(math.sin(tiempo)) * 0.04 Camara.HumanoidCameraOffset = Vector3.new(balanceoX, balanceoY, 0) else Camara.HumanoidCameraOffset = Vector3.new(0, 0, 0) end end -- 2. CONTROL DE FOV Y MONITOREO DE AUTO (SUSPENSIÓN) if humanoide then if apuntando then Camara.FieldOfView = Camara.FieldOfView + (fovApuntadoTarget - Camara.FieldOfView) * 0.12 elseif humanoide.SeatPart and humanoide.SeatPart:IsA("VehicleSeat") then suavizarSuspensionVehiculo(humanoide.SeatPart) -- Aplicar física blanda al auto conducido Camara.FieldOfView = Camara.FieldOfView + (fovVehiculoTarget - Camara.FieldOfView) * 0.08 else Camara.FieldOfView = Camara.FieldOfView + (fovNormalTarget - Camara.FieldOfView) * 0.08 end end -- 3. CRONÓMETRO DE PARPADEO SUPER DISTANCIADO cronometroParpadeo = cronometroParpadeo + delta if cronometroParpadeo >= intervaloParpadeoEstablecido then cronometroParpadeo = 0 if hambre <= 25 then ejecutarParpadoAnimado(0.7, 2.0, 0.9) intervaloParpadeoEstablecido = math.random(15, 30) else ejecutarParpadoAnimado(0.08, 0.05, 0.08) intervaloParpadeoEstablecido = math.random(600, 1200) end end -- 4. DAÑO POR CAÍDA REALISTA Y RAGDOLL if hrp and humanoide then local velocidadDescenso = hrp.Velocity.Y if velocidadDescenso < -42 and humanoide:GetState() == Enum.HumanoidStateType.Landed then local impacto = math.floor(math.abs(velocidadDescenso) * 0.85) saludCustom = math.max(saludCustom - impacto, 0) humanoide:ChangeState(Enum.HumanoidStateType.Ragdoll) end end -- 5. CONSUMO PASIVO Y DAÑO VISUAL hambre = math.max(hambre - (delta * 0.025), 0) sed = math.max(sed - (delta * 0.035), 0) if hambre == 0 or sed == 0 then saludCustom = math.max(saludCustom - (delta * 1.5), 0) end if saludCustom < 40 then Color4K.TintColor = Color3.fromRGB(255, 180, 180) else Color4K.TintColor = Color3.fromRGB(255, 253, 247) end -- 6. REFRESCAR BARRAS EN PANTALLA barraVida.Size = UDim2.new(saludCustom / 100, 0, 1, 0) txtVida.Text = "SALUD: " .. math.floor(saludCustom) .. "%" barraHambre.Size = UDim2.new(hambre / 100, 0, 1, 0) txtHambre.Text = "HAMBRE: " .. math.floor(hambre) .. "%" barraAgua.Size = UDim2.new(sed / 100, 0, 1, 0) txtAgua.Text = "AGUA: " .. math.floor(sed) .. "%" if saludCustom <= 0 and humanoide then humanoide.Health = 0 saludCustom = 100 hambre = 100 sed = 100 end end)