diff --git a/modular_starfly/modules/desert-resources/code/game/objects/structures/flora.dm b/modular_starfly/modules/desert-resources/code/game/objects/structures/flora.dm
new file mode 100644
index 0000000000..477d2027c3
--- /dev/null
+++ b/modular_starfly/modules/desert-resources/code/game/objects/structures/flora.dm
@@ -0,0 +1,45 @@
+/obj/structure/flora/ausbushes/moghes
+ icon = 'modular_starfly/modules/desert-resources/icons/obj/flora/desert.dmi'
+ icon_state = "firstbush_1"
+
+/obj/structure/flora/ausbushes/moghes/firstbush1
+ icon_state = "firstbush_1"
+
+/obj/structure/flora/ausbushes/moghes/firstbush2
+ icon_state = "firstbush_2"
+
+/obj/structure/flora/ausbushes/moghes/firstbush3
+ icon_state = "firstbush_3"
+
+/obj/structure/flora/ausbushes/moghes/firstbush4
+ icon_state = "firstbush_4"
+
+/obj/structure/flora/ausbushes/moghes/fullgrass1
+ icon_state = "fullgrass_1"
+
+/obj/structure/flora/ausbushes/moghes/fullgrass2
+ icon_state = "fullgrass_2"
+
+/obj/structure/flora/ausbushes/moghes/fullgrass3
+ icon_state = "fullgrass_3"
+
+/obj/structure/flora/ausbushes/moghes/grassbush1
+ icon_state = "grassybush_1"
+
+/obj/structure/flora/ausbushes/moghes/grassbush2
+ icon_state = "grassybush_2"
+
+/obj/structure/flora/ausbushes/moghes/grassbush3
+ icon_state = "grassybush_3"
+
+/obj/structure/flora/ausbushes/moghes/grassbush4
+ icon_state = "grassybush_4"
+
+/obj/structure/flora/ausbushes/moghes/sparsegrass1
+ icon_state = "sparsegrass_1"
+
+/obj/structure/flora/ausbushes/moghes/sparsegrass2
+ icon_state = "sparsegrass_2"
+
+/obj/structure/flora/ausbushes/moghes/sparsegrass3
+ icon_state = "sparsegrass_3"
\ No newline at end of file
diff --git a/modular_starfly/modules/desert-resources/code/game/objects/structures/signs/signs_flags.dm b/modular_starfly/modules/desert-resources/code/game/objects/structures/signs/signs_flags.dm
new file mode 100644
index 0000000000..bec6e81a27
--- /dev/null
+++ b/modular_starfly/modules/desert-resources/code/game/objects/structures/signs/signs_flags.dm
@@ -0,0 +1,13 @@
+/obj/structure/sign/flag/hegemony
+ name = "Sothrai Hegemony Blood Horizon flag"
+ desc = "The national flag of the Sothrai Hegemony. The red streak of the horizon represents the brutality of Moghes, kept at bay by guiding hands of the Sothrai Hegemon."
+ icon = 'modular_starfly/modules/desert-resources/icons/obj/structures/signs/wallflags.dmi'
+ icon_state = "flag_hegemony"
+ item_flag = /obj/item/sign/flag/hegemony
+
+/obj/item/sign/flag/hegemony
+ name = "folded Sothrai Hegemony Blood Horizon flag"
+ desc = "The national flag of the Sothrai Hegemony. The red streak of the horizon represents the brutality of Moghes, kept at bay by guiding hands of the Sothrai Hegemon."
+ icon = 'modular_starfly/modules/desert-resources/icons/obj/structures/signs/wallflags.dmi'
+ icon_state = "folded_hegemony"
+ sign_path = /obj/structure/sign/flag/hegemony
\ No newline at end of file
diff --git a/modular_starfly/modules/desert-resources/code/modules/mob/living/simple_animal/friendly/moghes.dm b/modular_starfly/modules/desert-resources/code/modules/mob/living/simple_animal/friendly/moghes.dm
new file mode 100644
index 0000000000..95144b27da
--- /dev/null
+++ b/modular_starfly/modules/desert-resources/code/modules/mob/living/simple_animal/friendly/moghes.dm
@@ -0,0 +1,107 @@
+/mob/living/simple_animal/threshbeast
+ name = "threshbeast"
+ desc = "Large herbivorous reptiles native to Moghes, the azkrazal or 'threshbeast' is commonly used as a mount, beast of burden, or convenient food source by Unathi. They are highly valued for their speed and strength, capable of running at 30-42 miles per hour at top speed. Their favorite foods are grasses and cactus fruits"
+ icon = 'modular_starfly/modules/desert-resources/icons/mob/moghes/threshbeast.dmi'
+ icon_state = "threshbeast"
+ icon_living = "threshbeast"
+ icon_dead = "threshbeast_dead"
+ butcher_results = list(/obj/item/stack/sheet/animalhide/lizard = 2, /obj/item/food/meat/slab = 6)
+ response_help_continuous = "pets"
+ response_help_simple = "pet"
+ response_disarm_continuous = "pushes"
+ response_disarm_simple = "pushes"
+ response_harm_continuous = "strikes"
+ response_harm_simple = "strikes"
+ speak_chance = 1
+ turns_per_move = 5
+ speak_emote = list("chuffs", "hisses", "bellows")
+ emote_hear = list("chuffs", "hisses", "bellows")
+ emote_see = list("shakes its head", "thumps its tail")
+ mob_biotypes = MOB_ORGANIC|MOB_BEAST|MOB_REPTILE
+ move_resist = MOVE_FORCE_VERY_STRONG
+ food_type = list(/obj/item/food/grown/ash_flora/cactus_fruit, /obj/item/food/grown/ash_flora/fern, /obj/item/food/grown/grass, /obj/item/food/grown/grass/fairy, /obj/item/food/grown/grass/carpet) // Herbivore
+ base_pixel_x = -15
+ maxHealth = 100
+ health = 100
+ tame_chance = 15
+ bonus_tame_chance = 30
+ speed = 3
+ harm_intent_damage = 0
+ melee_damage_lower = 12
+ melee_damage_upper = 20
+ var/saddled = FALSE
+
+/mob/living/simple_animal/threshbeast/attackby(obj/item/O, mob/user, params)
+ if(istype(O, /obj/item/saddle) && !saddled)
+ if(tame && do_after(user, 55, target=src))
+ user.visible_message("You manage to put [O] on [src], you can now ride [p_them()].")
+ qdel(O)
+ saddled = TRUE
+ can_buckle = TRUE
+ buckle_lying = FALSE
+ add_overlay("threshbeast_saddled")
+ var/datum/component/riding/D = LoadComponent(/datum/component/riding)
+ D.set_riding_offsets(RIDING_OFFSET_ALL, list(TEXT_NORTH = list(0, 8), TEXT_SOUTH = list(0, 8), TEXT_EAST = list(-2, 8), TEXT_WEST = list(2, 8)))
+ D.set_vehicle_dir_layer(SOUTH, ABOVE_MOB_LAYER)
+ D.set_vehicle_dir_layer(NORTH, OBJ_LAYER)
+ D.set_vehicle_dir_layer(EAST, OBJ_LAYER)
+ D.set_vehicle_dir_layer(WEST, OBJ_LAYER)
+ D.drive_verb = "ride"
+ else
+ user.visible_message("[src] is rocking around! You can't put the saddle on!")
+ return
+ ..()
+
+/mob/living/simple_animal/threshbeast/brown
+ icon_state = "threshbeastbrown"
+ icon_living = "threshbeastbrown"
+ icon_dead = "threshbeastbrown_dead"
+
+/mob/living/simple_animal/threshbeast/grey
+ icon_state = "threshbeastgrey"
+ icon_living = "threshbeastgrey"
+ icon_dead = "threshbeastgrey_dead"
+
+/mob/living/simple_animal/threshbeast/red
+ icon_state = "threshbeastred"
+ icon_living = "threshbeastred"
+ icon_dead = "threshbeastred_dead"
+
+/mob/living/simple_animal/miervesh
+ name = "Mier'vesh"
+ desc = "A small, sweet-tempered flying reptile from Moghes. Frequently samples the air with a long, thin forked tongue. They are popular animals among Ouerean Unathi as they are small and sweet tempered, making them slow to respond to danger." //'
+ icon = 'modular_starfly/modules/desert-resources/icons/mob/moghes/miervesh.dmi'
+ icon_state = "miervesh-1"
+ icon_living = "miervesh-1"
+ icon_dead = "miervesh-1-dead"
+ density = FALSE
+ health = 4
+ maxHealth = 4
+ butcher_results = list(/obj/item/food/meat/slab/chicken = 1)
+ melee_damage_upper = 2
+ melee_damage_lower = 0
+ speak_chance = 1
+ speak = list("Chirp!","peep!","tweet!")
+ speak_emote = list("croons","chirps","hisses")
+ emote_hear = list("croons.","chirps.","hisses.")
+ emote_see = list("pecks at the ground","flaps its wings","flicks out its tongue")
+ turns_per_move = 5
+
+ response_help_continuous = "pets"
+ response_help_simple = "pet"
+ response_disarm_continuous = "gently moves aside"
+ response_disarm_simple = "gently move aside"
+ response_harm_continuous = "swats"
+ response_harm_simple = "swat"
+ a_intent = INTENT_HARM //wild animals aren't going to be your best friend, but a player-controlled one might be tame enough.
+ attack_verb_continuous = "chomps"
+ attack_verb_simple = "chomp"
+ friendly_verb_continuous = "grooms"
+ friendly_verb_simple = "groom"
+ mob_size = MOB_SIZE_SMALL
+ movement_type = FLYING
+
+/mob/living/simple_animal/miervesh/red
+ icon_state = "miervesh-2"
+ icon_living = "miervesh-2"
+ icon_dead = "miervesh-2-dead"
\ No newline at end of file
diff --git a/modular_starfly/modules/desert-resources/code/modules/power/lighting.dm b/modular_starfly/modules/desert-resources/code/modules/power/lighting.dm
new file mode 100644
index 0000000000..a61b8b8e26
--- /dev/null
+++ b/modular_starfly/modules/desert-resources/code/modules/power/lighting.dm
@@ -0,0 +1,18 @@
+/obj/machinery/light/street
+ name = "street light"
+ icon = 'modular_starfly/modules/desert-resources/icons/obj/lighting_32x50.dmi'
+ base_state = "streetlight"
+ icon_state= "streetlight-on"
+ desc = "A cheaper-quality streetlight used in small towns."
+ layer = ABOVE_OBJ_LAYER
+ brightness = 10
+
+obj/machinery/light/street/broken
+ status = LIGHT_BROKEN
+ icon_state = "streetlight-broken"
+
+obj/machinery/light/street/pawn
+ name = "pawn shop lamp"
+ base_state = "pawnlight"
+ icon_state = "pawnlight-on"
+ desc = "Traditionally, pawn shops used to have lamps featuring three bulbs by their signs. Many pawn shops still use imagery featuring these lamps to this day."
\ No newline at end of file
diff --git a/modular_starfly/modules/desert-resources/icons/mob/moghes/miervesh.dmi b/modular_starfly/modules/desert-resources/icons/mob/moghes/miervesh.dmi
new file mode 100644
index 0000000000..fd0283dd2e
Binary files /dev/null and b/modular_starfly/modules/desert-resources/icons/mob/moghes/miervesh.dmi differ
diff --git a/modular_starfly/modules/desert-resources/icons/mob/moghes/moghes_48.dmi b/modular_starfly/modules/desert-resources/icons/mob/moghes/moghes_48.dmi
new file mode 100644
index 0000000000..2110fc3044
Binary files /dev/null and b/modular_starfly/modules/desert-resources/icons/mob/moghes/moghes_48.dmi differ
diff --git a/modular_starfly/modules/desert-resources/icons/mob/moghes/threshbeast.dmi b/modular_starfly/modules/desert-resources/icons/mob/moghes/threshbeast.dmi
new file mode 100644
index 0000000000..02e895cfff
Binary files /dev/null and b/modular_starfly/modules/desert-resources/icons/mob/moghes/threshbeast.dmi differ
diff --git a/modular_starfly/modules/desert-resources/icons/obj/flora/desert.dmi b/modular_starfly/modules/desert-resources/icons/obj/flora/desert.dmi
new file mode 100644
index 0000000000..d8cb26bee4
Binary files /dev/null and b/modular_starfly/modules/desert-resources/icons/obj/flora/desert.dmi differ
diff --git a/modular_starfly/modules/desert-resources/icons/obj/lighting_32x50.dmi b/modular_starfly/modules/desert-resources/icons/obj/lighting_32x50.dmi
new file mode 100644
index 0000000000..9db243ed76
Binary files /dev/null and b/modular_starfly/modules/desert-resources/icons/obj/lighting_32x50.dmi differ
diff --git a/modular_starfly/modules/desert-resources/icons/obj/structures/signs/wallflags.dmi b/modular_starfly/modules/desert-resources/icons/obj/structures/signs/wallflags.dmi
new file mode 100644
index 0000000000..dd28594a33
Binary files /dev/null and b/modular_starfly/modules/desert-resources/icons/obj/structures/signs/wallflags.dmi differ
diff --git a/shiptest.dme b/shiptest.dme
index 67197ed12a..3eefe88688 100644
--- a/shiptest.dme
+++ b/shiptest.dme
@@ -1227,7 +1227,6 @@
#include "code\game\machinery\telecomms\machines\server.dm"
#include "code\game\MapData\outposts\cybersun_gas_giant.dm"
#include "code\game\MapData\shuttles\independent_shetland.dm"
-#include "code\game\MapData\shuttles\independent_shetland.dm"
#include "code\game\MapData\shuttles\misc.dm"
#include "code\game\MapData\shuttles\pgf_bolide.dm"
#include "code\game\MapData\shuttles\pgf_crying_sun.dm"
@@ -3826,6 +3825,10 @@
#include "modular_starfly\modules\admin_verb_freeze\overlays.dm"
#include "modular_starfly\modules\cryosleep_symptoms\cryopod.dm"
#include "modular_starfly\modules\cryosleep_symptoms\game_options.dm"
+#include "modular_starfly\modules\desert-resources\code\game\objects\structures\flora.dm"
+#include "modular_starfly\modules\desert-resources\code\game\objects\structures\signs\signs_flags.dm"
+#include "modular_starfly\modules\desert-resources\code\modules\mob\living\simple_animal\friendly\moghes.dm"
+#include "modular_starfly\modules\desert-resources\code\modules\power\lighting.dm"
#include "modular_starfly\modules\new_wearables\contraband.dm"
#include "modular_starfly\modules\new_wearables\loadout_accessories.dm"
#include "modular_starfly\modules\new_wearables\loadout_hat.dm"
diff --git a/tools/starfly/ci/lint.sh b/tools/starfly/ci/lint.sh
index 273da0895c..8b83af7a05 100755
--- a/tools/starfly/ci/lint.sh
+++ b/tools/starfly/ci/lint.sh
@@ -11,6 +11,9 @@ echo "# Checking shiptest.dme"
echo "## Checking FILE_DIR directives in shiptest.dme"
tools/starfly/ci/check_file_dir.sh
+echo "## Checking include types in shiptest.dme"
+python3 tools/starfly/python/check_dme_includes.py shiptest.dme
+
echo "## Checking include order in shiptest.dme"
python3 tools/starfly/python/check_dme_order.py shiptest.dme
diff --git a/tools/starfly/python/check_dme_includes.py b/tools/starfly/python/check_dme_includes.py
new file mode 100755
index 0000000000..989783c9e8
--- /dev/null
+++ b/tools/starfly/python/check_dme_includes.py
@@ -0,0 +1,64 @@
+#!/usr/bin/env python3
+# check_dme_includes.py
+# Copyright 2026 Patrick Meade.
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as published
+# by the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with this program. If not, see .
+#----------------------------------------------------------------------------
+
+import sys
+from pathlib import Path
+
+EXPECTED_SUFFIXES = [".dm", ".dmf"]
+
+def get_includes(file_path):
+ with open(file_path, 'r') as file:
+ lines = file.readlines()
+
+ includes = [line for line in lines if line.strip().startswith('#include')]
+ paths = [line.split('#include')[1].strip().strip('"') for line in includes]
+ return paths
+
+def check_dme_include_types(file_path):
+ # until we know otherwise, all the path suffixes are legitimate
+ all_good = True
+
+ # get all of the include paths from the .dme file
+ paths = get_includes(file_path)
+
+ # for each include path in the dme file
+ for include_path_str in paths:
+ # turn it into a python Path object
+ include_path = Path(include_path_str)
+
+ # if the path suffix is NOT one of the ones we expect
+ if include_path.suffix not in EXPECTED_SUFFIXES:
+ # set the all_good flag to False
+ all_good = False
+ # tell the user what we found
+ print(f'#include "{include_path_str}" has suffix "{include_path.suffix}"')
+
+ # if we found an error
+ if not all_good:
+ print(f"Some #include paths in {file_path} are a little sus.")
+
+ # return our result to ther caller
+ return all_good
+
+
+if __name__ == "__main__":
+ file_path = sys.argv[1]
+ if not check_dme_include_types(file_path):
+ sys.exit(1)
+ else:
+ print("All #include paths have suffixes we expected.")