diff --git a/code/game/machinery/bots/bots.dm b/code/game/machinery/bots/bots.dm
index 8ef8c76f62c..d2283e26664 100644
--- a/code/game/machinery/bots/bots.dm
+++ b/code/game/machinery/bots/bots.dm
@@ -34,11 +34,11 @@
src.explode()
/obj/machinery/bot/proc/Emag(mob/user as mob)
- if(locked)
+ if(locked && user)
locked = 0
emagged = 1
user << "You bypass [src]'s controls."
- if(!locked && open)
+ if((!locked && open) || !user) //Ion storm does not require unlocking for emagging
emagged = 2
/obj/machinery/bot/examine()
diff --git a/code/game/machinery/bots/cleanbot.dm b/code/game/machinery/bots/cleanbot.dm
index 4cffec2b149..46cb822a087 100644
--- a/code/game/machinery/bots/cleanbot.dm
+++ b/code/game/machinery/bots/cleanbot.dm
@@ -153,7 +153,7 @@ text("[src.oddbutton ? "Yes" : "No"
/obj/machinery/bot/cleanbot/Emag(mob/user as mob)
..()
- if(open && !locked)
+ if((!locked && open) || !user)
if(user) user << "The [src] buzzes and beeps."
src.oddbutton = 1
src.screwloose = 1
diff --git a/code/game/machinery/bots/ed209bot.dm b/code/game/machinery/bots/ed209bot.dm
index 4936bd720cb..23d4e42ea74 100644
--- a/code/game/machinery/bots/ed209bot.dm
+++ b/code/game/machinery/bots/ed209bot.dm
@@ -204,7 +204,7 @@ Auto Patrol: []"},
/obj/machinery/bot/ed209/Emag(mob/user as mob)
..()
- if(open && !locked)
+ if((!locked && open) || !user)
if(user) user << "You short out [src]'s target assessment circuits."
spawn(0)
for(var/mob/O in hearers(src, null))
diff --git a/code/game/machinery/bots/floorbot.dm b/code/game/machinery/bots/floorbot.dm
index 69fc5afd3f3..0b66bdd8083 100644
--- a/code/game/machinery/bots/floorbot.dm
+++ b/code/game/machinery/bots/floorbot.dm
@@ -125,7 +125,7 @@
/obj/machinery/bot/floorbot/Emag(mob/user as mob)
..()
- if(open && !locked)
+ if((!locked && open) || !user)
if(user) user << "The [src] buzzes and beeps."
/obj/machinery/bot/floorbot/Topic(href, href_list)
diff --git a/code/game/machinery/bots/medbot.dm b/code/game/machinery/bots/medbot.dm
index 31fbb8c4679..2c77a2bd821 100644
--- a/code/game/machinery/bots/medbot.dm
+++ b/code/game/machinery/bots/medbot.dm
@@ -215,7 +215,7 @@
/obj/machinery/bot/medbot/Emag(mob/user as mob)
..()
- if(open && !locked)
+ if((!locked && open) || !user)
if(user) user << "You short out [src]'s reagent synthesis circuits."
spawn(0)
for(var/mob/O in hearers(src, null))
diff --git a/code/game/machinery/bots/secbot.dm b/code/game/machinery/bots/secbot.dm
index e18873d74c6..71cc265bc40 100644
--- a/code/game/machinery/bots/secbot.dm
+++ b/code/game/machinery/bots/secbot.dm
@@ -177,7 +177,7 @@ Auto Patrol: []"},
/obj/machinery/bot/secbot/Emag(mob/user as mob)
..()
- if(open && !locked)
+ if((!locked && open) || !user)
if(user) user << "\red You short out [src]'s target assessment circuits."
spawn(0)
for(var/mob/O in hearers(src, null))