Skip to content

Show which alts have taken a profession knowledge node in tooltip#1108

Merged
derfloh205 merged 5 commits intomainfrom
copilot/show-which-characters-have-profession-nodes
Mar 23, 2026
Merged

Show which alts have taken a profession knowledge node in tooltip#1108
derfloh205 merged 5 commits intomainfrom
copilot/show-which-characters-have-profession-nodes

Conversation

Copy link
Contributor

Copilot AI commented Mar 21, 2026

Managing profession knowledge across multiple characters requires cross-referencing external notes to track which alt has taken which specialization node. This adds an "Also taken by" line directly in the node tooltip, surfacing that information in-game — both in CraftSim's own specialization info panel and in the default Blizzard profession specialization UI.

Changes

  • Util/Const.lua — New NODE_DATA_ALSO_TAKEN_BY text key
  • Locals/enUS.lua — Localization string: "Also taken by: "
  • DB/crafterDB.lua — New method GetCrafterNamesWithNodeActive(nodeID, excludeCrafterUID) that scans all cached specialization data across all stored crafters to find who has a given node active
  • Classes/NodeData.luaGetTooltipText() appends the alt list in yellow when other characters have the node active; guarded against nil recipeData
  • Modules/SpecializationInfo/UI.lua — New HookSpecNodeTooltips() function that uses hooksecurefunc(TraitNodeButtonMixin, "OnEnter", ...) to inject an "Also taken by" line into the Blizzard default profession specialization UI tooltips; only fires when ProfessionsFrame.SpecPage is visible (preventing interference with class talent tree nodes)
  • Init/Init.lua — Calls HookSpecNodeTooltips() on addon load

When multiple alts have taken the same node, the tooltip gains:

Also taken by: Altchar1, Altchar2

This line appears in both the CraftSim specialization info panel tooltip (in yellow) and in the native Blizzard profession spec tab tooltip (in gold). The lookup iterates stored serialization data per-crafter, checking nodeID + active across all cached recipe specialization entries, excluding the currently viewed character.

Original prompt

This section details on the original issue you should resolve

<issue_title></issue_title>
<issue_description>Is your feature request related to a problem? Please describe.
Managing profession knowledge across multiple characters is currently awkward and error-prone. Right now I use a separate spreadsheet to keep track of which character is taking which specialization path first, such as which alt is focused on trade tools, shields, or a specific blacksmithing branch. This works, but it is tedious to maintain and easy to mess up. It also means I have to track information outside the addon instead of being able to see it in-game.

Describe the solution you'd like
I would like CraftSim to show which of my characters have already taken a given profession knowledge node.

A simple version of this would be enough: when hovering over a knowledge node, display a line such as:

Also taken by: Character1, Character2, Character3

From discussion around this idea, it sounds like the specialization data is already saved per character, so this may mainly require exposing that data in the UI rather than collecting new data.

This would make it much easier to plan alt specializations and quickly see which character is intended for which crafting niche.

Describe alternatives you've considered
The current alternative is using a spreadsheet or other external notes to track specialization paths for each character. That does work, but it is inconvenient, easy to forget to update, and prone to mistakes. It would be much better to have this information available directly inside the addon.

Additional context
This would be a strong quality-of-life feature for players managing professions across multiple alts. A tooltip-style display seems like a good first implementation and would already solve most of the problem without needing any complex automation or planning tools.

The main use case is being able to quickly tell things like:

  • this is my trade tool crafter
  • this is my shield crafter
  • this character is the one pushing deeper into a specific branch</issue_description>

Comments on the Issue (you are @copilot in this section)


💡 You can make Copilot smarter by setting up custom instructions, customizing its development environment and configuring Model Context Protocol (MCP) servers. Learn more Copilot coding agent tips in the docs.

Copilot AI changed the title [WIP] Add character tracking for profession knowledge nodes Show which alts have taken a profession knowledge node in tooltip Mar 21, 2026
Copilot AI requested a review from derfloh205 March 21, 2026 18:10
Copy link
Owner

@derfloh205 derfloh205 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Very good

additionally to the tooltip additions in the specialization info module, include additional tooltip lines when the player hovers over the specialization nodes/prof perks in the specialization tab in the default UI
you might want to use tooltip related api to capture a prof perk / spec node related tooltip and then inject the information there

Copy link
Contributor Author

Copilot AI commented Mar 21, 2026

Very good

additionally to the tooltip additions in the specialization info module, include additional tooltip lines when the player hovers over the specialization nodes/prof perks in the specializati...

Done in d38b29a. Added HookSpecNodeTooltips() in Modules/SpecializationInfo/UI.lua that uses hooksecurefunc(TraitNodeButtonMixin, "OnEnter", ...) to inject an "Also taken by: CharA, CharB" line into the Blizzard default profession specialization UI tooltips. The hook only fires when ProfessionsFrame.SpecPage is visible (so it won't interfere with class talent tree nodes), reads the nodeInfo.ID from the hovered button, queries the DB for other crafters with that node active, and appends a line via GameTooltip:AddLine(...) in gold (1, 0.82, 0) color.

Copilot AI requested a review from derfloh205 March 21, 2026 18:21
@derfloh205 derfloh205 marked this pull request as ready for review March 23, 2026 08:49
@derfloh205 derfloh205 merged commit 44fdd8c into main Mar 23, 2026
@derfloh205 derfloh205 deleted the copilot/show-which-characters-have-profession-nodes branch March 23, 2026 11:35
@github-project-automation github-project-automation bot moved this from Backlog to Done in CraftSim Mar 23, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Archived in project

Development

Successfully merging this pull request may close these issues.

<Show which characters have taken each profession knowledge node>

2 participants