


Pulled live from our Roblox groups. Click an item to open it in the catalog.

Blockbench textures are tiny and most of the image is empty space. Roblox then blurs them. Drop your model and this tool crops the texture to the pixels your UVs actually use, scales it up with nearest-neighbour to 1024 px and moves the UVs to match, so your model looks sharp in Roblox.
Drop your model here
FBX or OBJ plus its textures: colour, normal, roughness, metalness… (and the .mtl). A Blockbench .zip works too.
Your files never leave your computer. Everything is processed on this page.
For every texture it reads the UVs of the faces that use it and takes their pixel bounding box (+2 px margin), just like the CROP TO 1024px button of the Blender add-on.
The used area is cut out and enlarged with nearest-neighbour, so each texel becomes a sharp block of pixels instead of a blur.
The model file is edited in place: UV coordinates and the texture name change, everything else (mesh, scale, bones, weights, animations) stays byte for byte.
No. The original add-on only worked with an armature selected. Here static props and rigged characters both work.
Roblox shrinks bigger images to 1024 px, so 1024 is the most detail a texture can have in Roblox.
The model from the .zip. If the FBX had the texture embedded, the new one is embedded too; otherwise keep the _rbx.png next to the model or upload it as the texture.
Yes. Vertex positions, normals, bone rest poses, skin weights and animation keys are not touched. We checked it by re-importing the result in Blender: every value is identical.
Each texture gets its own crop. Materials that share a texture, or any map, are cropped together as one group, so every face keeps pointing at the same pixels. Materials without a texture are left exactly as they are.
If several materials use images with exactly the same pixels (even saved as different files), they are merged into one texture: every mesh keeps its own UVs, but they all use the same cropped image, so you upload it to Roblox once. Materials and textures that no face uses are removed from the file.
Every map of a material gets the same crop: colour, normal, metalness, roughness, emissive, AO, opacity and specular, even if they have different resolutions (a 64 px colour map with a 128 px normal map is fine). Maps the model doesn't link are matched by name: crate_normal.png, crate-rough.png, crate AO.png go with crate.png. Normal maps keep their exact values (16-bit stays 16-bit).
ColorMap ← name_rbx.png · NormalMap ← name_rbx_normal.png · MetalnessMap ← name_rbx_metalness.png · RoughnessMap ← name_rbx_roughness.png. SurfaceAppearance has no slot for emissive, AO or specular (they are cropped too, for other tools); opacity goes in the alpha channel of the ColorMap.
Based on the "Angelo Actions" Blender add-on by CreativeCubeTM.