Every layer, still a layer.

Mosaic reads your .psd or .svg straight into Roblox Studio and rebuilds it as native Frames, TextLabels and UIGradients. Not a flattened image you have to re-export every time a pixel changes.

hero.psd: 29 layers → 1 Frame

Reads your .psd directly7-day trialNo credit card required

An image and a native object are not the same thing.

In Roblox, an image can't just live in your file. Every image has to be uploaded, pass moderation, and get referenced by a numeric ID before it exists. A native UI object needs none of that. It's just a Frame, with properties, and it's there the moment it's created.

Image asset

  1. Export the layer from Photoshop
  2. Upload it to Roblox
  3. Wait for moderation to clear it
  4. Get back a numeric AssetId
  5. Wire that ID into your UI

Want to nudge one pixel? Repeat all five steps.

Native object

  1. Open the .psd in Mosaic
  2. Frame appears in Explorer instantly
  3. Click it. Change a property.
  4. Ship it.

No queue, no ID, no re-export. It's just an object.


Three passes, from design file to a plan you can trust.

No exporting first. Mosaic opens the file itself and keeps what a flattened image would throw away.

01

Open the file, not an export of it

Point Mosaic at a .psd directly, or import an .svg from Photopea, Illustrator, or Figma. Photoshop's own SVG export flattens most content to raster. Reading the .psd itself is what keeps the layer tree, vector masks, layer effects, and type layers intact as structured data.

02

It reads intent, not just pixels

Internally, the file becomes a DesignDocument: what you meant, including things Roblox can't render on its own. That document runs through a series of compiler passes that decide how each piece should become a real Roblox object.

03

You get a plan, and a report

The output is a RobloxPlan: Frames with UICorner, UIStroke and UIGradient, TextLabels with mapped fonts, UIListLayouts recovered from evenly spaced rows. Every element ships with a reason.

nativeapproximatedrasterizedunrepresentable

Built around how people design for Roblox.

The freelancer

You design in Photoshop because your clients understand Photoshop.

Right now you rebuild every mockup pixel-by-pixel inside Studio afterward: twice the work, once billed. Mosaic turns the same .psd into the Frame hierarchy itself, so what you send the client is closer to what ships.

The dev studio

60 image layers in one file, all needing the right asset.

Bulk-import your PNGs once through Studio's own Asset Manager. Mosaic matches and binds them to the right layer by name automatically. Anything left unmatched is flagged clearly, not silently skipped.

Anyone tired of the queue

A rounded frame with a gradient doesn't need to be a picture.

Moderation queues exist for pictures. Mosaic keeps everything that can be represented as a native object (corners, strokes, gradients, layout) out of that queue entirely.

Teams with changing designs

A design update shouldn't mean a rebuild.

Fonts, gradients, and effects decided once in the design file are gone the moment someone hand-fixes a re-import in Studio. Mosaic re-imports the same file the same way every time.


What we tell you, not hide.

Every design tool has limits. Mosaic's rule is that you always know exactly which ones you hit, and why. Nothing is silently dropped.

Images

A plugin can't upload assets. That's a Roblox platform restriction, not a Mosaic one. Bulk-import your PNGs through Studio's Asset Manager first; Mosaic matches and binds them by name. Anything left over is flagged, not dropped.

Preview pixels

Until a real asset is bound, what you see drawn in the preview is session-only. Mosaic tells you this in-app, before it matters. It never breaks silently later.

Fonts

A design font that isn't native to Roblox gets mapped to the nearest built-in family. Every substitution is named in the capability report, so you know exactly what changed.

Blur & inner shadow

Roblox's UI system has no native blur or inner shadow. Mosaic reports these as unrepresentable instead of quietly leaving them out of the plan.

Corner radius

UICorner takes one radius per element. A design with a different radius on each corner gets approximated to the closest single value.

Gradients

UIGradient is linear-only on Roblox. Radial gradients are rasterized to an image rather than faked with a linear one.

Hidden layers

A layer hidden in your source file comes in hidden (Visible = false), never deleted. Conditional states you built on purpose stay intact.

Untrusted files

Design files are treated as untrusted input. Document size, nesting depth, element count, coordinate range, and text length are all bounded. A malformed or hostile file is refused with an explanation, not a frozen editor.

Local by default

Everything runs on your machine: no server, no upload of your design file, no account required to use the plugin.


One plugin, two ways to pay for it.

7-day trialFull functionality, nothing gated. It expires on its own after 7 days. Nothing to cancel.
Monthly
$36/month
  • Full plugin, all import features
  • Capability reports on every import
  • Cancel any time
Start your 7-day trial
Annual
$350/year

Save $82 a year versus paying monthly

  • Everything in the monthly plan
  • One invoice, once a year
  • Same 7-day trial first
Start your 7-day trial

Prefer not to subscribe? Mosaic is also planned as a one-time purchase on the Roblox Creator Store, separate from this subscription, since Roblox's marketplace doesn't support recurring billing for plugins.


Mosaic is made by a solo developer, not a company. There's no corporate entity behind it yet, just "the developer," reachable at the same email address used everywhere else on this site. These terms will get more formal if and when that changes.

The short, honest version.
The trial

The 7-day trial gives you the full plugin, nothing gated, and it expires on its own after 7 days. There's nothing to cancel. It's meant as one trial per person; please don't request repeat trials to keep using Mosaic for free past that window.

Your account and license key

A verified email is required to receive a working license key, trial or paid. Signing up issues you a key immediately once your email is confirmed, no card needed. The plugin checks that key against the server at most once every ~24 hours and otherwise works fully offline from a cached result — this is meant to stop a cancelled subscription from working indefinitely, not to be tamper-proof DRM.

The subscription

The $36/month or $350/year plan is billed as described on the pricing above, processed by Lemon Squeezy. No refund policy has been decided yet. If you have a billing question, contact the developer and it'll get sorted out directly.

What the plugin can do

The capability report the plugin generates for each import (the one marking every element native, approximated, rasterized, or unrepresentable, with a reason) is the authoritative answer to what Mosaic can and can't do for your specific design file. See the limits section above for the general shape of that.

Changes

These terms may be updated as the plugin and its pricing mature. Nothing here should be read as a promise of a specific refund window — that part genuinely isn't decided yet.

Contact

Questions about any of this go to hassankakamel1@gmail.com, the same inbox as the trial requests, read by the maker of Mosaic.


Mosaic is built to keep your design files off any server. This page covers both the plugin and this website.

There isn't much to disclose, so this is short.
The plugin

Mosaic runs entirely inside Roblox Studio, on your machine. Your .psd or .svg file is never uploaded or sent anywhere — the only network call the plugin makes is a periodic check that your license key is still valid, which sends the key, not your file.

Your account

Creating an account requires an email address (and a password, if you choose that login method over one-time codes). This is handled by Supabase, our account and database provider — we don't run our own auth system or store your password ourselves. If you subscribe, payment details are handled entirely by Lemon Squeezy; this site and its database never see your card information.

Tracking & analytics

There is no third-party tracking or analytics on this site right now: no ad pixels, no analytics scripts, nothing running in the background.

Contact

Questions about your data go to hassankakamel1@gmail.com.


Send your first .psd through, and see what stays a layer.

There's no checkout wired up yet. The trial request goes straight to the founder's inbox and you'll hear back personally.

No server

Mosaic runs entirely inside Studio, on your machine.

No uploads

Your design file never leaves your computer.

No account

Nothing to sign into just to use the plugin.