diff --git a/code/modules/mob/living/carbon/human/emote.dm b/code/modules/mob/living/carbon/human/emote.dm
index 93b57850974..90660bb6039 100644
--- a/code/modules/mob/living/carbon/human/emote.dm
+++ b/code/modules/mob/living/carbon/human/emote.dm
@@ -26,7 +26,7 @@
var/on_CD = 0
switch(act)
//Cooldown-inducing emotes
- if("ping","buzz","beep")
+ if("ping","buzz","beep", "yes", "no")
if (species.name == "Machine") //Only Machines can beep, ping, and buzz
on_CD = handle_emote_CD() //proc located in code\modules\mob\emote.dm
else //Everyone else fails, skip the emote attempt
@@ -128,6 +128,36 @@
playsound(src.loc, 'sound/effects/slime_squish.ogg', 50, 0) //Credit to DrMinky (freesound.org) for the sound.
m_type = 1
+ if("yes")
+ var/M = null
+ if(param)
+ for (var/mob/A in view(null, null))
+ if (param == A.name)
+ M = A
+ break
+ if(!M)
+ param = null
+
+ if (param)
+ message = "[src] emits an affirmative blip."
+ playsound(src.loc, 'sound/machines/synth_yes.ogg', 50, 0)
+ m_type = 1
+
+ if("no")
+ var/M = null
+ if(param)
+ for (var/mob/A in view(null, null))
+ if (param == A.name)
+ M = A
+ break
+ if(!M)
+ param = null
+
+ if (param)
+ message = "[src] emits a negative blip."
+ playsound(src.loc, 'sound/machines/synth_no.ogg', 50, 0)
+ m_type = 1
+
if("wag")
if(body_accessory)
if(body_accessory.try_restrictions(src))
diff --git a/code/modules/mob/living/silicon/emote.dm b/code/modules/mob/living/silicon/emote.dm
index f7ead12e4cc..26d6520c586 100644
--- a/code/modules/mob/living/silicon/emote.dm
+++ b/code/modules/mob/living/silicon/emote.dm
@@ -13,7 +13,7 @@
var/on_CD = 0
switch(act)
//Cooldown-inducing emotes
- if("ping","buzz","beep") //halt is exempt because it's used to stop criminal scum //WHOEVER THOUGHT THAT WAS A GOOD IDEA IS GOING TO GET SHOT.
+ if("ping","buzz","beep","yes","no") //halt is exempt because it's used to stop criminal scum //WHOEVER THOUGHT THAT WAS A GOOD IDEA IS GOING TO GET SHOT.
on_CD = handle_emote_CD() //proc located in code\modules\mob\emote.dm
//Everything else, including typos of the above emotes
else
@@ -75,4 +75,34 @@
playsound(src.loc, 'sound/machines/twobeep.ogg', 50, 0)
m_type = 1
+ if("yes")
+ var/M = null
+ if(param)
+ for (var/mob/A in view(null, null))
+ if (param == A.name)
+ M = A
+ break
+ if(!M)
+ param = null
+
+ if (param)
+ message = "[src] emits an affirmative blip."
+ playsound(src.loc, 'sound/machines/synth_yes.ogg', 50, 0)
+ m_type = 1
+
+ if("no")
+ var/M = null
+ if(param)
+ for (var/mob/A in view(null, null))
+ if (param == A.name)
+ M = A
+ break
+ if(!M)
+ param = null
+
+ if (param)
+ message = "[src] emits a negative blip."
+ playsound(src.loc, 'sound/machines/synth_no.ogg', 50, 0)
+ m_type = 1
+
..(act, m_type, message)
\ No newline at end of file
diff --git a/sound/machines/synth_no.ogg b/sound/machines/synth_no.ogg
new file mode 100644
index 00000000000..f0d2c3bfb0c
Binary files /dev/null and b/sound/machines/synth_no.ogg differ
diff --git a/sound/machines/synth_yes.ogg b/sound/machines/synth_yes.ogg
new file mode 100644
index 00000000000..300cad132ed
Binary files /dev/null and b/sound/machines/synth_yes.ogg differ