diff --git a/code/modules/vore/eating/living.dm b/code/modules/vore/eating/living.dm
index 8923e9107d..a0ae58a44d 100644
--- a/code/modules/vore/eating/living.dm
+++ b/code/modules/vore/eating/living.dm
@@ -342,21 +342,23 @@
to_chat(src, "You can't do that so fast, slow down.")
return
- var/list/choices
+ DelayNextAction(CLICK_CD_MELEE, flush = TRUE)
+
+ var/list/lickable = list()
for(var/mob/living/L in view(1))
if(L != src && (!L.ckey || L.client?.prefs.vore_flags & LICKABLE) && Adjacent(L))
- LAZYADD(choices, L)
+ LAZYADD(lickable, L)
+ for(var/mob/living/listed in lickable)
+ lickable[listed] = new /mutable_appearance(listed)
- if(!choices)
+ if(!lickable)
return
- var/mob/living/tasted = input(src, "Who would you like to lick? (Excluding yourself and those with the preference disabled)", "Licking") as null|anything in choices
+ var/mob/living/tasted = show_radial_menu(src, src, lickable, radius = 40, require_near = TRUE)
if(QDELETED(tasted) || (tasted.ckey && !(tasted.client?.prefs.vore_flags & LICKABLE)) || !Adjacent(tasted) || incapacitated(ignore_restraints = TRUE))
return
- DelayNextAction(CLICK_CD_MELEE)
-
visible_message("[src] licks [tasted]!","You lick [tasted]. They taste rather like [tasted.get_taste_message()].","Slurp!")
/mob/living/proc/get_taste_message(allow_generic = TRUE, datum/species/mrace)