diff --git a/code/defines/obj/weapon.dm b/code/defines/obj/weapon.dm
index 0f3e5536624..8c06feee04a 100644
--- a/code/defines/obj/weapon.dm
+++ b/code/defines/obj/weapon.dm
@@ -35,12 +35,52 @@
icon_state = "nullrod"
item_state = "nullrod"
flags = FPRINT | ONBELT | TABLEPASS
- force = 15
+ force = 10
throw_speed = 1
throw_range = 4
throwforce = 10
w_class = 1
+/obj/item/weapon/nullrod/attack(mob/M as mob, mob/living/user as mob)
+
+ M.attack_log += text("\[[time_stamp()]\] Has been attacked with [src.name] by [user.name] ([user.ckey])")
+ user.attack_log += text("\[[time_stamp()]\] Used the [src.name] to attack [M.name] ([M.ckey])")
+
+ log_admin("ATTACK: [user] ([user.ckey]) attacked [M] ([M.ckey]) with [src].")
+ message_admins("ATTACK: [user] ([user.ckey]) attacked [M] ([M.ckey]) with [src].")
+ log_attack("[user.name] ([user.ckey]) attacked [M.name] ([M.ckey]) with [src.name] (INTENT: [uppertext(user.a_intent)])")
+
+ if (!(istype(user, /mob/living/carbon/human) || ticker) && ticker.mode.name != "monkey")
+ user << "\red You don't have the dexterity to do this!"
+ return
+
+ if ((user.mutations & CLUMSY) && prob(50))
+ user << "\red The rod slips out of your hand and hits your head."
+ user.take_organ_damage(10)
+ user.Paralyse(20)
+ return
+
+ if (M.stat !=2)
+ if((M.mind in ticker.mode.cult) && prob(33))
+ M << "\red The power of [src] clears your mind of the cult's influence!"
+ user << "\red You wave [src] over [M]'s head and see their eyes become clear, their mind returning to normal."
+ ticker.mode.remove_cultist(M.mind)
+ for(var/mob/O in viewers(M, null))
+ O.show_message(text("\red [] waves [] over []'s head.", user, src, M), 1)
+ else if(prob(10))
+ user << "\red The rod slips in your hand."
+ ..()
+ else
+ user << "\red The rod appears to do nothing."
+ for(var/mob/O in viewers(M, null))
+ O.show_message(text("\red [] waves [] over []'s head.", user, src, M), 1)
+ return
+
+/obj/item/weapon/nullrod/afterattack(atom/A, mob/user as mob)
+ if (istype(A, /turf/simulated/floor))
+ user << "\blue You hit the floor with the [src]."
+ call(/obj/effect/rune/proc/revealrunes)(src)
+
/*/obj/item/weapon/sord
name = "\improper SORD"
desc = "This thing is so unspeakably shitty you are having a hard time even holding it."
diff --git a/code/game/magic/cultist/ritual.dm b/code/game/magic/cultist/ritual.dm
index 24e66288dcd..c8924d62c7d 100644
--- a/code/game/magic/cultist/ritual.dm
+++ b/code/game/magic/cultist/ritual.dm
@@ -126,9 +126,8 @@ var/engwords = list("travel", "blood", "join", "hell", "destroy", "technology",
user << "You retrace your steps, carefully undoing the lines of the rune."
del(src)
return
- else if(istype(I, /obj/item/weapon/storage/bible) && usr.mind && (usr.mind.assigned_role == "Chaplain"))
- var/obj/item/weapon/storage/bible/bible = I
- user << "\blue You banish the vile magic with the blessing of [bible.deity_name]!"
+ else if(istype(I, /obj/item/weapon/nullrod))
+ user << "\blue You disrupt the vile magic with the deadening field of the null rod!"
del(src)
return
return
@@ -502,7 +501,7 @@ var/engwords = list("travel", "blood", "join", "hell", "destroy", "technology",
if(prob(C*5-105-(runedec-ticker.mode.cult.len)*5)) //including the useless rune at the secret room, shouldn't count against the limit - Urist
usr.emote("scream")
user << "\red A tear momentarily appears in reality. Before it closes, you catch a glimpse of that which lies beyond. That proves to be too much for your mind."
- usr.gib(1)
+ usr.gib()
return
if("No")
return
diff --git a/code/game/objects/storage/bible.dm b/code/game/objects/storage/bible.dm
index 38a22b00774..63a6edb8bd7 100644
--- a/code/game/objects/storage/bible.dm
+++ b/code/game/objects/storage/bible.dm
@@ -16,6 +16,7 @@
new /obj/item/weapon/reagent_containers/pill/antitox/tajaran(src)
new /obj/item/clothing/suit/monk(src)
+/* // All cult functionality moved to Null Rod
/obj/item/weapon/storage/bible/proc/bless(mob/living/carbon/M as mob)
if(ishuman(M))
var/mob/living/carbon/human/H = M
@@ -83,12 +84,12 @@
O.show_message(text("\red [] smacks []'s lifeless corpse with [].", user, M, src), 1)
playsound(src.loc, "punch", 25, 1, -1)
return
-
+*/
/obj/item/weapon/storage/bible/afterattack(atom/A, mob/user as mob)
- if (istype(A, /turf/simulated/floor))
- user << "\blue You hit the floor with the bible."
- if(user.mind && (user.mind.assigned_role == "Chaplain"))
- call(/obj/effect/rune/proc/revealrunes)(src)
+// if (istype(A, /turf/simulated/floor))
+// user << "\blue You hit the floor with the bible."
+// if(user.mind && (user.mind.assigned_role == "Chaplain"))
+// call(/obj/effect/rune/proc/revealrunes)(src)
if(user.mind && (user.mind.assigned_role == "Chaplain"))
if(A.reagents && A.reagents.has_reagent("water")) //blesses all the water in the holder
user << "\blue You bless [A]."
diff --git a/maps/tgstation.2.0.8.dmm b/maps/tgstation.2.0.8.dmm
index c63cee784f8..064e2442c39 100755
--- a/maps/tgstation.2.0.8.dmm
+++ b/maps/tgstation.2.0.8.dmm
@@ -1956,7 +1956,7 @@
"aLF" = (/obj/machinery/atmospherics/pipe/simple{color = "blue"; icon_state = "intact-b-f"; level = 1; name = "pipe"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/wall,/area/chapel/office)
"aLG" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 8; on = 1; scrub_Toxins = 1},/obj/structure/table/woodentable,/obj/structure/disposalpipe/segment,/obj/machinery/light/lamp/green{pixel_x = 1; pixel_y = 5},/obj/effect/deskclutter,/turf/simulated/floor{dir = 8; icon_state = "carpetside"},/area/chapel/office)
"aLH" = (/obj/structure/table/woodentable,/obj/item/weapon/storage/briefcase,/turf/simulated/floor{dir = 2; icon_state = "carpet"},/area/chapel/office)
-"aLI" = (/obj/structure/table/woodentable,/obj/item/weapon/paper_bin{pixel_x = 1; pixel_y = 9},/obj/item/weapon/pen,/obj/item/weapon/reagent_containers/food/drinks/bottle/holywater,/turf/simulated/floor{dir = 2; icon_state = "carpet"},/area/chapel/office)
+"aLI" = (/obj/structure/table/woodentable,/obj/item/weapon/paper_bin{pixel_x = 1; pixel_y = 9},/obj/item/weapon/pen,/obj/item/weapon/reagent_containers/food/drinks/bottle/holywater,/obj/item/weapon/nullrod,/turf/simulated/floor{dir = 2; icon_state = "carpet"},/area/chapel/office)
"aLJ" = (/turf/simulated/floor{dir = 4; icon_state = "carpetside"},/area/chapel/office)
"aLK" = (/obj/structure/stool/bed/chair{dir = 4},/turf/simulated/floor{dir = 8; icon_state = "escape"},/area/hallway/secondary/exit)
"aLL" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor,/area/hallway/secondary/exit)