FPS
Key Required

FPS

[UP] Just a baseplate.FluxDevFluxDev 1.4K views 4.9K executesUpdated Aug 31, 2026
Unrated
00
Lua Script•259 lines (8918 chars)
--[[
  Script: FPS + RAM + Control de gráficos para Roblox (Solara)
  ACTUALIZACIÓN: FPS y RAM en TIEMPO REAL (actualizan cada frame).
  Depende totalmente del rendimiento del dispositivo.
]]

-- Servicios
local Players = game:GetService("Players")
local RunService = game:GetService("RunService")
local UserSettings = game:GetService("UserSettings")
local Lighting = game:GetService("Lighting")
local player = Players.LocalPlayer

-- ============================================
-- CREAR GUI
-- ============================================
local gui = Instance.new("ScreenGui")
gui.Name = "FPS_RAM_GUI"
gui.ResetOnSpawn = false
gui.Parent = player:WaitForChild("PlayerGui")

local frame = Instance.new("Frame")
frame.Size = UDim2.new(0, 220, 0, 160)
frame.Position = UDim2.new(0, 10, 0, 10)
frame.BackgroundColor3 = Color3.new(0, 0, 0)
frame.BackgroundTransparency = 0.6
frame.BorderSizePixel = 0
frame.Active = true
frame.Draggable = true
frame.Parent = gui

-- Título
local title = Instance.new("TextLabel")
title.Size = UDim2.new(1, 0, 0, 25)
title.Position = UDim2.new(0, 0, 0, 0)
title.BackgroundTransparency = 1
title.Text = "📊 Monitor (Tiempo Real)"
title.TextColor3 = Color3.new(1, 1, 1)
title.TextSize = 16
title.Font = Enum.Font.SourceSansBold
title.Parent = frame

-- Etiqueta FPS (se actualizará cada frame)
local fpsLabel = Instance.new("TextLabel")
fpsLabel.Size = UDim2.new(1, 0, 0, 20)
fpsLabel.Position = UDim2.new(0, 0, 0, 30)
fpsLabel.BackgroundTransparency = 1
fpsLabel.Text = "FPS: 0"
fpsLabel.TextColor3 = Color3.new(1, 1, 0)
fpsLabel.TextSize = 14
fpsLabel.Font = Enum.Font.SourceSans
fpsLabel.TextXAlignment = Enum.TextXAlignment.Left
fpsLabel.Parent = frame

-- Etiqueta RAM (se actualizará cada frame)
local ramLabel = Instance.new("TextLabel")
ramLabel.Size = UDim2.new(1, 0, 0, 20)
ramLabel.Position = UDim2.new(0, 0, 0, 52)
ramLabel.BackgroundTransparency = 1
ramLabel.Text = "RAM: 0 MB"
ramLabel.TextColor3 = Color3.new(0, 1, 1)
ramLabel.TextSize = 14
ramLabel.Font = Enum.Font.SourceSans
ramLabel.TextXAlignment = Enum.TextXAlignment.Left
ramLabel.Parent = frame

-- Botón "Bajar"
local lowerBtn = Instance.new("TextButton")
lowerBtn.Size = UDim2.new(0, 70, 0, 25)
lowerBtn.Position = UDim2.new(0, 10, 0, 80)
lowerBtn.Text = "⬇ Bajar"
lowerBtn.BackgroundColor3 = Color3.new(0.2, 0.2, 0.8)
lowerBtn.TextColor3 = Color3.new(1, 1, 1)
lowerBtn.TextSize = 12
lowerBtn.Font = Enum.Font.SourceSansBold
lowerBtn.Parent = frame

-- Botón "Subir"
local raiseBtn = Instance.new("TextButton")
raiseBtn.Size = UDim2.new(0, 70, 0, 25)
raiseBtn.Position = UDim2.new(0, 85, 0, 80)
raiseBtn.Text = "⬆ Subir"
raiseBtn.BackgroundColor3 = Color3.new(0.8, 0.2, 0.2)
raiseBtn.TextColor3 = Color3.new(1, 1, 1)
raiseBtn.TextSize = 12
raiseBtn.Font = Enum.Font.SourceSansBold
raiseBtn.Parent = frame

-- Botón "Efectos"
local effectsBtn = Instance.new("TextButton")
effectsBtn.Size = UDim2.new(0, 70, 0, 25)
effectsBtn.Position = UDim2.new(0, 160, 0, 80)
effectsBtn.Text = "🎨 Efectos"
effectsBtn.BackgroundColor3 = Color3.new(0.2, 0.6, 0.2)
effectsBtn.TextColor3 = Color3.new(1, 1, 1)
effectsBtn.TextSize = 12
effectsBtn.Font = Enum.Font.SourceSansBold
effectsBtn.Parent = frame

-- Botón "Restaurar"
local restoreBtn = Instance.new("TextButton")
restoreBtn.Size = UDim2.new(0, 70, 0, 25)
restoreBtn.Position = UDim2.new(0, 85, 0, 115)
restoreBtn.Text = "🔄 Restaurar"
restoreBtn.BackgroundColor3 = Color3.new(0.6, 0.6, 0.2)
restoreBtn.TextColor3 = Color3.new(1, 1, 1)
restoreBtn.TextSize = 12
restoreBtn.Font = Enum.Font.SourceSansBold
restoreBtn.Parent = frame

-- Botón "Cerrar"
local closeBtn = Instance.new("TextButton")
closeBtn.Size = UDim2.new(0, 20, 0, 20)
closeBtn.Position = UDim2.new(1, -25, 0, 5)
closeBtn.Text = "✕"
closeBtn.BackgroundColor3 = Color3.new(1, 0, 0)
closeBtn.TextColor3 = Color3.new(1, 1, 1)
closeBtn.TextSize = 12
closeBtn.Font = Enum.Font.SourceSansBold
closeBtn.Parent = frame
closeBtn.MouseButton1Click:Connect(function()
    gui:Destroy()
end)

