Belle-Ve Bricks

Your Imagination

IMAGE  rotated scaled
cHMpvm IMAGE rotated scaled scaled

10+ Best Tips When Buying Used LEGO

In This Article

Create Your

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

We are all accustomed to the dangers of late-night window shopping on the likes of eBay and Facebook Marketplace, I’m sure. The latter, in particular, is home to many buy, swap, and sell groups devoted to all things Lego, where people from all walks of life get to help each other out by identifying obscure components from long-retired sets; and failing that, mercilessly price-shaming them if they deem the asking price too high. Facebook forbid!

IMAGE 1

Sometimes, purely for my own entertainment I just check in to see what pesky arguments are occurring.

IMAGE 2

Not unlike Dante’s descent into Hell, I have hereby outlined, based on this blogger’s recent experience, the various stages one might commonly experience with such searches. 

IMAGE 3

Abandon hope, all ye who enter…”

Through The Gates of Hell

Scouring Facebook Marketplace for deals can easily become a bit of an addiction, with members of myriad groups {too numerous to mention all of them here} feeding their own
habits and encouraging others with desperate pleas for that one elusive,
valuable part (a Velma from a Scooby Doo set perhaps or a Michael Keaton ’89 Batman
mini-figure, both securing a £50 on eBay, and as rare as rocking horse doo-doo)
they’d be willing to trade one of their own body parts for or one of their
friends.

Impulse Buy

My partner quickly took the bait with one listing, without dilly dally, and accepted the online offer of £15 only nanoseconds after seeing the post lest it gets plucked by another beady-eyed LEGO® vulture. As the seller was willing to drop it off this scored us a bonus, with my partner proudly, not to mention smugly, proclaiming that: “the LEGO® box alone will make u

Be Careful What You Wish For

Upon its delivery to us, and given just a cursory glance, we immediately confirmed that the box wasn’t what we had expected!

The advertised attraction of a ‘Lego box’ was nothing of the sort, it turned out, and adorned with mere wallpaper (and not very attractive wallpaper at that) instead of actual Lego. Not a problem thought we, for this optimistic pair, know all too well that everything which glitters is not gold, so our bounty inside will undoubtedly contain veritable treasures within, a phoenix from the flames.  

Pre-Emptive Euphoria

The pickings held within this Pandora’s Box were a decidedly mixed affair, but as we began to sift our pan for LEGO® gold, our eagle eyes deciphered a couple of half-built sets that might be recovered and, with more than a little diligence and hard work on our (well, let us be crystal clear & honest here: my) part, we had recovered two promising LEGO® carcasses.

Let the reconstruction operation get underway and who knows, we might be on our way to reclaiming our investment, knowing now that the box itself was a dud.

The time it was for us to get our jeweler’s loops out to identify bona fide LEGO® pieces and separates them from mere imposter elements. By imposter elements I don’t just mean Lego-compatible, I’m talking hair (human & dog), half-chewed sweets and pebbles, etc. The seller had said that the box contained mostly Lego. I don’t think so! Who knew what other horrors this box contained? I suspected that my partner was already plotting what she was going to say to the seller later on but she used me for a dress rehearsal. The twin results of this pesky Lockdown plus advancing middle age, have rendered both of our eyesight in a steady state of deterioration. Which may have added to our collective crankiness?

Talk of any profit generated with this latest enterprise turned to that of investing in a giant magnifying glass instead. We dug deeper, separating parts along the way into different categories.

Buyer’s Remorse

During Lockdown, floor space has become a prized commodity in our two-bedroom terraced house: what with numerous LEGO® builds, presents for my partner’s niece piling up plus hordes of other stuff (anybody interested in buying some Wallace & Gromit merchandise?) brought down from the loft that still needs to be photographed, listed and sold. 

Space has now become so limited that one needs Mission Impossible-dexterity to maneuver around the house.

Once we had tipped the box over and let its colorful insides vomit themselves all over our ever-diminishing floor space, things went from bad to worse, much worse in fact. Divorce worse!

