diff --git a/code/game/objects/items/weapons/holy_weapons.dm b/code/game/objects/items/weapons/holy_weapons.dm
index ed2f0fb33e8..3b2e4a2aa44 100644
--- a/code/game/objects/items/weapons/holy_weapons.dm
+++ b/code/game/objects/items/weapons/holy_weapons.dm
@@ -326,3 +326,75 @@
hitsound = 'sound/weapons/bladeslice.ogg'
sharp = 1
edge = 1
+
+/obj/item/weapon/nullrod/rosary
+ icon_state = "rosary"
+ item_state = null
+ name = "prayer beads"
+ desc = "A set of prayer beads used by many of the more traditional religions in space.
Vampires and other unholy abominations have learned to fear these."
+ force = 0
+ throwforce = 0
+ var/praying = 0
+
+/obj/item/weapon/nullrod/rosary/New()
+ ..()
+ processing_objects.Add(src)
+
+
+/obj/item/weapon/nullrod/rosary/attack(mob/living/carbon/M as mob, mob/living/carbon/user as mob)
+ if(!istype(M))
+ return ..()
+
+ if(!user.mind || user.mind.assigned_role != "Chaplain")
+ to_chat(user, "You are not close enough with [ticker.Bible_deity_name] to use [src].")
+ return
+
+ if(in_use)
+ to_chat(user, "You are already using [src].")
+
+ user.visible_message("[user] kneels[M == user ? null : " next to [M]"] and begins to utter a prayer to [ticker.Bible_deity_name].", \
+ "You kneel[M == user ? null : " next to [M]"] and begin a prayer to [ticker.Bible_deity_name].")
+
+ in_use = 1
+ if(do_after(user, 150, target = M))
+ if(istype(M, /mob/living/carbon/human)) // This probably should not work on vulps. They're unholy abominations.
+ var/mob/living/carbon/human/target = M
+
+ if(target.mind)
+ if(iscultist(target))
+ ticker.mode.remove_cultist(target.mind) // This proc will handle message generation.
+ praying = 0
+ return
+
+ if(target.mind.vampire && !target.mind.vampire.get_ability(/datum/vampire_passive/full)) // Getting a full prayer off on a vampire will interrupt their powers for a large duration.
+ target.mind.vampire.nullified = max(120, target.mind.vampire.nullified + 120)
+ to_chat(target, "[user]'s prayer to [ticker.Bible_deity_name] has interfered with your power!")
+ praying = 0
+ return
+
+ if(prob(25))
+ to_chat(target, "[user]'s prayer to [ticker.Bible_deity_name] has eased your pain!")
+ target.adjustToxLoss(-5)
+ target.adjustOxyLoss(-5)
+ target.adjustBruteLoss(-5)
+ target.adjustFireLoss(-5)
+
+ praying = 0
+
+ else
+ to_chat(user, "Your prayer to [ticker.Bible_deity_name] was interrupted.")
+ praying = 0
+
+/obj/item/weapon/nullrod/rosary/process()
+ if(istype(loc, /mob/living/carbon/human))
+ var/mob/living/carbon/human/holder = loc
+
+ if(src == holder.l_hand || src == holder.r_hand) // Holding this in your hand will
+ for(var/mob/living/carbon/human/M in range(5))
+ if(M.mind.vampire && !M.mind.vampire.get_ability(/datum/vampire_passive/full))
+ M.mind.vampire.nullified = max(5, M.mind.vampire.nullified + 2)
+ if(prob(10))
+ to_chat(M, "Being in the presence of [holder]'s [src] is interfering with your powers!")
+
+
+
diff --git a/icons/obj/weapons.dmi b/icons/obj/weapons.dmi
index 42c7ed6defc..09f27ef5ea7 100644
Binary files a/icons/obj/weapons.dmi and b/icons/obj/weapons.dmi differ