New Unified, Smart Mesh Importer Beta

Update (December 10th, 2021)

Update (December 9th, 2021)

We are aware of an issue that prevents users from seeing the plugin button, we are looking into possible fixes. Resolved.

Hello developers,

We are very excited to announce a beta of the smart, unified mesh importer. That sentence doesn’t scratch the surface of how big of a change this is for those of you who work with meshes, so let’s dive in.

Currently in Studio, there are multiple ways to import a mesh—directly into a MeshPart, Bulk Importer, the Avatar importer, and even user plugins. But they all work differently and, more importantly, they put the onus on you to format your mesh properly to work with the specific importer. Furthermore, if something is wrong, you often don’t know until your import fails or doesn’t look how you expect, making iteration slow.

We want to get to a world where there is one Roblox mesh importer that can import a box, an avatar, an animated avatar and a box, an object scan you made with your phone, or an entire scene…and it all just works and gives you the results you expect. Today, we’re taking the first step towards this smart, unified importer.

Over the past year, we have completely rebuilt our mesh importer. There is now one system that you use to import any mesh file, no matter what’s in it. It looks like this:


A key element of this is the preview of your mesh in the top left. As you select individual children in the Hierarchy Panel on the bottom left—if your mesh is more complex—the preview will update to show you the selected component.

For each selected item, whether the root file or a component, we auto-detect what you’re inspecting and give you appropriate options and information in the Inspector on the right so that you can easily see critical information and adjust common attributes (like the item’s name or what units your mesh was built in) before clicking import.

Mesh files might also have issues that trigger warnings and errors.

Warnings are issues that don’t block import but might cause your mesh to not appear how you expect, such as a mesh that is too big in extent (over 2048 studs) that we scaled down. Errors are issues that will actively prevent us from being able to import the mesh, such as a missing texture.

Today, these issues are often buried in the output window or even worse, silent. Now, warnings and errors will show up contextually in the Hierarchy Panel. Select an item to see details in the Inspector as to what’s causing the issue. Uncheck a component in the hierarchy to skip importing it, which lets you import a mesh even if some part of it caused an error. In the future, we intend to make it possible to fix many common issues, such as rig naming problems, right in the importer without going back to your DCC tool.

We’ve also taken steps to automatically handle errors that used to block import: the current importers have a mesh size limit of 10,000 triangles. In addition to increasing the limit to 20,000, the new importer will automatically simplify any larger mesh for you so that big meshes just work. This will show up as a warning so that you know it happened.

The importer improvements even continue after you click Import. The new importer will create a Model asset that preserves the hierarchy you modeled with. This makes it much easier to organize your scene and work with the imported meshes. If you have a published place, this Model will appear in a new section in Asset Manager, Models.

assetmanager explorer

Where Is This Project Heading?

There are a wide range of meshes out there, and we want to ensure we handle them at least as well as the current importers. As such, we will keep this project in beta for a bit but deliver continual improvements. Once it’s ready, we will remove the old importer.

Beyond that, we intend to keep pushing to get to a point where meshes just work. Features we’re exploring include:

  • PBR support so that SurfaceAppearance setup happens automatically on import.
  • Animation support so that it’s easier to import avatar animation.
  • Expanded file type support to support more common 3D file formats.
  • Support for multi-material meshes so that you don’t have to manually split your meshes before importing.
  • Improved mesh simplification so that even if we have to reduce the poly count on an object to import a mesh, it looks as good as possible.
  • Avatar rig repair directly in the importer, such as fixing joint naming issues.

How Do I Get the New Importer?

If you select File > Beta Features and enable “New Mesh Importer,” you will see a “Mesh Importer” button in the Plugins ribbon bar. Click the button and select a mesh.

We highly recommend saving your work before using the importer. While we’ve done extensive testing, this is a beta feature, and external files can contain odd data that can cause crashes. If you have a file that causes a crash, please let us know so that we can fix it!

What Are the Known Issues With the Current Beta?

  • It does not have full parity with the current avatar importer: specifically it does not support skinning or layered clothing.
  • Selecting joint nodes in the hierarchy will result in a blank preview.
  • Files with large numbers of mesh components and textures might fail due to a throttling issue.
  • Scale is not automatically parsed from an FBX file when available.
  • FBX files with an absolute path reference to a texture on a different device won’t resolve to a relative reference, and a specific texture can’t be picked directly.
  • Preview window mouse wheel zooming is reversed from viewport behavior.
  • Simplified meshes show the final simplified polygon count and not the original size in the inspector.
  • Inventory does not automatically refresh after import.
  • Text boxes don’t respond to tab input for navigation and ending editing.

What Are the Available Options in the Inspector?

File General

Name Rename what the root imported asset will be called.
Import Only As Model By default, when you import a model with children, we create only a Model asset that contains the appropriate MeshPart children, but the MeshParts are not individual assets. Uncheck this to create both the Model and separate MeshPart assets explicitly.
Insert In Workspace Is the imported asset inserted into the scene or only into Toolbox/Asset Manager?
Anchored Set anchored to True on all the imported MeshParts. This is disabled for avatars.

