< Volver 
librería ui para roblox

PrettyUI

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.

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.

⚠️ 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/:

PaqueteFuente
Promiseevaera/promise en Wally
Janitorhowmanysmall/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.