Help Optimizing Terrain for Huge WW2 Warzone Map

Hey everyone,

I’ve been working on a huge WW2 warzone map in Roblox, and I’m running into some serious performance issues. After spending about a week testing and researching, I’m pretty sure the problem isn’t my scripts or buildings it’s the terrain itself.

Here’s what’s happening:

  • The map is massive, roughly 7,660 × 3,936 × 13,140 studs.
  • I removed all models, buildings, scripts, and decorations just to test the terrain alone.
  • When I walk around in Play mode:
    • Ping starts at 50–70, which is fine.
    • After walking for 1–2 minutes, ping slowly climbs, sometimes reaching 1,000, even without StreamingEnabled or any scripts.
  • I’ve tried a bunch of things already:
    • Lowering the terrain as much as possible
    • Smoothing jagged hills, mountains, and trenches multiple times
    • Subtracting extreme peaks and valleys
    • Turning off 2022 Terrain materials
    • Anchoring all mesh parts and unions

Nothing seems to stop the spikes.

From what I understand, the main problem is voxel complexity. Even if the terrain is “low,” millions of voxels from mountains, hills, and trenches can overwhelm the client, especially on a map this size.

Right now, I’m considering a few options:

  1. Flatten and smooth combat areas as much as possible
  2. Replace distant hills and mountains with low-poly MeshParts to keep visuals but reduce voxels
  3. Split the map into zones using TeleportService, so players only load part of the map at a time
  4. Maybe use StreamingEnabled carefully with optimized chunk sizes

I’m not sure if hardware my PC/laptop is part of the problem.

I’d really appreciate any advice on optimizing huge terrain maps in Roblox, especially for WW2-style battlefields with mountains, trenches, and villages.

Thanks a lot!

each voxel is a 4x4x4 studs cube, the terrain mesh you see is just voxel smoothing and interpolation, smoothing bumps and small details wont really help much.

the best thing you can do is make the terrain very thin and hollow because all of the “empty” space inside of a mountain or underground is still voxels that has to be streamed in.

replacing distant features with meshes would probably help a ton too