diff --git a/code/_globalvars/misc.dm b/code/_globalvars/misc.dm
index b4f004c8e49..9510af0dc0f 100644
--- a/code/_globalvars/misc.dm
+++ b/code/_globalvars/misc.dm
@@ -78,4 +78,9 @@ GLOBAL_VAR_INIT(timezoneOffset, 0) // The difference betwen midnight (of the hos
// However it'd be ok to use for accessing attack logs and such too, which are even laggier.
var/fileaccess_timer = 0
-GLOBAL_VAR_INIT(gametime_offset, 432000) // 12:00 in seconds
\ No newline at end of file
+GLOBAL_VAR_INIT(gametime_offset, 432000) // 12:00 in seconds
+
+//printers shutdown if too much shit printed
+var/items_printed = 0
+var/max_items_printed = 300
+var/items_printed_logged = FALSE
\ No newline at end of file
diff --git a/code/modules/paperwork/photocopier.dm b/code/modules/paperwork/photocopier.dm
index a3a8dda68e1..1f2e62d636b 100644
--- a/code/modules/paperwork/photocopier.dm
+++ b/code/modules/paperwork/photocopier.dm
@@ -62,6 +62,16 @@
if(toner <= 0)
break
+ if(items_printed >= max_items_printed)
+ if(prob(10))
+ visible_message("The printer screen reads \"!Attención! La máquina se encontra parada! Retire pantalones de lo toner!\".")
+ else
+ visible_message("The printer screen reads \"PHOTOCOPIER NETWORK OFFLINE, PLEASE CONTACT SYSTEM ADMINISTRATOR\".")
+ if(!items_printed_logged)
+ log_admin("Photocopier cap of [max_items_printed] papers reached, all photocopiers are now disabled. This may be the cause of any lag.")
+ items_printed_logged = TRUE
+ break
+
if(emag_cooldown > world.time)
return
@@ -86,7 +96,7 @@
else
to_chat(usr, "\The [copyitem] can't be copied by \the [src].")
break
-
+ items_printed++
use_power(active_power_usage)
updateUsrDialog()
else if(href_list["remove"])