From 76c88edea9b207477ac7ae609f6683651a5014d6 Mon Sep 17 00:00:00 2001
From: John Willard <53777086+JohnFulpWillard@users.noreply.github.com>
Date: Sun, 5 Apr 2026 23:21:59 -0400
Subject: [PATCH] Removes Object & Server tab (#95292)
## About The Pull Request
Removes Object tab, which didn't work as it required a whole reload of
your verbs to update to what verbs would show up in it (which is very
hard to actually trigger as a player), but leaves the verbs that had
them show in the dropdown menu.
Removes the Point-To and Examine verbs from the Stat panel, now it's
commandbar only. Originally only did Point-To, but because the stat
panel sorts itself by the category of the item, then the order of the
name, I had to remove Examine's category so it would remain sorted the
same.
bruuuuuh
Removes Server tab for players (not Admins) by moving Show Map Vote
Tallies to the OOC tab, as that was the only verb there.
Activate Held Object has been moved to IC since it's a roundstart verb,
I thought I should leave it be (do we have numbers on how many people
use these? Why would someone use the verb over clicking on the item
in-game or Z? Should I remove this too?).
Admin's Object Possession verbs are now in Admin Fun instead of Object.
Player stat panel
Admin stat panel
## Why It's Good For The Game
We have 2 tabs that exists for a total of 3 procs, 2 of them fit
elsewhere and the last one doesn't work at all. Most verbs here don't
show up in the stat panel at all for the vast majority of players due to
the stat panel not actually loading them in when it's available, which
to me shows that it's a feature that isn't really cared about anyways.
It also helps newer players because there's less tabs to navigate and
less verbs to sift through, we have a ton of verbs that basically don't
need to exist and they only exist to make looking for the important
verbs a larger hassle.
## Changelog
:cl:
del: Deleted Object tab, and Server tab for players. Activate Held
Object verb is now in the IC tab. Examine and Point To was removed from
the stat panel.
admin: Object possession verbs have been moved to Admin Fun.
/:cl:
---
code/__DEFINES/admin_verb.dm | 1 -
code/game/machinery/iv_drip.dm | 2 --
code/game/machinery/pipe/construction.dm | 1 -
code/game/objects/items.dm | 2 --
code/game/objects/items/devices/taperecorder.dm | 6 ------
code/game/objects/items/robot/items/storage.dm | 1 -
code/game/objects/items/tanks/watertank.dm | 1 -
code/game/objects/items/tools/medical/defib.dm | 14 +++++---------
.../objects/structures/crates_lockers/closets.dm | 3 +--
code/game/objects/structures/windoor_assembly.dm | 1 -
code/modules/admin/verbs/possess.dm | 4 ++--
code/modules/client/verbs/ooc.dm | 2 +-
code/modules/clothing/head/soft_caps.dm | 1 -
code/modules/clothing/masks/hailer.dm | 1 -
code/modules/clothing/shoes/magboots.dm | 1 -
code/modules/clothing/under/_under.dm | 1 -
code/modules/food_and_drinks/machinery/gibber.dm | 1 -
.../modules/food_and_drinks/machinery/processor.dm | 1 -
code/modules/mob/living/living.dm | 4 ++--
code/modules/mob/living/silicon/robot/robot.dm | 7 -------
code/modules/mob/mob.dm | 3 +--
.../modular_computers/computers/item/laptop.dm | 1 -
code/modules/paperwork/paper.dm | 1 -
code/modules/photography/photos/photo.dm | 1 -
code/modules/point/point.dm | 6 ++----
.../modules/projectiles/guns/ballistic/revolver.dm | 3 ---
code/modules/reagents/reagent_containers/spray.dm | 1 -
27 files changed, 14 insertions(+), 57 deletions(-)
diff --git a/code/__DEFINES/admin_verb.dm b/code/__DEFINES/admin_verb.dm
index 71abb07f8a0..79d1fecb109 100644
--- a/code/__DEFINES/admin_verb.dm
+++ b/code/__DEFINES/admin_verb.dm
@@ -85,7 +85,6 @@ _ADMIN_VERB(verb_path_name, verb_permissions, verb_name, verb_desc, verb_categor
// Special categories that are separated
#define ADMIN_CATEGORY_DEBUG "Debug"
#define ADMIN_CATEGORY_SERVER "Server"
-#define ADMIN_CATEGORY_OBJECT "Object"
#define ADMIN_CATEGORY_MAPPING "Mapping"
#define ADMIN_CATEGORY_PROFILE "Profile"
#define ADMIN_CATEGORY_IPINTEL "Admin.IPIntel"
diff --git a/code/game/machinery/iv_drip.dm b/code/game/machinery/iv_drip.dm
index fce0a42043d..556df4d02eb 100644
--- a/code/game/machinery/iv_drip.dm
+++ b/code/game/machinery/iv_drip.dm
@@ -324,7 +324,6 @@
return use_internal_storage ? reagents : reagent_container?.reagents
/obj/machinery/iv_drip/verb/eject_beaker()
- set category = "Object"
set name = "Remove IV Container"
set src in view(1)
@@ -344,7 +343,6 @@
update_appearance(UPDATE_ICON)
/obj/machinery/iv_drip/verb/toggle_mode()
- set category = "Object"
set name = "Toggle Mode"
set src in view(1)
diff --git a/code/game/machinery/pipe/construction.dm b/code/game/machinery/pipe/construction.dm
index 172fbe8daa1..82217efdda3 100644
--- a/code/game/machinery/pipe/construction.dm
+++ b/code/game/machinery/pipe/construction.dm
@@ -218,7 +218,6 @@ Buildable meters
resistance_flags |= FIRE_PROOF | LAVA_PROOF
/obj/item/pipe/verb/flip()
- set category = "Object"
set name = "Invert Pipe"
set src in view(1)
diff --git a/code/game/objects/items.dm b/code/game/objects/items.dm
index 21df3b187f2..dc485a807d2 100644
--- a/code/game/objects/items.dm
+++ b/code/game/objects/items.dm
@@ -401,7 +401,6 @@
/obj/item/verb/move_to_top()
set name = "Move To Top"
- set category = "Object"
set src in oview(1)
if(!isturf(loc) || usr.stat != CONSCIOUS || HAS_TRAIT(usr, TRAIT_HANDS_BLOCKED) || anchored)
@@ -822,7 +821,6 @@
/obj/item/verb/verb_pickup()
set src in oview(1)
- set category = "Object"
set name = "Pick up"
if(usr.incapacitated || !Adjacent(usr))
diff --git a/code/game/objects/items/devices/taperecorder.dm b/code/game/objects/items/devices/taperecorder.dm
index 912e4ddab95..7e34b98a874 100644
--- a/code/game/objects/items/devices/taperecorder.dm
+++ b/code/game/objects/items/devices/taperecorder.dm
@@ -127,7 +127,6 @@
/obj/item/taperecorder/verb/ejectverb()
set name = "Eject Tape"
- set category = "Object"
if(!can_use(usr))
balloon_alert(usr, "can't use!")
@@ -135,7 +134,6 @@
if(!mytape)
balloon_alert(usr, "no tape!")
return
-
eject(usr)
@@ -164,7 +162,6 @@
/obj/item/taperecorder/verb/record()
set name = "Start Recording"
- set category = "Object"
if(!can_use(usr))
balloon_alert(usr, "can't use!")
@@ -207,7 +204,6 @@
/obj/item/taperecorder/verb/stop()
set name = "Stop"
- set category = "Object"
if(!can_use(usr))
balloon_alert(usr, "can't use!")
@@ -228,7 +224,6 @@
/obj/item/taperecorder/verb/play()
set name = "Play Tape"
- set category = "Object"
if(!can_use(usr))
balloon_alert(usr, "can't use!")
@@ -301,7 +296,6 @@
/obj/item/taperecorder/verb/print_transcript()
set name = "Print Transcript"
- set category = "Object"
var/list/transcribed_info = mytape.storedinfo
if(!length(transcribed_info))
diff --git a/code/game/objects/items/robot/items/storage.dm b/code/game/objects/items/robot/items/storage.dm
index 8236b58108c..759638b6b4e 100644
--- a/code/game/objects/items/robot/items/storage.dm
+++ b/code/game/objects/items/robot/items/storage.dm
@@ -33,7 +33,6 @@
///A right-click verb, for those not using hotkey mode.
/obj/item/borg/apparatus/verb/verb_dropHeld()
- set category = "Object"
set name = "Drop"
if(usr != loc || !stored)
diff --git a/code/game/objects/items/tanks/watertank.dm b/code/game/objects/items/tanks/watertank.dm
index 47007dd3a63..23b13ccfef4 100644
--- a/code/game/objects/items/tanks/watertank.dm
+++ b/code/game/objects/items/tanks/watertank.dm
@@ -61,7 +61,6 @@
/obj/item/watertank/verb/toggle_mister_verb()
set name = "Toggle Mister"
- set category = "Object"
toggle_mister(usr)
/obj/item/watertank/proc/make_noz()
diff --git a/code/game/objects/items/tools/medical/defib.dm b/code/game/objects/items/tools/medical/defib.dm
index 7d02becf965..92e41d5079c 100644
--- a/code/game/objects/items/tools/medical/defib.dm
+++ b/code/game/objects/items/tools/medical/defib.dm
@@ -115,8 +115,8 @@
cell = locate(/obj/item/stock_parts/power_store) in contents
update_power()
-/obj/item/defibrillator/ui_action_click()
- INVOKE_ASYNC(src, PROC_REF(toggle_paddles))
+/obj/item/defibrillator/ui_action_click(mob/user, actiontype)
+ INVOKE_ASYNC(src, PROC_REF(toggle_paddles), user)
//ATTACK HAND IGNORING PARENT RETURN VALUE
/obj/item/defibrillator/attack_hand(mob/user, list/modifiers)
@@ -143,7 +143,7 @@
/obj/item/defibrillator/item_interaction(mob/living/user, obj/item/item, list/modifiers)
if(item == paddles)
- toggle_paddles()
+ toggle_paddles(user)
return NONE
if(!istype(item, /obj/item/stock_parts/power_store/cell))
return NONE
@@ -181,15 +181,11 @@
update_power()
-/obj/item/defibrillator/proc/toggle_paddles()
- set name = "Toggle Paddles"
- set category = "Object"
+/obj/item/defibrillator/proc/toggle_paddles(mob/living/user)
on = !on
-
- var/mob/living/carbon/user = usr
if(on)
//Detach the paddles into the user's hands
- if(!usr.put_in_hands(paddles))
+ if(!user.put_in_hands(paddles))
on = FALSE
to_chat(user, span_warning("You need a free hand to hold the paddles!"))
update_power()
diff --git a/code/game/objects/structures/crates_lockers/closets.dm b/code/game/objects/structures/crates_lockers/closets.dm
index e8fa4a030ff..38da438155a 100644
--- a/code/game/objects/structures/crates_lockers/closets.dm
+++ b/code/game/objects/structures/crates_lockers/closets.dm
@@ -1026,9 +1026,8 @@ GLOBAL_LIST_EMPTY(roundstart_station_closets)
return ITEM_INTERACT_BLOCKING
/obj/structure/closet/verb/verb_toggleopen()
- set src in view(1)
- set category = "Object"
set name = "Toggle Open"
+ set src in view(1)
if(!usr.can_perform_action(src) || !isturf(loc))
return
diff --git a/code/game/objects/structures/windoor_assembly.dm b/code/game/objects/structures/windoor_assembly.dm
index 508d1f00480..68b6ee31c7d 100644
--- a/code/game/objects/structures/windoor_assembly.dm
+++ b/code/game/objects/structures/windoor_assembly.dm
@@ -338,7 +338,6 @@
//Flips the windoor assembly, determines whather the door opens to the left or the right
/obj/structure/windoor_assembly/verb/flip()
set name = "Flip Windoor Assembly"
- set category = "Object"
set src in oview(1)
if(usr.stat != CONSCIOUS || HAS_TRAIT(usr, TRAIT_HANDS_BLOCKED))
return
diff --git a/code/modules/admin/verbs/possess.dm b/code/modules/admin/verbs/possess.dm
index 2949447b2ef..47dd6fdc4c3 100644
--- a/code/modules/admin/verbs/possess.dm
+++ b/code/modules/admin/verbs/possess.dm
@@ -1,5 +1,5 @@
-ADMIN_VERB_AND_CONTEXT_MENU(possess, R_POSSESS, "Possess Obj", "Possess an object.", ADMIN_CATEGORY_OBJECT, obj/target in world)
+ADMIN_VERB_AND_CONTEXT_MENU(possess, R_POSSESS, "Possess Obj", "Possess an object.", ADMIN_CATEGORY_FUN, obj/target in world)
var/result = user.mob.AddComponent(/datum/component/object_possession, target)
if(isnull(result)) // trigger a safety movement just in case we yonk
@@ -13,7 +13,7 @@ ADMIN_VERB_AND_CONTEXT_MENU(possess, R_POSSESS, "Possess Obj", "Possess an objec
BLACKBOX_LOG_ADMIN_VERB("Possess Object")
-ADMIN_VERB(release, R_POSSESS, "Release Object", "Stop possessing an object.", ADMIN_CATEGORY_OBJECT)
+ADMIN_VERB(release, R_POSSESS, "Release Object", "Stop possessing an object.", ADMIN_CATEGORY_FUN)
var/possess_component = user.mob.GetComponent(/datum/component/object_possession)
if(!isnull(possess_component))
qdel(possess_component)
diff --git a/code/modules/client/verbs/ooc.dm b/code/modules/client/verbs/ooc.dm
index e08c32196ab..9ba52e3a6a6 100644
--- a/code/modules/client/verbs/ooc.dm
+++ b/code/modules/client/verbs/ooc.dm
@@ -465,7 +465,7 @@ ADMIN_VERB(reset_ooc_color, R_FUN, "Reset Player OOC Color", "Returns player OOC
/client/verb/map_vote_tally_count()
set name = "Show Map Vote Tallies"
set desc = "View the current map vote tally counts."
- set category = "Server"
+ set category = "OOC"
to_chat(mob, SSmap_vote.tally_printout)
diff --git a/code/modules/clothing/head/soft_caps.dm b/code/modules/clothing/head/soft_caps.dm
index 4fd6e439b35..5412910c3e2 100644
--- a/code/modules/clothing/head/soft_caps.dm
+++ b/code/modules/clothing/head/soft_caps.dm
@@ -21,7 +21,6 @@
..()
/obj/item/clothing/head/soft/verb/flipcap()
- set category = "Object"
set name = "Flip cap"
flip(usr)
diff --git a/code/modules/clothing/masks/hailer.dm b/code/modules/clothing/masks/hailer.dm
index 72117680edc..705086606ae 100644
--- a/code/modules/clothing/masks/hailer.dm
+++ b/code/modules/clothing/masks/hailer.dm
@@ -134,7 +134,6 @@ GLOBAL_LIST_INIT(hailer_phrases, list(
return FALSE
/obj/item/clothing/mask/gas/sechailer/verb/halt()
- set category = "Object"
set name = "HALT"
set src in usr
if(!isliving(usr) || !can_use(usr) || !COOLDOWN_FINISHED(src, hailer_cooldown))
diff --git a/code/modules/clothing/shoes/magboots.dm b/code/modules/clothing/shoes/magboots.dm
index ad31dff4ed2..6771e341100 100644
--- a/code/modules/clothing/shoes/magboots.dm
+++ b/code/modules/clothing/shoes/magboots.dm
@@ -47,7 +47,6 @@
/obj/item/clothing/shoes/magboots/verb/toggle()
set name = "Toggle Magboots"
- set category = "Object"
set src in usr
if(!can_use(usr))
diff --git a/code/modules/clothing/under/_under.dm b/code/modules/clothing/under/_under.dm
index a6853d231c5..fbc1ce1f715 100644
--- a/code/modules/clothing/under/_under.dm
+++ b/code/modules/clothing/under/_under.dm
@@ -455,7 +455,6 @@
/obj/item/clothing/under/verb/toggle()
set name = "Adjust Suit Sensors"
- set category = "Object"
set src in usr
var/mob/user_mob = usr
if(!can_toggle_sensors(user_mob))
diff --git a/code/modules/food_and_drinks/machinery/gibber.dm b/code/modules/food_and_drinks/machinery/gibber.dm
index 0c661867370..bbb418892a0 100644
--- a/code/modules/food_and_drinks/machinery/gibber.dm
+++ b/code/modules/food_and_drinks/machinery/gibber.dm
@@ -147,7 +147,6 @@
return ..()
/obj/machinery/gibber/verb/eject()
- set category = "Object"
set name = "Empty gibber"
set src in oview(1)
if (usr.stat != CONSCIOUS || HAS_TRAIT(usr, TRAIT_HANDS_BLOCKED))
diff --git a/code/modules/food_and_drinks/machinery/processor.dm b/code/modules/food_and_drinks/machinery/processor.dm
index f0940348bee..a0b5b6c743e 100644
--- a/code/modules/food_and_drinks/machinery/processor.dm
+++ b/code/modules/food_and_drinks/machinery/processor.dm
@@ -176,7 +176,6 @@
visible_message(span_notice("\The [src] finishes processing."))
/obj/machinery/processor/verb/eject()
- set category = "Object"
set name = "Eject Contents"
set src in oview(1)
if(usr.stat != CONSCIOUS || HAS_TRAIT(usr, TRAIT_HANDS_BLOCKED))
diff --git a/code/modules/mob/living/living.dm b/code/modules/mob/living/living.dm
index 3225f7a4c0b..fb7af94d3c4 100644
--- a/code/modules/mob/living/living.dm
+++ b/code/modules/mob/living/living.dm
@@ -514,7 +514,7 @@
//for more info on why this is not atom/pull, see examinate() in mob.dm
/mob/living/verb/pulled(atom/movable/AM as mob|obj in oview(1))
set name = "Pull"
- set category = "Object"
+ set category = "IC"
if(istype(AM) && Adjacent(AM))
start_pulling(AM)
@@ -534,7 +534,7 @@
stop_pulling()
//same as above
-/mob/living/pointed(atom/A as mob|obj|turf in view(client.view, src))
+/mob/living/pointed(atom/A)
if(INCAPACITATED_IGNORING(src, INCAPABLE_RESTRAINTS))
return FALSE
diff --git a/code/modules/mob/living/silicon/robot/robot.dm b/code/modules/mob/living/silicon/robot/robot.dm
index 429b66c1a34..2a78778bc88 100644
--- a/code/modules/mob/living/silicon/robot/robot.dm
+++ b/code/modules/mob/living/silicon/robot/robot.dm
@@ -393,13 +393,6 @@
// to have to check if every camera is null or not before doing anything, to prevent runtime errors.
// I could change the network to null but I don't know what would happen, and it seems too hacky for me.
-/mob/living/silicon/robot/mode()
- set name = "Activate Held Object"
- set category = "IC"
- set src = usr
-
- return ..()
-
/mob/living/silicon/robot/execute_mode()
if(incapacitated)
return
diff --git a/code/modules/mob/mob.dm b/code/modules/mob/mob.dm
index dfdce3c3292..4d746c9fdf6 100644
--- a/code/modules/mob/mob.dm
+++ b/code/modules/mob/mob.dm
@@ -547,7 +547,6 @@
*/
/mob/verb/examinate(atom/examinify as mob|obj|turf in view()) //It used to be oview(12), but I can't really say why
set name = "Examine"
- set category = "IC"
DEFAULT_QUEUE_OR_CALL_VERB(VERB_CALLBACK(src, PROC_REF(run_examinate), examinify))
@@ -782,7 +781,7 @@
*/
/mob/verb/mode()
set name = "Activate Held Object"
- set category = "Object"
+ set category = "IC"
set src = usr
DEFAULT_QUEUE_OR_CALL_VERB(VERB_CALLBACK(src, PROC_REF(execute_mode)))
diff --git a/code/modules/modular_computers/computers/item/laptop.dm b/code/modules/modular_computers/computers/item/laptop.dm
index 2ae9e794b57..d366e6b74ff 100644
--- a/code/modules/modular_computers/computers/item/laptop.dm
+++ b/code/modules/modular_computers/computers/item/laptop.dm
@@ -72,7 +72,6 @@
/obj/item/modular_computer/laptop/verb/open_computer()
set name = "Toggle Open"
- set category = "Object"
set src in view(1)
try_toggle_open(usr)
diff --git a/code/modules/paperwork/paper.dm b/code/modules/paperwork/paper.dm
index 15140879421..71e3c03cb8a 100644
--- a/code/modules/paperwork/paper.dm
+++ b/code/modules/paperwork/paper.dm
@@ -327,7 +327,6 @@
/obj/item/paper/verb/rename()
set name = "Rename paper"
- set category = "Object"
set src in usr
if(!usr.can_read(src) || usr.is_blind() || INCAPACITATED_IGNORING(usr, INCAPABLE_RESTRAINTS|INCAPABLE_GRAB) || (isobserver(usr) && !isAdminGhostAI(usr)))
diff --git a/code/modules/photography/photos/photo.dm b/code/modules/photography/photos/photo.dm
index 44dabf0f5d9..a6009b63528 100644
--- a/code/modules/photography/photos/photo.dm
+++ b/code/modules/photography/photos/photo.dm
@@ -116,7 +116,6 @@
/obj/item/photo/verb/rename()
set name = "Rename photo"
- set category = "Object"
set src in usr
var/n_name = tgui_input_text(usr, "What would you like to label the photo?", "Photo Labelling", max_length = MAX_NAME_LEN)
diff --git a/code/modules/point/point.dm b/code/modules/point/point.dm
index e3ef14d2db9..e07086c8753 100644
--- a/code/modules/point/point.dm
+++ b/code/modules/point/point.dm
@@ -99,13 +99,11 @@
*
* overridden here and in /mob/dead/observer for different point span classes and sanity checks
*/
-/mob/verb/pointed(atom/A as mob|obj|turf in view())
+/mob/verb/pointed(atom/A as mob|obj|turf in view(client.view, src))
set name = "Point To"
- set category = "Object"
- if(istype(A, /obj/effect/temp_visual/point))
+ if(isnull(A) || istype(A, /obj/effect/temp_visual/point) || isarea(A))
return FALSE
-
DEFAULT_QUEUE_OR_CALL_VERB(VERB_CALLBACK(src, PROC_REF(_pointed), A))
/// possibly delayed verb that finishes the pointing process starting in [/mob/verb/pointed()].
diff --git a/code/modules/projectiles/guns/ballistic/revolver.dm b/code/modules/projectiles/guns/ballistic/revolver.dm
index 444d726dac9..d3379780261 100644
--- a/code/modules/projectiles/guns/ballistic/revolver.dm
+++ b/code/modules/projectiles/guns/ballistic/revolver.dm
@@ -59,9 +59,6 @@
/obj/item/gun/ballistic/revolver/verb/spin()
set name = "Spin Chamber"
- set category = "Object"
- set desc = "Click to spin your revolver's chamber."
-
var/mob/user = usr
if(user.stat || !in_range(user, src))
diff --git a/code/modules/reagents/reagent_containers/spray.dm b/code/modules/reagents/reagent_containers/spray.dm
index e2a849e650e..c7f332ea817 100644
--- a/code/modules/reagents/reagent_containers/spray.dm
+++ b/code/modules/reagents/reagent_containers/spray.dm
@@ -139,7 +139,6 @@
/obj/item/reagent_containers/spray/verb/empty()
set name = "Empty Spray Bottle"
- set category = "Object"
set src in usr
if(usr.incapacitated)
return