On-Screen UI Containers

On-screen UI container objects hold GuiObjects that you want to display on a user's screen. All on-screen UI objects and code are stored and changed on the client.

This example screen has a ScreenGui with a Frame container that holds a Label (TextLabel), Text Input field (TextBox), and Button (ImageButton).


The StarterGui service is a container object that holds GuiObjects, such as a ScreenGui and its children GuiObjects. This service initializes on-screen UI for new users joining an experience. You do not need to create a StarterGui object as it is always present in the Explorer window.


PlayerGui is a container for on-screen UI objects for a specific Player. When a user first joins an experience, the PlayerGui automatically inserts into their Player object within the Players service. Then, when the user's avatar spawns for the first time, the StarterGui service clones all of its contents into the PlayerGui container.


The ScreenGui object is the primary container for all 2D GuiObjects that display on a user's screen.

Creating a ScreenGui

Unlike StarterGui and PlayerGui, you have to manually create a ScreenGui to hold anything you want to display on the user's screen. To create a ScreenGui object:

  1. In the Explorer window, hover over StarterGui and click the icon. A contextual menu displays.

  2. Insert a ScreenGui.

Parenting a ScreenGui

Parenting the ScreenGui to either the PlayerGui or the StarterGui service enables you to choose how 2D GuiObjects appear to users.

  • To show a specific ScreenGui to an individual user, parent it to their PlayerGui.

  • To make a general ScreenGui display on every user's screen when they join, parent it to the StarterGui service.