diff --git a/code/game/machinery/doors/firedoor.dm b/code/game/machinery/doors/firedoor.dm
index d93ba6e3bad..6b6aa8a869f 100644
--- a/code/game/machinery/doors/firedoor.dm
+++ b/code/game/machinery/doors/firedoor.dm
@@ -77,6 +77,20 @@
A.all_doors.Remove(src)
. = ..()
+/obj/machinery/door/firedoor/attack_generic(var/mob/user, var/damage)
+ if(stat & (BROKEN|NOPOWER))
+ if(damage >= 10)
+ if(src.density)
+ visible_message("\The [user] forces \the [src] open!")
+ open(1)
+ else
+ visible_message("\The [user] forces \the [src] closed!")
+ close(1)
+ else
+ visible_message("\The [user] strains fruitlessly to force \the [src] [density ? "open" : "closed"].")
+ return
+ ..()
+
/obj/machinery/door/firedoor/get_material()
return get_material_by_name(DEFAULT_WALL_MATERIAL)
diff --git a/code/modules/mob/living/simple_animal/constructs/constructs.dm b/code/modules/mob/living/simple_animal/constructs/constructs.dm
index 50eea50f0d3..236261c31d2 100644
--- a/code/modules/mob/living/simple_animal/constructs/constructs.dm
+++ b/code/modules/mob/living/simple_animal/constructs/constructs.dm
@@ -12,7 +12,7 @@
a_intent = I_HURT
stop_automated_movement = 1
status_flags = CANPUSH
- universal_speak = 0
+ universal_speak = 1
universal_understand = 1
attack_sound = 'sound/weapons/spiderlunge.ogg'
min_oxy = 0
diff --git a/code/modules/mob/living/simple_animal/hostile/moghesfauna.dm b/code/modules/mob/living/simple_animal/hostile/moghesfauna.dm
index 0ca975d3030..65f06326f11 100644
--- a/code/modules/mob/living/simple_animal/hostile/moghesfauna.dm
+++ b/code/modules/mob/living/simple_animal/hostile/moghesfauna.dm
@@ -20,6 +20,8 @@
harm_intent_damage = 0
melee_damage_lower = 30
melee_damage_upper = 30
+ mob_size = 30
+ environment_smash = 2
attacktext = "chomped"
attack_sound = 'sound/misc/monstergrowl.ogg'
@@ -29,6 +31,6 @@
. =..()
var/mob/living/L = .
if(istype(L))
- if(prob(15))
+ if(prob(25))
L.Weaken(3)
- L.visible_message("\The [src] knocks down \the [L]!")
\ No newline at end of file
+ L.visible_message("\The [src] knocks down \the [L]!")
diff --git a/html/changelogs/alberyk-PR-807.yml b/html/changelogs/alberyk-PR-807.yml
new file mode 100644
index 00000000000..bc1acc82e59
--- /dev/null
+++ b/html/changelogs/alberyk-PR-807.yml
@@ -0,0 +1,7 @@
+author: Alberyk
+
+delete-after: True
+
+changes:
+ - tweak: "Cult constructs can now properly speak basic once more."
+ - rscadd: "Simple animals, and cult constructs, can force unpowered or broken firedoors now."