< Volver 

PrettyUI

2026-06-11

Librería UI para Roblox basada en atributos. Hover, animaciones, sonido, stacking de GUIs con blur y grupos de selección, sin scripting por botón.

LuauRobloxUI

UI sin código, configurada por atributos.

PrettyUI es una librería UI ligera para Roblox que maneja hover, animaciones de apertura/cierre, feedback de sonido, stacking de GUIs con blur y grupos de selección, configurada completamente a través de atributos de instancia en Studio, sin scripting individual por botón.

Importante

PrettyUI está en una etapa experimental temprana. Se esperan bugs. Contribuir es tan fácil como abrir un issue o un pull request.

Características

  • Configuración sin código: botones, sonidos y navegación se configuran íntegramente mediante atributos de instancia en Studio
  • Registro automático: cualquier ScreenGui con el atributo PManagedGUI = true es detectado al cargar y también en tiempo de ejecución
  • Gestión de GUIs en stack: abrir un GUI lo apila; cerrarlo restaura el anterior, con un blur global suavizado
  • PButton: animación de escala al hover, efecto de brillo en cursor, hooks de sonido y navegación entre GUIs por clic
  • PSelectionGroup: grupos de botones con selección simple o múltiple e imágenes de selección animadas
  • Módulos de eventos: adjunta OnClicked, OnHover, etc. como ModuleScripts hijos directamente en el botón, sin handler central
  • Cleanup con Janitor: cada componente limpia sus propias conexiones y tweens de forma automática

Requisitos

PrettyUI depende de dos paquetes bajo ReplicatedStorage/Packages/:

Paquete Fuente
Promise evaera/promise en Wally
Janitor howmanysmall/janitor en Wally

Instalación

  1. Copia la carpeta Pretty en StarterPlayer/StarterPlayerScripts.
  2. Asegúrate de que Janitor y Promise estén bajo ReplicatedStorage/Packages/.
  3. Llama a :Init() y luego a :Start() desde tu bootstrap de cliente:
local Pretty = require(path.to.Pretty)
Pretty:Init()
Pretty:Start()

Pretty escanea PlayerGui al iniciar y observa nuevos ScreenGuis añadidos en tiempo de ejecución sin cableado adicional.

Estructura de GUI

Cada ScreenGui gestionado debe seguir esta jerarquía:

ScreenGui            ← atributo: PManagedGUI = true
└── Canvas           ← Frame (AnchorPoint 0.5, 0.5), animado al abrir/cerrar
    └── Container    ← Frame, aquí va el contenido real del UI
        ├── ImageButton        ← se convierte en PButton automáticamente
        ├── ImageButton
        └── CanvasGroup        ← se convierte en PSelectionGroup (requiere PSelectionGroup = true)
            ├── ImageButton
            └── ImageButton

Canvas se desliza entre (0.5, 0, 0.5, 0) (abierto) y (0.5, 0, 1.5, 0) (cerrado). El ScreenGui arranca deshabilitado, Pretty lo habilita tras resolver el toggle inicial.

Notas de diseño

La navegación entre GUIs, los grupos de selección y el comportamiento de cierre se configuran con atributos (POpensGUI, PClosesCurrentGUI, PAddsToStack, PSelectionGroup, etc.). La lógica de eventos vive en ModuleScripts hijos nombrados por evento (OnClicked, OnHover, OnSelect) manteniendo cada botón autocontenido y el código libre de handlers centrales.


Licenciada bajo la MIT License - Copyright (c) 2026 Mastedore.