anchor.diff:  	var/datum/supply_order/department_order
   	///access required to override an order - this should be a head of staff for the department
   	var/override_access
  -	///where this computer expects deliveries to need to go, passed onto orders
  -	var/department_delivery_area
  +	///where this computer expects deliveries to need to go, passed onto orders. it will see if the FIRST one exists, then try a fallback. if no fallbacks it throws an error
  +	var/list/department_delivery_areas = list()
   	///which groups this computer can order from
   	var/list/dep_groups = list()
  +
  +/obj/machinery/computer/department_orders/Initialize(mapload, obj/item/circuitboard/board)
  +	. = ..()
  +	if(mapload) //check for mapping errors
  +		for(var/delivery_area_type in department_delivery_areas)
  +			if(GLOB.areas_by_type[delivery_area_type])
  +				break
  +		//every area fallback didn't exist on this map so throw a mapping error and set some generic area that uuuh please exist okay
  +		log_mapping("[src] has no valid areas to deliver to on this map, add some more fallback areas to its \"department_delivery_areas\" var.")
  +		department_delivery_areas = list(/area/hallway/primary/central) //if this doesn't exist like honestly fuck your map man
   
   /obj/machinery/computer/department_orders/ui_interact(mob/user, datum/tgui/ui)
   	ui = SStgui.try_update_ui(user, src, ui)
  
positive.code: /obj/machinery/computer/department_orders/science
  	name = "science order console"
  	circuit = /obj/item/circuitboard/computer/science_orders
  	department_delivery_area = /area/science/research
  	override_access = ACCESS_RD
  	req_one_access = REGION_ACCESS_RESEARCH
  	dep_groups = list("Science", "Livestock")
  
negative.code: 		rank = "Silicon"
  	//already have a signal to finalize the order
  	var/already_signalled = department_order ? TRUE : FALSE
  	var/chosen_delivery_area
  	for(var/delivery_area_type in department_delivery_areas)
  		if(GLOB.areas_by_type[delivery_area_type])
  			chosen_delivery_area = delivery_area_type
  			break
  	department_order = new(pack, name, rank, ckey, "", null, chosen_delivery_area, null)
  	SSshuttle.shoppinglist += department_order
  	if(!already_signalled)
  		RegisterSignal(SSshuttle, COMSIG_SUPPLY_SHUTTLE_BUY, .proc/finalize_department_order)
  