diff --git a/code/modules/customitems/item_defines.dm b/code/modules/customitems/item_defines.dm
index 82a659fb..0177aeb2 100644
--- a/code/modules/customitems/item_defines.dm
+++ b/code/modules/customitems/item_defines.dm
@@ -523,4 +523,103 @@
/ "Redoubt"
/ "Affinity"
/ "Dream Spark"
-*/
\ No newline at end of file
+*/
+
+/obj/item/device/fluff/sten_synth //VoiceOS.V2 - Sten Asval - vtol - DONE
+ name = "VoiceOS.V2"
+ desc = "A text-to-speech device with an appearance that is not too futuristic. It looks slim and light. On the back of it there are initials in silver: SA."
+ icon = 'icons/obj/custom_items.dmi'
+ icon_state = "synth"
+ item_state = "radio"
+ w_class = 2.0
+ flags = FPRINT | TABLEPASS | CONDUCT
+ slot_flags = SLOT_GLOVES
+
+ var/spamcheck = 0
+ var/emagged = 0
+ var/insults = 0
+ var/list/insultmsg = list("BOB'S A PERVERT!", "I HATE YOU ALL!", "ALL SECURITY TO SHOOT ME ON SIGHT!", "I HAVE A BOMB!", "CAPTAIN IS A COMDOM!", "FOR THE SYNDICATE!")
+ var/list/empmsg = list("Lusty Xenomorph Maid", "Tajara Nymphomaniac Se'xual Hea'Ling", "Uneth Hermaphrodite Tai'L S'ex", "Skrellian Pornstar Hen-Tai")
+ var/emped = 0
+
+ verb/synth()
+ set name = "Use voice synth"
+ set category = "Object"
+ set src in usr
+
+ if (usr.client)
+ if(usr.client.prefs.muted & MUTE_IC)
+ src << "\red You cannot speak in IC (muted)."
+ return
+ if(!ishuman(usr))
+ usr << "\red You don't know how to use this!"
+ return
+ if(emped)
+ for(var/mob/O in (viewers(usr)))
+ O.show_message("[usr]'s voice synth starts showing obscene images of [pick(empmsg)], coupled with excessive moaning and questionable noises.",2)
+ spawn(rand(5,30))
+ for(var/mob/O in (viewers(usr)))
+ O.show_message("[usr]'s voice synth starts sparking and finally explodes.",2)
+ var/turf/T = get_turf(src.loc)
+ explosion(T, 0, 0, 0, 1)
+ del(src)
+ return
+ if(spamcheck)
+ usr << "\red \The [src] needs to recharge!"
+ return
+
+ var/message = copytext(sanitize(input(usr, "Type a message?", "VoiceOS.V2", null) as text),1,MAX_MESSAGE_LEN)
+ if(!message)
+ return
+ // message = capitalize(message)
+ if ((src.loc == usr && usr.stat == 0))
+ if(emagged)
+ if(insults)
+ for(var/mob/O in (viewers(usr)))
+ O.show_message("[usr]'s voice synth blurts out, \"[pick(insultmsg)]\"",2) // 2 stands for hearable message
+ insults--
+ else
+ usr << "\red *BZZZZzzzzzt*"
+ else
+ for(var/mob/O in (viewers(usr)))
+ O.show_message("[usr]'s voice synth rasps, \"[message]\"",2) // 2 stands for hearable message
+
+ spamcheck = 1
+ spawn(20)
+ spamcheck = 0
+ return
+
+ attackby(obj/item/I, mob/usr)
+ if(istype(I, /obj/item/weapon/card/emag) && !emagged)
+ usr << "\red You overload \the [src]'s voice synthesizer."
+ emagged = 1
+ insults = rand(1, 3)//to prevent dickflooding
+ return
+ return
+
+ emp_act(severity)
+ emped = 1
+ return
+
+/obj/item/toy/fluff/brenna_rock //Memento rock - Brenna Noton - mikalhvi - DONE
+ name = "memento rock"
+ desc = "A rounded-off chunk of a NanoTransen claimed asteroid." //I'm sorry. Too much description, nixed all of it.
+ icon = 'icons/obj/custom_items.dmi'
+ icon_state = "rock"
+ item_state = ""
+ w_class = 2.0
+ force = 2
+ throwforce = 4
+ attack_verb = list("bashed", "struck", "smashed", "bonked", "clobbered")
+
+ attack(mob/M as mob, mob/user as mob)
+ if(M == user)
+ user << "You take a lick of the sandstone rock."
+ if(prob(15))
+ spawn(5)
+ var/mob/living/carbon/human/H = M
+ user << "Whilist attempting to lick the rock, you accidentally swallow it."
+ H.apply_damage(rand(10,40), OXY)
+ del(src)
+ else
+ ..()
\ No newline at end of file
diff --git a/icons/obj/custom_items.dmi b/icons/obj/custom_items.dmi
index bf060e77..67532114 100644
Binary files a/icons/obj/custom_items.dmi and b/icons/obj/custom_items.dmi differ