El contenedor ScreenGui contiene GuiObjects para mostrar en la pantalla de un jugador, incluyendo marcos, etiquetas, botones y más. Todos los objetos de UI en pantalla y el código se almacenan y cambian en el cliente.

Para mostrar un ScreenGui y sus hijos GuiObjects a todos los jugadores que se unan a la experiencia, colócalo dentro del contenedor StarterGui. Cuando un jugador se une a una experiencia y su personaje aparece por primera vez, el ScreenGui y su contenido se clonan en el contenedor PlayerGui de ese jugador, ubicado dentro del contenedor Players.

A medida que una experiencia crece en alcance, es posible que necesites múltiples interfaces de pantalla, como una pantalla de título, un menú de configuraciones, una interfaz de tienda y más. En tales casos, puedes colocar múltiples contenedores únicos de ScreenGui dentro de StarterGui y alternar la propiedad Enabled de cada contenedor dependiendo de si debe ser visible y estar activo (cuando es false, el contenido no se renderiza, no procesa la entrada del usuario ni se actualiza en respuesta a cambios).

La propiedad Enabled puede ser activada inicialmente a través de la ventana de Propiedades y/o puedes configurarla durante el tiempo de juego desde un script del lado del cliente accediendo a PlayerGui del jugador y configurándola como true o false para el/los contenedor(es) deseado(s).
Propiedades del contenedor
Las siguientes propiedades te permiten personalizar los insets de pantalla a través de múltiples dispositivos, el orden de visualización al usar múltiples contenedores de pantalla, y más.
Insets de pantalla
Los teléfonos modernos aprovechan toda la pantalla, pero normalmente incluyen muescas, recortes y otros elementos que ocupan espacio en la pantalla. Cada juego de Roblox también incluye los controles de la barra superior para un acceso rápido al menú principal, chat, tablón de líderes y más.

Para asegurar que los jugadores puedan ver y acceder fácilmente a toda la interfaz de usuario sin obstrucciones, Roblox proporciona la propiedad ScreenInsets, que controla los insets del área segura para los contenidos de un ScreenGui.
El valor predeterminado de CoreUISafeInsets mantiene todos los GuiObjects descendientes dentro del área segura de la interfaz de usuario principal, libre de los botones de la barra superior y otros recortes de pantalla. Esta configuración se recomienda si el ScreenGui contiene elementos de interfaz de usuario interactivos.

Orden de visualización
Al usar múltiples interfaces ScreenGui, puedes superponerlas por índice Z a través de su propiedad DisplayOrder. Por ejemplo, para mostrar un menú de configuraciones modal en un ScreenGui al frente de la interfaz de usuario principal de la experiencia en otro ScreenGui, asigna un DisplayOrder más alto al modal que al interfaz subyacente.
Reiniciar al reaparecer
La propiedad booleana ResetOnSpawn determina si el ScreenGui se reinicia (se elimina a sí mismo y se vuelve a clonar en el PlayerGui del jugador) cada vez que el personaje del jugador reaparece.
| Condición | Reinicia |
|---|---|
| ResetOnSpawn es true (predeterminado). | SÍ |
| El ScreenGui es un descendiente indirecto de StarterGui; por ejemplo, está colocado dentro de un Folder situado dentro de StarterGui. | SÍ |
| ResetOnSpawn es false y el ScreenGui es un descendiente directo de StarterGui. | NO |
Acceder a la UI del jugador
Como se mencionó, al parentar un ScreenGui a StarterGui, se clona y sus hijos GuiObjects en el contenedor PlayerGui de un jugador cuando se une a la experiencia y su personaje aparece por primera vez.
Si necesitas controlar el contenedor de UI de un jugador durante el tiempo de juego, por ejemplo, para mostrar/ocultar un ScreenGui específico o cualquiera de sus hijos, accede a él de la siguiente manera desde un LocalScript:
LocalScript - Accediendo a la UI de un Jugadorlocal Players = game:GetService("Players")local player = Players.LocalPlayerlocal playerGui = player.PlayerGuilocal titleScreen = playerGui:WaitForChild("TitleScreen")local settingsMenu = playerGui:WaitForChild("SettingsMenu")titleScreen.Enabled = false -- Ocultar pantalla de títulosettingsMenu.Enabled = true -- Mostrar menú de configuraciones
Desactivar la UI predeterminada
Todos los juegos de Roblox incluyen varios elementos de UI que están habilitados por defecto. Si no necesitas ninguno de estos elementos o si deseas reemplazarlos con tus propias creaciones, puedes usar el método SetCoreGuiEnabled() en un script del lado del cliente con la opción Enum.CoreGuiType asociada.
| UI por defecto | Enum asociado |
|---|---|
| Lista de Players actualizada dinámicamente, comúnmente utilizada como un tabla de clasificación. | Enum.CoreGuiType.PlayerList |
| Barra de Salud del personaje. No aparece si el Humanoid del personaje está a plena salud. | Enum.CoreGuiType.Health |
| El Backpack del personaje que contiene herramientas en el juego. No aparece si no hay Herramientas en la mochila. | Enum.CoreGuiType.Backpack |
| La ventana de chat de texto. | Enum.CoreGuiType.Chat |
| Menú emergente de emotes del personaje. | Enum.CoreGuiType.EmotesMenu |
| Una ventana que muestra la perspectiva o vista de su propio personaje. No aparece a menos que el jugador haya habilitado Vista Propia desde el menú de Roblox. | Enum.CoreGuiType.SelfView |
| Un botón de captura de pantalla a lo largo del lado derecho de la pantalla. No aparece a menos que el jugador haya habilitado Capturas desde el menú de Roblox. | Enum.CoreGuiType.Captures |
| El Selector de Avatar permite a los usuarios cambiar su avatar de plataforma. | Enum.CoreGuiType.AvatarSwitcher |

Script del Cliente - Deshabilitar Elementos de UI Predeterminadoslocal StarterGui = game:GetService("StarterGui")-- Deshabilitar barra de salud y mochila predeterminadasStarterGui:SetCoreGuiEnabled(Enum.CoreGuiType.Health, false)StarterGui:SetCoreGuiEnabled(Enum.CoreGuiType.Backpack, false)
Además, los dispositivos con capacidades táctiles incluyen un joystick virtual y un botón de salto por defecto. Si lo deseas, puedes ocultar estos elementos configurando GuiService.TouchControlsEnabled a false en un script del lado del cliente.

Script del Cliente - Deshabilitar Controles Táctileslocal GuiService = game:GetService("GuiService")GuiService.TouchControlsEnabled = false