Belle-Ve Bricks

Your Imagination

How to Build a LEGO Car Detailed Guide featured image

How to Build a LEGO® Car (Detailed Guide)

Create Your

We help you from start to finish to create and deliver your tailor-made custom model.
Custom model
Continue

Seeing you are reading this post I can assume you love cars as much as I do which has made you want to know how to build a LEGO® car! There are a huge variety of cars out there and it’s no different when it comes to LEGO® cars! This post will provide a detailed overview of how to build a LEGO® car and at the end, we have a special type of LEGO® car MOC to share with all the LEGO® car enthusiasts out there!

How to Build a LEGO® Car

When it comes to wanting to build a LEGO® car you might feel a bit overwhelmed when you look at your LEGO® bricks and think “where do I even start”.

Thankfully this is where LEGO® Car MOCs come in handy and what’s even better we offer free ones as well as premium.

You can see a selection of our free LEGO® Car MOCs below which you can build step by step or choose to take inspiration from to build a LEGO® car!

If you would like to see our full collection of LEGO® cars you can visit our shop by clicking here.

LEGO Car MOCs

1. LEGO® Car McLaren F1 Speed Champions

How to build a LEGO® car Mclaren F1
YouTube video

With the BMW’s V-12 engine the F1 was the fastest production car of its time. It broke numerous world records during the ‘90s, and it remains the fastest naturally aspirated road car ever built. 

This LEGO® Car is great for any F1 or LEGO® Speed Champion fans and it has a nice feature that will allow you to fit one Minifigure inside.

Download Building Instructions
Download Parts List

2. LEGO® Car Nissan Fairlady ‘Devil Z’ from Wangan Midnight

How to build a LEGO® car Nissan Fairlady
YouTube video

The Nissan Fairlady Z (known as Datsun 240Z in North America) aka ‘Devil Z’ from the anime series Wangan Midnight is a stunning blue LEGO® car.

This car features the ability of seating two LEGO® Minifigures.

Download Building Instructions
Download Parts List

3. LEGO® Car Shelby Cobra 427

How to build a LEGO® car Shelby Cobra
YouTube video

This Shelby Cobra 427 is packed full of details, if you are trying to learn how to squeeze a lot of detail into a car roughly in line with the size of a LEGO® Speed Champions one then this is for you.

You can fit two LEGO® Minifigures in this car but do bear in mind that you will need to remove the seat cushions first.

Download Building Instructions
Download Parts List

4. LEGO® Car John Wick Ford Mustang Boss 429

How to build a LEGO® car John Wick Ford Mustang
YouTube video

This is certainly a car any fan of John Wick would love to own! This sleek LEGO® Car shows off the dark beauty of a Ford Mustang Boss 429.

The stripes on the bonnet and spoiler on the back really bring this LEGO® car to life.

Download Building Instructions
Download Parts List

5. LEGO® Ghost Rider Hell Charger

How to build a LEGO® car Ghost Rider
YouTube video

Here we have ‘Robbie Reyes’ or Ghost Rider’s 1969 Dodge Charger R/T (AKA Hell Charger) from Marvel’s series Agents of S.H.I.E.L.D  in 8 stud wide Speed Champions style.

The Hell Charger’s features are the opening hood, trunk, and doors. It has space for two minifigs – even a Robbie Reyes minifig can fit in with the tall flame hair.

Download Building Instructions
Download Parts List

RC Powered LEGO® Cars

Now you have learned how to build your own LEGO® Car why not try out supercharging your LEGO® build by building an RC Powered LEGO® Car!

Remote control cars using LEGO® Power Functions are an amazing way for all car enthusiasts to enjoy building and then racing their LEGO® car!

If you wanted to learn more about LEGO® Power Functions we have a great article that covers the difference between LEGO® Powered Up and LEGO® Power Functions.

Here are some of our best LEGO® RC Cars, if you would like to see more check out our experts (Dave JSP) LEGO® MOC designer’s store.

LEGO RC Dirt Devil Car

How to build a LEGO® car LEGO® RC Car Dirt Devil Car
LEGO Dirt Devil How to Build a Car

Now you have learned how to build a LEGO® car it is time to take it to the next level, add in a motor and drive it!

This LEGO® RC Dirt Devil Car is lightweight and will be tearing around the dusty tracks in no time at all.

If you are a lover of RC (remote control) cars then you are not going to want to miss out on this LEGO® Car MOC!

