FAQ for LDraw Part Numbers

This FAQ should help you to understand the LDraw part numbering schema. If you have more questions, please ask! You can post to everyone on the LDraw Forums, or email the parts library administrator.

Can I just submit parts with customized filenames, and let it be sorted out later?
A: Please, no! Read this FAQ for information about what to do when you don't know the number.

How are part numbers allocated?
A: If we know the part number used by Lego, then we use that. For modern parts, these numbers are often moulded in a discreet place on the part. These are typically four digit numbers in the range 2001-9999, or five-digit numbers. Don't be confused by a number of the form n-nn (eg. 4-01), or even single numbers or letters on older parts - these are probably something to do with identifying individual moulds, they are not the part number.

What if we don't know the Lego part number?
A: In this case we use a "u" prefix (e.g. u1234.dat). If a part number is unknown, the part in question gets a file name with uNNNN.dat format, these filenames thus ranging from u1.dat to u9999.dat. The part retains the u-prefixed number as long as the part's true number is unknown.

This unknown number should be the same as used by Peeron (for example Peeron: x1234 -> LDraw: u1234). If Peeron does not list that part, a number ranging from u9000.dat to u9999.dat is to be used. The numbering for this will be chosen by the Parts Tracker admin as before with the range of xNNN.dat files. Prolific authors may request from the Parts Library Admins a range of numbers to be pre-allocated to them.

If the Lego part number is identified during the review process, then the part is renumbered and the u-prefixed number becomes available for re-use.

Prior to 2010, we used a three-digit part number, but that range of numbers has been exhausted. During development, and for posting to the Parts Tracker, the three-digit number was preceded with an "x" (e.g. x123.DAT), and upon inclusion in an official release, the "x" was removed. Parts on the Parts Tracker in February 2010 and not listed by peeron, will not be renamed to u9NNN numbers, but will continue to be renamed xNNN.dat -> NNN.dat upon release.

What are shortcut files and when should I create them?
A: Shortcut files are useful when several separate parts are typically delivered from Lego pre-assembled or are frequently used in combination. These are numbered using the official LEGO number for the composite parts, if known, or by appending "Cnn" to the part number of one of the individual parts.

