diff --git a/GainStation13/code/datums/mood_events/needs_events.dm b/GainStation13/code/datums/mood_events/needs_events.dm
index 102a3c2d9b..68d8532721 100644
--- a/GainStation13/code/datums/mood_events/needs_events.dm
+++ b/GainStation13/code/datums/mood_events/needs_events.dm
@@ -11,3 +11,9 @@
description = "I love headpats so much!\n"
mood_change = 3
timeout = 2 MINUTES
+
+
+/datum/mood_event/bellyrub_good
+ description = "I love bellly massage so much!\n"
+ mood_change = 3
+ timeout = 2 MINUTES
diff --git a/code/modules/mob/living/carbon/carbon_defense.dm b/code/modules/mob/living/carbon/carbon_defense.dm
index 936f8182a6..27409c65c6 100644
--- a/code/modules/mob/living/carbon/carbon_defense.dm
+++ b/code/modules/mob/living/carbon/carbon_defense.dm
@@ -294,6 +294,25 @@
target_message = "[M] boops your nose.")
playsound(src, 'sound/items/Nose_boop.ogg', 50, 0)
+ //GS13 EDIT Belly rubs start
+ else if(M.zone_selected == BODY_ZONE_PRECISE_GROIN)
+ if(ishuman(src))
+ var/mob/living/carbon/human/H = src
+ M.visible_message("[M] rubs [H]'s belly to make [p_them()] feel better!", \
+ "You rub [H]'s belly to make [p_them()] feel less stuffed!")
+ H.reduce_fullness(rand(4,16), FALSE)
+ if(!HAS_TRAIT(H, TRAIT_ROBOTIC_ORGANISM))
+ H.adjust_nutrition(rand(-5,-1))
+ SEND_SIGNAL(H, COMSIG_ADD_MOOD_EVENT, "bellyrub_good", /datum/mood_event/bellyrub_good)
+ if(prob(5))
+ M.visible_message(" Belly rubbing causes [H] to belch!", \
+ "Your belly massage made [p_them()] to burp!")
+ H.emote(pick("belch","burp"))
+ if(prob(10))
+ H.emote("gurgle")
+ M.DelayNextAction(100)
+ //GS13 EDIT Belly rubs end
+
else if(check_zone(M.zone_selected) == BODY_ZONE_HEAD)
var/datum/species/S
S = dna.species
diff --git a/code/modules/mob/living/carbon/human/species.dm b/code/modules/mob/living/carbon/human/species.dm
index ebce4913d9..5b5e50b92e 100644
--- a/code/modules/mob/living/carbon/human/species.dm
+++ b/code/modules/mob/living/carbon/human/species.dm
@@ -1730,6 +1730,26 @@ GLOBAL_LIST_EMPTY(roundstart_race_names)
return
/datum/species/proc/help(mob/living/carbon/human/user, mob/living/carbon/human/target, datum/martial_art/attacker_style)
+ //GS13 edit start belly rub
+ if(user.zone_selected == BODY_ZONE_PRECISE_GROIN && user.health >= 0 && target == user)
+ user.visible_message("[user] rubs their belly!", \
+ "You rub your belly!")
+ user.reduce_fullness(rand(4,16), FALSE)
+ if(!HAS_TRAIT(user, TRAIT_ROBOTIC_ORGANISM))
+ user.adjust_nutrition(rand(-5,-1))
+ SEND_SIGNAL(user, COMSIG_ADD_MOOD_EVENT, "bellyrub_good", /datum/mood_event/bellyrub_good)
+ if(prob(5))
+ user.visible_message("While [user] rubs their belly, the spontanious belch comes out!", \
+ "Your belly massage made you to burp!")
+ user.emote(pick("belch","burp"))
+ if(prob(10))
+ user.emote("gurgle")
+ user.DelayNextAction(100)
+ playsound(user, 'sound/weapons/thudswoosh.ogg', 50, 1, -1)
+ return FALSE
+
+ //GS13 edit end belly rub
+
if(target.health >= 0 && !HAS_TRAIT(target, TRAIT_FAKEDEATH))
target.help_shake_act(user)
if(target != user)