If you have a great idea for a LEGO® IDEAS submission, don’t be shocked when you submit it that it gets rejected. There are a number of reasons why this may happen but don’t worry as we will cover the top 10 reasons why your LEGO® IDEAS submission may get rejected so you can avoid any stress and disappointment.
The last thing you want to happen is to work hard on your design, submit it and then start dreaming of reaching the 10k milestone only to find your hard work has gone to waste! Anyway, without further ado let’s jump in.
How to Keep LEGO IDEAS Appropriate Video
LEGO has provided a little video to help with this too:
List of Tips To Get Your LEGO IDEAS Content Approved
1. Copyright or breach of intellectual property rights
You need to make sure that your LEGO® IDEAS submission is your own work without it being derived from something that could have IP complications.
On the LEGO® IDEA’s website, they say:
We have also changed our guidelines to no longer accept product ideas based on third-party licenses, which are currently produced or announced as official LEGO® sets such as Star Wars, DC or Marvel Super Heroes, Volkswagen, and many more.
To get a full list of the licenses you will need to avoid you can view their policy which is kept up to date on a regular basis, their policy is available from here.
2. Don’t Use Inappropriate LEGO® IDEAS Content
Before you think of anything else you need to make sure that your LEGO® IDEA project is appropriate for all ages, if your LEGO® IDEA submission fits into one of the below categories then it’s time to go back to the drawing board. Below is a list of things you should absolutely not include in your LEGO IDEAS content.
Politics and political symbols, campaigns, or movements
Religious references including symbols, buildings, or people
Sex, nudity, drugs, or smoking
Alcohol in any present-day situation
Swearing or profanity
Death, killing, blood, terrorism, horror, or torture
First-person shooter video games
Warfare or war vehicles in any modern or present-day situation, or national war memorials
Large or human-scale weapons or weapon replicas of any kind, including swords, knives, guns, sci-fi or fantasy blasters, etc.
Racism, bullying, or cruelty to real-life animals
3. Your design is too big
As much as we all say WOW when we see a huge LEGO® set or MOC this is not actually what LEGO® are looking for, they ask to keep your LEGO® IDEA’s submission below 3000 pieces.
If it is over 3000 it’s not a show stopper but it’s a good guideline to try to stick to, one of the main reasons is that if your submission won the contest they want the cost for producing the set and RRP to be affordable.
4. The pictures of your LEGO® IDEAS submissions are not good enough
LEGO is not expecting you to be a professional photographer but they do expect you to take pictures that are good quality, clear, and easily show the features of your submission.
They ask that the main image for your submission shows at least 80% to 90% of your set. If you want to show specifics you can take pictures exactly for this (up to 15) but just be sure to get the main image perfect. After all, that is the first impression that everyone is going to get so it’s in your interest to make it look amazing 😉
If your set has been designed digitally then taking pictures of it becomes a lot easier but still be careful and keep to the above rules.
5. You have included text in your main image
To save confusion, what this means is “no additional” text to be added to your main image, so if you have a brick that says “Camp Fun” then that’s fine but if you have added some nice looking word art to your picture which aims to try and sell a feature then that’s a no-no I am afraid.
6. Use genuine and non-modified LEGO® bricks
This one may seem obvious but if you have designed your LEGO® IDEAS submission using physical bricks maybe you have gone down the hack route and tried to glue pieces together, use tape, or cut/snipped a piece to get the right effect.
This will be a quick way to get your submission rejected in a blink of an eye, LEGO® is not going to be interested in a set that’s impossible to produce in mass if your submission was a winner.
Try to use more common and readily available pieces in your design, don’t skimp on the detail just because of this tip though. If you need to use a rarer piece then go for it but just try to keep it to a minimum.
7. Thinking of setting up your own CMF collection?
Mini-figures are only to be used within your design, they are there to show how your set could be used or played with.
You cannot under any circumstances design a bunch of mini-figures and put them in as a submission.
8. Keep Your Ideas Unique
Have a look through the current LEGO® IDEAS entries before you get started, and do a bit of research to see if there’s been any official LEGO® sets that look mildly like what you want to create.
LEGO wants you to make new, intuitive, and creative designs, not ones that are similar to what is or have already been released.
9. Never Use the LEGO® Name or Logo in Your Artwork
I always find this one a bit strange when you are uploading your submission to a website and contest that’s owned by LEGO® themselves, they are incredibly touchy about the use of their name and logo and this does not stop at LEGO® IDEA’s submissions.
If you feel one or more of your bricks needs a sticker to look great then that’s fine, perhaps have your own sticker designed and printed by a third-party supplier. Failing that they have said that you can have the LEGO® logo on a brick but you cannot modify it in any way.
10. Don’t Get Ahead of Yourself
Concentrate on the design of your LEGO® IDEAS submission only, don’t try to be creative and design your own box or front page for your instructions booklet.
LEGO have this rule as they are concerned that by having this in your submission that some people may think the design is actually available to be purchased as an official LEGO® set.
More Info
Conclusion
There are a lot of rules to follow when submitting a design to LEGO® IDEAS but they aren’t that hard to follow. Really all they are after is for you to come up with a unique design that can be the next big LEGO® IDEAS set if you want your LEGO® IDEA’s submission to be the next Treehouse (21318), Medieval Blacksmith (21325) or Central Perk (21319) then you will be happy to play nicely and follow the rules LEGO® have set.
If you would like to see the full list of guidelines from the LEGO Website Check out the link.
/* 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);