diff --git a/code/modules/recycling/disposal.dm b/code/modules/recycling/disposal.dm
index dcf6e956e1b..a47a0467504 100644
--- a/code/modules/recycling/disposal.dm
+++ b/code/modules/recycling/disposal.dm
@@ -18,6 +18,8 @@
var/flush = 0 // true if flush handle is pulled
var/obj/structure/disposalpipe/trunk/trunk = null // the attached pipe trunk
var/flushing = 0 // true if flushing in progress
+ var/flush_every_ticks = 30 //Every 30 ticks it will look whether it is ready to flush
+ var/flush_count = 0 //this var adds 1 once per tick. When it reaches flush_every_ticks it resets and tries to flush.
// create a new disposal
// find the attached trunk (if present) and init gas resvr.
@@ -159,10 +161,14 @@
// human interact with machine
attack_hand(mob/user as mob)
+ if(user && user.loc == src)
+ usr << "\red You cannot reach the controls from inside."
+ return
interact(user, 0)
// user interaction
proc/interact(mob/user, var/ai=0)
+
src.add_fingerprint(user)
if(stat & BROKEN)
user.machine = null
@@ -197,6 +203,9 @@
// handle machine interaction
Topic(href, href_list)
+ if(usr.loc == src)
+ usr << "\red You cannot reach the controls from inside."
+ return
..()
src.add_fingerprint(usr)
if(stat & BROKEN)
@@ -271,6 +280,14 @@
if(stat & BROKEN) // nothing can happen if broken
return
+ flush_count++
+ if( flush_count >= flush_every_ticks )
+ if( contents.len )
+ if(mode == 2)
+ spawn(0)
+ flush()
+ flush_count = 0
+
src.updateDialog()
if(flush && air_contents.return_pressure() >= 2*ONE_ATMOSPHERE) // flush can happen even without power
diff --git a/html/changelog.html b/html/changelog.html
index fbb762f0177..3d8e97507cb 100644
--- a/html/changelog.html
+++ b/html/changelog.html
@@ -107,6 +107,8 @@ should be listed in the changelog upon commit tho. Thanks. -->
Removed the wall that was blocking the entrance to the theater
Made a small redesign for the HoP's office so that people running towards it from the escape hallway don't run right into the queue, annoying everyong
The engineering, command and security airlocks now glow green when closing instead of red to match all the other airlocks
+ The disposal units now auto trigger every 30 game ticks, if there is something (or someone) in them. So no more hiding in disposal units!
+ You can no longer control the disposal unit from within it. You will have to wait for it to trigger itself.
Pete updated:
diff --git a/maps/tgstation.2.0.8.dmm b/maps/tgstation.2.0.8.dmm
index 5471e88593a..9f14937c66f 100644
--- a/maps/tgstation.2.0.8.dmm
+++ b/maps/tgstation.2.0.8.dmm
@@ -2751,7 +2751,7 @@
"baU" = (/obj/machinery/door/poddoor/shutters{id = "qm_warehouse"; name = "Warehouse Shutters"},/turf/simulated/floor{icon_state = "floorgrime"},/area/quartermaster/storage)
"baV" = (/obj/structure/disposalpipe/wrapsortjunction{dir = 1},/turf/simulated/wall,/area/quartermaster/sorting)
"baW" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/disposaloutlet{dir = 4},/obj/structure/disposalpipe/trunk{dir = 8},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/quartermaster/sorting)
-"baX" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/table,/obj/machinery/door/window/eastleft{name = "Mail"; req_access_txt = "50"},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor{icon_state = "dark"},/area/quartermaster/sorting)
+"baX" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/door/window/eastleft{name = "Mail"; req_access_txt = "50"},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor{icon_state = "dark"},/area/quartermaster/sorting)
"baY" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor{icon_state = "bluecorner"},/area/quartermaster/sorting)
"baZ" = (/obj/machinery/conveyor_switch{id = "packageExternal"},/obj/machinery/requests_console{department = "Mail Room"; departmentType = 1; pixel_x = 30; pixel_y = 0},/obj/machinery/camera{c_tag = "Delivery Office"; dir = 1; network = "SS13"},/turf/simulated/floor{icon_state = "arrival"; dir = 6},/area/quartermaster/sorting)
"bba" = (/obj/machinery/door/firedoor/border_only,/turf/simulated/floor{icon_state = "bluecorner"},/area/hallway/primary/central)