diff --git a/code/game/machinery/bots/bots.dm b/code/game/machinery/bots/bots.dm
index 539dd775b0f..30ed21fbede 100644
--- a/code/game/machinery/bots/bots.dm
+++ b/code/game/machinery/bots/bots.dm
@@ -583,7 +583,7 @@ obj/machinery/bot/proc/start_patrol()
new_destination = "__nearest__"
post_signal(beacon_freq, "findbeacon", "patrol")
awaiting_beacon = 1
- spawn(150)
+ spawn(200)
awaiting_beacon = 0
if(nearest_beacon)
set_destination(nearest_beacon)
diff --git a/code/game/machinery/camera/tracking.dm b/code/game/machinery/camera/tracking.dm
index a26fd25a6f7..47c27591e99 100644
--- a/code/game/machinery/camera/tracking.dm
+++ b/code/game/machinery/camera/tracking.dm
@@ -175,7 +175,7 @@
src << "Follow camera mode [forced ? "terminated" : "ended"]."
cameraFollow = null
-/mob/living/silicon/ai/proc/ai_actual_track(mob/living/target as mob)
+/mob/living/silicon/ai/proc/ai_actual_track(atom/movable/target as mob|obj)
if(!istype(target)) return
var/mob/living/silicon/ai/U = usr
@@ -222,9 +222,9 @@
return 0
return 1
-/proc/trackable(var/mob/living/M)
+/proc/trackable(atom/movable/M)
var/turf/T = get_turf(M)
- if(T && (T.z == 1) && hassensorlevel(M, SUIT_SENSOR_TRACKING))
+ if(T && (T.z == 1 || T.z == 3 || T.z == 5))
return 1
return near_camera(M)
diff --git a/code/modules/mob/living/silicon/ai/ai.dm b/code/modules/mob/living/silicon/ai/ai.dm
index 8461ad6c816..d7a4b51d522 100644
--- a/code/modules/mob/living/silicon/ai/ai.dm
+++ b/code/modules/mob/living/silicon/ai/ai.dm
@@ -585,14 +585,14 @@ var/list/ai_list = list()
src << "Wireless communication is disabled."
return
var/turf/ai_current_turf = get_turf(src)
- var/ai_Zlevel = ai_current_turf.z
+ var/ai_allowed_Zlevel = list(1,3,5)
var/d
var/area/bot_area
d += "Query network status
"
d += "
Name | Status | Location | Control |
| [Bot.hacked ? "(!) [Bot.name]" : Bot.name] ([Bot.bot_type_name]) | " //If the bot is on, it will display the bot's current mode status. If the bot is not mode, it will just report "Idle". "Inactive if it is not on at all.