The Roblox Studio plugin
Build .lowpoly files into Roblox models in Roblox Studio.
Android only
The Ünflat Studio plugin reads .lowpoly files and builds painted models right in the Roblox workspace, with no IDs to manage by hand, no file converting, and no mesh import windows.
The panel
Under its title, the panel has Make and a dropdown with a page for each kind of Roblox item, the same pages as the app’s Roblox share card: NPC, Prop, Building, Accessory, and Classic Clothing. Select the dropdown to open its list, then select a page. NPC and Prop have Animated | Static under the dropdown, and Classic Clothing has PNG file | Image number. Each page lists its requirements; the model pages start with a line naming the file’s source in the app. The panel opens on the page you used last (Prop › Animated the first time). NPC and Prop each keep their own Animated or Static, and Classic Clothing keeps its PNG file or Image number (PNG file the first time).
- NPC and Prop: Import a model… reads a
.lowpolyfile from the app’s NPC or Prop page (a Game prop ) and builds an anchored model of flat-shaded, painted MeshParts.- Animated includes the model’s moves: joints, animation scripts, move sets, saved poses, walk-up prompts, skins, the animated skin, and outfits. A file with no moves builds still, and the message reads This file has no moves, so it stands still.
- Static builds a plain still model: no joints, no scripts, no prompts, no move set, pose, skin, or outfit attributes, and every part anchored. It wears the skin and the outfit the fig had on (the other outfits’ clothes are left out) and stands as the fig stands in the app. It uploads the meshes and paint only, and shows no skins question. The message reads It came in still (Static): no moves, no scripts.
- Building: Import a model… reads a building’s file (from Send it to Roblox on a building’s page in the scene editor, or the scene’s Share › Roblox › Building). Buildings are built as anchored models sized for players to walk through: a default floor comes out at 20 studs (8 studs per grid cell). Doorways keep their frames but lose the door itself, so players can walk through. Building files are named from the scene’s name and the building’s list name (e.g.,
Cottage_building.lowpoly, orCottage_building_2.lowpolyin a scene with several). If the scene has no name, the app shows: Name the scene first. The building’s Roblox file uses its name. The name you type is used for both the file and the piece in your library. Selecting Cancel stops it. - Accessory: Import a model… reads a file from the app’s Accessory page (from the accessory export ) and sets it up the way Roblox expects, ready for Studio’s Accessory Fitting Tool. The page also has the checklist under Before you upload below.
- Classic Clothing › PNG file: Made clothes? Pick your Roblox clothing PNG and see it on a body. The button places a 2D clothing template (the
.pngfrom the classic export ) on a rig. With a rig selected in the Explorer (a model with a Humanoid, or any part of one), it reads Dress and the rig’s name (e.g., Dress Mannequin…). With none selected, it reads Dress a new rig…, with To dress your own rig, click it in the Explorer first. above it, and the plugin makes a standard R6 block rig named Ünflat try-on rig. The dressed rig ends up selected. With uploads on, the plugin uploads the PNG to your Roblox account (free) and the clothing saves with the place. With uploads off, the clothing is lost when Studio closes; to keep it, upload the PNG in Studio’s Asset Manager and paste its ID into the clothing’s template property, or dress the rig by image number (below). - Classic Clothing › Image number: dresses a rig with a picture already on your Roblox account (below).
Save to Roblox… is on NPC, Prop, Building, and Accessory. It opens Roblox’s publish window for the selection: Optional: publishes the selection as a model on your Roblox account (Toolbox, Creator Store). Not needed to keep a build. It is not on Classic Clothing, since classic clothing goes up on Roblox’s site from the app’s template.
Messages show in a card under every page: green with a tick for a success, orange for a warning, coral with a cross for a refusal or failure. The version shows at the bottom of the panel (Plugin version 2026-10-08b).
The Details card
The grey Details card shows the selected model’s name and its Move set, Pose, Skin, and Outfit dropdowns (only the ones it has). It is always on NPC and Prop with Animated, and on Accessory. On every other page it shows while the selected model has a move set, pose, skin, or outfit to change. A selection sets the same attribute the Properties panel shows (lowpoly_moveset, lowpoly_pose, lowpoly_skin, lowpoly_outfit, lowpoly_flipbook), as one undo step. If a change fails, the message starts Couldn’t change it:. Move sets and animated skins play when you press Play, and a skin you select stays on through Play.
Select the model the plugin built (or any part of it) in the Explorer or the viewport. With nothing selected, the card shows None selected. Click your model in the viewport or the Explorer to change its move set, pose, skin or outfit. While the last model you imported this session with a move set, pose, skin, or outfit to change is still in the place, a Select button with its name (e.g., Select Robot) selects it. A model with nothing to change shows Nothing to change on this model., and a Static build Nothing to change on this model (Static).
Dress a rig by image number
The app’s Upload to Roblox makes a Decal. A Shirt, Pants, or ShirtGraphic needs the image inside it, and Roblox lists the image behind every Decal under Images. To dress a rig with it:
- On create.roblox.com, go to Creations › Development Items › Images, and use Copy Asset ID on the picture with the same name.
- In the plugin, select the Make dropdown, then Classic Clothing, then Image number. The page reads Sent it with the app’s Upload to Roblox? Pick what it is and paste its image number, from Creator Hub › Development Items › Images (Copy Asset ID).
- To dress your own rig, select it in the Explorer. The button then reads Dress and the rig’s name (e.g., Dress Mannequin). With none selected, it reads Dress a new rig, and the plugin makes a new R6 block rig.
- Select Shirt, Pants, or T-shirt, paste the number into the Image number box, and select the dress button (it stays grey until the box has a number). Pressing Return in the box does the same.
The message shows, e.g., Shirt on and It stays when you save the place. A number that isn’t an image’s is not placed on the rig: the message names the problem (e.g., That’s a decal number, not an image number) and the place to find the image number. A number Roblox can’t check goes on as it is, with Roblox couldn’t check this number.
Uploads
The first Import a model…, or the first dress on Classic Clothing › PNG file, shows Keep it after Studio closes? (Upload / Don’t upload). Upload sends the mesh and paint, or the clothing PNG, to your Roblox account as your own assets (free; Roblox checks them first), so it saves with the place and publishes. With Don’t upload, it’s gone when Studio closes and doesn’t publish. The plugin keeps your answer and shows it as a switch near the top of every page, under the Make dropdown: Uploads: on · builds stay when you save or Uploads: off · builds turn to grey boxes when you close Studio. Select the switch to change it. Classic Clothing › Image number uploads nothing, so it has no switch.
Uploads use a Roblox Studio beta. Turn on CreateAssetAsync Luau API in Studio’s File › Beta Features, then restart Studio. Without it, the panel shows Roblox didn’t take the upload with the reason (e.g., CreateAssetAsync and CreateAssetVersionAsync are not available yet) and the fix. Until then a build lasts only until Studio closes: after that it is grey boxes, and Roblox’s own Save to Roblox won’t keep it. The Output window’s build line ends · session only when nothing was uploaded. When you open a place that has such grey leftovers, Output names them (e.g., 1 Ünflat model in this place was session only and came back as grey boxes: stop_sign.); build them again with uploads on, then delete the grey ones.
With uploads on, the first model with skins or an animated skin shows Upload skins? and the count (e.g., 3 skins and a 6-page animated skin will upload as 9 images.). Uploaded skins are images on your account that every player sees in published games. Roblox checks each one, usually within a few hours. Uploads are free, up to 60 a minute; past that, the plugin pauses. With Don’t upload, skins only swap in Studio: players in published games won’t see them. The answer shows as a second switch on NPC and Prop with Animated, and on Accessory: Skins: uploaded too (every player sees them) or Skins: not uploaded (they only swap in Studio).
Before you upload
The Accessory page shows a checklist under the Save to Roblox… button, headed Before you upload an accessory:
- Select the thumbnail before you upload. Thumbnails can’t be changed after upload.
- If the category dropdown won’t let you select an accessory type, the signed-in account is missing ID verification or a parent link.
- Uploading is not the same as putting it on the Marketplace. Wearing your own upload costs an 80 Robux fee, charged at upload. Putting it on the Marketplace needs two-step verification and a Plus/Premium membership.
- The plugin places the Attachment where the item meets the body; the Accessory Fitting Tool can move it. The Marketplace accepts a static accessory only: one mesh, no scripts.
Getting the plugin
You need a computer with Roblox Studio.
- Download the Ünflat plugin. The file:
unflat-plugin.rbxmx. - Open Roblox Studio. Go to the Plugins tab and select Plugins Folder. Copy the downloaded
.rbxmxfile into the folder that opens. - Restart Roblox Studio. Studio’s Output window shows Ünflat plugin 2026-10-08b loaded, and the Ünflat toolbar appears on the Plugins tab. Select Import Model to open the panel.
The plugin runs on your computer. It goes online only when you use Save to Roblox…, when uploads are on (Import a model… uploads meshes and paint, plus skins if approved; a dress on PNG file uploads the PNG), and when checking a pasted image number. Uploads work only from the plugin file installed on your computer; the plugin is not on the Creator Store.
The .rbxmx file doesn’t update itself. To get new features (skins, outfits, poses, move sets), download it again and replace the .rbxmx file in the Plugins folder. The version number shows at the bottom of the panel.
Move sets in Studio
Models with several move sets (e.g., Idle, Walk, Run) are built with every set whole. The plugin adds a lowpoly_moveset text attribute on the top model with the playing set’s name (e.g., Walk), and lowpoly_moveset_choices beside it lists the names it accepts. Select a set in the Move set dropdown of the panel’s Details card, change the attribute in the Properties panel, or call require(model.SetMoveSet).SetMoveSet("Walk") (a set name or id) from your own Lua scripts. SetMoveSet("") returns to the model’s own moves. A model built by a plugin from before 2026-09-28a stores the set’s id (ms_…) and keeps working. Parts with no poses in a step set keep playing their own moves; in older sets they stay still.
Each loop plays as in the app and at its speed, from rest through its poses and back, so a loop with one pose (e.g., Idle breathe, or Chomp on Always) moves too. In a Walk, Run, or March, the legs and the arms against them alternate as in the app. A selected step set ends by its At the end setting. A selected older set (Everything it did) plays by its own Starts: a Once set plays one time each time it is selected, and any other loops.