Tutorial

How to import a 3D model into Roblox Studio (FBX, textures, rigs)

Use the Roblox Studio 3D Importer the right way: FBX vs GLB, scale in studs, pivots, rigged models, SurfaceAppearance textures and fixes for common errors.

Updated 7 min readBy the Proppo team

On this page

Quick answer

To import a 3D model into Roblox Studio, open File > Import, pick an FBX for rigged or animated models (GLB or OBJ for static props), keep Scale Unit on Studs and import. Prepare the file first: one mesh, one material, under 20,000 triangles and the pivot at the bottom center. Missing textures? Add a SurfaceAppearance with a ColorMap.

Key takeaways

  • Use FBX for rigged and animated models; GLB or OBJ are fine for static props.
  • Model at 1 unit = 1 stud and import with Scale Unit: Studs; a pet is usually 2 to 4 studs tall.
  • Each model should be one mesh with one material, under 20,000 triangles, with its pivot at the bottom center.
  • Rigged pets import with Rig Type Custom, and each vertex can have at most 4 bone influences.
  • If a model arrives without its texture, add a SurfaceAppearance to the MeshPart and set its ColorMap.

Roblox Studio's 3D Importer reads FBX, glTF/GLB and OBJ files, so almost any model can make it into your game. Most import problems come from the file, not from Studio: a model in the wrong units, a pivot floating in mid-air, five materials where Roblox wants one. This guide covers which format to pick, how to prepare the file, the importer settings that matter, and fixes for the errors you will most likely hit.

Which file format should you import into Roblox Studio?

FBX for anything rigged or animated, because it carries the skeleton, skinning and clips. GLB is a good choice for static models since the textures are packed into one file, and OBJ only suits simple static props.

  • FBX

    Carries
    Mesh, textures, skeleton, skinning, animation
    Use it for
    Rigged and animated pets, anything you will animate
  • glTF / GLB

    Carries
    Mesh, PBR textures, rig and animation (GLB packs it all in one file)
    Use it for
    Static props and pets; good from web tools
  • OBJ (+ MTL)

    Carries
    Mesh and basic textures only, no rig
    Use it for
    Simple static props

Formats the importer supports, per Roblox's Importer documentation on the Creator Hub.

FBX and glTF also come in with a different structure. FBX meshes become MeshParts directly under one Model; glTF makes a MeshPart for every primitive. A single mesh with a single material gives the cleanest result either way.

How do you prepare a model for Roblox before exporting?

Check five things in your 3D tool: the triangle count, a single material, the scale in studs, the pivot at the bottom center and watertight geometry. They prevent most import errors.

  1. Triangles. Roblox caps each mesh at 20,000 triangles. Game assets should be far below that; see triangle and texture budgets.
  2. One material. A MeshPart has one material. A model with several materials comes in as several MeshParts, so bake everything onto one texture first.
  3. Scale in studs. The simplest setup is 1 unit in your 3D tool = 1 stud, imported with Scale Unit set to Studs. A pet is usually 2 to 4 studs tall; a default avatar is about 5.
  4. Pivot. Put the origin at the bottom center of the model, place it at the world origin and apply rotation and scale. Then it lands on the ground instead of half inside it.
  5. Clean geometry. Roblox's modeling specifications ask for watertight meshes with real thickness: no open holes, no single-sided planes.

Step 1: Open the 3D Importer

In Studio, go to File > Import (Ctrl+M on Windows, Cmd+M on Mac) or click Import on the ribbon. Since April 2026 this opens Roblox's Universal Importer, which handles 3D models next to images, audio and video. Choose your file. If the textures are separate image files, keep them in the same folder (or the subfolder the model expects), or Studio will report missing textures. The importer opens a preview with the file's hierarchy on one side and settings on the other. Warnings and errors show up as icons in the hierarchy. Hover over an icon to read the message.

Step 2: Check the import settings

The defaults are sensible. These are the ones worth a look:

  • Scale Unit

    Default
    Studs
    What to do
    Keep Studs if you modeled 1 unit = 1 stud. Only change it if your file is in meters or centimeters.
  • Set Pivot to Scene Origin

    Default
    On
    What to do
    Keep on: the whole model's pivot becomes the file's 0, 0, 0. That is why you put the bottom center there.
  • Use Imported Pivot

    Default
    On
    What to do
    Keep on: each object keeps the pivot stored for it in the file.
  • Upload to Roblox

    Default
    On
    What to do
    Turn off while testing, so you don't fill your inventory with copies.
  • Anchored

    Default
    Off
    What to do
    Turn on for static props that should not fall. Not available for rigged meshes.
  • Merge Meshes

    Default
    Off
    What to do
    Turn on only if you want several parts combined into one MeshPart.
  • Rig Type

    Default
    Auto-detected
    What to do
    Custom for pets and creatures; R15 only for avatar-style characters.
  • World Forward / World Up

    Default
    Front / Top
    What to do
    Change only if the model faces the wrong way after import.

Step 3: Import rigs and animations

