anchor.diff: -/proc/DuplicateObject(obj/original, var/perfectcopy = 0 , var/sameloc = 0, var/atom/newloc = null, var/nerf = 0)
  +/proc/DuplicateObject(var/atom/original, var/perfectcopy = TRUE, var/sameloc = FALSE, var/atom/newloc = null, var/nerf = FALSE, var/holoitem=FALSE)
   	if(!original)
   		return null
  -	var/obj/O
  +	var/atom/O
   
   	if(sameloc)
   		O = new original.type(original.loc)
  
positive.code: 		X.icon_state = old_icon_state1
  
  		for(var/obj/O in T)
  			var/obj/O2 = DuplicateObject(O , 1, newloc = X, nerf=nerf_weapons)
  			if(!O2) continue
  			copiedobjs += O2.GetAllContents()
  
  		for(var/mob/M in T)
  			if(istype(M, /mob/camera)) continue // If we need to check for more mobs, I'll add a variable
  			var/mob/SM = DuplicateObject(M , 1, newloc = X)
  			copiedobjs += SM.GetAllContents()
  
  		var/global/list/forbidden_vars = list("type","stat","loc","locs","vars", "parent", "parent_type","verbs","ckey","key","x","y","z","contents", "luminosity")
  
negative.code: 			else
  				O.vars[V] = original.vars[V]
  
  	if(istype(O, /obj))
  		var/obj/N = O
  		if(holoitem)
  			N.resistance_flags = LAVA_PROOF | FIRE_PROOF | UNACIDABLE | ACID_PROOF // holoitems do not burn
  
  		if(nerf && istype(O,/obj/item))
  			var/obj/item/I = O
  			I.damtype = STAMINA // thou shalt not
  
  		N.update_icon()
  		if(istype(O,/obj/machinery))
  			var/obj/machinery/M = O
  			M.power_change()
  	return O
  
  
  