anchor.diff:  /proc/generate_admin_objective_list()
   	GLOB.admin_objective_list = list()
   
  -	var/list/allowed_types = sort_list(list(
  -		/datum/objective/assassinate,
  -		/datum/objective/maroon,
  -		/datum/objective/debrain,
  -		/datum/objective/protect,
  -		/datum/objective/jailbreak,
  -		/datum/objective/jailbreak/detain,
  -		/datum/objective/destroy,
  -		/datum/objective/hijack,
  -		/datum/objective/escape,
  -		/datum/objective/survive,
  -		/datum/objective/martyr,
  -		/datum/objective/steal,
  -		/datum/objective/nuclear,
  -		/datum/objective/capture,
  -		/datum/objective/absorb,
  -		/datum/objective/custom
  -	),/proc/cmp_typepaths_asc)
  -
  -	for(var/T in allowed_types)
  -		var/datum/objective/X = T
  -		GLOB.admin_objective_list[initial(X.name)] = T
  +	var/list/allowed_types = sort_list(subtypesof(/datum/objective), /proc/cmp_typepaths_asc)
  +
  +	for(var/datum/objective/goal as anything in allowed_types)
  +		if(!initial(goal.admin_grantable))
  +			continue
  +		GLOB.admin_objective_list[initial(goal.name)] = goal
   
   /datum/objective/contract
   	var/payout = 0
  
positive.code: /datum/objective/protect//The opposite of killing a dude.
  	name = "protect"
  	martyr_compatible = TRUE
  	var/target_role_type = FALSE
  	var/human_check = TRUE
  
  
negative.code: 
  /datum/objective/absorb
  	name = "absorb"
  	admin_grantable = TRUE
  
  /datum/objective/absorb/proc/gen_amount_goal(lowbound = 4, highbound = 6)
  	target_amount = rand (lowbound,highbound)
  