Can't publish to roblox if file contains a large amount of terrain

Reproduction Steps
I’m working on a large open world game but for years I have been encountering an issue where games that include a rather large amount of terrain are impossible to publish onto the roblox platform.

Here is an example of a file that I cannot publish to roblox due to having too much terrain:

Expected Behavior
I expect to be able to publish the file to roblox.

Actual Behavior
It says ‘save failed’ every time I try to publish to a game.

Issue Area: Studio
Issue Type: Other
Impact: High
Frequency: Constantly

8 Likes

Thanks for the report! I filed a ticket for it.

7 Likes

Out of curiosity, how big is the file? I had this issue before and was able to solve it by increasing my network upload bandwidth.

The problem I had was that I couldn’t upload it fast enough and the roblox default timeout would be reached (2 minutes I think is Roblox’s hard limit). Their limit isn’t based on size but is based on time, not quite fair to those of us with slower internet connections.

Subsequently I have been able to upload place files sized up to 64MB, which is a fairly large chunk of terrain.

1 Like

It is a 488 MB file, uploading at an average of 700 Mbps. I should be able to complete the upload within about 6 seconds.

It used to just take a while and seemed like it timed out back when I posted this report. Unfortunately, now when I try to publish studio just stops responding for about 10 seconds then I come back to a save failed message.

PC specs:
Ryzen 9 5900x
GeForce RTX 3070 Ti Founders Edition
Windows 10 Pro (up to date)

1 Like

Okay well, I would suspect that you have found another limit! (other than time). That is a very huge file!

You are going to run into floating point issues if you get very far from the origin. Good luck getting this to work.

2 Likes

I have the same issue with a Med sized map, and very fast PC, perhaps slow internet. They responded to me and pointed me to this already opened bug report…

I have uploaded bigger maps before with no issue… My map is also a heightmap generated one…and I have cut out the bottom part of it to even make it smaller… still does not work.

1 Like

Look at the file size on your computer, how big is the place file?

Like I said, I have been able to upload a 64MB place, I wouldn’t recommend going that big or bigger as updating becomes cumbersome(for me at least).

Also, start a stopwatch when you hit publish. If its timing out at the same time every time, it could be your upload bandwidth. Try to find a faster internet connection if you have a laptop, try to go to a place with good wifi and see if it works there.

I think a typical internet upload speed is 5mbit, at that rate 60MB to 70MB in 2 minutes is going to be the limit. If you’re internet is slower your limit will be lower than that.

ROBLOX(@nightend16),
Can we get one of these improvements:

  • increase the publish timeout (in minutes), slower connections need more time to upload
  • base the publish upload timeout on upload size and not time! (make it fair for slow internets, if we want to wait 2 hours to upload 50MB, let us do that)
2 Likes

Ya, I was thinking of tapping into a faster upload area…

How are you figuring out the size of what you are uploading? Do you just mean the size of the game file , when I save it locally to my PC?

1 Like

Yep, the size of the game file saved on your pc, this is what it has to be able to upload in 2 minutes. Terrain just happens to be a leading cause of huge game files!

1 Like

You probably want to make the terrain hollow, a very thin terrain removing excess voxels at the bottom. I encountered similar issues, but by making it very thin, I was able to upload a big terrain map to Roblox.

1 Like

ok, thank I will check it out size wise

i think it still is a bug on Robloxs side tho

1 Like

When will roblox increase the publishing time, because i think is my internet what doesn’t let the game publish, roblox expects the game to publish in 1 second, and is not fair, not everyone can have a great wi-fi. i can’t publish small updates just because of my wifi, and comparing to the person who created this post, my gamefile is of 125mb. im trying to lower it and see if it publishes but im having no luck at all. i am even deleting stuff but nothing, a roblox staff has to see this

2 Likes

I can suggest a way to make the filesize less big; you can publish sections of your game as models and insert them into the game when needed (using InsertService).

A simple example of this (i.e importing a skybox into the game) can be seen below:

local InsertService = game:GetService("InsertService") -- The service that can import models.
local skyModel = InsertService:LoadAsset(11809190712) -- The asset id for the skybox.

skyModel.Sky.Parent = game.Lighting -- The sky should now be different!

