Loading world

Shop

Portfolio

Layered Clothing

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

Tools

Legal

X

Pixel Crop

Blockbench → Roblox Pixel Crop

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.

  • Runs in your browser
  • FBX (binary + ASCII) · OBJ
  • Multi-material + PBR maps
  • With or without armature

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.

Scaling
Whole-number zoom per axis: every texel becomes an exact block. Up to 1024 px.
Max size
Anti-bleed inset
Like the add-on's "Shrink UV Faces": pulls every face a little inward so edge pixels don't bleed at a distance. Off keeps UVs exact.

How it works

  1. 01

    Finds the pixels in use

    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.

  2. 02

    Crops and upscales

    The used area is cut out and enlarged with nearest-neighbour, so each texel becomes a sharp block of pixels instead of a blur.

  3. 03

    Moves only the UVs

    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.

Good to know

Does it need an armature?

No. The original add-on only worked with an armature selected. Here static props and rigged characters both work.

Why 1024 px?

Roblox shrinks bigger images to 1024 px, so 1024 is the most detail a texture can have in Roblox.

Which files do I import 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.

Is it the same model?

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.

Models with several materials?

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.

The same texture repeated many times?

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.

What about normal, roughness and metalness maps?

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).

Which file goes where in a SurfaceAppearance?

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.