Be sure to put (Complete) at the end of the descriptive name for all shortcuts. Use 'Shortcut' when the file is provided for convenience of use (example: Minifig files like 979.dat). Use 'Complete' when the file represents a composite part, as purchased (example: Shock Absorber, 75348.dat).
[Notice that neither of the example files follow this shortcut/complete standard, and the minifig file doesn't follow the file-naming standard, either.]

When parts are used in assemblies (provided as such by LEGO, and impossible to separate in normal use) their description begins with ~ so they don't appear in part selection lists. LDraw users should use the assembly shortcuts instead.

To further clarify:

How do we handle parts which exist in several different versions?
A: If the parts have different numbers, just use the different LEGO (design ID) numbers. More commonly, the different variations have the same number. This is managed by adding a single alpha character to the end of the base part number (e.g. 3626A.DAT and 3626B.DAT, the solid stud and hollow stud versions of the minifig head). If, prior to the second version being authored, one version of the part was released using just the official part number (no alpha-character suffix), it should be renumbered/moved to use an alpha-suffix. If the official part number is unknown, then it is recommended to use separate uNNNN numbers for each version.

What about parts, like springs, that can exist in more than one physical configuration?
A: These were previously numbered in the same way as multi-version parts (by adding a single character suffix to the end of the part number). The current convention is to use a -Fn suffix for versions of the parts deformed from the default state.

How are patterned parts numbered?
A: This is a difficult area, as the "official schema" won't work for LDraw. For Ldraw purposes, patterned part numbers comprise the base part number followed by Pxx, where xx is the pattern code. This helps to co-locate patterned parts with their plain version. A lot more guidance on pattern codes is in the Patterned Part Information page. The Lego part number for a patterned part is usually un-related to the base part number. If this is known (and these are often difficult to determine) a shortcut file is created with the base part colour hard-coded - these are typically in the 8nnnn series.

What about parts that are on runners? How are they numbered?
A: Mini-parts are those delivered from Lego still connected to a sprue (or runner) containing several different part (e.g. the castle feathers or the coins). These are numbered in the same way as multi-version parts - by adding a single character suffix to the end of the part number.

How are stickers numbered?
A: The use of official numbers for stickers has evolved over time.

  1. no copyright date sheets - 4-digit numbers: 3xxx, 4xxx or 6-digit numbers: 004xxx
  2. no copyright date sheets - 6-digit numbers: 168xxx, 169xxx, 197xxx, 820xxx, 821xxx
  3. ©1993 / 1994 - 6-digit numbers: 168xxx, 169xxx, 822xxx; a few 7-digit numbers: 4100xxx
  4. ©1995 - 2000 - combo 5-digit/7-digit numbers: 71xxx/41xxxxx, 72xxx/41xxxxx
  5. ©2000 - 2003 - combo 5-digit/7-digit numbers: 2xxxx/41xxxxx, 4xxxx/41xxxxx, 4xxxx/42xxxxx; a few 7-digit numbers: 42xxxxx
  6. ©2004 onwards - combo 5-digit/7-digit numbers: 5xxxx/4xxxxxx, 6xxxx/4xxxxxx, 7xxxx/4xxxxxx, 8xxxx/4xxxxxx
  7. ©2012 onwards - combo 5-digit/7-digit numbers: 1xxxx/60xxxxx
Sticker parts should be based on the sticker sheet number, if known, with a character suffix (a, b, c, etc.) for each sticker. If the sticker sheet contains only a single sticker or multiple copies of the same sticker, a suffix (a) should still be used. Four digit numbers should be prefixed with two zeros to avoid clashes with Lego parts (e.g. 004845a.dat, not 4845a.dat). Stickers from sheets with combo 5-digit/7-digit numbers should use the 7-digit number. Stickers from sheets with no printed number or of unknown number should use the next available sN, sNN or sNNN number. Formed versions of stickers to match the surface of a part should use the sticker part number with a Cnn suffix.

Hey! There's already a part file with the same number I found on my part!
A: This happens, but not very often. There are three possible reasons:

  1. Lego reused the part number. In this case, use an A, B, C suffix system.
  2. We messed up, and the file in the parts library is wrong. Bring this to the attention of the admins, because it needs a special announcement with the offcial release to allow users to change references within their models. Alternatively we may decide to use a suffix to identify the correct use of the number.
  3. You were mistaken when you read the number. Check the part again.

How are subparts numbered?
A: Subparts, which are stored in the \s subdirectory, should bear some relationship to their "parent" main part. They are numbered by appending some suffix to the part number of the main part, typically s01, s02, etc. For example 1234.dat might have a subpart named s\1234s01.dat and 1234p56.dat might have a subpart named s\1234p56s01.dat. In the past when filename were restricted to the DOS 8.3 naming convention, filenames like s\1234p56a.dat or s\1234a56.dat were used, but this naming is now discouraged. There is more information on this topic on the File Types FAQ page.

How are primitives numbered?
A: Primitives are essentially highly reusable subparts, and for ease of use have highly coded names to allow maximum use of the eight character limitation. Existing primitives are described in the Primitives Reference, but if you think there is a need for a new class of primitives, contact the Parts Library Admins first.

Wouldn't things be simpler if we allowed filenames of more than eight characters?
A: Yes. The original LDraw and LEdit programs were MS-DOS based, and as such could only recognise filenames adhering to the 8.3 standard of that era. Nevertherless, many of the newer LDraw applications do support long file names for models. In May 2008 with the ratification of the LDraw File Format 1.0.0 specification, part filenames can now be 21.3 (25 characters including the mandatory .dat extension).

I've read all this, but see there are some released parts that don't adhere to the rules - how is this?
A: The part numbering schema has evolved over time, and in the early days some of the classification problems were not apparent.

In Summary

Part number pattern (a = alpha, n= numeric, x = alphanumeric) Usage
nnn Regular part of unknown Lego number (see also Unnnn, below).
nnnn or nnnnn Regular part of known Lego number.
nnnCnn, nnnnCnn, nnnnnCnn Shortcut assembly of part nnn, nnnn or nnnnn with other parts or formed version of flexible part nnn, nnnn or nnnnn.
nnnCnn-Fn, nnnnCnn-Fn, nnnnnCnn-Fn Positional variant of shortcut assembly of movable parts, comprising part nnn, nnnn or nnnnn with other parts.
nnnDnn, nnnnDnn, nnnnnDnn Shortcut assembly of part nnn , nnnn or nnnnn with a sticker as used in an official set.
nnnPxx, nnnnPxx, nnnnnPxx Patterned version of regular part.
nnnaPxx, nnnnaPxx Patterned version of regular part variant.
S\nnnSnn, S\nnnnSnn, S\nnnnnSnn, S\nnnPxxx, S\nnnnPxxx Subfiles - stored in the parts/s directory.
nnna, nnnna, nnnnna Regular part variant (a = A, B, C for successive versions of part, sequenced chronologically), or mini-part (a = A, B, C for each mini-part on the same runner or included in a small bag), or to maintain backward compatibility if an incorrect number is released into the official library.
Snnnn Sticker of unknown Lego number.
Tnnnn LEGO-compatible third-party part.
Unnnn Part of unknown Lego number - from February 2010 when three-digit numbers exhausted.
Xnnn Pre-release part of unknown Lego number.

Chris Dee - last updated: August 2019