diff --git a/code/game/objects/items/weapons/clown_items.dm b/code/game/objects/items/weapons/clown_items.dm
index b0512fde22..1bf562320e 100644
--- a/code/game/objects/items/weapons/clown_items.dm
+++ b/code/game/objects/items/weapons/clown_items.dm
@@ -19,17 +19,7 @@
..()
create_reagents(5)
wet(5)
-
-
-/obj/item/weapon/soap/drone
- name = "Advanced Soap"
- var/tile_clean_amount = 100
-/obj/item/weapon/soap/drone/New()
- ..()
- create_reagents(tile_clean_amount)
- wet(tile_clean_amount)
-
/obj/item/weapon/soap/proc/wet(var/amount)
reagents.add_reagent("cleaner", amount)
diff --git a/code/modules/mob/living/silicon/robot/drone/drone.dm b/code/modules/mob/living/silicon/robot/drone/drone.dm
index e742b1b9fa..fdffdafeaf 100644
--- a/code/modules/mob/living/silicon/robot/drone/drone.dm
+++ b/code/modules/mob/living/silicon/robot/drone/drone.dm
@@ -119,6 +119,7 @@ var/list/mob_hat_cache = list()
verbs += /mob/living/proc/ventcrawl
verbs += /mob/living/proc/hide
verbs |= /mob/living/silicon/robot/drone/proc/choose_chassis //CHOMPEDIT verb addition
+ verbs -= /mob/living/silicon/robot/verb/self_diagnosis_verb //Drones dont take component based damage.
remove_language("Robot Talk")
add_language("Robot Talk", 0)
add_language("Drone Talk", 1)
diff --git a/code/modules/mob/living/silicon/robot/drone/drone_console.dm b/code/modules/mob/living/silicon/robot/drone/drone_console.dm
index 6fe2f8f27b..c6b8e87ca2 100644
--- a/code/modules/mob/living/silicon/robot/drone/drone_console.dm
+++ b/code/modules/mob/living/silicon/robot/drone/drone_console.dm
@@ -11,14 +11,6 @@
//Used to enable or disable drone fabrication.
var/obj/machinery/drone_fabricator/dronefab
-
-/obj/machinery/computer/drone_control/New()
- ..()
- for(var/obj/machinery/drone_fabricator/fab in oview(3,src))
- dronefab = fab
- if(istype(dronefab, /obj/machinery/drone_fabricator/mining))
- req_access = list(access_mining)
-
/obj/machinery/computer/drone_control/attack_ai(var/mob/user as mob)
return src.attack_hand(user)
diff --git a/code/modules/mob/living/silicon/robot/drone/drone_unify.dm b/code/modules/mob/living/silicon/robot/drone/drone_unify.dm
new file mode 100644
index 0000000000..99a9353e68
--- /dev/null
+++ b/code/modules/mob/living/silicon/robot/drone/drone_unify.dm
@@ -0,0 +1,103 @@
+//Multi purpose DRONE TYPE DM
+//CONTENTS: DRONE actual drones. DRONE modules. DRONE laws. DRONE roundstart info. DRONE items.DRONE Fabricators. DRONE Procs.
+//Formatting: Indents= Tab; Tabspacing = 8; Do not use space indenting in this file. -Shark
+
+//Instead of doing a clean rewrite of drone Code we'll be making our own subtype of drones
+//Then we'll strip drone of things we dont want every drone to have, drone/unify is basically our new main object to work with.
+//In the future we'll have things like drone/unify/dronetype
+//Also the fact that im writing this should show my annoyance at how spread drone code is, that's why I'm trying to collect it all here now.
+
+////////////////////////////////////////
+//DRONE TYPES //TODO: extract clown egg: https://github.com/tgstation/tgstation/blob/master/icons/mob/robots.dmi
+////////////////////////////////////////
+/mob/living/silicon/robot/drone/unify //Hello world~
+ name = "drone"
+ real_name = "drone"
+ icon = 'icons/mob/robots.dmi'
+
+ law_type = /datum/ai_laws/drone
+ module_type = /obj/item/weapon/robot_module/drone
+
+ hat_x_offset = 0 //This is the base X offset for hats of the normal drone// X= Horizontal
+ hat_y_offset = -13 //This is the base Y offset for hats of the normal drone// Y = Vertical
+
+ holder_type = /obj/item/weapon/holder/drone
+ //var/selected_icon = null //Can be compared to "Wideborg" will tell us in the future if we ar eusing non standardized icon.
+////////////////////////////////////////
+//DRONE MODULES
+////////////////////////////////////////
+/obj/item/weapon/robot_module/drone/unify
+ //yup this is nothing for now until we build more drone versions
+
+////////////////////////////////////////
+//DRONE LAWS
+////////////////////////////////////////
+//TODO: Remake drone laws, Add subroutine clause "If no maintenance are active nor maintenance crew your duties include maintenance"
+//TODO: Unify Drone law system, might be impossible due to how the ..() are structured may need to look into how to add additional laws if add_inherent fails.
+
+////////////////////////////////////////
+//DRONE HELLO WORLD
+////////////////////////////////////////
+//TODO: Rewrite all hello worlds to be more accurate to our lore. Make Drone spawntext more lore heavy in general
+/mob/living/silicon/robot/drone/unify/welcome_drone()
+ src << "You are a Unified Drone Module, an autonomous maintenance and fabrication system.."
+ src << "You are assigned to a Sol Central maintenance project. The name is irrelevant. Your task is to complete maintenance and subsystem integration as soon as possible."
+ src << "Use :d to talk to other drones and say to speak silently to your nearby fellows."
+ src << "You do not follow orders from anyone; not the AI, not humans, and not other synthetics.."
+
+
+////////////////////////////////////////
+//DRONE ITEMS (mostly mods of other items)
+////////////////////////////////////////
+//TODO: Move Advanced soap here.
+/obj/item/weapon/soap/drone
+ name = "Advanced Soap"
+ var/tile_clean_amount = 100
+
+/obj/item/weapon/soap/drone/New()
+ ..()
+ create_reagents(tile_clean_amount)
+ wet(tile_clean_amount)
+
+//Drone Control Presets;
+/obj/machinery/computer/drone_control/engineering
+ req_access = list(access_engine_equip)
+/obj/machinery/computer/drone_control/security
+ req_access = list(access_security)
+/obj/machinery/computer/drone_control/mining
+ req_access = list(access_mining)
+
+////////////////////////////////////////
+//DRONE FABRICATOR, ONE FOR ALL SYSTEM.
+////////////////////////////////////////
+//TODO: Actually write this
+/obj/machinery/drone_fabricator/unify
+ name = "Unified Drone Module fabricator"
+ fabricator_tag = "Prototype UNIFY Fabricator"
+ desc = "A large automated factory for producing Unified Drone Modules."
+ drone_type = null //Gonna try to set this later
+
+////////////////////////////////////////
+//DRONE PROCS
+////////////////////////////////////////
+//Drone Drone Procs
+/mob/living/silicon/robot/drone/unify/updatename()
+ real_name = "Unified Drone Module ([rand(100,999)])" //UDMs, sounds kinda nice, maybe call them this Lore wise?
+ name = real_name
+
+//Fabricator procs
+/obj/machinery/drone_fabricator/unify/create_drone(var/client/player)
+ choose_dronetype()//code for dronetypes goes here
+ ..()
+
+/obj/machinery/drone_fabricator/proc/choose_dronetype()
+ var/list/possible_drones = list("UNIFY Module (Same as Maintenance)" = /mob/living/silicon/robot/drone/unify,
+ "Construction Module" = /mob/living/silicon/robot/drone/construction,
+ "Mining Module" = /mob/living/silicon/robot/drone/mining,
+ "Security Module" = /mob/living/silicon/robot/drone/security,
+ "Maintenance Module" = /mob/living/silicon/robot/drone,)
+
+ var/choice
+ choice = input(usr,"What module would you like to use?") as null|anything in possible_drones
+ if(!choice) return
+ drone_type = possible_drones[choice]
diff --git a/vorestation.dme b/vorestation.dme
index cc80968237..76aea2c827 100644
--- a/vorestation.dme
+++ b/vorestation.dme
@@ -2156,6 +2156,7 @@
#include "code\modules\mob\living\silicon\robot\dogborg\dog_modules_vr.dm"
#include "code\modules\mob\living\silicon\robot\dogborg\dog_sleeper_vr.dm"
#include "code\modules\mob\living\silicon\robot\drone\drone.dm"
+#include "code\modules\mob\living\silicon\robot\drone\drone_unify.dm"
#include "code\modules\mob\living\silicon\robot\drone\drone_abilities.dm"
#include "code\modules\mob\living\silicon\robot\drone\drone_console.dm"
#include "code\modules\mob\living\silicon\robot\drone\drone_damage.dm"