De ScreenGui container houdt GuiObjects vast om weer te geven op het scherm van een speler, inclusief frames, labels, knoppen en meer. Alle UI-objecten op het scherm en de code worden opgeslagen en gewijzigd op de client.

Om een ScreenGui en zijn kind GuiObjects weer te geven aan elke speler die het spel betreedt, plaats je het binnen de StarterGui container. Wanneer een speler een spel betreedt en hun karakter voor het eerst verschijnt, worden de ScreenGui en de inhoud ervan gekloond naar de PlayerGui container voor die speler, die zich binnen de Players container bevindt.

Naarmate een spel in omvang toeneemt, heb je mogelijk meerdere scherminterfaces nodig, zoals een titel scherm, instellingenmenu, winkelinterface en meer. In dergelijke gevallen kun je meerdere unieke ScreenGui containers binnen StarterGui plaatsen en de Enabled eigenschap van elke container in- of uitschakelen, afhankelijk van of deze zichtbaar en actief moet zijn (terwijl false, worden de inhoud niet weergegeven, verwerkt gebruikersinvoer of bijgewerkt in reactie op wijzigingen).

De Enabled eigenschap kan aanvankelijk worden in- of uitgeschakeld via het Eigenschappen venster en/of je kunt het tijdens de speeltijd instellen vanuit een client-side script door de PlayerGui van de speler te benaderen en het in te stellen op true of false voor de gewenste container(s).
Container eigenschappen
De volgende eigenschappen stellen je in staat om de scherminzetten over meerdere apparaten, de weergavevolgorde bij het gebruik van meerdere schermcontainers en meer aan te passen.
Scherminzetten
Moderne telefoons maken gebruik van het volledige scherm, maar bevatten doorgaans inkepingen, uitsparingen en andere elementen die schermruimte innemen. Elke Roblox-game bevat ook de bovenbalkbedieningselementen voor snelle toegang tot het hoofdmenu, chat, leaderboard en meer.

Om ervoor te zorgen dat spelers alle UI gemakkelijk kunnen zien en benaderen zonder obstructie, biedt Roblox de ScreenInsets eigenschap die de veilige gebied insets voor de inhoud van een ScreenGui beheert.
De standaardinstelling van CoreUISafeInsets houdt alle afgeleide GuiObjects binnen het veilige gebied van de kern UI, vrij van de bovenbalkknoppen en andere schermuitsparingen. Deze instelling wordt aanbevolen als de ScreenGui interactieve UI-elementen bevat.

Weergavevolgorde
Bij het gebruik van meerdere ScreenGui interfaces, kun je ze stapelen op basis van Z-index via hun DisplayOrder eigenschap. Bijvoorbeeld, om een modaal instellingenmenu op één ScreenGui voor de hoofdgebruikersinterface van het spel op een andere ScreenGui weer te geven, wijs je een hogere DisplayOrder toe aan het modale dan aan de onderliggende interface.
Reset bij spawnen
De ResetOnSpawn boolean eigenschap bepaalt of de ScreenGui reset (verwijdert zichzelf en kloont opnieuw naar de PlayerGui van de speler) elke keer dat het karakter van de speler opnieuw spawnt.
| Voorwaarde | Reset |
|---|---|
| ResetOnSpawn is true (standaard). | JA |
| De ScreenGui is een indirecte afstammeling van StarterGui; bijvoorbeeld, het is geplaatst binnen een Folder die zich binnen StarterGui bevindt. | JA |
| ResetOnSpawn is false en de ScreenGui is een directe afstammeling van StarterGui. | NEE |
Toegang tot speler UI
Zoals opgemerkt, kloont het ouderschap van een ScreenGui naar StarterGui het en zijn kind GuiObjects naar de PlayerGui container van een speler wanneer ze het spel betreden en hun karakter voor het eerst verschijnt.
Als je de UI-container van een speler tijdens de speeltijd wilt bedienen, bijvoorbeeld om een specifieke ScreenGui of een van zijn kinderen te tonen/verbergen, benader je het als volgt vanuit een 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 -- Verberg titel scherm
settingsMenu.Enabled = true -- Toon instellingenmenuStandaard UI uitschakelen
Alle Roblox-spellen bevatten verschillende UI-elementen die standaard zijn ingeschakeld. Als je een van deze elementen niet nodig hebt of als je ze wilt vervangen door je eigen creaties, kun je de SetCoreGuiEnabled()-methode gebruiken in een client-side script met de bijbehorende Enum.CoreGuiType-optie.
| Standaard UI | Bijbehorende enum |
|---|---|
| Dynamisch bijgewerkte Players-lijst, vaak gebruikt als een leaderboard. | Enum.CoreGuiType.PlayerList |
| De Health-balk van het personage. Verschijnt niet als de Humanoid van het personage op volle gezondheid is. | Enum.CoreGuiType.Health |
| De Backpack van het personage die in-game tools bevat. Verschijnt niet als er geen Tools in de rugzak zijn. | Enum.CoreGuiType.Backpack |
| Het tekstchat venster. | Enum.CoreGuiType.Chat |
| Pop-upmenu van karakter emotes. | Enum.CoreGuiType.EmotesMenu |
| Een venster dat het perspectief of het uitzicht van een speler op hun eigen personage weergeeft. Verschijnt niet tenzij de speler Zelf Weergave heeft ingeschakeld vanuit het Roblox-menu. | Enum.CoreGuiType.SelfView |
| Een screenshot maken-knop aan de rechterkant van het scherm. Verschijnt niet tenzij de speler Captures heeft ingeschakeld vanuit het Roblox-menu. | Enum.CoreGuiType.Captures |
| De Avatar Switcher stelt gebruikers in staat om hun platformavatar te wijzigen. | Enum.CoreGuiType.AvatarSwitcher |

local StarterGui = game:GetService("StarterGui")
-- Standaard gezondheidsbalk en rugzak uitschakelen
StarterGui:SetCoreGuiEnabled(Enum.CoreGuiType.Health, false)
StarterGui:SetCoreGuiEnabled(Enum.CoreGuiType.Backpack, false)Bovendien bevatten apparaten met aanraakmogelijkheden standaard een virtuele thumbstick en een springknop. Indien gewenst, kun je deze elementen verbergen door GuiService.TouchControlsEnabled op false in te stellen in een client-side script.

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