When the file has a skeleton, the importer shows rig settings. For a pet or creature, the Rig Type should be Custom. Studio then adds Bone objects under the MeshPart and an AnimationController to the model, instead of a Humanoid.

  • Every bone needs at least one weighted vertex. Bones without weights are removed unless you turn on Keep Zero Influence Bones.
  • The root bone sits at 0, 0, 0 with no weights. Each vertex can have up to 4 bone influences.
  • Roblox's Animation Editor works at 30 fps, so bake clips at 30 fps and make loops seamless (first frame = last frame).

Since an August 2026 Studio update, animations inside the FBX are saved automatically to an AnimSaves folder (in ServerStorage) when you import the model. Open the Animation Editor from the Avatar tab, load the clip, then publish it with ⋯ > Publish to Roblox. Clips that live in separate FBX files can still be imported from the editor's menu (From File). If an animation doesn't show up, open the Animation Editor first and import the file again.

By default, Roblox only plays animations owned by the same user or group as the experience, unless the owner shares them through Creator Hub permissions. The simplest route is to publish with the account or group that owns your game. To play a clip, load it through the Animator inside the AnimationController, as Roblox's Use animations guide describes for rigs without a Humanoid:

Lua
-- Script inside the pet model
local pet = script.Parent
local controller = pet:FindFirstChildWhichIsA("AnimationController", true)
local animator = controller:FindFirstChildOfClass("Animator")
if not animator then
	animator = Instance.new("Animator")
	animator.Parent = controller
end

local idle = Instance.new("Animation")
idle.AnimationId = "rbxassetid://0000000000" -- your published Idle
local track = animator:LoadAnimation(idle)
track.Looped = true
track:Play()

Step 4: Fix textures with SurfaceAppearance

FBX and glTF files can bring in basic and PBR textures. If your model arrives grey or white anyway, set the texture by hand. Add a SurfaceAppearance inside the MeshPart and set ColorMap to the color texture. If you have them, add NormalMap, RoughnessMap and MetalnessMap too. For a color-only texture, MeshPart.TextureID also works.

For rarity variants, keep one model and swap textures. Make a copy of the pet per rarity, each with its own SurfaceAppearance, and clone the one you need at hatch time. SurfaceAppearance maps are set in Studio, not by scripts at runtime. The egg rarity guide covers how to plan the tiers.

Step 5: Finish the model in Studio

  • Anchor static props that should not fall or be pushed.
  • Set CollisionFidelity to Box or Hull for pets and small items. It is much cheaper than the default concave shape. Pets that follow players usually also have CanCollide off.
  • Leave RenderFidelity on Automatic. Roblox lowers the detail of meshes that are far from the camera by itself.
  • Test on a phone, or with Studio's device emulator, with as many copies on screen as your game will really show.

Why does a Roblox import go wrong, and how do you fix it?

Nearly always because of the file: wrong units, a misplaced pivot, too many triangles, several materials or unweighted bones. Fix it in your 3D tool and import again.

The model is huge or tiny

The units don't match. Re-export at 1 unit = 1 stud and import with Scale Unit set to Studs, or pick the unit the file was made in. For rigged models, fix the size at the source rather than scaling in Studio, so the rig and its animations stay at the same scale.

It floats or sinks into the floor

The pivot is wrong. Move the origin to the bottom center in your 3D tool and re-export with Use Imported Pivot on.

“Too many triangles”

A mesh is over 20,000 triangles. Decimate it, or split it into parts. Rigs have a separate, larger limit across all their meshes.

It came in as many parts

The model has several materials or separate objects. Join them into one mesh with one material, or turn on Merge Meshes.

The bones or the animation are missing

Check that each bone has weights, that transforms were applied before export, and that the animation FBX uses the same skeleton and scale as the rig.

It faces the wrong way

Adjust World Forward in the importer, or rotate the model in your 3D tool so its front points along Roblox's front.

Frequently asked questions

Can Roblox Studio import GLB files?
Yes. The 3D Importer reads .fbx, .gltf, .glb and .obj files. GLB is a good choice for static models because the textures are packed into the file. For rigged and animated models, FBX is the most common choice.
Why is my model the wrong size in Roblox?
The importer converts from the unit set in Scale Unit. If your file was made in meters or centimeters but imported as Studs (or the other way round), it comes in far too big or small. Model at 1 unit = 1 stud and import with Scale Unit set to Studs.
What is the triangle limit for Roblox meshes?
Each mesh can have up to 20,000 triangles. For pets and props that appear many times, a few thousand triangles is a better target, especially for players on phones.
How do I import an animation for a custom rig?
Import the rigged model with Rig Type set to Custom. Animations in the FBX are saved to an AnimSaves folder on import. Open the Animation Editor from the Avatar tab, load the clip and publish it with ⋯ > Publish to Roblox, using the account or group that owns the experience. Extra clips in separate FBX files can be imported from the editor's menu. Play the published animation through the Animator inside the AnimationController.

Get models that import cleanly

Proppo exports pets, eggs and props at Roblox scale with a bottom-center pivot, a triangle budget per asset type, one material and an optional rig.

60 free credits when you confirm your email. No card needed.

All guides