diff --git a/beestation.dme b/beestation.dme
index 9c0e244b937c7..e9f050389b49f 100644
--- a/beestation.dme
+++ b/beestation.dme
@@ -3882,6 +3882,11 @@
#include "monkestation\code\modules\mob\living\simple_animal\friendly\walterverse.dm"
#include "monkestation\code\modules\mob\living\simple_animal\hostile\bees.dm"
#include "monkestation\code\modules\mob\living\simple_animal\hostile\mining_mobs\elites\pandora_exploration.dm"
+#include "monkestation\code\modules\mob\living\simple_animal\hostile\monkedome\bullfrog.dm"
+#include "monkestation\code\modules\mob\living\simple_animal\hostile\monkedome\megafly.dm"
+#include "monkestation\code\modules\mob\living\simple_animal\hostile\monkedome\monkedome_fauna.dm"
+#include "monkestation\code\modules\mob\living\simple_animal\hostile\monkedome\spore.dm"
+#include "monkestation\code\modules\mob\living\simple_animal\hostile\monkedome\walker_snake.dm"
#include "monkestation\code\modules\neuromods\neuromod_items.dm"
#include "monkestation\code\modules\neuromods\surgery.dm"
#include "monkestation\code\modules\particles\byond_particles\particle_holder.dm"
diff --git a/monkestation/code/modules/mob/living/simple_animal/friendly/monkedome/domeflower.dm b/monkestation/code/modules/mob/living/simple_animal/friendly/monkedome/domeflower.dm
new file mode 100644
index 0000000000000..c0f595730cffd
--- /dev/null
+++ b/monkestation/code/modules/mob/living/simple_animal/friendly/monkedome/domeflower.dm
@@ -0,0 +1,13 @@
+/mob/living/simple_animal/friendly_monkedome_fauna/bullfrog
+ name = "domeflower"
+ icon = 'monkestation/icons/mob/monkedome/monkedome_monsters.dmi'
+ icon_state = "domeflower"
+ icon_living = "domeflower"
+ icon_dead = "domeflower_dead"
+ mob_size = MOB_SIZE_SMALL
+
+ health = 5
+ maxHealth = 5
+
+ response_help = "pets"
+ response_harm = "stomps"
diff --git a/monkestation/code/modules/mob/living/simple_animal/friendly/monkedome/friendly_monkedome_fauna.dm b/monkestation/code/modules/mob/living/simple_animal/friendly/monkedome/friendly_monkedome_fauna.dm
new file mode 100644
index 0000000000000..4d953feb10190
--- /dev/null
+++ b/monkestation/code/modules/mob/living/simple_animal/friendly/monkedome/friendly_monkedome_fauna.dm
@@ -0,0 +1,12 @@
+//the base mining mob
+/mob/living/simple_animal/friendly_monkedome_fauna
+ atmos_requirements = list("min_oxy" = 0, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 0, "min_co2" = 0, "max_co2" = 0, "min_n2" = 0, "max_n2" = 0)
+ faction = list("dome")
+ minbodytemp = 0
+ maxbodytemp = INFINITY
+ a_intent = INTENT_HELP
+ see_in_dark = 9
+ mob_size = MOB_SIZE_LARGE
+ discovery_points = 500
+
+
diff --git a/monkestation/code/modules/mob/living/simple_animal/hostile/monkedome/bullfrog.dm b/monkestation/code/modules/mob/living/simple_animal/hostile/monkedome/bullfrog.dm
new file mode 100644
index 0000000000000..f6cc095733c5b
--- /dev/null
+++ b/monkestation/code/modules/mob/living/simple_animal/hostile/monkedome/bullfrog.dm
@@ -0,0 +1,65 @@
+/mob/living/simple_animal/hostile/monkedome_fauna/bullfrog
+ name = "bullfrog"
+ icon = 'monkestation/icons/mob/monkedome/monkedome_monsters.dmi'
+ icon_state = "bullfrog"
+ icon_living = "bullfrog"
+ icon_dead = "bullfrog_dead"
+
+ ranged = TRUE
+ projectiletype = /obj/item/projectile/bullfrog_tongue
+
+ health = 75
+ maxHealth = 75
+
+ melee_damage = 25
+ obj_damage = 15
+
+ faction = list("dome","hostile")
+
+ ranged_message = "launches it's tongue at"
+ ranged_cooldown_time = 5 SECONDS
+
+ check_friendly_fire = TRUE
+
+ move_to_delay = 0.5 SECONDS
+
+/mob/living/simple_animal/hostile/monkedome_fauna/faction_check_mob(mob/target, exact_match)
+ if(istype(target,/mob/living/simple_animal/hostile/monkedome_fauna/megafly)) //Allow them to target megaflies
+ return FALSE
+ return ..()
+
+//Projectile
+
+/obj/item/projectile/bullfrog_tongue
+ name = "rock"
+ icon_state = "bullet"
+ pass_flags = PASSTABLE
+ range = 8
+ var/tongue
+ flag = "bullet"
+
+/obj/item/projectile/bullfrog_tongue/fire(setAngle)
+ if(firer)
+ tongue = firer.Beam(src, icon_state = "tentacle", time = INFINITY, maxdistance = INFINITY, beam_sleep_time = 1)
+ ..()
+
+/obj/item/projectile/bullfrog_tongue/on_hit(atom/target, blocked)
+ . = ..()
+ if(isliving(target))
+ var/mob/living/living_target = target
+ living_target.visible_message("[living_target] is grabbed by [firer]'s tongue!","A tongue grabs you and pulls you towards [firer]!")
+ if(istype(target,/mob/living/simple_animal/hostile/monkedome_fauna/megafly)) //Tongue instantly kills flies
+ living_target.throw_at(get_step_towards(firer,living_target), 8, 2, firer, TRUE, TRUE, callback=CALLBACK(src, .proc/hit_fly, firer, living_target))
+ return BULLET_ACT_HIT
+ living_target.throw_at(get_step_towards(firer,living_target), 8, 2, firer, TRUE, TRUE)
+ living_target.Stun(2 SECONDS)
+ living_target.Knockdown(3 SECONDS)
+ return BULLET_ACT_HIT
+
+/obj/item/projectile/bullfrog_tongue/proc/hit_fly(mob/firer,mob/target_fly)
+ target_fly.visible_message("[firer] eats [target_fly] in one swift motion!")
+ qdel(target_fly)
+
+/obj/item/projectile/bullfrog_tongue/Destroy()
+ qdel(tongue)
+ return ..()
diff --git a/monkestation/code/modules/mob/living/simple_animal/hostile/monkedome/megafly.dm b/monkestation/code/modules/mob/living/simple_animal/hostile/monkedome/megafly.dm
new file mode 100644
index 0000000000000..6e92584d7a9a0
--- /dev/null
+++ b/monkestation/code/modules/mob/living/simple_animal/hostile/monkedome/megafly.dm
@@ -0,0 +1,23 @@
+/mob/living/simple_animal/hostile/monkedome_fauna/megafly
+ name = "megafly"
+ icon = 'monkestation/icons/mob/monkedome/monkedome_monsters.dmi'
+ icon_state = "megafly"
+ icon_living = "megafly"
+ icon_dead = "megafly_dead"
+
+ health = 35
+ maxHealth = 35
+
+ melee_damage = 10
+
+ faction = list("dome","hostile")
+
+ movement_type = FLYING
+
+ move_to_delay = 0.15 SECONDS
+
+/mob/living/simple_animal/hostile/monkedome_fauna/megafly/AttackingTarget()
+ . = ..()
+ if(iscarbon(target))
+ var/mob/living/carbon/carbon_target = target
+ carbon_target.blood_volume -= rand(7,16)
diff --git a/monkestation/code/modules/mob/living/simple_animal/hostile/monkedome/monkedome_fauna.dm b/monkestation/code/modules/mob/living/simple_animal/hostile/monkedome/monkedome_fauna.dm
new file mode 100644
index 0000000000000..961731ab5c969
--- /dev/null
+++ b/monkestation/code/modules/mob/living/simple_animal/hostile/monkedome/monkedome_fauna.dm
@@ -0,0 +1,33 @@
+//the base mining mob
+/mob/living/simple_animal/hostile/monkedome_fauna
+ atmos_requirements = list("min_oxy" = 0, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 0, "min_co2" = 0, "max_co2" = 0, "min_n2" = 0, "max_n2" = 0)
+ faction = list("dome")
+ obj_damage = 30
+ environment_smash = ENVIRONMENT_SMASH_WALLS
+ minbodytemp = 0
+ maxbodytemp = INFINITY
+ response_help = "pokes"
+ response_disarm = "shoves"
+ response_harm = "strikes"
+ a_intent = INTENT_HARM
+ see_in_dark = 9
+ mob_size = MOB_SIZE_LARGE
+ hardattacks = TRUE
+ discovery_points = 1000
+
+/mob/living/simple_animal/hostile/monkedome_fauna/Initialize(mapload)
+ . = ..()
+ set_varspeed(move_to_delay/10)
+
+
+/mob/living/simple_animal/hostile/monkedome_fauna/bullet_act(obj/item/projectile/bullet)
+ if(!stat)
+ Aggro()
+ ..()
+
+/mob/living/simple_animal/hostile/monkedome_fauna/hitby(atom/movable/weapon, skipcatch, hitpush, blocked, datum/thrownthing/throwingdatum)
+ if(!stat)
+ Aggro()
+ ..()
+
+
diff --git a/monkestation/code/modules/mob/living/simple_animal/hostile/monkedome/spore.dm b/monkestation/code/modules/mob/living/simple_animal/hostile/monkedome/spore.dm
new file mode 100644
index 0000000000000..f1464c3f57593
--- /dev/null
+++ b/monkestation/code/modules/mob/living/simple_animal/hostile/monkedome/spore.dm
@@ -0,0 +1,65 @@
+/mob/living/simple_animal/hostile/monkedome_fauna/spore
+ name = "spore"
+ icon = 'monkestation/icons/mob/monkedome/monkedome_monsters.dmi'
+ icon_state = "spore"
+ icon_living = "spore"
+ icon_dead = "spore_dead"
+
+ environment_smash = ENVIRONMENT_SMASH_NONE
+
+ ranged = TRUE
+ projectiletype = /obj/item/projectile/spore_shot
+
+ health = 10
+ maxHealth = 10
+
+ melee_damage = 0
+ obj_damage = 0
+
+ del_on_death = TRUE
+
+ faction = list("dome","hostile")
+
+ ranged_message = "shoots ooze at"
+ ranged_cooldown_time = 5 SECONDS
+ retreat_distance = 4
+ minimum_distance = 6
+
+ check_friendly_fire = TRUE
+
+ move_to_delay = 0.25 SECONDS
+
+//Projectile
+
+/obj/item/projectile/spore_shot
+ name = "rock"
+ icon_state = "bullet"
+ pass_flags = PASSTABLE
+ damage = 2
+ flag = "bullet"
+ var/list/static/possible_reagents = list(
+ /datum/reagent/toxin/acid,
+ /datum/reagent/toxin/spore,
+ /datum/reagent/drug/space_drugs,
+ /datum/reagent/toxin/mushroom_powder,
+ /datum/reagent/toxin/bungotoxin,
+ )
+
+/obj/item/projectile/spore_shot/on_hit(atom/target, blocked, pierce_hit)
+ . = ..()
+ if(ishuman(target))
+ var/mob/living/carbon/human/human_target = target
+
+ var/reagent_amount = rand(15,45)
+ var/datum/reagents/spore_reagents = new()
+ spore_reagents.my_atom = src
+ spore_reagents.add_reagent(pick(possible_reagents), reagent_amount)
+
+ if(human_target.wear_suit && human_target.head && isclothing(human_target.wear_suit) && isclothing(human_target.head))
+ var/obj/item/clothing/clothing_suit = human_target.wear_suit
+ var/obj/item/clothing/clothing_head = human_target.head
+ if (clothing_suit.clothing_flags & clothing_head.clothing_flags & THICKMATERIAL)
+ spore_reagents.trans_to(target, reagent_amount, method = TOUCH, transfered_by = src)
+ return
+
+ spore_reagents.trans_to(target, reagent_amount, method = INJECT, transfered_by = src)
diff --git a/monkestation/code/modules/mob/living/simple_animal/hostile/monkedome/walker_snake.dm b/monkestation/code/modules/mob/living/simple_animal/hostile/monkedome/walker_snake.dm
new file mode 100644
index 0000000000000..dfe8f0b7f0919
--- /dev/null
+++ b/monkestation/code/modules/mob/living/simple_animal/hostile/monkedome/walker_snake.dm
@@ -0,0 +1,35 @@
+/mob/living/simple_animal/hostile/monkedome_fauna/walker_snake
+ name = "walker snake"
+ icon = 'monkestation/icons/mob/monkedome/monkedome_monsters.dmi'
+ icon_state = "walker_snake"
+ icon_living = "walker_snake"
+ icon_dead = "walker_snake_dead"
+
+ ranged = TRUE
+ projectiletype = /obj/item/projectile/walker_snake_rock
+
+ health = 35
+ maxHealth = 35
+
+ melee_damage = 3
+ obj_damage = 15
+
+ faction = list("dome","hostile")
+
+ ranged_message = "hurls a rock at"
+ ranged_cooldown_time = 5 SECONDS
+ retreat_distance = 2
+ minimum_distance = 3
+
+ check_friendly_fire = TRUE
+
+ move_to_delay = 0.3 SECONDS
+
+//Projectile
+
+/obj/item/projectile/walker_snake_rock
+ name = "rock"
+ icon_state = "bullet"
+ pass_flags = PASSTABLE
+ damage = 5
+ flag = "bullet"
diff --git a/monkestation/icons/mob/monkedome/monkedome_monsters.dmi b/monkestation/icons/mob/monkedome/monkedome_monsters.dmi
new file mode 100644
index 0000000000000..09215e7a9282f
Binary files /dev/null and b/monkestation/icons/mob/monkedome/monkedome_monsters.dmi differ