diff --git a/code/modules/buildmode/submodes/smoke.dm b/code/modules/buildmode/submodes/smoke.dm
new file mode 100644
index 00000000000..1296990d2da
--- /dev/null
+++ b/code/modules/buildmode/submodes/smoke.dm
@@ -0,0 +1,44 @@
+/datum/buildmode_mode/smoke
+ key = "smoke"
+ var/smoke_type = SMOKE_HARMLESS
+ var/smoke_amt = 10
+
+/datum/buildmode_mode/smoke/show_help(mob/user)
+ var/list/messages = list(
+ "Left Click = Smoke 'em!",
+ "Right Click on Tool Icon = Change Effect Type",
+ )
+ to_chat(user, chat_box_notice(messages.Join("
")))
+
+/datum/buildmode_mode/smoke/change_settings(mob/user)
+ var/smoke_types = list(
+ "SMOKE_HARMLESS" = SMOKE_HARMLESS,
+ "SMOKE_COUGHING" = SMOKE_COUGHING,
+ "SMOKE_SLEEPING" = SMOKE_SLEEPING
+ )
+
+ var/new_smonk = tgui_input_list(user, "Pick a smoke type:", "Buildmode Smoke", smoke_types)
+ if(new_smonk in smoke_types)
+ smoke_type = smoke_types[new_smonk]
+
+ var/new_smonk_amt = tgui_input_number(user, "Smoke Amount:", "Buildmode Smoke", smoke_amt, 20, 1)
+ if(new_smonk_amt)
+ smoke_amt = new_smonk_amt
+
+
+/datum/buildmode_mode/smoke/handle_click(user, params, obj/object)
+ var/list/pa = params2list(params)
+ var/left_click = pa.Find("left")
+
+ if(left_click)
+ var/datum/effect_system/smoke_spread/smoke
+ switch(smoke_type)
+ if(SMOKE_HARMLESS)
+ smoke = new /datum/effect_system/smoke_spread()
+ if(SMOKE_COUGHING)
+ smoke = new /datum/effect_system/smoke_spread/bad()
+ if(SMOKE_SLEEPING)
+ smoke = new /datum/effect_system/smoke_spread/sleeping()
+ smoke.set_up(smoke_amt, FALSE, object)
+ playsound(get_turf(object), 'sound/effects/smoke.ogg', 50, TRUE, -3)
+ smoke.start()
diff --git a/icons/misc/buildmode.dmi b/icons/misc/buildmode.dmi
index a0b501864fa..c82b9ea0579 100644
Binary files a/icons/misc/buildmode.dmi and b/icons/misc/buildmode.dmi differ
diff --git a/paradise.dme b/paradise.dme
index c09d8b9510e..d1b37be4498 100644
--- a/paradise.dme
+++ b/paradise.dme
@@ -1871,6 +1871,7 @@
#include "code\modules\buildmode\submodes\portal.dm"
#include "code\modules\buildmode\submodes\save.dm"
#include "code\modules\buildmode\submodes\say.dm"
+#include "code\modules\buildmode\submodes\smoke.dm"
#include "code\modules\buildmode\submodes\throwing.dm"
#include "code\modules\buildmode\submodes\tilt.dm"
#include "code\modules\buildmode\submodes\variable_edit.dm"