diff --git a/code/game/objects/items/weapons/weaponry.dm b/code/game/objects/items/weapons/weaponry.dm
index 07eb74b3411..9f5a5fca8a8 100644
--- a/code/game/objects/items/weapons/weaponry.dm
+++ b/code/game/objects/items/weapons/weaponry.dm
@@ -1,44 +1,5 @@
/obj/item/weapon
- var/unique_rename = 0 //allows renaming with a pen
-
-/obj/item/weapon/examine(mob/user)
- ..()
- if(unique_rename)
- user << "Use a pen on it to rename it or change its description."
-
-/obj/item/weapon/attackby(obj/item/I, mob/user, params)
- if(unique_rename)
- if(istype(I, /obj/item/weapon/pen))
- var/penchoice = alert("What would you like to edit?", "Rename or change description?", "Rename", "Change description", "Cancel")
- if(!qdeleted(src) && user.canUseTopic(src, BE_CLOSE))
- if(penchoice == "Rename")
- rename_weapon(user)
- if(penchoice == "Change description")
- redesc_weapon(user)
- ..()
-
-/obj/item/weapon/proc/rename_weapon(mob/M)
- var/oldname = name
- var/input = stripped_input(M,"What do you want to name /the [name]?", ,"", MAX_NAME_LEN)
-
- if(!qdeleted(src) && M.canUseTopic(src, BE_CLOSE) && input != "")
- name = input
- M << "/The [oldname] has successfully been renamed to /the [input]."
- return
- else
- return
-
-/obj/item/weapon/proc/redesc_weapon(mob/M)
- var/input = stripped_input(M,"Describe your object here", ,"", 100)
-
- if(!qdeleted(src) && M.canUseTopic(src, BE_CLOSE) && input != "")
- desc = input
- M << "You have successfully changed /the [name]'s description."
- return
- else
- return
-
/obj/item/weapon/banhammer
desc = "A banhammer"
name = "banhammer"
diff --git a/code/game/objects/objs.dm b/code/game/objects/objs.dm
index 05ddecfda1d..05f579f80e8 100644
--- a/code/game/objects/objs.dm
+++ b/code/game/objects/objs.dm
@@ -25,6 +25,7 @@
var/persistence_replacement = null //have something WAY too amazing to live to the next round? Set a new path here. Overuse of this var will make me upset.
var/is_frozen = FALSE
+ var/unique_rename = 0 // can you customize the description/name of the thing?
/obj/New()
@@ -187,3 +188,44 @@
/obj/vv_get_dropdown()
. = ..()
.["Delete all of type"] = "?_src_=vars;delall=\ref[src]"
+
+/obj/examine(mob/user)
+ ..()
+ if(unique_rename)
+ user << "Use a pen on it to rename it or change its description."
+
+/obj/attackby(obj/item/I, mob/user, params)
+ if(unique_rename)
+ if(istype(I, /obj/item/weapon/pen))
+ var/penchoice = alert("What would you like to edit?", "Rename or change description?", "Rename", "Change description", "Cancel")
+ if(!qdeleted(src) && user.canUseTopic(src, BE_CLOSE))
+ if(penchoice == "Rename")
+ rename_obj(user)
+ if(penchoice == "Change description")
+ redesc_obj(user)
+ ..()
+
+/obj/proc/rename_obj(mob/M)
+ var/input = stripped_input(M,"What do you want to name \the [name]?", ,"", MAX_NAME_LEN)
+ var/oldname = name
+
+ if(!qdeleted(src) && M.canUseTopic(src, BE_CLOSE) && input != "")
+ if(oldname == input)
+ M << "You changed \the [name] to... well... \the [name]."
+ return
+ else
+ name = input
+ M << "\The [oldname] has been successfully been renamed to \the [input]."
+ return
+ else
+ return
+
+/obj/proc/redesc_obj(mob/M)
+ var/input = stripped_input(M,"Describe \the [name] here", ,"", 100)
+
+ if(!qdeleted(src) && M.canUseTopic(src, BE_CLOSE) && input != "")
+ desc = input
+ M << "You have successfully changed \the [name]'s description."
+ return
+ else
+ return
\ No newline at end of file