diff --git a/code/modules/power/cables/cable.dm b/code/modules/power/cables/cable.dm
index 4681f851c04..c67ec5e8ff0 100644
--- a/code/modules/power/cables/cable.dm
+++ b/code/modules/power/cables/cable.dm
@@ -119,12 +119,20 @@ By design, d1 is the smallest direction and d2 is the highest
return
if(!I.use_tool(src, user, 0, volume = I.tool_volume))
return
- if(powernet && (powernet.available_power > 0)) // is it powered?
- to_chat(user, chat_box_examine("Total power: [DisplayPower(powernet.available_power)]\nLoad: [DisplayPower(powernet.power_demand)]\nExcess power: [DisplayPower(get_surplus())]"))
- else
- to_chat(user, "The cable is not powered.")
+ to_chat(user, generate_power_message())
shock(user, 5, 0.2)
+/obj/structure/cable/proc/generate_power_message()
+ if(powernet && (powernet.available_power > 0))
+ return chat_box_examine("Total power: [DisplayPower(powernet.available_power)]\nLoad: [DisplayPower(powernet.power_demand)]\nExcess power: [DisplayPower(get_surplus())]")
+ else
+ return "The cable is not powered."
+
+/obj/structure/cable/examine(mob/user)
+ . = ..()
+ if(isobserver(user))
+ . += generate_power_message()
+
/obj/structure/cable/wirecutter_act(mob/user, obj/item/I)
. = TRUE
var/turf/T = get_turf(src)