Using Mosaic.

Mosaic turns a Photoshop or SVG file into real, editable Roblox UI: Frames, TextLabels, UICorner, UIGradient, UIStroke, not one flat image. Every piece stays selectable in Explorer after import. This page is the whole workflow, start to finish.

1. Prep your file before importing
  1. Structure with groups, not flat layers

    Nest your design the way you want the Frame hierarchy to come out: a Background group, a Header group inside it, and so on. Groups become Frames.

  2. Flatten multi-layer icons into one layer

    A close button made of three or more layers should be one Smart Object (or a merged layer) before export. Otherwise each layer imports as its own placeholder and you end up with extra frames you didn't want.

  3. Remove what you don't want imported

    Delete it, or tag the layer _Ignore instead. Same result, and your source file stays intact.

  4. Name your layers

    Mosaic reads the layer name to decide what a layer is. Untagged layers still import, but a tag gets you the exact result: see the reference below.

2. Layer name tags

Tags are suffixes on the layer name, stripped before the name reaches Roblox, so Play_TextButton becomes Play. They combine: Panel_Canvas_UIList.

_TextButton / _ImageButton

Makes the layer a clickable button.

_TextBox

Editable text input.

_Frame

Force this layer to a plain Frame.

_Image

Flatten this layer to one picture, on purpose.

_Parent

Pairs with _Image (Backdrop_Image_Parent) to flatten the layer to an image but keep its children as real, separate pieces on top.

_Scroll / _ScrollX

Scrolling frame.

_Canvas

Container for freely-positioned children.

_UIList

Auto-layout, and the one that reads real spacing from your layers.

_Grid

Auto-layout in a grid. Cell size and padding are Roblox's defaults, not read from your file.

_Ignore

Skip this layer entirely.

_Lock

Import but keep its proportions fixed.

_Tile

Tiling image.

_Slice

9-slice image. Sets the scale type; you still set the slice center by hand.

3. Import

Open Studio, go to the Mosaic panel, click Import Design…, and pick your file. It lands in StarterGui, auto-selected in Explorer. Re-importing the same file updates what is already there instead of duplicating it.

4. Making images permanent

Do this before you consider the import finished, not after. A plugin can't upload images on its own, so until this step, imported images are placeholder colors, not real pictures.

  1. In Photoshop: File → Export → Layers to Files, choose PNG-24, tick Transparency and Trim Layers.

  2. Import the .psd first. The panel tells you exactly which layers need a PNG, usually a small subset of the file.

  3. In Studio: Asset Manager → Bulk Import those PNGs, dropped anywhere in the place.

  4. Already imported the design? Use Bind All from selected Folder in the panel instead.

If two layers share a name but are different images, Mosaic refuses to guess. It tells you which name is ambiguous. Rename one of them in Photoshop and try again.

Two tags worth knowing the limits of
_Slice

Sets the image's scale type to 9-slice, but the slice center isn't derived from your art. You still set it by hand in Studio after import.

_Grid

Adds a grid layout, but cell size and padding come from Roblox's defaults, not your file's spacing. If your layout is one row or column, use _UIList instead. It reads your real spacing.

5. Read the report before assuming something's wrong

The panel lists everything it approximated or couldn't represent exactly, with a reason: rounded corners not clipping, blur and inner shadow having no Roblox equivalent, radial gradients getting rasterized, font substitutions, and so on. Most "bugs" turn out to be a documented Roblox limit, not something to report.

One font note: uncommon or heavily-styled fonts sometimes don't match exactly and may need a quick manual fix after import. Worth expecting going in.

6. Before sharing or playtesting

Click Remove previews before sharing in the panel first. Previews only exist in your own Studio session. They vanish in Play mode, Team Create, or on anyone else's screen, no matter how good they look on yours. Removing them first keeps it from looking broken.