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 cada jugador que se une al juego, colócalo dentro del contenedor StarterGui. Cuando un jugador se une a un juego 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 un juego crece en alcance, es posible que necesites múltiples interfaces de pantalla, como una pantalla de título, un menú de configuración, una interfaz de tienda y más. En tales casos, puedes colocar múltiples contenedores únicos ScreenGui dentro de StarterGui y alternar la propiedad Enabled de cada contenedor dependiendo de si debe ser visible y activa (mientras esté en false, el contenido no se renderizará, procesará la entrada del usuario ni se actualizará en respuesta a cambios).

La propiedad Enabled se puede alternar 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 la PlayerGui del jugador y configurándola en true o false para el/los contenedor(es) deseado(s).
Propiedades del contenedor
Las siguientes propiedades te permiten personalizar los márgenes de pantalla en múltiples dispositivos, el orden de visualización al usar múltiples contenedores de pantalla, y más.
Márgenes 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 configuración modal en un ScreenGui frente a la interfaz de usuario principal del juego 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 y se vuelve a clonar en el PlayerGui del jugador) cada vez que el personaje del jugador reaparece.
| Condición | Reinicia |
|---|---|
| ResetOnSpawn es true (por defecto). | SÍ |
| El ScreenGui es un descendiente indirecto de StarterGui; por ejemplo, está colocado dentro de un Folder ubicado 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 parentear un ScreenGui a StarterGui, se clona y sus hijos GuiObjects en el contenedor PlayerGui de un jugador cuando se une al juego 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:
local Players = game:GetService("Players")
local player = Players.LocalPlayer
local playerGui = player.PlayerGui
local titleScreen = playerGui:WaitForChild("TitleScreen")
local settingsMenu = playerGui:WaitForChild("SettingsMenu")
titleScreen.Enabled = false -- Ocultar pantalla de título
settingsMenu.Enabled = true -- Mostrar menú de configuraciónDesactivar la UI por defecto
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 |

local StarterGui = game:GetService("StarterGui")
-- Deshabilitar barra de salud y mochila predeterminadas
StarterGui: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.

local GuiService = game:GetService("GuiService")
GuiService.TouchControlsEnabled = false