diff --git a/code/modules/mob/living/simple_animal/borer/borer.dm b/code/modules/mob/living/simple_animal/borer/borer.dm
index d111ab63a8a..f83be7bd942 100644
--- a/code/modules/mob/living/simple_animal/borer/borer.dm
+++ b/code/modules/mob/living/simple_animal/borer/borer.dm
@@ -4,6 +4,7 @@
desc = "A small, quivering sluglike creature."
speak_emote = list("chirrups")
emote_hear = list("chirrups")
+ organ_names = list("head", "rear segment", "central segment")
response_help = "pokes"
response_disarm = "prods"
response_harm = "stomps on"
diff --git a/code/modules/mob/living/simple_animal/constructs/constructs/artificer.dm b/code/modules/mob/living/simple_animal/constructs/constructs/artificer.dm
index 489207d869c..399cefc5382 100644
--- a/code/modules/mob/living/simple_animal/constructs/constructs/artificer.dm
+++ b/code/modules/mob/living/simple_animal/constructs/constructs/artificer.dm
@@ -12,6 +12,7 @@
melee_damage_lower = 10
melee_damage_upper = 10
attacktext = "rammed"
+ organ_names = list("core", "production array", "sensor array")
speed = 0
environment_smash = TRUE
attack_sound = 'sound/weapons/rapidslice.ogg'
diff --git a/code/modules/mob/living/simple_animal/constructs/constructs/harvester.dm b/code/modules/mob/living/simple_animal/constructs/constructs/harvester.dm
index c7479b170d4..6e4a9d54eff 100644
--- a/code/modules/mob/living/simple_animal/constructs/constructs/harvester.dm
+++ b/code/modules/mob/living/simple_animal/constructs/constructs/harvester.dm
@@ -10,6 +10,7 @@
melee_damage_lower = 25
melee_damage_upper = 25
attacktext = "violently stabbed"
+ organ_names = list("core", "harvesting array")
speed = -1
environment_smash = 1
see_in_dark = 7
diff --git a/code/modules/mob/living/simple_animal/constructs/constructs/juggernaut.dm b/code/modules/mob/living/simple_animal/constructs/constructs/juggernaut.dm
index 398952abf0a..ca8bcb875a1 100644
--- a/code/modules/mob/living/simple_animal/constructs/constructs/juggernaut.dm
+++ b/code/modules/mob/living/simple_animal/constructs/constructs/juggernaut.dm
@@ -12,6 +12,7 @@
melee_damage_lower = 30
melee_damage_upper = 30
attacktext = "smashed their armored gauntlet into"
+ organ_names = list("core", "right arm", "left arm")
mob_size = MOB_LARGE
speed = 3
environment_smash = 2
diff --git a/code/modules/mob/living/simple_animal/constructs/constructs/wraith.dm b/code/modules/mob/living/simple_animal/constructs/constructs/wraith.dm
index bc39475d5ef..959afb0c0e1 100644
--- a/code/modules/mob/living/simple_animal/constructs/constructs/wraith.dm
+++ b/code/modules/mob/living/simple_animal/constructs/constructs/wraith.dm
@@ -10,6 +10,7 @@
melee_damage_lower = 25
melee_damage_upper = 25
attacktext = "slashed"
+ organ_names = list("core", "right arm", "left arm")
speed = -1
environment_smash = TRUE
see_in_dark = 7
diff --git a/code/modules/mob/living/simple_animal/familiars/familiars.dm b/code/modules/mob/living/simple_animal/familiars/familiars.dm
index 8992a00f6d3..7325b621894 100644
--- a/code/modules/mob/living/simple_animal/familiars/familiars.dm
+++ b/code/modules/mob/living/simple_animal/familiars/familiars.dm
@@ -37,7 +37,7 @@
icon_dead = "evilcrab_dead"
speak_emote = list("chitters","clicks")
-
+ organ_names = list("head", "carapace")
health = 200
maxHealth = 200
@@ -71,6 +71,7 @@
canbrush = TRUE
brush = /obj/item/reagent_containers/glass/rag
meat_type = /obj/item/reagent_containers/food/snacks/fish/carpmeat
+ organ_names = list("head", "chest", "tail", "left flipper", "right flipper")
min_oxy = 0
@@ -88,6 +89,7 @@
icon_state = "horror"
icon_living = "horror"
icon_dead = "horror_dead"
+ organ_names = list("meaty core")
/mob/living/simple_animal/familiar/horror/Initialize()
. = ..()
@@ -95,10 +97,12 @@
icon_state = "horror_alt"
icon_living = "horror_alt"
icon_dead = "horror_alt_dead"
+ organ_names = list("head", "chest", "tail", "leg")
else if(prob(25))
icon_state = "abomination"
icon_living = "abomination"
icon_dead = "abomination_dead"
+ organ_names = list("head", "chest", "tail", "leg")
speak_emote = list("moans", "groans")
diff --git a/code/modules/mob/living/simple_animal/friendly/adhomai.dm b/code/modules/mob/living/simple_animal/friendly/adhomai.dm
index 1646ec1d6e6..bf6a13e20cb 100644
--- a/code/modules/mob/living/simple_animal/friendly/adhomai.dm
+++ b/code/modules/mob/living/simple_animal/friendly/adhomai.dm
@@ -11,6 +11,7 @@
emote_see = list("whistles")
meat_type = /obj/item/reagent_containers/food/snacks/meat/adhomai
meat_amount = 2
+ organ_names = list("head", "chest", "right fore leg", "left fore leg", "right rear leg", "left rear leg")
hunger_enabled = FALSE
canbrush = TRUE
var/eggsleft = 0
@@ -57,6 +58,7 @@
turns_per_move = 5
see_in_dark = 6
meat_amount = 30
+ organ_names = list("head", "chest", "right fore leg", "left fore leg", "right rear leg", "left rear leg")
response_help = "pets"
response_disarm = "gently pushes aside"
response_harm = "kicks"
@@ -88,6 +90,7 @@
stop_automated_movement_when_pulled = 0
mob_size = 12
meat_type = /obj/item/reagent_containers/food/snacks/meat/adhomai
+ organ_names = list("head", "chest", "right fore leg", "left fore leg", "right rear leg", "left rear leg")
maxHealth = 150
health = 150
@@ -126,6 +129,7 @@
milk_type = /datum/reagent/drink/milk
meat_type = /obj/item/reagent_containers/food/snacks/meat/chicken
+ organ_names = list("head", "chest", "fatty core", "blubberous torso", "thick centre", "left leg", "right leg")
butchering_products = list(/obj/item/reagent_containers/food/snacks/spreads/lard = 5)
holder_type = /obj/item/holder/schlorrgo
diff --git a/code/modules/mob/living/simple_animal/friendly/carp.dm b/code/modules/mob/living/simple_animal/friendly/carp.dm
index cfba83152e8..ea669271567 100644
--- a/code/modules/mob/living/simple_animal/friendly/carp.dm
+++ b/code/modules/mob/living/simple_animal/friendly/carp.dm
@@ -17,6 +17,7 @@
turns_per_move = 5
see_in_dark = 6
meat_type = /obj/item/reagent_containers/food/snacks/fish/carpmeat
+ organ_names = list("head", "chest", "tail", "left flipper", "right flipper")
response_help = "brushes"
response_disarm = "attempts to push"
response_harm = "injures"
diff --git a/code/modules/mob/living/simple_animal/friendly/cat.dm b/code/modules/mob/living/simple_animal/friendly/cat.dm
index cbc1537c357..2e91000483f 100644
--- a/code/modules/mob/living/simple_animal/friendly/cat.dm
+++ b/code/modules/mob/living/simple_animal/friendly/cat.dm
@@ -18,6 +18,7 @@
turns_per_move = 5
see_in_dark = 6
meat_type = /obj/item/reagent_containers/food/snacks/meat
+ organ_names = list("head", "chest", "right fore leg", "left fore leg", "right rear leg", "left rear leg")
response_help = "pets"
response_disarm = "gently pushes aside"
response_harm = "kicks"
diff --git a/code/modules/mob/living/simple_animal/friendly/corgi.dm b/code/modules/mob/living/simple_animal/friendly/corgi.dm
index df1c4785080..58c20b6e9d4 100644
--- a/code/modules/mob/living/simple_animal/friendly/corgi.dm
+++ b/code/modules/mob/living/simple_animal/friendly/corgi.dm
@@ -15,6 +15,7 @@
turns_per_move = 10
meat_type = /obj/item/reagent_containers/food/snacks/meat/corgi
meat_amount = 3
+ organ_names = list("head", "chest", "right fore leg", "left fore leg", "right rear leg", "left rear leg")
response_help = "pets"
response_disarm = "bops"
response_harm = "kicks"
diff --git a/code/modules/mob/living/simple_animal/friendly/crab.dm b/code/modules/mob/living/simple_animal/friendly/crab.dm
index ff8be87df21..8620d0678b5 100644
--- a/code/modules/mob/living/simple_animal/friendly/crab.dm
+++ b/code/modules/mob/living/simple_animal/friendly/crab.dm
@@ -12,6 +12,7 @@
speak_chance = 1
turns_per_move = 5
meat_type = /obj/item/reagent_containers/food/snacks/crabmeat
+ organ_names = list("head", "carapace")
response_help = "pets"
response_disarm = "gently pushes aside"
response_harm = "stomps"
diff --git a/code/modules/mob/living/simple_animal/friendly/farm_animals.dm b/code/modules/mob/living/simple_animal/friendly/farm_animals.dm
index d2a2ff479da..0687f33e6be 100644
--- a/code/modules/mob/living/simple_animal/friendly/farm_animals.dm
+++ b/code/modules/mob/living/simple_animal/friendly/farm_animals.dm
@@ -16,6 +16,7 @@
meat_type = /obj/item/reagent_containers/food/snacks/meat
meat_amount = 6
mob_size = 4.5//weight based on Chanthangi goats
+ organ_names = list("head", "chest", "right fore leg", "left fore leg", "right rear leg", "left rear leg")
response_help = "pets"
response_disarm = "gently pushes aside"
response_harm = "kicks"
@@ -88,6 +89,7 @@
see_in_dark = 6
meat_type = /obj/item/reagent_containers/food/snacks/meat
meat_amount = 40 //Cows are huge, should be worth a lot of meat
+ organ_names = list("head", "chest", "right fore leg", "left fore leg", "right rear leg", "left rear leg")
response_help = "pets"
response_disarm = "gently pushes aside"
response_harm = "kicks"
@@ -132,6 +134,7 @@
turns_per_move = 2
meat_type = /obj/item/reagent_containers/food/snacks/meat/chicken
meat_amount = 1
+ organ_names = list("head", "chest", "left leg", "right leg")
response_help = "pets"
response_disarm = "gently pushes aside"
response_harm = "kicks"
diff --git a/code/modules/mob/living/simple_animal/friendly/fox.dm b/code/modules/mob/living/simple_animal/friendly/fox.dm
index 796927b2133..b76a08ab4ff 100644
--- a/code/modules/mob/living/simple_animal/friendly/fox.dm
+++ b/code/modules/mob/living/simple_animal/friendly/fox.dm
@@ -16,6 +16,7 @@
see_in_dark = 6
meat_type = /obj/item/reagent_containers/food/snacks/meat
meat_amount = 3
+ organ_names = list("head", "chest", "right fore leg", "left fore leg", "right rear leg", "left rear leg")
response_help = "pets"
response_disarm = "gently pushes aside"
response_harm = "kicks"
diff --git a/code/modules/mob/living/simple_animal/friendly/hakhma.dm b/code/modules/mob/living/simple_animal/friendly/hakhma.dm
index 6d71889fe54..a120f56b039 100644
--- a/code/modules/mob/living/simple_animal/friendly/hakhma.dm
+++ b/code/modules/mob/living/simple_animal/friendly/hakhma.dm
@@ -12,6 +12,7 @@
speak_chance = 1
turns_per_move = 5
meat_amount = 35
+ organ_names = list("head", "chest", "right fore leg", "left fore leg", "right rear leg", "left rear leg")
response_help = "pets"
response_disarm = "gently pushes aside"
response_harm = "kicks"
diff --git a/code/modules/mob/living/simple_animal/friendly/lizard.dm b/code/modules/mob/living/simple_animal/friendly/lizard.dm
index 74fd586347a..645b4104f66 100644
--- a/code/modules/mob/living/simple_animal/friendly/lizard.dm
+++ b/code/modules/mob/living/simple_animal/friendly/lizard.dm
@@ -10,6 +10,7 @@
attacktext = "bitten"
melee_damage_lower = 1
melee_damage_upper = 2
+ organ_names = list("head", "chest", "right fore leg", "left fore leg", "right rear leg", "left rear leg")
response_help = "pets"
response_disarm = "shoos"
response_harm = "stomps on"
diff --git a/code/modules/mob/living/simple_animal/friendly/mushroom.dm b/code/modules/mob/living/simple_animal/friendly/mushroom.dm
index bee4f177b41..ac787195e55 100644
--- a/code/modules/mob/living/simple_animal/friendly/mushroom.dm
+++ b/code/modules/mob/living/simple_animal/friendly/mushroom.dm
@@ -12,6 +12,7 @@
maxHealth = 5
health = 5
meat_type = /obj/item/reagent_containers/food/snacks/hugemushroomslice
+ organ_names = list("cap", "chest", "left leg", "right leg")
response_help = "pets"
response_disarm = "gently pushes aside"
response_harm = "whacks"
diff --git a/code/modules/mob/living/simple_animal/friendly/rat.dm b/code/modules/mob/living/simple_animal/friendly/rat.dm
index a406032b306..9ff55ec72ad 100644
--- a/code/modules/mob/living/simple_animal/friendly/rat.dm
+++ b/code/modules/mob/living/simple_animal/friendly/rat.dm
@@ -30,6 +30,7 @@
maxHealth = 5
health = 5
meat_type = /obj/item/reagent_containers/food/snacks/meat/rat
+ organ_names = list("head", "chest", "right fore leg", "left fore leg", "right rear leg", "left rear leg")
response_help = "pets"
response_disarm = "gently pushes aside"
response_harm = "stomps on"
diff --git a/code/modules/mob/living/simple_animal/friendly/spiderbot.dm b/code/modules/mob/living/simple_animal/friendly/spiderbot.dm
index ea945dc7144..b61b466de79 100644
--- a/code/modules/mob/living/simple_animal/friendly/spiderbot.dm
+++ b/code/modules/mob/living/simple_animal/friendly/spiderbot.dm
@@ -34,6 +34,7 @@
melee_damage_lower = 1
melee_damage_upper = 3
+ organ_names = list("head")
response_help = "pets"
response_disarm = "shoos"
response_harm = "stomps on"
diff --git a/code/modules/mob/living/simple_animal/friendly/tomato.dm b/code/modules/mob/living/simple_animal/friendly/tomato.dm
index c40fc810cb4..6cf7a8d5ba3 100644
--- a/code/modules/mob/living/simple_animal/friendly/tomato.dm
+++ b/code/modules/mob/living/simple_animal/friendly/tomato.dm
@@ -9,6 +9,7 @@
maxHealth = 15
health = 15
meat_type = /obj/item/reagent_containers/food/snacks/tomatomeat
+ organ_names = list("head")
response_help = "prods"
response_disarm = "pushes aside"
response_harm = "smacks"
diff --git a/code/modules/mob/living/simple_animal/hostile/adhomai.dm b/code/modules/mob/living/simple_animal/hostile/adhomai.dm
index 6ec17b19b50..e36909ef2f8 100644
--- a/code/modules/mob/living/simple_animal/hostile/adhomai.dm
+++ b/code/modules/mob/living/simple_animal/hostile/adhomai.dm
@@ -6,6 +6,8 @@
icon_dead = "devil_dead"
icon_rest = "devil_rest"
turns_per_move = 3
+
+ organ_names = list("head", "chest", "right wing", "left wing", "right leg", "left leg")
response_help = "pets the"
response_disarm = "gently pushes aside the"
response_harm = "hits the"
diff --git a/code/modules/mob/living/simple_animal/hostile/alien.dm b/code/modules/mob/living/simple_animal/hostile/alien.dm
index dfb345144ce..50468db0008 100644
--- a/code/modules/mob/living/simple_animal/hostile/alien.dm
+++ b/code/modules/mob/living/simple_animal/hostile/alien.dm
@@ -11,6 +11,7 @@
response_harm = "hits"
speed = -1
meat_type = /obj/item/reagent_containers/food/snacks/xenomeat
+ organ_names = list("chest", "lower body", "left arm", "right arm", "left leg", "right leg", "head")
maxHealth = 100
health = 100
harm_intent_damage = 5
diff --git a/code/modules/mob/living/simple_animal/hostile/bat.dm b/code/modules/mob/living/simple_animal/hostile/bat.dm
index 08d4c254c74..66ac137f62e 100644
--- a/code/modules/mob/living/simple_animal/hostile/bat.dm
+++ b/code/modules/mob/living/simple_animal/hostile/bat.dm
@@ -9,6 +9,7 @@
speak_chance = 0
turns_per_move = 3
meat_type = /obj/item/reagent_containers/food/snacks/meat
+ organ_names = list("upper bat", "mid bat", "lower bat")
response_help = "pets the"
response_disarm = "gently pushes aside the"
response_harm = "hits the"
diff --git a/code/modules/mob/living/simple_animal/hostile/bear.dm b/code/modules/mob/living/simple_animal/hostile/bear.dm
index 0b92edde5ec..1ab4809f67d 100644
--- a/code/modules/mob/living/simple_animal/hostile/bear.dm
+++ b/code/modules/mob/living/simple_animal/hostile/bear.dm
@@ -18,6 +18,7 @@
see_in_dark = 6
meat_type = /obj/item/reagent_containers/food/snacks/bearmeat
meat_amount = 5
+ organ_names = list("chest", "lower body", "left arm", "right arm", "left leg", "right leg", "head")
response_help = "pets"
response_disarm = "gently pushes aside"
response_harm = "hits"
diff --git a/code/modules/mob/living/simple_animal/hostile/carp.dm b/code/modules/mob/living/simple_animal/hostile/carp.dm
index 84b23e84fe0..10f678de041 100644
--- a/code/modules/mob/living/simple_animal/hostile/carp.dm
+++ b/code/modules/mob/living/simple_animal/hostile/carp.dm
@@ -11,6 +11,7 @@
speak_chance = 0
turns_per_move = 5
meat_type = /obj/item/reagent_containers/food/snacks/fish/carpmeat
+ organ_names = list("head", "chest", "tail", "left flipper", "right flipper")
response_help = "pets the"
response_disarm = "gently pushes aside the"
response_harm = "hits the"
diff --git a/code/modules/mob/living/simple_animal/hostile/changeling.dm b/code/modules/mob/living/simple_animal/hostile/changeling.dm
index 04b766e473a..1da07aa924e 100644
--- a/code/modules/mob/living/simple_animal/hostile/changeling.dm
+++ b/code/modules/mob/living/simple_animal/hostile/changeling.dm
@@ -15,6 +15,7 @@
tameable = FALSE
+ organ_names = list("head", "chest", "tail", "leg")
response_help = "pets"
response_disarm = "shoves"
response_harm = "harmlessly punches"
diff --git a/code/modules/mob/living/simple_animal/hostile/commanded/bear_companion.dm b/code/modules/mob/living/simple_animal/hostile/commanded/bear_companion.dm
index 85eec25eee1..03518651095 100644
--- a/code/modules/mob/living/simple_animal/hostile/commanded/bear_companion.dm
+++ b/code/modules/mob/living/simple_animal/hostile/commanded/bear_companion.dm
@@ -23,6 +23,7 @@
mob_size = 17
+ organ_names = list("chest", "lower body", "left arm", "right arm", "left leg", "right leg", "head")
response_help = "pets"
response_harm = "hits"
response_disarm = "pushes"
diff --git a/code/modules/mob/living/simple_animal/hostile/commanded/guard_dog.dm b/code/modules/mob/living/simple_animal/hostile/commanded/guard_dog.dm
index 14b387ca12b..dc1754d6556 100644
--- a/code/modules/mob/living/simple_animal/hostile/commanded/guard_dog.dm
+++ b/code/modules/mob/living/simple_animal/hostile/commanded/guard_dog.dm
@@ -33,6 +33,7 @@
mob_size = 5
+ organ_names = list("head", "chest", "right fore leg", "left fore leg", "right rear leg", "left rear leg")
response_help = "pets"
response_harm = "hits"
response_disarm = "pushes"
diff --git a/code/modules/mob/living/simple_animal/hostile/commanded/ives.dm b/code/modules/mob/living/simple_animal/hostile/commanded/ives.dm
index 59e1942ea9a..119822afea2 100644
--- a/code/modules/mob/living/simple_animal/hostile/commanded/ives.dm
+++ b/code/modules/mob/living/simple_animal/hostile/commanded/ives.dm
@@ -34,6 +34,7 @@
mob_size = 5
+ organ_names = list("core", "head", "tail")
response_help = "pets"
response_harm = "hits"
response_disarm = "pushes"
diff --git a/code/modules/mob/living/simple_animal/hostile/creature.dm b/code/modules/mob/living/simple_animal/hostile/creature.dm
index d8dc36baee9..ee1d85094a1 100644
--- a/code/modules/mob/living/simple_animal/hostile/creature.dm
+++ b/code/modules/mob/living/simple_animal/hostile/creature.dm
@@ -9,6 +9,7 @@
maxHealth = 80
melee_damage_lower = 25
melee_damage_upper = 50
+ organ_names = list("meaty core")
attacktext = "chomped"
attack_sound = 'sound/weapons/bite.ogg'
faction = "creature"
diff --git a/code/modules/mob/living/simple_animal/hostile/faithless.dm b/code/modules/mob/living/simple_animal/hostile/faithless.dm
index cd65e4665dd..1f445312a30 100644
--- a/code/modules/mob/living/simple_animal/hostile/faithless.dm
+++ b/code/modules/mob/living/simple_animal/hostile/faithless.dm
@@ -7,6 +7,7 @@
icon_dead = "faithless_dead"
speak_chance = 0
turns_per_move = 5
+ organ_names = list("chest", "lower body", "left arm", "right arm", "left leg", "right leg", "head")
response_help = "passes through"
response_disarm = "shoves"
response_harm = "hits"
diff --git a/code/modules/mob/living/simple_animal/hostile/giant_spider.dm b/code/modules/mob/living/simple_animal/hostile/giant_spider.dm
index 0ef08c12853..4ad5377b219 100644
--- a/code/modules/mob/living/simple_animal/hostile/giant_spider.dm
+++ b/code/modules/mob/living/simple_animal/hostile/giant_spider.dm
@@ -17,6 +17,7 @@
turns_per_move = 5
see_in_dark = 10
meat_type = /obj/item/reagent_containers/food/snacks/xenomeat
+ organ_names = list("thorax", "legs", "head")
response_help = "pets"
response_disarm = "gently pushes aside"
response_harm = "pokes"
diff --git a/code/modules/mob/living/simple_animal/hostile/hivebot.dm b/code/modules/mob/living/simple_animal/hostile/hivebot.dm
index 84a89293367..8f5ac470cd5 100644
--- a/code/modules/mob/living/simple_animal/hostile/hivebot.dm
+++ b/code/modules/mob/living/simple_animal/hostile/hivebot.dm
@@ -23,6 +23,7 @@
attacktext = "slashed"
projectilesound = 'sound/weapons/bladeslice.ogg'
projectiletype = /obj/item/projectile/bullet/pistol/hivebotspike
+ organ_names = list("head", "core", "side thruster", "bottom thruster")
faction = "hivebot"
min_oxy = 0
max_oxy = 0
@@ -80,6 +81,7 @@
health = 100
maxHealth = 100
icon_state = "hivebotbomber"
+ organ_names = list("head", "core", "bottom thruster")
attacktext = "bumped"
move_to_delay = 8
var/has_exploded = FALSE
@@ -230,6 +232,7 @@
wander = 0
stop_automated_movement = 1
status_flags = 0
+ organ_names = list("head", "core", "right fore leg", "left fore leg", "right rear leg", "left rear leg")
faction = "hivebot"
ranged = 1
rapid = 1
@@ -511,6 +514,7 @@
attacktext = "skewered"
projectilesound = 'sound/weapons/lasercannonfire.ogg'
projectiletype = /obj/item/projectile/beam/hivebot/incendiary/heavy
+ organ_names = list("head", "core", "side thruster", "harvesting array")
faction = "hivebot"
min_oxy = 0
max_oxy = 0
diff --git a/code/modules/mob/living/simple_animal/hostile/krampus.dm b/code/modules/mob/living/simple_animal/hostile/krampus.dm
index a6189ee5e34..5da9cc29a56 100644
--- a/code/modules/mob/living/simple_animal/hostile/krampus.dm
+++ b/code/modules/mob/living/simple_animal/hostile/krampus.dm
@@ -15,6 +15,7 @@
tameable = FALSE
+ organ_names = list("chest", "lower body", "left arm", "right arm", "left leg", "right leg", "head")
response_help = "pets"
response_disarm = "shoves"
response_harm = "harmlessly punches"
diff --git a/code/modules/mob/living/simple_animal/hostile/mimic.dm b/code/modules/mob/living/simple_animal/hostile/mimic.dm
index cd0f57345f7..92006bfaeac 100644
--- a/code/modules/mob/living/simple_animal/hostile/mimic.dm
+++ b/code/modules/mob/living/simple_animal/hostile/mimic.dm
@@ -10,6 +10,7 @@
icon_living = "crate"
meat_type = /obj/item/reagent_containers/food/snacks/fish/carpmeat
+ organ_names = list("lid", "body")
response_help = "touches"
response_disarm = "pushes"
response_harm = "hits"
diff --git a/code/modules/mob/living/simple_animal/hostile/moghesfauna.dm b/code/modules/mob/living/simple_animal/hostile/moghesfauna.dm
index 08bf7d7cc72..74d5cbe08a2 100644
--- a/code/modules/mob/living/simple_animal/hostile/moghesfauna.dm
+++ b/code/modules/mob/living/simple_animal/hostile/moghesfauna.dm
@@ -12,6 +12,7 @@
turns_per_move = 5
speak_chance = 5
meat_type = /obj/item/reagent_containers/food/snacks/xenomeat
+ organ_names = list("chest", "lower body", "left arm", "right arm", "left leg", "right leg", "head")
response_help = "pets"
response_disarm = "shoves"
response_harm = "harmlessly punches"
diff --git a/code/modules/mob/living/simple_animal/hostile/morph.dm b/code/modules/mob/living/simple_animal/hostile/morph.dm
index 51edbacc6c6..616a5d81ef0 100644
--- a/code/modules/mob/living/simple_animal/hostile/morph.dm
+++ b/code/modules/mob/living/simple_animal/hostile/morph.dm
@@ -11,7 +11,7 @@
icon_dead = "morph_dead"
speed = 2.5
stop_automated_movement = TRUE
-
+ organ_names = list("bulbous node", "meaty core")
response_help = "pets"
response_disarm = "shoves"
response_harm = "harmlessly punches"
diff --git a/code/modules/mob/living/simple_animal/hostile/phoron_worm.dm b/code/modules/mob/living/simple_animal/hostile/phoron_worm.dm
index d12b5119bd0..da54a637d5e 100644
--- a/code/modules/mob/living/simple_animal/hostile/phoron_worm.dm
+++ b/code/modules/mob/living/simple_animal/hostile/phoron_worm.dm
@@ -11,6 +11,7 @@
turns_per_move = 5
speak_chance = 5
meat_type = /obj/item/reagent_containers/food/snacks/xenomeat
+ organ_names = list("head", "rear segment", "central segment")
response_help = "pets"
response_disarm = "shoves"
response_harm = "harmlessly punches"
diff --git a/code/modules/mob/living/simple_animal/hostile/pirate.dm b/code/modules/mob/living/simple_animal/hostile/pirate.dm
index 1534c554ccc..d26789c20ed 100644
--- a/code/modules/mob/living/simple_animal/hostile/pirate.dm
+++ b/code/modules/mob/living/simple_animal/hostile/pirate.dm
@@ -7,6 +7,7 @@
icon_dead = "piratemelee_dead"
speak_chance = 0
turns_per_move = 5
+ organ_names = list("chest", "lower body", "left arm", "right arm", "left leg", "right leg", "head")
response_help = "pushes"
response_disarm = "shoves"
response_harm = "hits"
diff --git a/code/modules/mob/living/simple_animal/hostile/pra.dm b/code/modules/mob/living/simple_animal/hostile/pra.dm
index fc8ce24414f..3841f4fab30 100644
--- a/code/modules/mob/living/simple_animal/hostile/pra.dm
+++ b/code/modules/mob/living/simple_animal/hostile/pra.dm
@@ -11,6 +11,7 @@
icon_dead = "republicon_dead"
speak_chance = 5
turns_per_move = 3
+ organ_names = list("chest", "lower body", "left arm", "right arm", "left leg", "right leg", "head")
response_help = "pokes"
response_disarm = "gently pushes aside"
response_harm = "hits"
diff --git a/code/modules/mob/living/simple_animal/hostile/retaliate/cavern.dm b/code/modules/mob/living/simple_animal/hostile/retaliate/cavern.dm
index ace1b347002..99ff894e67f 100644
--- a/code/modules/mob/living/simple_animal/hostile/retaliate/cavern.dm
+++ b/code/modules/mob/living/simple_animal/hostile/retaliate/cavern.dm
@@ -9,6 +9,7 @@
ranged = 1
smart = TRUE
turns_per_move = 3
+ organ_names = list("head", "central segment", "tail")
response_help = "pets"
response_disarm = "gently pushes aside"
response_harm = "hits"
@@ -85,6 +86,7 @@
harm_intent_damage = 5
ranged = 1
smart = TRUE
+ organ_names = list("core", "right fore wheel", "left fore wheel", "right rear wheel", "left rear wheel")
melee_damage_lower = 0
melee_damage_upper = 0
attacktext = "barrels into"
diff --git a/code/modules/mob/living/simple_animal/hostile/russian.dm b/code/modules/mob/living/simple_animal/hostile/russian.dm
index f67ab028602..bb5cd098342 100644
--- a/code/modules/mob/living/simple_animal/hostile/russian.dm
+++ b/code/modules/mob/living/simple_animal/hostile/russian.dm
@@ -8,6 +8,7 @@
icon_gib = "syndicate_gib"
speak_chance = 0
turns_per_move = 5
+ organ_names = list("chest", "lower body", "left arm", "right arm", "left leg", "right leg", "head")
response_help = "pokes"
response_disarm = "shoves"
response_harm = "hits"
diff --git a/code/modules/mob/living/simple_animal/hostile/spider_queen.dm b/code/modules/mob/living/simple_animal/hostile/spider_queen.dm
index 6c98993036d..41c1904ead2 100644
--- a/code/modules/mob/living/simple_animal/hostile/spider_queen.dm
+++ b/code/modules/mob/living/simple_animal/hostile/spider_queen.dm
@@ -12,6 +12,7 @@
see_in_dark = 10
see_invisible = SEE_INVISIBLE_NOLIGHTING
meat_type = /obj/item/reagent_containers/food/snacks/xenomeat
+ organ_names = list("thorax", "legs", "head")
response_help = "pets"
response_disarm = "gently pushes aside"
response_harm = "pokes"
diff --git a/code/modules/mob/living/simple_animal/hostile/syndicate.dm b/code/modules/mob/living/simple_animal/hostile/syndicate.dm
index 59c8f5b473e..dcbd52a67c8 100644
--- a/code/modules/mob/living/simple_animal/hostile/syndicate.dm
+++ b/code/modules/mob/living/simple_animal/hostile/syndicate.dm
@@ -8,6 +8,7 @@
icon_gib = "syndicate_gib"
speak_chance = 0
turns_per_move = 5
+ organ_names = list("chest", "lower body", "left arm", "right arm", "left leg", "right leg", "head")
response_help = "pokes"
response_disarm = "shoves"
response_harm = "hits"
diff --git a/code/modules/mob/living/simple_animal/hostile/tree.dm b/code/modules/mob/living/simple_animal/hostile/tree.dm
index 312c741b191..583ec3029dd 100644
--- a/code/modules/mob/living/simple_animal/hostile/tree.dm
+++ b/code/modules/mob/living/simple_animal/hostile/tree.dm
@@ -9,6 +9,7 @@
speak_chance = 0
turns_per_move = 5
meat_type = /obj/item/reagent_containers/food/snacks/fish/carpmeat
+ organ_names = list("trunk", "branches", "roots")
response_help = "brushes"
response_disarm = "pushes"
response_harm = "hits"
diff --git a/code/modules/mob/living/simple_animal/parrot.dm b/code/modules/mob/living/simple_animal/parrot.dm
index c21ffda5793..e9af997b202 100644
--- a/code/modules/mob/living/simple_animal/parrot.dm
+++ b/code/modules/mob/living/simple_animal/parrot.dm
@@ -44,6 +44,7 @@
turns_per_move = 5
meat_type = /obj/item/reagent_containers/food/snacks/cracker/
+ organ_names = list("torso", "left wing", "right wing", "head")
response_help = "pets"
response_disarm = "gently moves aside"
response_harm = "swats"
diff --git a/code/modules/mob/living/simple_animal/shade.dm b/code/modules/mob/living/simple_animal/shade.dm
index a46545fa685..0dce4736f0c 100644
--- a/code/modules/mob/living/simple_animal/shade.dm
+++ b/code/modules/mob/living/simple_animal/shade.dm
@@ -11,6 +11,7 @@
universal_speak = 1
speak_emote = list("hisses")
emote_hear = list("wails","screeches")
+ organ_names = list("chest", "lower body", "left arm", "right arm", "left leg", "right leg", "head")
response_help = "puts their hand through"
response_disarm = "flails at"
response_harm = "punches"
diff --git a/code/modules/mob/living/simple_animal/simple_animal.dm b/code/modules/mob/living/simple_animal/simple_animal.dm
index 4e05dcc85a0..c72ccea4622 100644
--- a/code/modules/mob/living/simple_animal/simple_animal.dm
+++ b/code/modules/mob/living/simple_animal/simple_animal.dm
@@ -35,6 +35,7 @@
var/turns_since_scan = 0
//Interaction
+ var/list/organ_names = list("chest")
var/response_help = "tries to help"
var/response_disarm = "tries to disarm"
var/response_harm = "hurts"
diff --git a/code/modules/mob/living/simple_animal/worm.dm b/code/modules/mob/living/simple_animal/worm.dm
index f560b35efb4..caa8e1dcd5a 100644
--- a/code/modules/mob/living/simple_animal/worm.dm
+++ b/code/modules/mob/living/simple_animal/worm.dm
@@ -10,6 +10,7 @@
speak_emote = list("transmits") //not supposed to be used under AI control
emote_hear = list("transmits") //I'm just adding it so it doesn't runtime if controlled by player who speaks
+ organ_names = list("side")
response_help = "touches"
response_disarm = "flails at"
response_harm = "punches the"
diff --git a/code/modules/projectiles/projectile.dm b/code/modules/projectiles/projectile.dm
index e625c87815e..311fc913f5e 100644
--- a/code/modules/projectiles/projectile.dm
+++ b/code/modules/projectiles/projectile.dm
@@ -185,11 +185,15 @@
playsound(target_mob, /decl/sound_category/bulletflyby_sound, 50, 1)
return FALSE
+ var/impacted_organ = parse_zone(def_zone)
+ if(istype(target_mob, /mob/living/simple_animal))
+ var/mob/living/simple_animal/SA = target_mob
+ impacted_organ = pick(SA.organ_names)
//hit messages
if(silenced)
- to_chat(target_mob, "You've been hit in the [parse_zone(def_zone)] by \a [src]!")
+ to_chat(target_mob, "You've been hit in the [impacted_organ] by \a [src]!")
else
- target_mob.visible_message("\The [target_mob] is hit by \a [src] in the [parse_zone(def_zone)]!", "You are hit by \a [src] in the [parse_zone(def_zone)]!")//X has fired Y is now given by the guns so you cant tell who shot you if you could not see the shooter
+ target_mob.visible_message("\The [target_mob] is hit by \a [src] in the [impacted_organ]!", "You are hit by \a [src] in the [impacted_organ]!")//X has fired Y is now given by the guns so you cant tell who shot you if you could not see the shooter
//admin logs
if(!no_attack_log)
diff --git a/html/changelogs/geeves-unique_animal_hitzones.yml b/html/changelogs/geeves-unique_animal_hitzones.yml
new file mode 100644
index 00000000000..bf43aed981e
--- /dev/null
+++ b/html/changelogs/geeves-unique_animal_hitzones.yml
@@ -0,0 +1,6 @@
+author: Geeves
+
+delete-after: True
+
+changes:
+ - rscadd: "Shooting simple mobs will now give more sensical text on where they were hit."
\ No newline at end of file