diff --git a/code/modules/modular_computers/file_system/programs/cargoship.dm b/code/modules/modular_computers/file_system/programs/cargoship.dm
index 1e006b5c69e..89a3b3247db 100644
--- a/code/modules/modular_computers/file_system/programs/cargoship.dm
+++ b/code/modules/modular_computers/file_system/programs/cargoship.dm
@@ -42,7 +42,7 @@
switch(action)
if("ejectid")
if(id_card)
- card_slot.try_eject(TRUE, usr)
+ card_slot.try_eject(usr, TRUE)
if("selectid")
if(!id_card)
return
diff --git a/code/modules/modular_computers/hardware/_hardware.dm b/code/modules/modular_computers/hardware/_hardware.dm
index 1d074868c4a..b65c9c85510 100644
--- a/code/modules/modular_computers/hardware/_hardware.dm
+++ b/code/modules/modular_computers/hardware/_hardware.dm
@@ -94,12 +94,20 @@
// Called when component is removed from PC.
/obj/item/computer_hardware/proc/on_remove(obj/item/modular_computer/M, mob/living/user = null)
- try_eject(forced = 1)
+ try_eject(forced = TRUE)
// Called when someone tries to insert something in it - paper in printer, card in card reader, etc.
/obj/item/computer_hardware/proc/try_insert(obj/item/I, mob/living/user = null)
return FALSE
-// Called when someone tries to eject something from it - card from card reader, etc.
-/obj/item/computer_hardware/proc/try_eject(slot=0, mob/living/user = null, forced = 0)
+/**
+ * Implement this when your hardware contains an object that the user can eject.
+ *
+ * Examples include ejecting cells from battery modules, ejecting an ID card from a card reader
+ * or ejecting an Intellicard from an AI card slot.
+ * Arguments:
+ * * user - The mob requesting the eject.
+ * * forced - Whether this action should be forced in some way.
+ */
+/obj/item/computer_hardware/proc/try_eject(mob/living/user = null, forced = FALSE)
return FALSE
diff --git a/code/modules/modular_computers/hardware/ai_slot.dm b/code/modules/modular_computers/hardware/ai_slot.dm
index c874d786a0c..5d42747308e 100644
--- a/code/modules/modular_computers/hardware/ai_slot.dm
+++ b/code/modules/modular_computers/hardware/ai_slot.dm
@@ -12,7 +12,7 @@
/obj/item/computer_hardware/ai_slot/handle_atom_del(atom/A)
if(A == stored_card)
- try_eject(0, null, TRUE)
+ try_eject(forced = TRUE)
. = ..()
/obj/item/computer_hardware/ai_slot/examine(mob/user)
@@ -39,7 +39,7 @@
return TRUE
-/obj/item/computer_hardware/ai_slot/try_eject(mob/living/user = null,forced = FALSE)
+/obj/item/computer_hardware/ai_slot/try_eject(mob/living/user = null, forced = FALSE)
if(!stored_card)
to_chat(user, "There is no card in \the [src].")
return FALSE
@@ -65,5 +65,5 @@
return
if(I.tool_behaviour == TOOL_SCREWDRIVER)
to_chat(user, "You press down on the manual eject button with \the [I].")
- try_eject(,user,1)
+ try_eject(user, TRUE)
return
diff --git a/code/modules/modular_computers/hardware/card_slot.dm b/code/modules/modular_computers/hardware/card_slot.dm
index 8dc951a8829..926d4e6374a 100644
--- a/code/modules/modular_computers/hardware/card_slot.dm
+++ b/code/modules/modular_computers/hardware/card_slot.dm
@@ -14,7 +14,7 @@
. = ..()
/obj/item/computer_hardware/card_slot/Destroy()
- try_eject()
+ try_eject(forced = TRUE)
return ..()
/obj/item/computer_hardware/card_slot/GetAccess()