diff --git a/code/game/objects/items/weapons/cards_ids.dm b/code/game/objects/items/weapons/cards_ids.dm
index 0b4a0a45c51..3fd876a43f4 100644
--- a/code/game/objects/items/weapons/cards_ids.dm
+++ b/code/game/objects/items/weapons/cards_ids.dm
@@ -141,24 +141,24 @@ update_label("John Doe", "Clowny")
if(user.mind.special_role)
usr << "The card's microscanners activate as you pass it over the ID, copying its access."
+/obj/item/weapon/card/id/syndicate/CtrlClick(mob/user)
+ if(loc == user)
+ if(istype(user, /mob/living) && user.mind)
+ if(user.mind.special_role)
+ var t = copytext(sanitize(input(user, "What name would you like to put on this card?", "Agent card name", registered_name ? registered_name : (ishuman(user) ? user.real_name : user.name))as text | null),1,26)
+ if(!t || t == "Unknown" || t == "floor" || t == "wall" || t == "r-wall") //Same as mob/new_player/prefrences.dm
+ if (t)
+ alert("Invalid name.")
+ return
+ registered_name = t
-/obj/item/weapon/card/id/syndicate/attack_self(mob/user)
- if(!src.registered_name)
- //Stop giving the players unsanitized unputs! You are giving ways for players to intentionally crash clients! -Nodrak
- var t = copytext(sanitize(input(user, "What name would you like to put on this card?", "Agent card name", ishuman(user) ? user.real_name : user.name)as text | null),1,26)
- if(!t || t == "Unknown" || t == "floor" || t == "wall" || t == "r-wall") //Same as mob/new_player/prefrences.dm
- if (t)
- alert("Invalid name.")
- return
- src.registered_name = t
-
- var u = copytext(sanitize(input(user, "What occupation would you like to put on this card?\nNote: This will not grant any access levels other than Maintenance.", "Agent card job assignment", "Assistant")as text | null),1,MAX_MESSAGE_LEN)
- if(!u)
- src.registered_name = ""
- return
- src.assignment = u
- update_label()
- user << "You successfully forge the ID card."
+ var u = copytext(sanitize(input(user, "What occupation would you like to put on this card?\nNote: This will not grant any access levels other than Maintenance.", "Agent card job assignment", "Assistant")as text | null),1,MAX_MESSAGE_LEN)
+ if(!u)
+ registered_name = ""
+ return
+ assignment = u
+ update_label()
+ user << "You successfully forge the ID card."
else
..()
diff --git a/html/changelogs/xxalpha-rw_agent.yml b/html/changelogs/xxalpha-rw_agent.yml
new file mode 100644
index 00000000000..558b3868ae0
--- /dev/null
+++ b/html/changelogs/xxalpha-rw_agent.yml
@@ -0,0 +1,6 @@
+author: xxalpha
+
+delete-after: True
+
+changes:
+ - tweak: "Agent IDs are now rewrittable. Use Ctrl+Click to forge!"