diff --git a/code/game/objects/items/gift.dm b/code/game/objects/items/gift.dm
index 8054d8c6..daa3c246 100644
--- a/code/game/objects/items/gift.dm
+++ b/code/game/objects/items/gift.dm
@@ -7,6 +7,10 @@
/*
* Gifts
*/
+/var/static/blacklisted_items = typecacheof(list(
+ /obj/singularity,
+ /obj/structure/destructible/clockwork/massive,
+ /obj/machinery/power/supermatter_crystal))
GLOBAL_LIST_EMPTY(possible_gifts)
@@ -95,7 +99,7 @@ GLOBAL_LIST_EMPTY(possible_gifts)
var/list/gift_types_list = subtypesof(/obj/item)
for(var/V in gift_types_list)
var/obj/item/I = V
- if((!initial(I.icon_state)) || (!initial(I.item_state)) || (initial(I.item_flags) & ABSTRACT))
+ if((!initial(I.icon_state)) || (!initial(I.item_state)) || (initial(I.item_flags) & ABSTRACT) || (is_type_in_typecache(I, blacklisted_items)))
gift_types_list -= V
GLOB.possible_gifts = gift_types_list
var/gift_type = pick(GLOB.possible_gifts)
diff --git a/code/modules/holiday/halloween/jacqueen.dm b/code/modules/holiday/halloween/jacqueen.dm
index ed9254c2..a358865b 100644
--- a/code/modules/holiday/halloween/jacqueen.dm
+++ b/code/modules/holiday/halloween/jacqueen.dm
@@ -46,6 +46,10 @@
var/progression = list() //Keep track of where people are in the story.
var/active = TRUE //Turn this to false to keep normal mob behavour
var/cached_z
+ var/static/blacklisted_items = typecacheof(list(
+ /obj/singularity,
+ /obj/structure/destructible/clockwork/massive,
+ /obj/machinery/power/supermatter_crystal))
/mob/living/simple_animal/jacq/Initialize()
..()
@@ -203,10 +207,14 @@
return
var/new_obj = pick(subtypesof(/obj))
- //for(var/item in blacklist)
- // if(new_obj == item)
- // panic()
+ for(var/item in blacklisted_items)
+ if(is_type_in_typecache(new_obj, blacklisted_items))
+ new_obj = /obj/item/reagent_containers/food/snacks/special_candy
+ message_admins("Uh oh, someone got a blacklisted item from jacque. Giving them back their candies.")
var/reward = new new_obj(C.loc)
+ if(new_obj == /obj/item/reagent_containers/food/snacks/special_candy)
+ new new_obj(C.loc)
+ new new_obj(C.loc)//Giving them back their candies in case it's something from the blacklist or if the game literally rolled candies.
C.put_in_hands(reward)
visible_message("[src] waves her hands, magicking up a [reward] from thin air, \"There ye are [gender], enjoy! \"")
sleep(20)