anchor.diff:  
   /obj/machinery/mecha_part_fabricator/proc/build_part(var/obj/item/part)
   	if(!part) return
  +	
  +	 // critical exploit prevention, do not remove unless you replace it -walter0o
  +	if( !(locate(part, src.contents)) || !(part.vars.Find("construction_time")) || !(part.vars.Find("construction_cost")) ) // these 3 are the current requirements for an object being buildable by the mech_fabricator
  +		return
  +	
   	src.being_built = new part.type(src)
   	src.desc = "It's building \a [src.being_built]."
   	src.remove_resources(part)
  
positive.code: 				src.part_set = tpart_set
  				screen = "parts"
  	if(href_list["part"])
  		var/list/part = filter.getObj("part")
  		if(!processing_queue)
  			build_part(part)
  		else
  			add_to_queue(part)
  	if(href_list["add_to_queue"])
  		add_to_queue(filter.getObj("add_to_queue"))
  		return update_queue_on_page()
  	if(href_list["remove_from_queue"])
  		remove_from_queue(filter.getNum("remove_from_queue"))
  
negative.code: 		return update_queue_on_page()
  	if(href_list["part_desc"])
  		var/obj/part = filter.getObj("part_desc")
  		
  		// critical exploit prevention, do not remove unless you replace it -walter0o
  		if(src.exploit_prevention(part, usr, 1))
  			return
  		
  		if(part)
  			temp = {"<h1>[part] description:</h1>
  						[part.desc]<br>
  