Other LEGO® Variations

One of the best things about LEGO® is if you think it you can make it, because LEGO® is so versatile there have been some unbelievable designs created!

Why not create a LEGO® Car, Modular Building, Star Wars ship, or BrickHeadz? We have thousands of custom LEGO® designs (also known as LEGO® MOCs) available in our shop. Check them out by clicking this link!

Conclusion

I hope you have found lots of ways to learn how to build a LEGO® car, if you haven’t done so already download any of our free LEGO® Car MOCs and see how our professional LEGO® designers come up with these amazing LEGO® cars! If you are interested in pursuing your passion for LEGO® cars I would definitely recommend you start looking at putting a motor in your LEGO® car, this will boost your love for LEGO® cars so be warned, and don’t blame me once you get hooked!

<div class="badge-base LI-profile-badge" data-locale="en_US" data-size="large" data-theme="dark" data-type="HORIZONTAL" data-vanity="ferdi-vol" data-version="v1"><a class="badge-base__link LI-simple-link" href="https://www.linkedin.com/in/%E2%9C%85-ferdi-vol-corporate-gifts/?trk=profile-badge"></a></div>
/* Auto generated, hash = 5dceu9kevqjdyuy2uw1atqrsu */
//TODO: Break this file down so that we can actually unit test it.
(function(window) {
  /**
  * Renders all unrendred LinkedIn Badges on the page
  */
  window.LIRenderAll = function () {
    var CALLBACK_NAME     = 'LIBadgeCallback', //Must match callback on helpers.js
        BADGE_NAMES       = '.LI-profile-badge, .LI-entity-badge',
        // TODO -- tracking param for other badge types
        TRACKING_PARAM    = 'profile-badge',
        responsesReceived = 0, //Keeps track of number of responses recieved for proper cleanup when finished
        expectedResponses = 0, //Keeps track of number of responses to expect
        scripts           = [ ], //Keeps track of scripts added for proper cleanup when finished
        childScripts      = {}, //Keeps track of child scripts to render
        badges            = Array.prototype.slice.call(document.querySelectorAll(BADGE_NAMES));

    var i, len, badge, rendered;
    for (i = 0, len = badges.length;  i < len; i++) {
      badge    = badges[i];
      rendered =  badge.getAttribute('data-rendered');
      if (!rendered) {
        expectedResponses++;
        badge.setAttribute('data-rendered', true);
        renderBadge(badge);
      }
    }

    function isCNDomain() {
      if (typeof window !== "undefined") {
        var hostName = window.location && window.location.hostname ||  '';
        return (/linkedin(-ei)?.cn$/).test(hostName);
      }

      return false;
    }

    function generateUrl(isEI) {
      var domainPrefix = isEI ? 'https://badges.linkedin-ei' : 'https://badges.linkedin';
      if (isCNDomain()) {
        return domainPrefix + ".cn/";
      }

      return domainPrefix + ".com/";
    }

    function getBadgeKeyQueryParams(badge) {
      return Array.prototype.slice.call(badge.attributes).filter(function (attr) {
        return attr.name.lastIndexOf('data-key-', 0) !== -1;
      }).map(function (attr) {
        // Most browsers automatically lowercase the attribute name when its being read
        // We are calling lowercase on it again to ensure consistency for any browsers that are lagging behind.
        return encodeURIComponent(attr.name.replace('data-', '').toLowerCase()) + '=' + encodeURIComponent(attr.value);
      });
    }

    /*
    * Renders a single badge on the page
    * @param badge: div element of badge to render
    */
    function renderBadge(badge) {
      var size       = badge.getAttribute('data-size'),
          locale     = badge.getAttribute('data-locale'),
          type       = badge.getAttribute('data-type'),
          theme      = badge.getAttribute('data-theme'),
          vanity     = badge.getAttribute('data-vanity'),
          version    = badge.getAttribute('data-version'),
          isEI       = badge.hasAttribute('data-ei'),
          entity     = badge.getAttribute('data-entity'),
          isCreatePage = badge.hasAttribute('data-iscreate'),
          uid        = Math.round(1000000 * Math.random()),
          baseUrl = generateUrl(isEI),
          queryParams = [
            'locale=' + encodeURIComponent(locale),
            'badgetype=' + encodeURIComponent(type),
            'badgetheme=' + encodeURIComponent(theme),
            'uid=' + encodeURIComponent(uid),
            'version=' + encodeURIComponent(version)
          ],
          url;

      if (version === 'v2') {
        baseUrl += 'view';
        queryParams.push('badgesize=' + encodeURIComponent(size));
        queryParams.push('entity=' + encodeURIComponent(entity));
        queryParams = queryParams.concat(getBadgeKeyQueryParams(badge));
      } else {
        baseUrl += 'profile';
        queryParams.push('maxsize=' + encodeURIComponent(size));
        queryParams.push('trk=' + encodeURIComponent(TRACKING_PARAM));
        queryParams.push('vanityname=' + encodeURIComponent(vanity));
      }

      if (isCreatePage) {
        queryParams.push('fromCreate=true');
      }

      url = baseUrl + '?' + queryParams.join('&');
      badge.setAttribute('data-uid' , uid);
      jsonp(url); //Calls responseHandler when done
    }

    /**
    * Handles a response from the server. Finds badge matching badgeUid and inserts badgeHtml there
    * @param badgeHtml: String representing contents of the badge
    * @param badgeUid: UID of the badge to target
    **/
    function responseHandler(badgeHtml, badgeUid) {
      responsesReceived ++;

      var i, badge, uid, isCreate;
      var defaultWidth = 330 // max possible width
      var defaultHeight = 300 // max possible height

      for (i = 0, len = badges.length; i < len; i++) {
        badge = badges[i];
        // isCreate needed to prevent reloading artdeco script tag
        isCreate = badge.getAttribute('data-iscreate');
        uid   = parseInt(badge.getAttribute('data-uid'), 10);
        if (uid === badgeUid) {
          var badgeMarkup = `<body>${badgeHtml}</body>`
          var iframe = document.createElement('iframe');
          iframe.onload = function() {
            var iframeBody = iframe.contentWindow.document.body;
            // 5 px buffer to avoid the badge border being cut off.
            iframe.setAttribute('height', (iframeBody.scrollHeight || defaultHeight) + 5);
            iframe.setAttribute('width', (iframeBody.scrollWidth || defaultWidth) + 5);
          };
          iframe.setAttribute('frameBorder', '0');
          iframe.style.display = 'block';
          badge.appendChild(iframe);
          iframe.contentWindow.document.open();
          iframe.contentWindow.document.write(badgeMarkup);
          iframe.contentWindow.document.close();
          replaceScriptTags(badge, isCreate);
        }
      }
      tryClean();
    }

  // These functions are needed because badge markup is added via innerHtml property which does not run script tags
  function replaceScriptTags(node, isCreate) {
    if (shouldReplaceNode(node, isCreate)) {
      node.parentNode.replaceChild(cloneScriptNode(node), node);
      childScripts[node.src] = true;
    } else {
      var i = 0,
          children = node.childNodes;
      while (i < children.length) {
        replaceScriptTags(children[i++], isCreate);
      }
    }
    return node;
  }

  function shouldReplaceNode(node, isCreate) {
    return isScriptNode(node) && !childScripts[node.src] && (!isCreate || (isCreate && !node.getAttribute('data-isartdeco')));
  }

  function isScriptNode(node) {
    return node.tagName === 'SCRIPT';
  }

  function cloneScriptNode(node){
    var script  = document.createElement("script");
    for( var i = node.attributes.length-1; i >= 0; i-- ) {
      script.setAttribute( node.attributes[i].name, node.attributes[i].value );
    }
    return script;
  }

    // Gets all incoming responses
    window[CALLBACK_NAME] = responseHandler;

    /**
    * Tries to clean added tags
    **/
    function tryClean() {
      //Clean up after all requests are done..
      //Accounts for people including script more than once
      var done = (responsesReceived >= expectedResponses && expectedResponses > 0) || responsesReceived >= badges.length;
      if (done) {
        delete window[CALLBACK_NAME];

        // remove all script tags
        scripts.map(function(script){
          document.body.removeChild(script);
        });

      }
    }

    /*
    * Makes Jsonp request, responses handles by CALLBACK_NAME
    * @param url String: url of server to make request to
    */
    function jsonp(url) {
      var script = document.createElement('script');
      script.src = url;
      scripts.push(script);
      document.body.appendChild(script);
    }
  };

  if (document.readyState === 'complete') {
    window.LIRenderAll();
  } else {
    window.addEventListener('load', window.LIRenderAll, false);
  }

})(window);
Popular Posts