The parts desk Buying guides

How to buy LEGO parts for a MOC

Turn your custom model's inventory into a shopping list, check what is available, and keep track of the pieces still needed to finish the build.

Buy the pieces you still need for the build.

A MOC (“My Own Creation”) is a custom LEGO model. Its inventory lists the pieces needed to build it. Make a shopping copy with the correct part, colour and remaining quantity for each row.

What are you starting with?

File already prepared? Upload your parts list

Check what the inventory includes

Use the designer's inventory for the version of the instructions you will follow. Keep the original unchanged and make a separate shopping copy.

  • Complete model: the inventory usually covers the whole build. Subtract suitable pieces you already own.
  • Alternate build: check which donor set is required and whether the design uses its spares or needs extra pieces.
  • Modification or extension: establish whether the list covers the whole model or only the additions before subtracting the original set.
Check the hard-to-replace pieces before buying the common ones.

Look for an unusual windscreen, printed panel or essential mechanical component. Establish how you will source it, or use a designer-approved substitute, before committing to the rest of the build. Having most of the pieces can still leave a model unfinished.

For the same red 2 x 4 brick: the model needs 12, subtract 5 already owned, upload 7, order 4 in this example, and keep 3 on the remaining list.
Keep the original inventory, your shopping copy and your order record separate. Stock quantities in this example are illustrative.
One example, from inventory to order

Twelve red 2 x 4 bricks needed. Five already owned.

A red LEGO 2 x 4 brick with eight studs.
Brick 2 x 4, Red
Rebrickable part 3001, colour 4.
View this part and colour

You already have five in the correct colour. Your shopping list needs seven. We will use this same part and quantity in the file and preview examples below.

Prepare the file for your starting point

Upload one CSV, XLSX or BrickLink XML file, up to 1,000 rows and 2 MB. Keep each catalogue's part and colour IDs together. A numeric colour ID can identify a different colour in another catalogue.

From Rebrickable

  1. Export the model's inventory as a Rebrickable CSV, or use an XLSX list with Part, Color and Quantity headings.
  2. Check whether the export contains the full inventory or only missing pieces. For a full list, subtract pieces you already own and any already ordered for this project.
  3. Remove unwanted spare rows and rows you no longer need. Keep the remaining quantities as positive whole numbers.
Rebrickable IDs and spare rows

Keep letters and suffixes in part IDs, and use numeric Rebrickable colour IDs. Extra columns such as Is Spare are accepted, but the uploader does not automatically remove spare rows. Delete any you do not want to buy.

From Studio or a BrickLink Wanted List

In Studio, choose File → Export As → BrickLink Wanted List XML. For a BrickLink Wanted List, use its XML export. Upload the exported .xml file; the Studio .io model is not a parts-list upload format.

XML quantities: avoid subtracting owned pieces twice

If a wanted-list export includes both the total required (MINQTY) and already fulfilled (QTYFILLED), the uploader subtracts the fulfilled count. In our example, 12 required and 5 fulfilled produces a request for 7.

If you instead prepare a remaining-only list of 7, do not also carry over the fulfilled count of 5. For a fresh Studio export, check the quantities and account for pieces you already have before ordering.

Export parts rather than complete sets or minifigures. Resolve alternative-part rows before uploading. Inspect the condition badge on every preview row, even if your source list contains a condition preference.

From a spreadsheet or manual list

Use one row per part and colour, with the quantity you still need. Download a template and replace its example row:

  • Rebrickable CSV template: Part, Color, Quantity.
  • BrickLink IDs: use Part, BrickLink Colour ID, Quantity. That explicit colour heading tells the uploader which catalogue you are using.
  • LEGO element CSV template: Element, Quantity. An element ID identifies the part and colour. See the part-number guide if you only have a design number.
Spreadsheet layout and file checks

For XLSX, use one populated visible worksheet with headings in row 1. Use plain values without formulas or merged cells. Copy calculated quantities and paste them as values into your upload file. Save IDs as text to preserve leading zeros and suffixes.

Column order and capitalisation do not matter. Keep just one identifier format: part and colour IDs, or LEGO element IDs. Remove zero-quantity rows. If the list exceeds 1,000 rows or 2 MB, split it into smaller files without repeating requirements.

From instructions without a parts list

Check the download package or ask the designer for an inventory. If you need to make one yourself, record each part, colour and quantity from the instructions, then put the remaining requirements into a supported template. A photograph of the finished model cannot show all its internal pieces. PDFs and instruction images cannot be uploaded as a parts list.

Annotated Rebrickable spreadsheet row: Part 3001 identifies the 2 x 4 brick, Color 4 identifies Red, and Quantity 7 is the amount still to buy after subtracting five owned from twelve required.
Our example upload is 3001,4,7. Use the actual column headings shown. The existing Rebrickable template starts with a quantity of 10; replace it with your own remaining quantity.

Review the preview before adding parts

Open Upload Parts List and choose your file. The preview lets you check the matches before adding them to your basket.

