diff --git a/code/modules/mob/living/simple_animal/animal_defense.dm b/code/modules/mob/living/simple_animal/animal_defense.dm
index ebcdb3be1f2..b37763b2602 100644
--- a/code/modules/mob/living/simple_animal/animal_defense.dm
+++ b/code/modules/mob/living/simple_animal/animal_defense.dm
@@ -16,7 +16,23 @@
if("grab")
grabbedby(M)
- if("harm", "disarm")
+ if("disarm")
+ M.do_attack_animation(src, ATTACK_EFFECT_DISARM)
+ playsound(src, 'sound/weapons/thudswoosh.ogg', 50, TRUE, -1)
+ var/shove_dir = get_dir(M, src)
+ if(!Move(get_step(src, shove_dir), shove_dir))
+ log_combat(M, src, "shoved", "failing to move it")
+ M.visible_message("[M.name] shoves [src]!",
+ "You shove [src]!", "You hear aggressive shuffling!", COMBAT_MESSAGE_RANGE, list(src))
+ to_chat(src, "You're shoved by [M.name]!")
+ return TRUE
+ log_combat(M, src, "shoved", "pushing it")
+ M.visible_message("[M.name] shoves [src], pushing [p_them()]!",
+ "You shove [src], pushing [p_them()]!", "You hear aggressive shuffling!", COMBAT_MESSAGE_RANGE, list(src))
+ to_chat(src, "You're pushed by [name]!")
+ return TRUE
+
+ if("harm")
if(HAS_TRAIT(M, TRAIT_PACIFISM))
to_chat(M, "You don't want to hurt [src]!")
return