diff --git a/code/game/objects/structures/fireaxe.dm b/code/game/objects/structures/fireaxe.dm
index d7939bcda555..2650d6077362 100644
--- a/code/game/objects/structures/fireaxe.dm
+++ b/code/game/objects/structures/fireaxe.dm
@@ -248,9 +248,32 @@
alert = TRUE
armor = list("melee" = 30, "bullet" = 20, "laser" = 0, "energy" = 100, "bomb" = 10, "bio" = 100, "rad" = 100, "fire" = 90, "acid" = 50)
axe = FALSE
+ req_access = list(ACCESS_CAPTAIN)
/obj/structure/fireaxecabinet/spare/Initialize()
. = ..()
fireaxe = null
spareid = new(src)
update_icon()
+
+/obj/structure/fireaxecabinet/spare/reset_lock(mob/user)
+ //this happens when you hack the lock as a synthetic/AI, or with a multitool.
+ if(obj_flags & EMAGGED)
+ to_chat(user, "You try to reset the [name]'s circuits, but they're completely burnt out.")
+ return
+ if(!open)
+ to_chat(user, "Resetting circuitry...")
+ if(alert)
+ to_chat(user, "This will trigger the built in burglary alarm!")
+ if(do_after(user, 15 SECONDS, target = src))
+ to_chat(user, "You [locked ? "disable" : "re-enable"] the locking modules.")
+ src.add_fingerprint(user)
+ if(locked)
+ trigger_alarm() //already checks for alert var
+ toggle_lock(user)
+
+/obj/structure/fireaxecabinet/spare/emag_act(mob/user)
+ . = ..()
+ if(!.)
+ return
+ trigger_alarm()