diff --git a/code/game/objects/items.dm b/code/game/objects/items.dm
index 9551b57ebde..d957cfe5431 100644
--- a/code/game/objects/items.dm
+++ b/code/game/objects/items.dm
@@ -1857,3 +1857,14 @@
return bait.reagents?.has_reagent(special_identifier[FISH_BAIT_VALUE], special_identifier[FISH_BAIT_AMOUNT], check_subtypes = TRUE)
else
CRASH("Unknown bait identifier in fish favourite/disliked list")
+
+/obj/item/vv_get_header()
+ . = ..()
+ . += {"
+
+ DAMTYPE: [uppertext(damtype)]
+ FORCE: [force]
+ WOUND: [wound_bonus]
+ BARE WOUND: [bare_wound_bonus]
+
+ "}
diff --git a/code/modules/admin/view_variables/topic.dm b/code/modules/admin/view_variables/topic.dm
index 75ed4aab4a5..4fde1e30d1a 100644
--- a/code/modules/admin/view_variables/topic.dm
+++ b/code/modules/admin/view_variables/topic.dm
@@ -113,10 +113,51 @@
admin_ticket_log(L, "[log_msg]")
vv_update_display(L, Text, "[newamt]")
+ else if(href_list["item_to_tweak"] && href_list["var_tweak"])
+ if(!check_rights(NONE))
+ return
+
+ var/obj/item/editing = locate(href_list["item_to_tweak"])
+ if(!istype(editing) || QDELING(editing))
+ return
+
+ var/existing_val = -1
+ switch(href_list["var_tweak"])
+ if("damtype")
+ existing_val = editing.damtype
+ if("force")
+ existing_val = editing.force
+ if("wound")
+ existing_val = editing.wound_bonus
+ if("bare wound")
+ existing_val = editing.bare_wound_bonus
+ else
+ CRASH("Invalid var_tweak passed to item vv set var: [href_list["var_tweak"]]")
+
+ var/new_val
+ if(href_list["var_tweak"] == "damtype")
+ new_val = input("Enter the new damage type for [editing]","Set Damtype", existing_val) in list(BRUTE, BURN, TOX, OXY, STAMINA, BRAIN)
+ else
+ new_val = input("Enter the new value for [editing]'s [href_list["var_tweak"]]","Set [href_list["var_tweak"]]", existing_val) as num|null
+ if(isnull(new_val) || new_val == existing_val || QDELETED(editing) || !check_rights(NONE))
+ return
+
+ switch(href_list["var_tweak"])
+ if("damtype")
+ editing.damtype = new_val
+ if("force")
+ editing.force = new_val
+ if("wound")
+ editing.wound_bonus = new_val
+ if("bare wound")
+ editing.bare_wound_bonus = new_val
+
+ message_admins("[key_name(usr)] set [editing]'s [href_list["var_tweak"]] to [new_val] (was [existing_val])")
+ log_admin("[key_name(usr)] set [editing]'s [href_list["var_tweak"]] to [new_val] (was [existing_val])")
+ vv_update_display(editing, href_list["var_tweak"], istext(new_val) ? uppertext(new_val) : new_val)
//Finally, refresh if something modified the list.
if(href_list["datumrefresh"])
var/datum/DAT = locate(href_list["datumrefresh"])
if(isdatum(DAT) || istype(DAT, /client) || islist(DAT))
debug_variables(DAT)
-