Avatar General

Rig Type Select what rig type--if any--an avatar should be treated as.

File Transform

World Forward Which axis is considered “forward.”
World Up Which axis is considered “up.”

File Geometry

Scale Unit Set what units the file was modeled in so that it is sized appropriately when imported.
Merge Meshes Merge all MeshParts in the model into a single MeshPart and create one MeshPart rather than a Model.
Invert Negative Faces Flip negative faces.

Object General

Name Rename a child object within the model
Anchored Set if this specific object should be anchored. This is disabled for avatars.

Object Geometry

Make Double Sided Set if the vertices are one-sided (you can see through them from one side) or double-sided. Double-sided is less performant.
Ignore Vertex Colors Should vertex coloring be respected.

Finally, a huge kudos to the folks who built this! @itsFrank17, @OriginalSleepyhead, @tasavix, @CGOldtymer, @sonlytheonetime1, @wengawenga, @YodelerYoshi, @LuckyKobold, @TravelerUniverse, @MoonRocketApollo, @HaloArbiter_101, @Mr_Purrsalot, and @smoothiecriminals


In addition to increasing the limit to 20,000

I’m a huge fan of the new importer, but by far my favorite change about it is the 20k tris limit. This unlocks so many possibilities.
The automatic simplification is nice as well, but I would like to know more about what kind of simplification takes place.

Another question - would it be possible to add an option to import as a Mesh without also generating a MeshPart? Right now, all of the importers upload two separate assets, which can be frustrating. At the moment, Studio is quite ambiguous with mesh/MeshPart - I think the Aliases in the Asset Manager for “Meshes” are actually MeshParts, which could also be clarified.


Am I correct in assuming this will be fixed in a future update? Would be surprised if the answer to this is “no”, since Roblox is making a lot of pushes to improve avatar technologies.


Oh, all the new features are being announced on the forum today! This is a big change for modelers. 20k new limit, new interface, and more options. Heaven does exist.


The simplification is currently using the same technology we use for mesh LODs. So if it has to simplify a lot of polygons the results will probably not look too great. We hope to improve on this in the future. But for meshes that are close to the limit is should produce workable results.

would it be possible to add an option to import as a Mesh without also generating a MeshPart

Try it out, I think you will be pleasantly surprised :D! (Hint, the Import Only As Model option is enabled by default and does what you are asking)


Yes this is in active development and will be added to the importer further into the beta process


My favourite part is obviously the 20k tris bit. These are some amazing updates!! Thank you engineers, now my smartwatch is telling me I have a heart attack because my heartrate reached 170BPM when running up the stairs!


So many great updates today for us!


Proof roblox celebrates the holidays

Jokes aside this inspector will do so much service for everyone. Aside from the mesh tris increase I’m super excited to use this for larger PBR mesh imports. This reduces hours of importing working into minutes


If you import those stairs in the new importer, you can change the scale unit so they aren’t as hard to climb XD!


Just making sure, PBR materials are currently not supported by this importer, but it is a feature we will be adding in the future.

Obviously the meshes you want to use PBR materials on can be imported here.


Wow, two major beta releases in a day. This looks really exciting to use.


Ah I see, Im looking forward to that feature.

Still the hierarchy panel is a big plus alone. We usually import models into substance before importating to roblox to seperated meshes for specific scenes so it’ll be great to cut the middleman out entirely


A big round of applause to everyone who worked on this! These changes are incredible.

This is GREAT!

A suggestion that would, of course, be in the mere future, but something to consider:

It would be cool if we could view what the mesh looks like in different lighting environments/atmospheres in the preview.

Would it be possible to have an option to still proceed with imports even if the mesh has errors (meaning it would just skip over the message with errors and still import the meshes with warnings in them)?

Will there be a warning letting us know that a mesh will be resized before it imports? Similar to the warning that we already get when importing a large mesh (asking to resize).

1 Like

Love this new importer, the viewport of the model will save a lot of time for me personally as I’m constantly importing rigs to quickly check how they look in studio.

One question though,

Will these expanded file types also be included for exporting from studio? Namely FBX exports, as with skinned/bone rigs becoming more and more common to see, especially with the upcoming face rigs, it would be extremely helpful to be able to easily export these rigs straight into a third party program to animate/edit.

bro how many updates you guys are gonna release today. Like god… Still good nonetheless. Keep up the great work guys!!

I’m crying right now, thank you Roblox for bringing so much great content to the developer community today :grin:


This is currently possible. If you uncheck the checkbox in the tree-view next to a node that has an error you can proceed ignoring that one object.

Will there be a warning letting us know that a mesh will be resized before it imports

Yes, when you are un the UI, the “official” import has not happened yet. There is a warning that shows up in the tree view and in the inspector panel for that node. You can choose not to carry on with import at that point and no new assets will be created.


Yes, there will be a warning next to the dimensions of the model you are trying to import when it needs to be resized! It is one of the warnings we show you during the preview.