anchor.diff:  	icon_state = "conveyor[operating * verted]"
   
   // create a conveyor
  -/obj/machinery/conveyor/Initialize(mapload, newdir)
  +/obj/machinery/conveyor/Initialize(mapload, newdir, newid)
   	. = ..()
   	if(newdir)
   		setDir(newdir)
  +	if(newid)
  +		id = newid
   	update_move_direction()
  +	LAZYADD(GLOB.conveyors_by_id[id], src)
  +
  +/obj/machinery/conveyor/Destroy()
  +	LAZYREMOVE(GLOB.conveyors_by_id[id], src)
  +	. = ..()
  +
  +/obj/machinery/conveyor/vv_edit_var(var_name, var_value)
  +	if (var_name == "id")
  +		// if "id" is varedited, update our list membership
  +		LAZYREMOVE(GLOB.conveyors_by_id[id], src)
  +		. = ..()
  +		LAZYADD(GLOB.conveyors_by_id[id], src)
  +	else
  +		return ..()
   
   /obj/machinery/conveyor/proc/update_move_direction()
   	switch(dir)
  
positive.code: //conveyor2 is pretty much like the original, except it supports corners, but not diverters.
  //note that corner pieces transfer stuff clockwise when running forward, and anti-clockwise backwards.
  
  /obj/machinery/conveyor
  	icon = 'icons/obj/recycling.dmi'
  
negative.code: 		return
  	operated = 0
  
  	for(var/obj/machinery/conveyor/C in GLOB.conveyors_by_id[id])
  		C.operating = position
  		C.update_move_direction()
  		CHECK_TICK
  