Roblox UGC Texture Resolution Guide
The short answer depends entirely on what kind of UGC item you're uploading. There isn't one universal max resolution — it changes by item category. Most people get this wrong and waste hours re-rendering because they assumed everything tops out at 1024x1024. Here's the breakdown that actually matters in practice.
What Is The Max Res For Roblox Ugc By Item Type
Hats, helmets, crowns, and head accessories: 1024x1024 is your ceiling. The texture atlas for these items uses a single square canvas and Roblox will reject anything larger. I've seen people upload 2048px versions and wonder why the submission just hangs in limbo. Shirts: 589x555. This one trips people up constantly. It's not a square. The extra pixels at the sleeves and sides map to the torso seams. If you make it 512x512 you'll get rejection or your texture will stretch weirdly. If you make it larger than 589x555, Roblox down-samples it anyway but you're just wasting file size. Pants: 589x555 as well. Same layout logic. The seam lines in the middle of the canvas correspond to where the left leg, right leg, and waist meet on the avatar.
T-shirts: 512x512. Simpler than shirts because they're just a decal overlay on the torso. No sleeve mapping needed. Accessories (limb attachments, backpacks, wings, etc.): 1024x1024 for the main mesh texture. Some smaller accessories can work with 512x512 but going larger doesn't help since Roblox clamps the display size on the avatar. Faces (emotions): 64x64. These are tiny. Don't overthink it.
Get the Full Details

Bundles: Each component follows its own category limit. The bundle thumbnail itself should be 512x512.
The Practical Stuff Nobody Talks About
File format matters just as much as resolution. Use PNG with no alpha channel for solid color textures. Save RGBA PNGs only when you actually need transparency. The extra channel adds file size and can cause compression artifacts on Roblox's server-side re-encoding. I learned this the hard way uploading a helmet where the edge pixels looked soft and slightly blurred compared to my local preview. Another thing: Roblox re-encodes your textures. Even if you upload a perfect 1024x1024 PNG, the platform applies its own compression. That means your texture should be baked at the final intended resolution. Don't upload a 2048x2048 source thinking it'll look sharper. It won't. The upscaling does nothing useful and the re-encoding may actually make it look worse than a native 1024x1024 file. I once spent a day debugging why a shirt texture had visible banding on gradients. The source was fine — it was an 8-bit PNG saved from a tool that didn't dither properly. Switching to 16-bit or adding a slight noise dither before flattening to 8-bit fixed it immediately. The banding wasn't a Roblox issue at all.
Common Pitfalls
Seam alignment is the biggest one. For shirts and pants, the 589x555 layout has specific regions that map to the front, back, left sleeve, right sleeve, left leg, and right leg. If you treat it like a flat 512x512 canvas and center your design, it'll look wrong on the avatar. Download the official template from the Roblox Creator Documentation page and work inside those guides. They're not optional. Another pitfall: UV unwrapping your meshes outside the 0-1 UV range. If any vertex UV coordinate goes past 1.0 or below 0.0, Roblox will clamp or wrap unpredictably. I've had accessories where the texture appeared mirrored on one side because the UV map had a flipped axis. It showed fine in Blender but looked broken in-game. Always check UV bounds before export. And a final thing that costs people money: the maximum file size per texture is roughly 4MB uncompressed. I've seen people try to upload 16K source files through some automation pipeline, assuming Roblox would handle the downscale cleanly. It doesn't work that way. You need to manually prepare the correct resolution before uploading.

Recommended Workflow
Export your textures at exactly the target resolution for each item type. Don't rely on Roblox to do it for you. Use a dedicated sprite sheet or PBR texture setup in Blender, Substance Painter, or whatever your pipeline uses, and bake out the final sizes. Verify the dimensions with a quick check before you even open the Roblox creator dashboard. The submission tool is strict about dimensions but lazy about quality. It'll accept a correctly sized but poorly compressed file and hand you a pass, then the texture looks muddy in-game because of the re-encoding. Always keep your source files at full quality and only export the final compressed PNG at the exact required resolution.