diff --git a/code/modules/vore/fluffstuff/custom_items_vr.dm b/code/modules/vore/fluffstuff/custom_items_vr.dm
index 511c4735fe..8da954056f 100644
--- a/code/modules/vore/fluffstuff/custom_items_vr.dm
+++ b/code/modules/vore/fluffstuff/custom_items_vr.dm
@@ -875,22 +875,30 @@ obj/item/weapon/material/hatchet/tacknife/combatknife/fluff/katarina/handle_shie
w_class = ITEMSIZE_SMALL
origin_tech = list(TECH_DATA = 3, TECH_ENGINEERING = 3)
var/listening = 0
+ var/datum/language/langset
/obj/item/device/universal_trans/attack_self(mob/user)
- listening = !listening
- if(listening)
- listening_objects |= src
- else
+ if(!listening) //Turning ON
+ langset = input(user,"Translate to which of your languages?","Language Selection") as anything|null in user.languages
+ if(langset)
+ listening = 1
+ listening_objects |= src
+ icon_state = "[initial(icon_state)]1"
+ user << "You enable \the [src], translating into [langset.name]."
+ else //Turning OFF
+ listening = 0
listening_objects -= src
+ langset = null
+ icon_state = "[initial(icon_state)]"
+ user << "You disable \the [src]."
- user << "You [listening ? "enable" : "disable"] \the [src]."
/obj/item/device/universal_trans/hear_talk(var/mob/speaker,var/message,var/vrb,var/datum/language/language)
if(!listening || !istype(speaker))
return
//Show the "I heard something" animation.
- flick("atmos2",src)
+ flick("[initial(icon_state)]2",src)
//Handheld or pocket only.
if(!isliving(loc))
@@ -903,5 +911,14 @@ obj/item/weapon/material/hatchet/tacknife/combatknife/fluff/katarina/handle_shie
//Only translate if they can't understand, otherwise pointlessly spammy
//I'll just assume they don't look at the screen in that case
+
+ //They don't understand the spoken language we're translating FROM
if(!L.say_understands(speaker,language))
- L << "[src] displays, \"[message]\""
+
+ //They understand the PRINTED language
+ if(L.say_understands(null,langset))
+ L << "[src] displays, \"[message]\""
+
+ //They don't understand the PRINTED language
+ else
+ L << "[src] displays, \"[langset.scramble(message)]\""
diff --git a/icons/obj/device_alt.dmi b/icons/obj/device_alt.dmi
index e170624667..11d92f2845 100644
Binary files a/icons/obj/device_alt.dmi and b/icons/obj/device_alt.dmi differ