O contêiner ScreenGui contém GuiObjects para exibir na tela de um jogador, incluindo frames, rótulos, botões e mais. Todos os objetos de UI na tela e o código são armazenados e alterados no cliente.

Para exibir um ScreenGui e seus filhos GuiObjects para todos os jogadores que entram no jogo, coloque-o dentro do contêiner StarterGui. Quando um jogador entra em um jogo e seu personagem aparece pela primeira vez, o ScreenGui e seu conteúdo são clonados para o contêiner PlayerGui daquele jogador, localizado dentro do contêiner Players.

À medida que um jogo cresce em escopo, você pode precisar de várias interfaces de tela, como uma tela de título, menu de configurações, interface de loja e mais. Nesses casos, você pode colocar vários contêineres ScreenGui únicos dentro de StarterGui e alternar a propriedade Enabled de cada contêiner dependendo de se ele deve ser visível e ativo (quando false, o conteúdo não será renderizado, processará entrada do usuário ou será atualizado em resposta a mudanças).

A propriedade Enabled pode ser inicialmente alternada através da janela de Propriedades e/ou você pode defini-la durante o tempo de jogo a partir de um script do lado do cliente acessando o PlayerGui do jogador e definindo-o como true ou false para o(s) contêiner(es) desejado(s).
Propriedades do contêiner
As seguintes propriedades permitem que você personalize os insets da tela em vários dispositivos, a ordem de exibição ao usar múltiplos contêineres de tela e mais.
Insets da tela
Os telefones modernos aproveitam toda a tela, mas normalmente incluem entalhes, recortes e outros elementos que ocupam espaço na tela. Cada jogo Roblox também inclui os controles da barra superior para acesso rápido ao menu principal, bate-papo, quadro de líderes e muito mais.

Para garantir que os jogadores possam ver e acessar todas as interfaces do usuário facilmente e sem obstruções, o Roblox fornece a propriedade ScreenInsets, que controla os insets da área segura para os conteúdos de um ScreenGui.
O padrão de CoreUISafeInsets mantém todos os GuiObjects descendentes dentro da área segura da interface do usuário principal, longe dos botões da barra superior e de outros recortes de tela. Esta configuração é recomendada se o ScreenGui contiver elementos de interface do usuário interativos.

Ordem de exibição
Ao usar várias interfaces ScreenGui, você pode sobrepô-las por índice Z através da propriedade DisplayOrder. Por exemplo, para exibir um menu de configurações modal em um ScreenGui na frente da interface principal do jogo em outro ScreenGui, atribua uma DisplayOrder mais alta ao modal do que à interface subjacente.
Redefinir ao renascer
A propriedade booleana ResetOnSpawn determina se o ScreenGui é redefinido (deleta a si mesmo e é reclonado no PlayerGui do jogador) toda vez que o personagem do jogador renasce.
| Condição | Redefine |
|---|---|
| ResetOnSpawn é true (padrão). | SIM |
| O ScreenGui é um descendente indireto de StarterGui; por exemplo, está colocado dentro de um Folder localizado dentro de StarterGui. | SIM |
| ResetOnSpawn é false e o ScreenGui é um descendente direto de StarterGui. | NÃO |
Acessar UI do jogador
Como mencionado, ao parentar um ScreenGui ao StarterGui, ele é clonado e seus filhos GuiObjects são clonados para o contêiner PlayerGui de um jogador quando ele entra no jogo e seu personagem aparece pela primeira vez.
Se você precisar controlar o contêiner de UI de um jogador durante o tempo de jogo, por exemplo, para mostrar/ocultar um ScreenGui específico ou qualquer um de seus filhos, acesse-o da seguinte forma a partir de um 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 tela de título
settingsMenu.Enabled = true -- Mostrar menu de configuraçõesDesativar UI padrão
Todos os jogos do Roblox incluem vários elementos de interface do usuário que estão habilitados por padrão. Se você não precisar de nenhum desses elementos ou se quiser substituí-los por suas próprias criações, você pode usar o método SetCoreGuiEnabled() em um script do lado do cliente com a opção Enum.CoreGuiType associada.
| UI Padrão | Enum associado |
|---|---|
| Lista Players atualizada dinamicamente, comumente usada como um placar. | Enum.CoreGuiType.PlayerList |
| A barra de Saúde do personagem. Não aparece se a Humanoid do personagem estiver com a saúde completa. | Enum.CoreGuiType.Health |
| A Backpack do personagem que contém ferramentas do jogo. Não aparece se não houver Ferramentas na mochila. | Enum.CoreGuiType.Backpack |
| A janela de chat de texto. | Enum.CoreGuiType.Chat |
| Menu pop-up de emotes do personagem. | Enum.CoreGuiType.EmotesMenu |
| Uma janela exibindo a perspectiva do jogador ou a visão de seu próprio personagem. Não aparece a menos que o jogador tenha ativado Visualização Própria no menu do Roblox. | Enum.CoreGuiType.SelfView |
| Um botão de capturar tela ao longo do lado direito da tela. Não aparece a menos que o jogador tenha ativado Capturas no menu do Roblox. | Enum.CoreGuiType.Captures |
| O Alternador de Avatar permite que os usuários mudem seu avatar da plataforma. | Enum.CoreGuiType.AvatarSwitcher |

local StarterGui = game:GetService("StarterGui")
-- Desativar barra de saúde padrão e mochila
StarterGui:SetCoreGuiEnabled(Enum.CoreGuiType.Health, false)
StarterGui:SetCoreGuiEnabled(Enum.CoreGuiType.Backpack, false)Além disso, dispositivos com capacidades de toque incluem um controle deslizante virtual e um botão de pular por padrão. Se desejar, você pode esconder esses elementos definindo GuiService.TouchControlsEnabled como false em um script do lado do cliente.

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