Saved Sep 29, 2026 by @enviglo: Rejected uploads can be overturned on appeal and go live without uploading again
- While it waits, it shows under **Waiting for review**, marked **Pending**. Press its bin icon to take it back.- Once it's approved, it's added to the end of your media.- - If it's rejected, the file is deleted and a line under **Media** says why. The person who uploaded it is told, and so is everyone on your team who gets notified about **A decision from Enviglo**. It's also listed on your store's **Notices** page. See [Notices from Enviglo](/wiki/notices-from-enviglo).+ - If it's rejected, it never shows publicly and a line under **Media** says why. The person who uploaded it is told, and so is everyone on your team who gets notified about **A decision from Enviglo**. It's also listed on your store's **Notices** page. See [Notices from Enviglo](/wiki/notices-from-enviglo).An upload only counts towards publishing once it's approved.…
A product's Media page has two parts: Media, for the images and video on the product page, and Files and versions, for what owners download. You need the Edit products permission. Deleting a file version also needs Delete products.
To get there: in your store's dashboard, open Products, pick the product, then open Media.
Press Upload image and pick a file.
If the picture is already on Roblox, you can copy it in:
The image is copied into Enviglo and reviewed like any other upload.
Video on a product page comes with Pro, whether you upload it or link it from YouTube. On Free neither control appears; a video already on a product stays where it is.
Videos play in the gallery on the product page.
Every image and video you add is checked by the Enviglo team before it appears on the product.
An upload only counts towards publishing once it's approved.
A product can have 12 media items, counting ones still waiting for review. The counter shows how many you've used, for example 3/12. At 12, the add buttons are greyed out until you remove something.
Drag a tile by its handle to move it. The keyboard works too. To remove one, press the bin icon on its tile.
Publishing needs at least one image, and a live product always keeps one. To replace your only image, add the new one first, then remove the old one once the new one is on the product. A new upload waits for review before it counts; one picked with Choose from approved goes up straight away.
A product that went live without an image, like many that came over from myPod, is shown with a cover Enviglo draws for it and sits behind products that have a picture of their own. Unless its description runs to a couple of sentences, search engines such as Google aren't asked to list it either. It's flagged No artwork, or Not in Google yet, under Needs attention.
Your in-game hub can't show images hosted on Enviglo. Set the picture it uses with In-game hub image on the Delivery page. See Delivery on Roblox and Discord.
This is what owners download from their library. You don't need a file to publish, but owners see "No file uploaded yet" until you add one.
The rules:
Every version is checked as it uploads, and so is every file inside a zip or Unity package. Nothing leaves Enviglo to be checked.
Enviglo won't accept a file that is, or contains:
If a file is refused, the upload stops with the reason, and nothing is kept. Fix it and upload the version again. Scripts are fine: .lua, .luau, .py, .js and the rest are what products are made of.
Enviglo also reads the scripts in Roblox models and places for signs of a backdoor, like sending data to a Discord webhook or loading a hidden module. A file that shows one is still uploaded and stays available to buyers, and Enviglo's moderators take a look. Plenty of honest products load modules by their ID, so that alone doesn't count against yours. Files uploaded before these checks existed are being checked the same way.
You get a notification, and the version shows what was found under Files and versions on the product's Media tab. Nothing changes for your buyers while Enviglo's team looks, with one exception: a new version with code shaped like a backdoor, such as a script reaching require through getfenv, is Held for review. Your buyers keep getting the version before it until the team has looked. Once it's cleared, it goes out to them and you're told, and you can tell its owners about it. You can still download or delete a held version yourself.
Obfuscated code is fine. Protecting your scripts with Luraph, PSU or any other obfuscator never gets a version flagged or held on its own. The check also skips comments and text in strings, so a readme in a comment that mentions loadstring or require doesn't count. It reads what your scripts actually run.
If you know why the code is there, press Explain and say what it does, who wrote it and whether buyers need it. Most flags turn out to be honest code, like a webhook buyers fill in with their own server or an admin system's loader, and an explanation helps the team decide sooner. You can change what you said until they do. Once they've looked, the version says so.
When Enviglo's team finds a script is harmful, usually a backdoor that came in with a free model, every product carrying it goes Off sale until you upload a version without it. Meanwhile nobody can buy it and its owners can't download it, though they keep their licenses. If an older version of the product doesn't have the script, it keeps selling and owners get that version instead.
You get one notification and email for all of your products it affects. Each product's Media tab shows which script it is, and your store's Notices page lists every product that's off sale. Delete the script and upload a new version: once it passes the file check, the product goes back on sale by itself, and a draft stays a draft for you to publish. Uploads that still carry the script are refused.
It isn't a suspension or a warning, and it doesn't count against your store.
The newest upload is marked Latest, whatever its number. That's the one owners download, from their library or from the Download button on the product page, which names the version.
The product page also lists the files under Included files. Once there's more than one version, or a version has notes, its Details tab shows a Version history with each version's notes.
Every new version shows as Updated in its owners' libraries until they download it, whether or not you tell them about it. If your store uses webhooks, they also get a File uploaded event, with the notes. See Webhooks.
A notice goes to everyone who owns the product: a notification with your notes, and an email for people who get those. The email links to the version history, where the notes are in full. If your store posts its updates in Discord, the notice is posted in that channel too. See Post updates.
To keep notices worth reading:
To tell owners about a version you uploaded without a notice, press Tell owners beside it, then Tell owners again to confirm. It's only on the newest version, and only once a day's passed since the last notice.
To change a version's notes, press the pencil icon beside it, then Save notes. The version history shows the new notes. Anyone already told keeps the words they were sent.
Each version on your Media page shows how many times it's been downloaded and when it was last downloaded, or "Never downloaded". Your team can download any version from there.
Press the bin icon beside the version, then Delete. Owners can no longer download it, and you can't undo this. You need the Delete products permission.
You can't delete the only file of a product people own, because it's the only thing they can download. Upload the new version first, then delete the old one.