diff --git a/code/modules/antagonists/wizard/equipment/spellbook.dm b/code/modules/antagonists/wizard/equipment/spellbook.dm
index dcec31e5c2..7f03a7e003 100644
--- a/code/modules/antagonists/wizard/equipment/spellbook.dm
+++ b/code/modules/antagonists/wizard/equipment/spellbook.dm
@@ -141,6 +141,11 @@
name = "Disintegrate"
spell_type = /obj/effect/proc_holder/spell/targeted/touch/disintegrate
+/datum/spellbook_entry/nuclearfist
+ name = "Nuclear Fist"
+ spell_type = /obj/effect/proc_holder/spell/targeted/touch/nuclear_fist
+ cost = 3
+
/datum/spellbook_entry/disabletech
name = "Disable Tech"
spell_type = /obj/effect/proc_holder/spell/targeted/emplosion/disable_tech
diff --git a/code/modules/projectiles/projectile/magic.dm b/code/modules/projectiles/projectile/magic.dm
index d91c60367d..e2f8fd1a83 100644
--- a/code/modules/projectiles/projectile/magic.dm
+++ b/code/modules/projectiles/projectile/magic.dm
@@ -507,4 +507,37 @@
return
var/turf/T = get_turf(target)
for(var/i=0, i<50, i+=10)
- addtimer(CALLBACK(GLOBAL_PROC, .proc/explosion, T, -1, exp_heavy, exp_light, exp_flash, FALSE, FALSE, exp_fire), i)
\ No newline at end of file
+ addtimer(CALLBACK(GLOBAL_PROC, .proc/explosion, T, -1, exp_heavy, exp_light, exp_flash, FALSE, FALSE, exp_fire), i)
+
+/obj/item/projectile/magic/nuclear
+ name = "\proper blazing manliness"
+ icon_state = "nuclear"
+ nodamage = TRUE
+ var/mob/living/victim = null
+
+/obj/item/projectile/magic/nuclear/on_hit(target)
+ new/obj/effect/temp_visual/nuclear(get_turf(src))
+ if(ismob(target))
+ if(target == victim)
+ return
+ visible_message("[victim] slams into [target] with explosive force!")
+ explosion(src, 2, 3, 4, 0, 6, 0)
+ qdel(src)
+ return
+ else
+ victim.take_overall_damage(30,30)
+ explosion(src, -1, -1, -1, 0, 3, 0)
+ qdel(src)
+ return //Autistically making it return and qdel because for some reason it was blowing up three times?
+
+/obj/item/projectile/magic/nuclear/Destroy()
+ for(var/atom/movable/AM in contents)
+ AM.forceMove(get_turf(src))
+ . = ..()
+
+/obj/effect/temp_visual/nuclear //where's a good place to put this boi
+ icon = 'icons/effects/96x96.dmi'
+ icon_state = "slugboom"
+ randomdir = FALSE
+ duration = 60
+ pixel_x = -48
\ No newline at end of file
diff --git a/code/modules/spells/spell_types/godhand.dm b/code/modules/spells/spell_types/godhand.dm
index a5f371ffc2..ef55ec0f63 100644
--- a/code/modules/spells/spell_types/godhand.dm
+++ b/code/modules/spells/spell_types/godhand.dm
@@ -182,3 +182,42 @@
if(charges <= 0)
qdel(src)
+
+/obj/item/melee/touch_attack/nuclearfist
+ name = "\improper PURE MANLINESS"
+ desc = "SHOW THEM RAW POWER"
+ catchphrase = "I CAST FIST!"
+ on_use_sound = 'sound/weapons/mortar_long_whistle.ogg'
+ icon = 'icons/mecha/mecha_equipment.dmi'
+ icon_state = "mecha_honker"
+
+/obj/item/melee/touch_attack/nuclearfist/afterattack(atom/movable/target, mob/living/carbon/user, proximity)
+ if(!proximity || target == user || !ismob(target) || !iscarbon(user) || user.lying || user.handcuffed) //exploding after touching yourself would be bad
+ return
+ if(!user.can_speak_vocal())
+ to_chat(user, "You can't get the words out!")
+ return
+ var/mob/M = target
+ do_sparks(4, FALSE, M.loc)
+ for(var/mob/living/L in view(src, 7))
+ if(L != user)
+ L.flash_act(affect_silicon = FALSE)
+ var/atom/A = M.anti_magic_check()
+ if(A)
+ if(isitem(A))
+ target.visible_message("[target]'s [A] glows brightly as it wards off the spell!")
+ user.visible_message("The feedback blows [user]'s arm off!","The spell bounces from [M]'s skin back into your arm!")
+ user.flash_act()
+ var/obj/item/bodypart/part = user.get_holding_bodypart_of_item(src)
+ if(part)
+ part.dismember()
+ return ..()
+ var/angle = dir2angle(get_dir(src, get_step_away(target, src)))
+ var/obj/item/projectile/magic/nuclear/P = new(get_turf(src))
+ P.victim = target
+ target.forceMove(P)
+ P.setAngle(angle)
+ P.original = user
+ P.firer = user
+ P.fire()
+ return ..()
\ No newline at end of file
diff --git a/code/modules/spells/spell_types/touch_attacks.dm b/code/modules/spells/spell_types/touch_attacks.dm
index 0ffe02cec2..358b9e3ff0 100644
--- a/code/modules/spells/spell_types/touch_attacks.dm
+++ b/code/modules/spells/spell_types/touch_attacks.dm
@@ -23,7 +23,7 @@
remove_hand(TRUE)
to_chat(user, "You draw the power out of your hand.")
return
-
+
for(var/mob/living/carbon/C in targets)
if(!attached_hand)
if(ChargeHand(C))
@@ -71,3 +71,15 @@
action_icon_state = "statue"
sound = 'sound/magic/fleshtostone.ogg'
+
+/obj/effect/proc_holder/spell/targeted/touch/nuclear_fist
+ name = "Nuclear Fist"
+ desc = "This spell channels raw manliness, allowing you punch your enemies across the galaxy, causing them to detonate violently if hitting any other living being midflight."
+ hand_path = /obj/item/melee/touch_attack/nuclearfist
+
+ school = "evocation"
+ charge_max = 600
+ clothes_req = 1
+ cooldown_min = 200 //100 deciseconds reduction per rank
+
+ action_icon_state = "gib"
\ No newline at end of file
diff --git a/icons/effects/96x96.dmi b/icons/effects/96x96.dmi
index a9f20ae8a8..c0b5ef5b40 100644
Binary files a/icons/effects/96x96.dmi and b/icons/effects/96x96.dmi differ
diff --git a/icons/obj/projectiles.dmi b/icons/obj/projectiles.dmi
index d1c625c18e..a434994846 100644
Binary files a/icons/obj/projectiles.dmi and b/icons/obj/projectiles.dmi differ