Illustrated upload preview for seven red 2 x 4 bricks. Callout 1 marks the condition preference, 2 the selected row, 3 a quantity of four, and 4 the shortage showing four of seven available and three short.
A simplified preview using our example. The quantities illustrate a partial order and do not show current stock.
  1. Choose the condition preference. The initial preference is Prefer New. Switch to Prefer Used if appropriate, then check the New or Used badge on each row.
  2. Check the selected part and colour. Compare the description and image with your inventory. Untick anything you do not want to add.
  3. Check the quantity being added. In our example you request 7, but only 4 can be supplied in the chosen condition. The available row therefore offers 4.
  4. Read the shortage list. The same part appears under “Unavailable or short on stock” as 4 of 7 available, with 3 short. Record those 3 before continuing.
“Prefer New” can still select used pieces.

If the preferred condition has no available stock, the uploader can select the other condition. It does not split one row between new and used stock. If 4 new pieces are available against a request for 7, used stock is not automatically added to cover the other 3.

Check the other preference or source the remainder separately. Keep the combined quantity within your remaining requirement. Our part condition overview explains the stock labels.

Check the selected total, add the parts, then review the resulting basket. Stock can change between preview and adding. Reducing a quantity or unticking a row does not change the imported requirement used by the shortage list, so record anything you deliberately leave out as well.

Choose the next step for each problem

A file problem, an unmatched ID and a stock shortage need different actions
What you seeWhat to do next
The file is rejectedCheck the extension, headings, size and row limit. For XLSX, use a plain table with values in place of formulas. Open the format help above for your source.
An unrecognised part or row errorCheck the part ID, suffix and numeric colour ID against the source catalogue. Correct the row and upload again. Use the part-number guide to check another reference.
The match has an unexpected colourCheck the colour-ID system and column heading first. Compare the colour name, not just its number. Read the colour-matching guide before choosing a replacement.
Correct part, too few availableCheck another condition, identify a suitable substitute, or source the remaining quantity elsewhere. Keep the shortage on your list.

Check a substitute's role in the model

  • Hidden filler brick: another colour may work if the part has the same geometry, stays fully hidden and its colour is not needed to follow the assembly steps.
  • Visible or decorated piece: a colour, print or finish change alters the model's appearance. Check the instructions and nearby pieces before accepting it.
  • Clip, hinge or Technic component: compare the connections, offsets, clearance and movement. Similar dimensions alone do not establish compatibility. Follow the designer's substitutions where supplied.

Keep the remainder across every order

If you complete an order for 4 of our example bricks, you still need 3. Record the quantity actually ordered, including any final basket changes, before preparing another upload.

Red Brick 2 x 4 (3001), after the example order
RequiredOwned before the projectOrdered for the projectStill needed
12543

Download the MOC tracking worksheet (.xlsx). It includes this example and calculates required − owned before the project − ordered, with a minimum of zero. Keep a separate row for each part and colour.

  • Owned before: the pieces you allocated from your collection at the start. Keep this baseline fixed.
  • Ordered: all pieces ordered for this project, including those already delivered. Do not also add them to the Owned before column.
  • Still needed: the remainder to source. If an order is cancelled or pieces cannot be supplied, reduce Ordered so the shortage returns to the list.
A basket is not a completed order.

The uploader adds quantities; it does not count existing basket pieces as fulfilling your list. Before another upload, subtract any pieces already in the basket from the quantity you intend to add. Recheck that subtraction if you change the basket.

Use the tracking workbook for planning. To upload the remainder, copy the IDs and Still needed quantities into a supported template, paste as values and remove zero rows. The tracking workbook itself is not an upload template.

Check the basket and the cost of finishing

  • Every selected part has the intended colour, version, condition and quantity.
  • Existing basket lines and earlier orders have been counted once.
  • Essential shortages have a sourcing plan, and substitutions have been checked.
  • The total budget includes delivery, remaining parts from other orders and instructions if sold separately.
  • Your tracking list is ready to record the quantities actually ordered.

Common questions

Can I upload a Studio .io file or PDF instructions?

No. Export a BrickLink Wanted List XML from Studio, or prepare a supported CSV or XLSX inventory. Instructions and model files cannot be read as an uploaded parts list.

Will the uploader subtract the LEGO I already own?

It does not connect to your collection. Supply remaining quantities in CSV or XLSX. If BrickLink XML includes both a required and a fulfilled quantity, the uploader subtracts the fulfilled count. Do not subtract those same pieces twice.

Does uploading the list reserve the stock?

No. Review the quantities added to your basket and check the basket before checkout. Availability can change after the preview.

Can I combine new and used pieces for the same part?

Yes. The uploader does not automatically split one row across conditions. Check the stock in each condition and add the appropriate quantities separately, keeping their combined quantity within your requirement.

Does a matched list guarantee I can finish the MOC?

No. Check shortages and the designer's source inventory. The uploader finds catalogue matches; it cannot establish whether the inventory includes every required piece or whether a substitution works in the model.