diff --git a/code/__DEFINES/food.dm b/code/__DEFINES/food.dm
index 62bdd1d8c38..a21fcbb1858 100644
--- a/code/__DEFINES/food.dm
+++ b/code/__DEFINES/food.dm
@@ -13,6 +13,7 @@
#define PINEAPPLE (1<<12)
#define BREAKFAST (1<<13)
#define CLOTH (1<<14)
+#define GRILLED (1<<15)
#define DRINK_NICE 1
#define DRINK_GOOD 2
diff --git a/code/modules/food_and_drinks/kitchen_machinery/grill.dm b/code/modules/food_and_drinks/kitchen_machinery/grill.dm
index 170650be99e..ded8aba5be5 100644
--- a/code/modules/food_and_drinks/kitchen_machinery/grill.dm
+++ b/code/modules/food_and_drinks/kitchen_machinery/grill.dm
@@ -42,13 +42,18 @@
return ..()
if(istype(I, /obj/item/reagent_containers))
if(istype(I, /obj/item/reagent_containers/food) && !istype(I, /obj/item/reagent_containers/food/drinks))
- if(HAS_TRAIT(I, TRAIT_NODROP) || (I.item_flags & (ABSTRACT | DROPDEL)))
+ var/obj/item/reagent_containers/food/food_item = I
+ if(HAS_TRAIT(food_item, TRAIT_NODROP) || (food_item.item_flags & (ABSTRACT | DROPDEL)))
return ..()
+ else if(food_item.foodtype & GRILLED)
+ to_chat(user, "[food_item] has already been grilled!")
+ return
else if(!grill_fuel)
to_chat(user, "There is not enough fuel!")
return
- else if(!grilled_item && user.transferItemToLoc(I, src))
- grilled_item = I
+ else if(!grilled_item && user.transferItemToLoc(food_item, src))
+ grilled_item = food_item
+ grilled_item.foodtype |= GRILLED
to_chat(user, "You put the [grilled_item] on [src].")
update_icon()
grill_loop.start()