Rayfield:CreateWindow(props) creates the window and returns its handle. Tabs, tags, notifications, popups, and theme changes all come from that handle.

Properties
A built-in theme name (
"default", "cobalt", "ember", "amethyst", "frost", "rose") or a theme table. See Themes.Put the tabs in a rail down the left instead of a strip across the top, and give the content its own card. The window is wider and shorter to suit it. On a narrow screen the rail keeps its icons and drops the labels. See Tabs.
A line under the player’s name at the base of the sidebar rail. Leave it out and the name stands on its own. Sidebar layout only.
Enables saving. See Saving.
Pins the language. Leave it out to follow the player’s Roblox language. See Localization.
A stand-in font shown in secure mode while the brand font downloads.
Preview only. This is on the preview channel and is not in the stable release. It can change or be dropped before it lands there.
A Sentivel ping URL or token. The window pings it while it’s open, so you can see whether your script is running. See Uptime monitoring.
Methods
The window handle exposes everything you need at runtime.Building
Add a tab. See Tabs and groups.
Add a pill beside the title. See Tags.
Sidebar
Set the line under the player’s name in the sidebar rail. Pass nothing to drop it and leave the name on its own. Players can hide the block from the settings tab.
The collapsed pill can be dragged anywhere on screen and stays where it’s put. A press only counts as a tap if the cursor barely moved, so dragging it never opens the window by accident.
Messages
Show a notification card in the corner. See Notifications.
Drop a toast in from the top. See Notifications.
Float a modal dialog or changelog over a dimmed backdrop. See Popups.
Visibility
Go to a tab by its handle or name. Selects it, so the tab strip follows. Equivalent to
tab:Select().Theme and language
Restyle everything at runtime. Colours and numeric values tween across; corner radii, fonts, and gradients apply instantly.
Saving
Write a saved value by its flag. This updates the UI and fires the callback. Returns
false if the flag is unknown.