Index: binaries/data/mods/public/simulation/components/Builder.js =================================================================== --- binaries/data/mods/public/simulation/components/Builder.js +++ binaries/data/mods/public/simulation/components/Builder.js @@ -75,9 +75,17 @@ { let cmpFoundation = QueryMiragedInterface(target, IID_Foundation); let cmpRepairable = QueryMiragedInterface(target, IID_Repairable); + if (!cmpFoundation && (!cmpRepairable || !cmpRepairable.IsRepairable())) return false; + let buildList = this.GetEntitiesList(); + let cmpTemplateManager = Engine.QueryInterface(SYSTEM_ENTITY, IID_TemplateManager); + let targetTemplate = cmpTemplateManager.GetCurrentTemplateName(target); + + if (!buildList.some(buildable => targetTemplate.includes(buildable))) + return false; + let cmpOwnership = Engine.QueryInterface(this.entity, IID_Ownership); return cmpOwnership && IsOwnedByAllyOfPlayer(cmpOwnership.GetOwner(), target); };