Download the free version | Creator Store | Full version on itch.io | Discord
(the paid version is a one time purchase)
Edgewise bakes outlines, glow and shadows straight into your images, then publishes the result as a Roblox asset. No Photoshop, no Figma, no leaving Studio.
There is a free version, and it is not a trial. It is the whole stroke pipeline — three stroke types, any colour, live preview, publishing — and it does not expire. The paid version is the same plugin with the rest of the effects turned on.
To publish, install from the file above
Publishing goes through
CreateAssetAsync, which is still a Studio beta feature, and plugins installed from the Creator Store cannot use beta features yet. So the Creator Store copy loads images, applies every effect and previews correctly — it just cannot upload the result.If you want to publish, download the
.rbxmxabove and drop it in your plugins folder:
%LOCALAPPDATA%\Roblox\PluginsStudio hot-reloads it, no restart needed, and Publish works. Either copy is fine if you only need the preview.
Overview
Load an image, stack effects, hit publish. The preview updates on every change, so the texture you see in the plugin is exactly the one that goes up.
Because the effects are baked into the texture itself, they work on ImageLabels, ImageButtons, Decals, Textures and MeshParts, and they cost nothing at runtime.
Free vs paid
| Free | Full | |
|---|---|---|
| Stroke — outer / inner / center, radius 0–32 fractional, any colour | ||
| Live preview, pan and zoom | ||
| Import file / from selection / asset ID | ||
| Publish, Apply ID, Apply Live | ||
| Grayscale | ||
| Alpha threshold, supersample 2× | ||
| 1024px upload warning | ||
| Glow | — | |
| Drop shadow | — | |
| Projected shadow | — | |
| Remove background | — | |
| Pixelize | — | |
| Dither | — | |
| Supersample 4× / 8× | — | |
| Publish history | — | |
| Fit + Transparent Pixel Fix + Publish | — |
Both versions warn you when an export would break the 1024px cap and tell you what Roblox is going to do to it. The free version does not include the one-click fix; the warning is the same warning.
Publish, Apply ID and Apply Live are free — but only in a local install. See the note above.
Loading an image
Three ways in:
- Import a file from your computer (PNG, JPG, BMP, TGA)
- Pull from selection in Studio (ImageLabel, ImageButton, Decal, Texture, MeshPart)
- Paste an asset ID
Effects
- Stroke (free) — outer, inner or center. Radius 0 to 32, fractional values accepted, any colour.
- Grayscale (free) — by amount.
- Glow — size, intensity, falloff and colour.
- Drop shadow — offset X/Y, blur, spread, opacity and colour.
- Projected shadow — long shadow at any angle, with length, fade, opacity and colour.
- Remove background — key out a colour with tolerance and smoothing. Runs before the outline, so the stroke hugs the cleaned silhouette.
- Pixelize — blocky retro look. The outline follows the block silhouette.
- Dither — Bayer 4×4, by levels and amount.
- Quality — alpha threshold (free) and supersampling at 2× (free) / 4× / 8×.
Every colour picker is HSV with a hex field. Settings and history persist across Studio sessions.
Publishing
Requires the CreateAssetAsync Lua API beta (File → Beta Features, then restart Studio). Roblox refuses the upload without it.
- Publish (free) — uploads the result and shows the new
rbxassetid://. - Apply ID (free) — writes the last published ID to the selected instance.
- Apply Live (free) — pastes the texture onto the selected instance locally for instant in-context testing. It does not save with the place, so use it to iterate.
- Fit + Transparent Pixel Fix + Publish — the one-click path. Resizes if needed, fixes the halo, publishes, reloads the new asset.
- History — every asset published through the plugin is listed with a thumbnail. Reload or re-apply an older version without digging through your Inventory.
Two upload problems it solves for you
The 1024px limit. Roblox silently downsizes any texture above 1024px on upload, and that pass destroys the anti-aliased edge. A 1026px export came back with 13% more partial-alpha pixels in my tests. No Studio setting prevents it, because the damage happens server-side. Edgewise warns you before upload — in both versions — and the full version offers Fit + Fix + Publish: one click scales the image down safely, corrects the edge, publishes, and points the plugin at the new ID.
The transparent pixel halo. A pixel with alpha 0 still stores an RGB colour. When the GPU draws your icon smaller than 1:1, it blends that hidden colour into visible neighbours, which is where the dark fringe on scaled-down UI icons comes from. Before publishing, Edgewise repaints every invisible pixel with its nearest visible colour. Nothing visible changes, and the halo is gone at small sizes.
Why not just UIStroke?
UIStroke is still the right call when the outline has to change colour or thickness at runtime. Edgewise is for the other case: a fixed style you want everywhere, on any instance that takes a texture, with zero runtime cost.
Disclaimer
Priced assets currently cannot be uploaded from Brazil. Join the Discord for details.
Feedback
Found a bug, or need an effect that is not on the list? Reply below or join the Discord for direct support.
Credits
Edgewise is developed by okitomassa. Thanks to HarpyaNSX for the design, and 7eeely for setting up the Discord server and helping with this post.
Edgewise-Free.rbxmx (173.0 KB)