-- ============================================
-- VARIABLES GLOBALES
-- ============================================
local effectsEnabled = true
local effectsBackup = {}   -- Guarda el estado original de los efectos

-- ============================================
-- FUNCIONES PARA OBTENER FPS Y RAM
-- ============================================
local function getFPS()
    if getfps then
        return getfps()  -- Función nativa del exploit (si existe)
    end
    -- Si no existe, usamos el cálculo manual en RenderStepped
    return nil
end

local function getRAM()
    if getram then
        return getram()  -- en MB (función nativa del exploit)
    end
    -- Alternativa con Lua (memoria aproximada del script)
    return collectgarbage("count") / 1024  -- KB a MB
end

-- ============================================
-- LOOP PRINCIPAL: TIEMPO REAL (CADA FRAME)
-- ============================================
-- NOTA: Si quieres un número más estable (suavizado), descomenta la variable 
-- 'smoothFPS' y la línea de EMA, y comenta la línea 'fps = 1 / deltaTime'.
-- local smoothFPS = 60

RunService.RenderStepped:Connect(function(deltaTime)
    -- 1. CÁLCULO DE FPS EN TIEMPO REAL (depende 100% del dispositivo)
    local fps = 1 / deltaTime
    -- Si quieres suavizado (menos parpadeo), usa esto en vez de la línea de arriba:
    -- smoothFPS = (smoothFPS * 0.85) + ((1 / deltaTime) * 0.15)
    -- local fps = smoothFPS
    
    -- Mostrar FPS redondeado (sin decimales)
    fpsLabel.Text = "FPS: " .. math.floor(fps + 0.5)

    -- 2. RAM EN TIEMPO REAL (se lee cada frame)
    local ram = getRAM()
    if ram then
        ramLabel.Text = "RAM: " .. string.format("%.2f", ram) .. " MB"
    else
        ramLabel.Text = "RAM: -- MB"
    end
end)

-- ============================================
-- CONTROL DE CALIDAD GRÁFICA
-- ============================================
local function setGraphicsLevel(level)
    level = math.clamp(level, 1, 10)
    local gameSettings = UserSettings:GetService("UserGameSettings")
    if gameSettings then
        gameSettings.GraphicsQualityLevel = level
        gameSettings.GraphicsMode = Enum.GraphicsMode.Quality
    end
end

lowerBtn.MouseButton1Click:Connect(function()
    local gameSettings = UserSettings:GetService("UserGameSettings")
    local current = gameSettings.GraphicsQualityLevel or 5
    setGraphicsLevel(current - 1)
end)

raiseBtn.MouseButton1Click:Connect(function()
    local gameSettings = UserSettings:GetService("UserGameSettings")
    local current = gameSettings.GraphicsQualityLevel or 5
    setGraphicsLevel(current + 1)
end)

-- ============================================
-- CONTROL DE EFECTOS VISUALES
-- ============================================
local function toggleEffects(enable)
    if enable then
        for _, data in ipairs(effectsBackup) do
            if data.obj and data.obj.Parent then
                data.obj[data.prop] = data.value
            end
        end
        effectsBackup = {}
        effectsEnabled = true
        effectsBtn.Text = "🎨 Efectos"
        effectsBtn.BackgroundColor3 = Color3.new(0.2, 0.6, 0.2)
    else
        effectsBackup = {}
        local props = {"GlobalShadows", "Brightness", "OutdoorAmbient", "Bloom", "Blur", "ColorCorrection"}
        for _, prop in ipairs(props) do
            if Lighting[prop] ~= nil then
                table.insert(effectsBackup, {obj = Lighting, prop = prop, value = Lighting[prop]})
            end
        end
        Lighting.GlobalShadows = false
        Lighting.Brightness = 0
        Lighting.OutdoorAmbient = Color3.new(0,0,0)
        if Lighting.Bloom then Lighting.Bloom.Enabled = false end
        if Lighting.Blur then Lighting.Blur.Enabled = false end
        if Lighting.ColorCorrection then Lighting.ColorCorrection.Enabled = false end

        for _, obj in ipairs(game:GetDescendants()) do
            if obj:IsA("ParticleEmitter") or obj:IsA("Trail") or obj:IsA("Beam") or
               obj:IsA("Smoke") or obj:IsA("Fire") or obj:IsA("Sparkles") or
               obj:IsA("PointLight") or obj:IsA("SpotLight") or obj:IsA("SurfaceLight") then
                table.insert(effectsBackup, {obj = obj, prop = "Enabled", value = obj.Enabled})
                obj.Enabled = false
            end
        end
        effectsEnabled = false
        effectsBtn.Text = "🚫 Efectos OFF"
        effectsBtn.BackgroundColor3 = Color3.new(0.6, 0.2, 0.2)
    end
end

effectsBtn.MouseButton1Click:Connect(function()
    if effectsEnabled then
        toggleEffects(false)
    else
        toggleEffects(true)
    end
end)

restoreBtn.MouseButton1Click:Connect(function()
    toggleEffects(true)
end)

-- ============================================
-- INICIO
-- ============================================
print("✅ Script FPS/RAM en TIEMPO REAL cargado correctamente.")
print("📌 Los FPS se actualizan en cada frame según el rendimiento de tu dispositivo.")

Features & Information

Calcula los FPS usando

Community Comments (1)

FluxDevFluxDevSep 2, 2026

Hello

More Scripts for [UP] Just a baseplate.