How do UGC commissions work on Roblox?
A commission is an agreement before it is a model. Write down the brief, the number of revisions, the file you deliver and the price, in that order, and nothing starts until both sides have read it. Deliver the source file, not only the uploaded item, or the buyer owns a picture of your work.
In short
- Price, revisions and the deliverable, written before the first mesh.
- Deliver the source. An uploaded item alone is not a deliverable.
- Half up front is normal. Full up front from a stranger is not expected.
Almost every commission that goes wrong went wrong in the first message. Not over quality — over what "done" meant, how many changes were included, and whether the buyer was getting the file or just the item on their account. All three are one paragraph of writing.
Steps
1. Write the brief back to them
Do not start from their message. Restate it in your words, with the numbers in it, and ask them to confirm. A misunderstanding costs nothing here and costs a week later.
--[[
The brief, restated:
- What: one UGC hat, stylised, matching the reference images sent.
- Deliverable: the .blend source, the exported mesh, the texture, and the
item uploaded under YOUR account.
- Revisions: 2 included, after the first grey-model pass. Extra ones $X each.
- Price: $X total. Half now, half on delivery of the source.
- Timeline: 5 working days from the deposit.
- Not included: uploading under MY account, Robux costs, marketing art.
]]
2. Show the grey model before the texture
The cheapest revision is the one on an untextured mesh. Send the shape first and get the shape approved; a texture reworked because the silhouette was wrong is a day lost.
3. Deliver the files, then the upload
The buyer paid for the asset, not for a screenshot of it. Hand over the source, the exported mesh and the texture, and upload the item afterwards if that was part of the deal.
4. Let the game check ownership
A buyer who sells a UGC item usually wants to give something in game to the people who own it. That is one call, and it belongs on the server.
local MarketplaceService = game:GetService("MarketplaceService")
local Players = game:GetService("Players")
local UGC_ASSET_ID = 0 -- the item's asset id
local function ownsItem(player: Player): boolean
if UGC_ASSET_ID == 0 then return false end
local ok, owns = pcall(function()
-- Somebody else's service, over the network: always in a pcall, and
-- never in a loop that runs every frame.
return MarketplaceService:PlayerOwnsAsset(player, UGC_ASSET_ID)
end)
return ok and owns
end
Players.PlayerAdded:Connect(function(player: Player)
if ownsItem(player) then
-- The perk: a tag, a colour, an extra spawn. Decided here, on the server.
player:SetAttribute("UgcOwner", true)
end
end)
What to agree before starting
| Thing to agree | Say it as | What happens if you skip it |
|---|---|---|
| Price | one number, one currency | "I thought that was in Robux" |
| Revisions | a count, and what one costs after | endless small changes for free |
| Deliverable | the exact files, by extension | they expected the .blend, you sent a .fbx |
| Who uploads | named, with who pays the upload cost | the item sits on nobody's account |
| Deadline | working days from the deposit | "it has been a month" with no agreed start |
| Exclusivity | yes or no, in writing | they find the same hat in another game |
FAQ
Should I ask for payment up front?
Half is the normal split: half at the start, half on delivery. Full up front from somebody with no history is not what buyers expect and it costs you the job; nothing up front means you can build a week of work for free. A contract recorded somewhere both sides can see makes the split easy to ask for.
Who should upload the UGC item?
Whoever is going to sell it, which is almost always the buyer. Uploading costs Robux and the item lives on the account that uploaded it — so if you upload, you own the thing they paid for. Agree this in writing before the first file moves.
Can I reuse a commissioned model in my own portfolio?
Say so before you start, and then yes. Most buyers agree to a portfolio use and refuse a resale; a few want exclusivity and will pay more for it. The only version that causes a fight is the one nobody wrote down.
What if they stop replying after the grey model?
The deposit is why that split exists. Keep the files, keep the deposit as the work done, and close the job. A contract with the stages written out is what turns that from an argument into a sentence.
Updated: Tested in Studio: Roblox Studio, October 2026Author: GustavoLicense: Code in this guide may be used in any Roblox experience, including a paid one