This can be really helpful if you’re tweaking one or two things in your game and keeping most of the other stuff the same. If you tend to update many maps in your game to keep it fresh, this could make it a tedious process; having to find the id that goes with your map, editing it and then re-uploading it to the same id.

To be honest, I have no idea if this would help with the terrain. There might be other ways to make the terrain fit into a game that doesn’t involve including it with each upload.

For example, you could generate it procedurally; using a set seed to make sure it’s always the same map. Or, you could compress and split the terrain data into values and stream the chunks to the server.

Some ideas might be harder to implement than others, but it depends on what kind of game you’re developing.

Hopefully, these ideas can help make the place much smaller and easier to upload.

4 Likes

Oh thank you so much! but i don’t work with terrain, my situation is kinda different, could you please check the post i did for it please? [Game is not Publishing (Place Save Error - HTTP 404 / Server Save Failure: HTPP 500)]

And also about inserting stuff, i’m at the very peak, i tried to delete stuff and publish and yet i get the HTPP 500 error, i don’t know what to do at this point, is desesperating not being able to keep publishing, so if you can pls can you check my forum post? Thank you in advance!

1 Like

I’m also encountering this issue.
It’s extremely frustating, as sometimes I can easily push an update as if it’s nothing, other times I’m stuck trying to update over and over, for 30 minutes straight, until it just randomly works one time. I assume this is due to my internet upload speed being slower sometimes.
Is it in any way possible to just increase the time before studio ‘gives up’ trying to publish?

EDIT: Place size is around 60MB, so should be below the ‘max place size’ limits

1 Like

Using the open cloud publish API seems to give me 100% success rate. Suggesting that the timeout is only built into studio. Would be perfect if it got fixed in studio, but for me using the open cloud API is good enough.

If anyone has the same issue, I suggest trying this. Only other way that seems to fix it is a faster internet connection. But that’s most likely much harder to reach for most people.

1 Like

What app do you use to publish?

This would be a good workaround for many developers with slow internet connections if it weren’t so convoluted.

I mean, I don’t have node.js lying around on my pc. Not that I’d know how to use it if I did.

I found a tutorial on devforum that attempts to explain how to do it with node.js but this tutorial does more to dissuade me from trying this method.
The video he made is almost 20 minutes long and assumes you have node.js and know how to use it.

2 Likes

Okay, so I figured out how to do this with the built-in windows curl in the windows command line. It is way easier than it seems once you figure out the different syntax which Roblox didn’t provide in their ‘*nix’ curl example. Anyway here is a syntax that will work on Windows 10 command line:

one line version(ignore the lua formatting and copy the whole thing, there is no --comment):

curl -X POST -L https://apis.roblox.com/universes/v1/{universeId}/places/{placeId}/versions?versionType=Published -H "x-api-key: {YOUR-API-KEY}" -H "Content-Type: application/octet-stream" --data-binary "@.\{yourPlaceName.rbxl}"

or if you want the .bat file version with line breaks that you will be able to double-click to run and it will pop up and pause use this one:
make a windows .BAT file in the folder containing the saved place file:

@echo off
curl -X POST -L https://apis.roblox.com/universes/v1/{universeId}/places/{placeId}/versions?versionType=Published ^
-H "x-api-key: {YOUR-API-KEY}" ^
-H "Content-Type: application/octet-stream" ^
--data-binary "@.\{yourPlaceName.rbxl}"
echo.
pause

That’s it, you run that in a batch file (after configuring the api key and plugging in the ID’s)

Make sure to replace all the ‘stuff’ inside the {} and replace the {} characters also there should be no {} characters in the script after you plug in your info.

Use this to help setting up your API key and process overview:

rant: why would Roblox provide an example syntax that most beginning devs would not be able to use. Windows did not like any of the syntax used, there is no $ prompt, line breaks are ^ not , etc. etc. Maybe it works on Apple or Linux but I would expect most Roblox devs start out using Windows. They could specify what OS their example is compatible with.

2 Likes

I’ve been using this python wrapper for the cloud API: Rblx-open-cloud - Roblox Open Cloud Wrapper for Python!

Works perfectly like this, but it’s still an extra step where you have to save locally, and then publish. An extra step where things might go wrong.

It would be handy if they could just remove the time limit for publishing with studio though…

3 Likes

Thanks, I figured out how to do it in Windows command prompt and posted it here above, maybe it will help someone with a slow internet somewhere.

2 Likes