IMAGE 20

Perhaps I should (as had been suggested) have taken the neighbor’s dog back after taking him for a walk instead of inviting the little fella back to navigate this miniature obstacle course and witness a potential domestically.

Competitive Streaks

Looking back I probably shouldn’t have said “I told you so” as I witnessed my partner switch into a manic, super sort-out mode, in her endeavor to prove me wrong and that this, huge mound of carnage was indeed a wise purchase. The competition quickly developed as I too joined in the frenzy of who could salvage the most re-sellable (let alone buildable) items in this alleged Box of Delights.

IMAGE 21

Diamonds In The Rough

Two sets emerged from the rubble, intact just enough to be identified: Imperial Hover Tank (75152) from Star Wars and Aragog’s Lair(75950) from Harry Potter. The argument that had been brewing was postponed, for now at least.

IMAGE 22

Read The Instructions

PDFs were downloaded and now the race was on to see if all the pieces were there: on your markers! Partner vs. partner.

IMAGE 23

Communication Issues

One of the main issues that I’ve always had when sharing LEGO® builds is the lack of universally-adopted LEGO® terminology. In fact, I have always thought that there should be an Official Proficiency Test for LEGO® builders, like the theory test that cyclists must pass before getting their Proficiency Certificate. My improvised Glossary of Terms for LEGO® pieces – “Darling, hand me the light grey double-headed crank shaft please?” – didn’t in any way correlate, it turned out, with my partner’s inner list of names for elements.

IMAGE 24

There were some tense, confusing, and seemingly everlasting moments there, I cannot lie. Even our coordinated attempt at coding became abbreviated to such an extent, potential eavesdroppers might have mistaken our babble for some obscure Orwellian code. The debates over differentiating the numerous tones of grey, beige, and tan became surreal, but in the end – kind of hilarious too.

IMAGE 25

All the pieces were there for the Harry Potter spider but alas, the rest of that set, made up of a tree with spider-webbing and greenery, was missing the lion’s share of its constituent parts. Of the mini-figures, we could only construct a Harry Potter, but with no candle and the wrong trousers (see Wallace & Gromit reference earlier). Sadly, Ron Weasley remains missing in action, somewhere on the grounds at Hogwarts presumably. The Hover Tank was a far more fruitful venture and with a couple of minor adjustments, diligently cataloged by my partner, looks pretty faithful to its box image, although lacking a set of guns from its right flank and has none of the orange pieces whatsoever. Also, no mini-figures sadly. But fireable red laser elements? Check.

IMAGE 26
IMAGE 27
IMAGE 28
IMAGE 29

I ransacked the box for compatible pieces of an alternative color but couldn’t even cobble together a multi-colored version but I did manage to build a version of the missing guns. There were no salvageable mini-figures at all in the rubble of the set, perhaps Sid from Toy Story was its previous owner. I’m still unsure about Harry’s hair though.

IMAGE 30

Was It Worth the Bother?

After 18 hours of solid graft on this project, my partner became the answer to somebody’s lost-Lego-piece prayers on a ‘wanted’ site by cherry-picking several genuine LEGO® elements into a goodie bag worth a total of £3. She also separated out all of the non-Lego components into another bag which sold for £8. £11 for 18 hours’ work equates to 61 pence an hour. Let that sink in.

IMAGE 31

Still, we remained hopeful that my Frankenstein’s Hover Tank and Homeless Aragog would make up the shortfall as we submitted photos to a few of the Facebook groups, continuing the circle of LEGO® life, and perpetuating the never-ending collector’s cycle.

IMAGE 32
IMAGE 32

We have no takers yet on the spider but one guy still has to get back to us on the Hover Tank. Personally, I believe the photo of my customized guns might tip the balance and win him over but unfortunately I cannot connect to the Wi-Fi from the dog house out here.

IMAGE 33
IMAGE 34

Let us know what you think by dropping a comment below!

<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