Roblox Polygon Limits Explained: How to Optimize 3D Models
Roblox mesh and texture limits explained — the real 20,000-triangle cap, draw calls and instancing, texture memory, RenderFidelity and CollisionFidelity.
Roblox runs on everything from high-end PCs to cheap Android phones. Every triangle on screen costs the GPU, every unique mesh costs a draw call, and every texture costs memory that doesn’t care how small your PNG is. Limits exist to protect the lowest common denominator — and your game’s retention.
Updated September 2026. This guide used to repeat the widely-quoted “10,000 triangle limit”. That number is a performance guideline, not the engine’s limit. The real cap is 20,000, and the section below explains why the distinction matters.
The number most guides get wrong
There are two different numbers here, and almost every Roblox tutorial conflates them: the hard cap the engine enforces, and the budget you should design to.
| Asset | Engine limit | Budget to design for |
|---|---|---|
| Triangles per mesh | 20,000 — Roblox rejects anything above this | 2,000–4,000 for props you place repeatedly; up to ~10,000 for a hero asset |
| Texture resolution | 4096×4096 supported | 256×256 for a 5×5-stud object, 512×512 for 10×10, 1024×1024 for 20×20 |
| Total on-screen triangles | No engine cap | The scene budget — which matters far more than any per-mesh number |
Roblox’s general specifications are explicit: “Individual meshes can not exceed 20,000 triangles.” The 10,000 figure repeated across most Roblox tutorials is a performance guideline, not the limit — worth knowing the difference the day a 14,000-triangle hero asset is the right call.
Think in budgets, not ceilings. A single 10k mesh is fine; a hundred of them in view at once is not. Mobile target? Halve everything.
Triangles aren’t the whole story: draw calls
This is the section that changes how you build, and it gets almost no coverage.
A draw call is one batch of instructions sent from the engine to the GPU. Each one carries overhead regardless of how many triangles it contains, so a scene made of many small unique meshes can run worse than a scene with far more triangles built from repeated ones.
The reason is instancing. Roblox’s performance documentation states that “multiple meshes with the same [MeshContent] are handled in a single draw call when [SurfaceAppearances] are identical”. In other words:
One mesh placed fifty times is dramatically cheaper than fifty unique meshes, even when the triangle counts are identical.
Roblox’s own advice follows from that: “Make sure to only upload each mesh in a map once and then duplicate them in Studio for reuse rather than importing large maps as a whole.”
The practical consequence is that your biggest optimization lever often isn’t decimation at all — it’s building a kit. Five well-made crate variants reused across a warehouse beat fifty bespoke crates every time, and they’re less work.
Two things break instancing, so watch for them: giving copies different SurfaceAppearances, and importing a map as one giant mesh instead of as reusable components.
Texture memory: the cost you can’t see
Textures quietly eat more memory than geometry in most Roblox scenes, and the rule is counter-intuitive:
“Graphics memory consumption for a texture is unrelated to the size of the texture on the disk; the number of pixels in the texture determines memory usage.”
Compressing your PNG harder doesn’t help. Converting to greyscale doesn’t help. Only the pixel dimensions matter. A 2048×2048 texture costs four times a 1024×1024 one, whatever the files weigh.
So size textures to the object. Roblox recommends 256×256 for a 5×5-stud object, 512×512 for 10×10 and 1024×1024 for 20×20. 4K is supported and almost never worth it.
A related trap is inconsistent texel density: a 1024 texture on a five-stud crate next to a 256 on a twenty-stud wall reads as an error even though each is individually reasonable. Pick a density and hold to it.
How to reduce polygon count (decimation)
Decimation lowers triangle count while trying to preserve the model’s shape.
- Blender → Decimate modifier. Free and precise. Apply a collapse ratio, check the silhouette, iterate.
- Auto-retopology tools. Rebuild cleaner geometry — better quality, slower.
- Automated optimizers. Useful when you’re processing many AI-generated meshes, which arrive over-dense by default.
The rule: decimate until the silhouette degrades, then back off one step. Players see silhouettes, not wireframes. Nobody has ever noticed a missing interior edge loop; everybody notices when a sword stops looking like a sword.
Keep the high-poly original. You can always decimate again; you cannot un-decimate.
RenderFidelity: detail by distance
RenderFidelity controls how much geometric detail a MeshPart renders. Three options:
- Automatic — detail scales with distance from the camera. This is the default and the right choice for almost everything.
- Performance — always the cheapest representation.
- Precise — always full detail. Reserve it for hero assets the player inspects up close.
Roblox documents the Automatic tiers concretely: highest detail under 250 studs from the camera, medium between 250 and 500, lowest beyond 500. That means Automatic is doing real work for you on anything in the middle distance — and leaving distant scenery on Precise is a common, invisible cost.
CollisionFidelity: the budget nobody checks
This one costs you physics performance, so it never shows up in a triangle count, and it’s frequently the largest avoidable cost in a scene.
| Option | Cost | Use for |
|---|---|---|
| Box | Lowest | Small anchored props, crates, anything roughly rectangular |
| Hull | Moderate | Convex-ish shapes where a box is too crude |
| Default | More expensive | General-purpose approximation |
| Precise | Highest | Only where accurate collision genuinely matters |
Roblox’s guidance is direct: “For small anchored parts, it’s generally safe to set collision fidelity to Box.”
Precise convex decomposition on every decorative prop in a scene is a bill you’ll pay every frame for collision nobody will ever touch. If a player can’t walk into it or shoot it, it doesn’t need accurate collision.
A checklist you can actually measure
- Check triangle count per mesh — over 20,000 is rejected outright, and over ~10,000 is a decimation candidate.
- Decimate down toward 2k–4k for props that repeat.
- Size each texture to its object (256/512/1024 per the table above), not to the 4K ceiling.
- Count your unique meshes, not just your total. Can any become one mesh reused?
- Set CollisionFidelity to Box on small anchored props.
- Set RenderFidelity to Automatic unless the asset is a hero.
- Bake multi-material objects into one texture.
- Test on a mid-range phone, not the PC you built it on.
Common mistakes
- Repeating “10,000 is the Roblox limit.” It’s 20,000 — and neither number is your real constraint.
- Optimizing triangles while shipping fifty unique 4K textures. The textures were the problem.
- Fifty unique props where one instanced fifty times would collapse into a single draw call.
- Decimating past the silhouette, then wondering why the asset reads as mush at distance.
- Throwing away the high-poly source. There’s no way back.
- Leaving CollisionFidelity on Precise for decorative props nothing ever collides with.
- Assuming LOD is automatic and never looking at RenderFidelity.
- Testing only on your own machine. Your development PC is not the median Roblox device.
Frequently asked questions
What is the polygon limit for a Roblox mesh? Roblox’s general specifications state that individual meshes cannot exceed 20,000 triangles. That’s the upload cap. The number you should design to is far lower — 2,000 to 4,000 for anything you place repeatedly.
Why do so many guides say 10,000? Because it’s a sensible working budget, and it’s the figure quoted around runtime mesh import. It’s guidance, not the engine limit. Knowing the difference matters the day a 14,000-triangle hero asset is the right call.
What’s a good triangle count for a Roblox prop? 2,000–4,000 for anything repeated; up to about 10,000 for a hero asset the player stands in front of. A scene with a hundred 10k meshes in view will struggle on a phone regardless of the per-mesh number.
What’s the maximum texture size on Roblox? 4096×4096 is supported. Roblox recommends scaling with object size: 256×256 for a 5×5-stud object, 512×512 for 10×10, 1024×1024 for 20×20. Memory cost tracks pixel count, not file size.
Will a high-poly mesh get rejected? Over 20,000 triangles, yes. Under it, it imports fine and then quietly costs you frames.
Does reusing the same mesh actually help performance? Substantially. Identical meshes with identical SurfaceAppearances are consolidated into a single draw call, so one mesh placed fifty times is far cheaper than fifty unique ones. Building a reusable kit is often a bigger win than decimation.
If you’re generating models with AI you’ll hit these limits constantly, because image-to-3D output arrives dense by default — see the text-to-3D guide for that pipeline, and how to make 3D models for Roblox for the method-agnostic version. Automating the optimization step is usually worth it once you’re processing more than a handful of assets; HyperDevs’ Optimize tab does decimation, texture baking and material cleanup in one pass. Download it.
Respect the limits early and your game stays fast; ignore them and you’ll be emergency-optimizing a week before launch.
Try it in HyperDevs
Everything in this guide works in HyperDevs — the AI-powered Roblox development environment.
Download for WindowsKeep reading
- How to Make Roblox Decals and Textures with AI (Step by Step) Generate Roblox decals, textures, UI icons and signage with AI — which image model to use, what sizes Roblox wants, how to apply them, and what moderation rejects.
- How to Make a Roblox Game with AI (Step by Step) Build a small Roblox game with AI: plan it, generate and optimize the assets, script it in Luau with an AI that knows your project, then playtest and publish.
- AI Asset Pipeline vs. the Manual Blender Workflow for Roblox An AI asset pipeline versus the manual Blender workflow for Roblox: the tools, the time each takes, and where each approach genuinely wins.