Part

Parts are the core of building in Homebrew, everything we place from the add tool in the builder is a part, and they're all saved and spawned the same way - through serialisation/deserialisation.

Part GameObject structure
Parts in Homebrew follow a specific GameObject structure and components, let's try outline a basic part GameObject hierarchy (for this example our part will be a simple, function-less part named 'Hood Ornament', it'll pretty much just be a well... a hood ornament):

Hood Ornament (GameObject) Hood Ornament (GameObject) (another one) If your part has all of these it should be placeable, it won't do anything but it'll still be a placeable part.
 * Transform
 * RefrenceID
 * PartContainer
 * ScaleRestrictor
 * Asset
 * Transform (parented to the first Hood Ornament transform, the one above)
 * MeshFilter
 * MeshRenderer
 * Part
 * RefrenceID
 * MeshCollider
 * (Any part classes attached to this part would be placed on child GameObjects like this one)

This is essentially the simplest stable part. It may work with some of these components missing, or in a different structure, but doing so may cause issues, you've been warned.

Make sure you've read up on what all of those components do before you continue.

Functionality
Functionality of vehicle parts is determined by the part classes attached to them, a part may have as many or few functions as there are part classes attached to it.

Part classes are components (like any of the components above) that contain the code that drives how the parts in Homebrew work, think jet engines, rocket engines, wheels, wings, seats... their unique behaviour is determined by the part class components attached to them.