diff --git a/code/__DEFINES/flags.dm b/code/__DEFINES/flags.dm
index 212a19f79e8..f57e096e0ec 100644
--- a/code/__DEFINES/flags.dm
+++ b/code/__DEFINES/flags.dm
@@ -2,8 +2,8 @@
#define STOPSPRESSUREDMAGE 1 //This flag is used on the flags variable for SUIT and HEAD items which stop pressure damage. Note that the flag 1 was previous used as ONBACK, so it is possible for some code to use (flags & 1) when checking if something can be put on your back. Replace this code with (inv_flags & SLOT_BACK) if you see it anywhere To successfully stop you taking all pressure damage you must have both a suit and head item with this flag.
#define NODROP 2 // This flag makes it so that an item literally cannot be removed at all, or at least that's how it should be. Only deleted.
#define NOBLUDGEON 4 // when an item has this it produces no "X has been hit by Y with Z" message with the default handler
-#define AIRTIGHT 8 // mask allows internals
-//#define USEDELAY 16 // 1 second extra delay on use (Can be used once every 2s)
+#define AIRTIGHT 8 // mask allows internals
+#define HANDSLOW 16 // If an item has this flag, it will slow you to carry it
#define NOSHIELD 32 // weapon not affected by shield
#define CONDUCT 64 // conducts electricity (metal etc.)
#define ABSTRACT 128 // for all things that are technically items but used for various different stuff, made it 128 because it could conflict with other flags other way
diff --git a/code/game/objects/items/weapons/holy_weapons.dm b/code/game/objects/items/weapons/holy_weapons.dm
new file mode 100644
index 00000000000..687872e3360
--- /dev/null
+++ b/code/game/objects/items/weapons/holy_weapons.dm
@@ -0,0 +1,328 @@
+/obj/item/weapon/nullrod
+ name = "null rod"
+ desc = "A rod of pure obsidian, its very presence disrupts and dampens the powers of Nar-Sie's followers."
+ icon_state = "nullrod"
+ item_state = "nullrod"
+ force = 18
+ throw_speed = 3
+ throw_range = 4
+ throwforce = 10
+ w_class = 1
+ var/reskinned = FALSE
+ var/list/fluff_transformations = list() //does it have any special transformations only accessible to it? Should only be subtypes of /obj/item/weapon/nullrod
+
+/obj/item/weapon/nullrod/suicide_act(mob/user)
+ user.visible_message("[user] is killing \himself with \the [src.name]! It looks like \he's trying to get closer to god!")
+ return (BRUTELOSS|FIRELOSS)
+
+/obj/item/weapon/nullrod/attack(mob/M, mob/living/carbon/user)
+ ..()
+ if(M.mind)
+ if(M.mind.vampire)
+ if(ishuman(M))
+ if(!M.mind.vampire.get_ability(/datum/vampire_passive/full))
+ to_chat(M, "The nullrod's power interferes with your own!")
+ M.mind.vampire.nullified = max(5, M.mind.vampire.nullified + 2)
+
+/obj/item/weapon/nullrod/attack_self(mob/user)
+ if(reskinned)
+ return
+ if(user.mind && (user.mind.assigned_role == "Chaplain"))
+ reskin_holy_weapon(user)
+
+/obj/item/weapon/nullrod/proc/reskin_holy_weapon(mob/M)
+ var/list/holy_weapons_list = typesof(/obj/item/weapon/nullrod) - typesof(/obj/item/weapon/nullrod/fluff)
+ if(fluff_transformations.len)
+ for(var/thing in fluff_transformations)
+ holy_weapons_list += thing
+ var/list/display_names = list()
+ for(var/V in holy_weapons_list)
+ var/atom/A = V
+ display_names += initial(A.name)
+
+ var/choice = input(M,"What theme would you like for your holy weapon?","Holy Weapon Theme") as null|anything in display_names
+ if(!src || !choice || M.stat || !in_range(M, src) || M.restrained() || !M.canmove || reskinned)
+ return
+
+ var/index = display_names.Find(choice)
+ var/A = holy_weapons_list[index]
+
+ var/obj/item/weapon/nullrod/holy_weapon = new A
+
+ feedback_set_details("chaplain_weapon","[choice]")
+
+ if(holy_weapon)
+ holy_weapon.reskinned = TRUE
+ M.unEquip(src)
+ M.put_in_active_hand(holy_weapon)
+ qdel(src)
+
+/obj/item/weapon/nullrod/godhand
+ icon_state = "disintegrate"
+ item_state = "disintegrate"
+ name = "god hand"
+ desc = "This hand of yours glows with an awesome power!"
+ flags = ABSTRACT | NODROP
+ w_class = 5
+ hitsound = 'sound/weapons/sear.ogg'
+ damtype = BURN
+ attack_verb = list("punched", "cross countered", "pummeled")
+
+/obj/item/weapon/nullrod/staff
+ icon_state = "godstaff-red"
+ item_state = "godstaff-red"
+ name = "red holy staff"
+ desc = "It has a mysterious, protective aura."
+ w_class = 5
+ force = 5
+ slot_flags = SLOT_BACK
+
+/obj/item/weapon/nullrod/staff/IsShield()
+ return 1
+
+/obj/item/weapon/nullrod/staff/blue
+ name = "blue holy staff"
+ icon_state = "godstaff-blue"
+ item_state = "godstaff-blue"
+
+/obj/item/weapon/nullrod/claymore
+ icon_state = "claymore"
+ item_state = "claymore"
+ name = "holy claymore"
+ desc = "A weapon fit for a crusade!"
+ w_class = 5
+ slot_flags = SLOT_BACK|SLOT_BELT
+ sharp = 1
+ edge = 1
+ hitsound = 'sound/weapons/bladeslice.ogg'
+ attack_verb = list("attacked", "slashed", "stabbed", "sliced", "torn", "ripped", "diced", "cut")
+
+/obj/item/weapon/nullrod/claymore/IsShield()
+ if(prob(30))
+ return 1
+ else
+ return 0
+
+/obj/item/weapon/nullrod/claymore/darkblade
+ icon_state = "cultblade"
+ item_state = "cultblade"
+ name = "dark blade"
+ desc = "Spread the glory of the dark gods!"
+ slot_flags = SLOT_BELT
+ hitsound = 'sound/hallucinations/growl1.ogg'
+
+/obj/item/weapon/nullrod/claymore/chainsaw_sword
+ icon_state = "chainswordon"
+ item_state = "chainswordon"
+ name = "sacred chainsaw sword"
+ desc = "Suffer not a heretic to live."
+ slot_flags = SLOT_BELT
+ attack_verb = list("sawed", "torn", "cut", "chopped", "diced")
+ hitsound = 'sound/weapons/chainsaw.ogg'
+
+/obj/item/weapon/nullrod/claymore/glowing
+ icon_state = "swordon"
+ item_state = "swordon"
+ name = "force weapon"
+ desc = "The blade glows with the power of faith. Or possibly a battery."
+ slot_flags = SLOT_BELT
+
+/obj/item/weapon/nullrod/claymore/katana
+ name = "hanzo steel"
+ desc = "Capable of cutting clean through a holy claymore."
+ icon_state = "katana"
+ item_state = "katana"
+ slot_flags = SLOT_BELT | SLOT_BACK
+
+/obj/item/weapon/nullrod/claymore/saber
+ name = "light energy sword"
+ hitsound = 'sound/weapons/blade1.ogg'
+ icon_state = "swordblue"
+ item_state = "swordblue"
+ desc = "If you strike me down, I shall become more robust than you can possibly imagine."
+ slot_flags = SLOT_BELT
+
+/obj/item/weapon/nullrod/claymore/saber/red
+ name = "dark energy sword"
+ icon_state = "swordred"
+ item_state = "swordred"
+ desc = "Woefully ineffective when used on steep terrain."
+
+/obj/item/weapon/nullrod/sord
+ name = "\improper UNREAL SORD"
+ desc = "This thing is so unspeakably HOLY you are having a hard time even holding it."
+ icon_state = "sord"
+ item_state = "sord"
+ slot_flags = SLOT_BELT
+ force = 4.13
+ throwforce = 1
+ hitsound = 'sound/weapons/bladeslice.ogg'
+ attack_verb = list("attacked", "slashed", "stabbed", "sliced", "torn", "ripped", "diced", "cut")
+
+/obj/item/weapon/nullrod/scythe
+ icon_state = "scythe0"
+ item_state = "scythe0"
+ name = "reaper scythe"
+ desc = "Ask not for whom the bell tolls..."
+ w_class = 4
+ armour_penetration = 35
+ slot_flags = SLOT_BACK
+ sharp = 1
+ edge = 1
+ attack_verb = list("chopped", "sliced", "cut", "reaped")
+ hitsound = 'sound/weapons/bladeslice.ogg'
+
+/obj/item/weapon/nullrod/scythe/vibro
+ icon_state = "hfrequency0"
+ item_state = "hfrequency1"
+ name = "high frequency blade"
+ desc = "Bad references are the DNA of the soul."
+ attack_verb = list("chopped", "sliced", "cut", "zandatsu'd")
+
+/obj/item/weapon/nullrod/hammmer
+ icon_state = "hammeron"
+ item_state = "hammeron"
+ name = "relic war hammer"
+ desc = "This war hammer cost the chaplain fourty thousand space dollars."
+ slot_flags = SLOT_BELT
+ w_class = 5
+ attack_verb = list("smashed", "bashed", "hammered", "crunched")
+
+/obj/item/weapon/nullrod/chainsaw
+ name = "chainsaw hand"
+ desc = "Good? Bad? You're the guy with the chainsaw hand."
+ icon_state = "chainsaw1"
+ item_state = "mounted_chainsaw"
+ w_class = 5
+ flags = NODROP | ABSTRACT
+ sharp = 1
+ edge = 1
+ attack_verb = list("sawed", "torn", "cut", "chopped", "diced")
+ hitsound = 'sound/weapons/chainsaw.ogg'
+
+/obj/item/weapon/nullrod/clown
+ icon = 'icons/obj/wizard.dmi'
+ icon_state = "clownrender"
+ item_state = "gold_horn"
+ name = "clown dagger"
+ desc = "Used for absolutely hilarious sacrifices."
+ hitsound = 'sound/items/bikehorn.ogg'
+ sharp = 1
+ edge = 1
+ attack_verb = list("attacked", "slashed", "stabbed", "sliced", "torn", "ripped", "diced", "cut")
+
+/obj/item/weapon/nullrod/whip
+ name = "holy whip"
+ desc = "What a terrible night to be on Space Station 13."
+ icon_state = "chain"
+ item_state = "chain"
+ slot_flags = SLOT_BELT
+ attack_verb = list("whipped", "lashed")
+ hitsound = 'sound/weapons/slash.ogg'
+
+/obj/item/weapon/nullrod/whip/afterattack(atom/movable/AM, mob/user, proximity)
+ if(!proximity)
+ return
+ if(istype(AM, /mob/living/carbon/human))
+ var/mob/living/carbon/human/H = AM
+ if(is_shadow(H))
+ var/phrase = pick("Die monster! You don't belong in this world!!!", "You steal men's souls and make them your slaves!!!", "Your words are as empty as your soul!!!", "Mankind ill needs a savior such as you!!!")
+ user.say("[phrase]")
+ H.adjustBruteLoss(8) //Bonus damage
+
+/obj/item/weapon/nullrod/fedora
+ name = "athiest's fedora"
+ desc = "The brim of the hat is as sharp as your wit. Throwing it at someone would hurt almost as much as disproving the existence of God."
+ icon_state = "fedora"
+ item_state = "fedora"
+ slot_flags = SLOT_HEAD
+ icon = 'icons/obj/clothing/hats.dmi'
+ force = 0
+ throw_speed = 4
+ throw_range = 7
+ throwforce = 20
+
+/obj/item/weapon/nullrod/armblade
+ name = "dark blessing"
+ desc = "Particularly twisted dieties grant gifts of dubious value."
+ icon_state = "arm_blade"
+ item_state = "arm_blade"
+ flags = ABSTRACT | NODROP
+ w_class = 5
+ sharp = 1
+ edge = 1
+
+/obj/item/weapon/nullrod/carp
+ name = "carp-sie plushie"
+ desc = "An adorable stuffed toy that resembles the god of all carp. The teeth look pretty sharp. Activate it to recieve the blessing of Carp-Sie."
+ icon = 'icons/obj/toy.dmi'
+ icon_state = "carpplushie"
+ item_state = "carp_plushie"
+ force = 15
+ attack_verb = list("bitten", "eaten", "fin slapped")
+ hitsound = 'sound/weapons/bite.ogg'
+ var/used_blessing = FALSE
+
+/obj/item/weapon/nullrod/carp/attack_self(mob/living/user)
+ if(used_blessing)
+ return
+ if(user.mind && (user.mind.assigned_role != "Chaplain"))
+ return
+ user << "You are blessed by Carp-Sie. Wild space carp will no longer attack you."
+ user.faction |= "carp"
+ used_blessing = TRUE
+
+/obj/item/weapon/nullrod/claymore/bostaff //May as well make it a "claymore" and inherit the blocking
+ name = "monk's staff"
+ desc = "A long, tall staff made of polished wood. Traditionally used in ancient old-Earth martial arts, now used to harass the clown."
+ w_class = 4
+ force = 15
+ slot_flags = SLOT_BACK
+ sharp = 0
+ edge = 0
+ hitsound = "swing_hit"
+ attack_verb = list("smashed", "slammed", "whacked", "thwacked")
+ icon = 'icons/obj/weapons.dmi'
+ icon_state = "bostaff0"
+ item_state = "bostaff0"
+
+/obj/item/weapon/nullrod/claymore/bostaff/IsShield()
+ if(prob(40))
+ return 1
+ else
+ return 0
+
+/obj/item/weapon/nullrod/tribal_knife
+ icon_state = "crysknife"
+ item_state = "crysknife"
+ name = "arrhythmic knife"
+ w_class = 5
+ desc = "They say fear is the true mind killer, but stabbing them in the head works too. Honour compels you to not sheathe it once drawn."
+ sharp = 1
+ edge = 1
+ slot_flags = null
+ flags = HANDSLOW
+ hitsound = 'sound/weapons/bladeslice.ogg'
+ attack_verb = list("attacked", "slashed", "stabbed", "sliced", "torn", "ripped", "diced", "cut")
+
+/obj/item/weapon/nullrod/tribal_knife/New()
+ ..()
+ processing_objects.Add(src)
+
+/obj/item/weapon/nullrod/tribal_knife/Destroy()
+ processing_objects.Remove(src)
+ return ..()
+
+/obj/item/weapon/nullrod/tribal_knife/process()
+ slowdown = rand(-2, 2)
+
+/obj/item/weapon/nullrod/pitchfork
+ icon_state = "pitchfork0"
+ item_state = "pitchfork0"
+ name = "unholy pitchfork"
+ w_class = 3
+ desc = "Holding this makes you look absolutely devilish."
+ attack_verb = list("poked", "impaled", "pierced", "jabbed")
+ hitsound = 'sound/weapons/bladeslice.ogg'
+ sharp = 1
+ edge = 1
diff --git a/code/game/objects/items/weapons/weaponry.dm b/code/game/objects/items/weapons/weaponry.dm
index e20a3af837b..8ff2f931159 100644
--- a/code/game/objects/items/weapons/weaponry.dm
+++ b/code/game/objects/items/weapons/weaponry.dm
@@ -15,75 +15,6 @@
to_chat(viewers(user), "[user] is hitting \himself with the [src.name]! It looks like \he's trying to ban \himself from life.")
return (BRUTELOSS|FIRELOSS|TOXLOSS|OXYLOSS)
-/obj/item/weapon/nullrod
- name = "null rod"
- desc = "A rod of pure obsidian, its very presence disrupts and dampens the powers of paranormal phenomenae."
- icon_state = "nullrod"
- item_state = "nullrod"
- slot_flags = SLOT_BELT
- force = 15
- throw_speed = 1
- throw_range = 4
- throwforce = 10
- w_class = 1
- var/transformed = 0
- var/transform_into = /obj/item/weapon/nullrod/sword
- var/transform_via = list(/obj/item/clothing/suit/armor/riot/knight/templar, /obj/item/clothing/suit/chaplain_hoodie/fluff/chronx)
-
- suicide_act(mob/user)
- to_chat(viewers(user), "[user] is impaling \himself with the [src.name]! It looks like \he's trying to commit suicide.")
- return (BRUTELOSS|FIRELOSS)
-
-/obj/item/weapon/nullrod/attack(mob/M as mob, mob/living/user as mob) //Paste from old-code to decult with a null rod.
-
- 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])")
-
- if(!iscarbon(user))
- M.LAssailant = null
- else
- M.LAssailant = user
-
- msg_admin_attack("[key_name_admin(user)] attacked [key_name_admin(M)] with [src.name] (INTENT: [uppertext(user.a_intent)])")
-
- if ((CLUMSY in user.mutations) && prob(50))
- to_chat(user, "\red The rod slips out of your hand and hits your head.")
- user.take_organ_damage(10)
- user.Paralyse(20)
- return
-
- if(M.mind)
- if(M.mind.vampire)
- if(ishuman(M))
- if(!M.mind.vampire.get_ability(/datum/vampire_passive/full))
- to_chat(M, "The nullrod's power interferes with your own!")
- M.mind.vampire.nullified = max(5, M.mind.vampire.nullified + 2)
- ..()
-
-/obj/item/weapon/nullrod/afterattack(var/obj/item/I as obj, mob/user as mob, proximity)
- if(!proximity)
- return
- for(var/T in transform_via)
- if(istype(I, T)) //Only the Chaplain's holy armor is capable fo performing this feat.
- if(!transformed) // can't turn a sword into a sword.
- var/obj/item/S = new transform_into()
- to_chat(user, "You sheath the [src] into the [I]'s scabbard, transforming it into \a [S].")
- user.unEquip(src)
- qdel(src)
- user.put_in_hands(S)
- break
-
-/obj/item/weapon/nullrod/sword
- name = "holy sword"
- desc = "A sword imbued with holy power, its very presence disrupts and dampens the powers of paranormal phenomenae."
- icon_state = "claymore"
- item_state = "claymore"
- hitsound = 'sound/weapons/bladeslice.ogg'
- w_class = 3 //transforming it is not without its downsides.
- sharp = 1
- edge = 1
- transformed = 1
-
/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/modules/clothing/suits/armor.dm b/code/modules/clothing/suits/armor.dm
index 6f699e3a9ae..7934d49a620 100644
--- a/code/modules/clothing/suits/armor.dm
+++ b/code/modules/clothing/suits/armor.dm
@@ -265,7 +265,7 @@
desc = "God wills it!"
icon_state = "knight_templar"
item_state = "knight_templar"
- allowed = list(/obj/item/weapon/gun/energy,/obj/item/weapon/reagent_containers/spray/pepper,/obj/item/weapon/gun/projectile,/obj/item/ammo_box,/obj/item/ammo_casing,/obj/item/weapon/melee/baton,/obj/item/weapon/restraints/handcuffs,/obj/item/device/flashlight/seclite,/obj/item/weapon/melee/classic_baton/telescopic,/obj/item/weapon/nullrod/sword)
+ allowed = list(/obj/item/weapon/gun/energy,/obj/item/weapon/reagent_containers/spray/pepper,/obj/item/weapon/gun/projectile,/obj/item/ammo_box,/obj/item/ammo_casing,/obj/item/weapon/melee/baton,/obj/item/weapon/restraints/handcuffs,/obj/item/device/flashlight/seclite,/obj/item/weapon/melee/classic_baton/telescopic,/obj/item/weapon/nullrod/claymore)
//Non-hardsuit ERT armor.
/obj/item/clothing/suit/armor/vest/ert
diff --git a/code/modules/customitems/item_defines.dm b/code/modules/customitems/item_defines.dm
index c89d08b8d1b..3cd6566e731 100644
--- a/code/modules/customitems/item_defines.dm
+++ b/code/modules/customitems/item_defines.dm
@@ -340,9 +340,9 @@
flags_inv = HIDEFACE
/obj/item/weapon/nullrod/fluff/chronx //chronx100: Hughe O'Splash
- transform_into = /obj/item/weapon/nullrod/sword/fluff/chronx
+ fluff_transformations = list(/obj/item/weapon/nullrod/fluff/chronx/scythe)
-/obj/item/weapon/nullrod/sword/fluff/chronx
+/obj/item/weapon/nullrod/fluff/chronx/scythe
name = "Soul Collector"
desc = "An ancient scythe used by the worshipers of Cthulhu. Tales say it is used to prepare souls for Cthulhu's great devouring. Someone carved their name into the handle: Hughe O'Splash"
icon = 'icons/obj/custom_items.dmi'
diff --git a/code/modules/mob/living/carbon/human/human_movement.dm b/code/modules/mob/living/carbon/human/human_movement.dm
index d44bfbbb27f..5d79e3f6237 100644
--- a/code/modules/mob/living/carbon/human/human_movement.dm
+++ b/code/modules/mob/living/carbon/human/human_movement.dm
@@ -39,6 +39,10 @@
if(back)
tally += back.slowdown
+ if(l_hand && (l_hand.flags & HANDSLOW))
+ tally += l_hand.slowdown
+ if(r_hand && (r_hand.flags & HANDSLOW))
+ tally += r_hand.slowdown
if(FAT in src.mutations)
tally += 1.5
diff --git a/icons/mob/back.dmi b/icons/mob/back.dmi
index 877f91de1f4..ce634c701d9 100644
Binary files a/icons/mob/back.dmi and b/icons/mob/back.dmi differ
diff --git a/icons/mob/inhands/items_lefthand.dmi b/icons/mob/inhands/items_lefthand.dmi
index c649cee3ec2..67313e46bfb 100644
Binary files a/icons/mob/inhands/items_lefthand.dmi and b/icons/mob/inhands/items_lefthand.dmi differ
diff --git a/icons/mob/inhands/items_righthand.dmi b/icons/mob/inhands/items_righthand.dmi
index c0b8af3b551..1462d26e344 100644
Binary files a/icons/mob/inhands/items_righthand.dmi and b/icons/mob/inhands/items_righthand.dmi differ
diff --git a/icons/obj/weapons.dmi b/icons/obj/weapons.dmi
index 728bfaba198..a10524fb9b9 100644
Binary files a/icons/obj/weapons.dmi and b/icons/obj/weapons.dmi differ
diff --git a/paradise.dme b/paradise.dme
index 17dddc8065d..1c593f7e095 100644
--- a/paradise.dme
+++ b/paradise.dme
@@ -797,6 +797,7 @@
#include "code\game\objects\items\weapons\gift_wrappaper.dm"
#include "code\game\objects\items\weapons\handcuffs.dm"
#include "code\game\objects\items\weapons\holosign.dm"
+#include "code\game\objects\items\weapons\holy_weapons.dm"
#include "code\game\objects\items\weapons\kitchen.dm"
#include "code\game\objects\items\weapons\legcuffs.dm"
#include "code\game\objects\items\weapons\lighters.dm"