Quantcast
Download
(56 Kb)
Download
Updated: 09/23/22 07:33 PM
Pictures
File Info
Compatibility:
Firesong (8.2.5)
Lost Depths (8.1.5)
High Isle (8.0.0)
Ascending Tide (7.3.5)
Deadlands (7.2.5)
Waking Flame (7.1.5)
Blackwood (7.0.5)
Updated:09/23/22 07:33 PM
Created:02/25/21 09:29 AM
Monthly downloads:2,436
Total downloads:119,814
Favorites:185
MD5:
Categories:Character Advancement, Data Mods
8.2.5
Character Knowledge (Motif, Recipe and Furnishing Plan Tracker)  Popular! (More than 5000 hits)
Version: 1.3.9
by: code65536 [More]
Character Knowledge tracks recipe, furnishing plan, and motif knowledge across multiple characters, accounts, and servers.



Extended Journal

This addon is a part of the Extended Journal, which is a collection of addons comprised of Loot Log, Item Set Browser, Character Knowledge, and Event Collectibles.


External Dependencies

Required:
  • None

Recommended/Optional:

Yet another recipe/motif tracker? Why use Character Knowledge?

Character Knowledge was created in response to some of the frustrations that I have with existing addons. Specifically...
  1. Character Knowledge is altaholic-friendly. It can track knowledge of characters across multiple accounts and even across servers.
  2. Character Knowledge has a concept of character priority. Most people have a "main" character that they prioritize for learning recipes and motifs, and Character Knowledge recognizes this and helps ensure that more important characters are given priority for distributing those extra copies of recipes and motifs that you found.
  3. Character Knowledge makes it easier to access information with a simple, straightforward UI.
  4. Character Knowledge gives players the option to share their information with friends via an export/import feature. No more need for manually compiling a list of missing motifs during the Anniversary Event.


What does this addon do, specifically?

Character Knowledge browser:
The main UI lets users browse through a master list of motifs, recipes, and furnishing plans, along with an overview of the extent of your characters' knowledge of these items.

Information added to tooltips throughout the game:
Whenever you look at an item tooltip for a recipe, plan, or motif, you'll see an overview of which characters know that particular item. In the case of chaptered motifs, you will also see an overview of your knowledge of all the chapters of this style.

Advanced Filters custom filter plugin:
For users of the Advanced Filters addon, Character Knowledge will also install a few custom filter plugins for Advanced Filters.


LibCharacterKnowledge

Character Knowledge includes the LibCharacterKnowledge library. Addon authors who wish to use the library for their own addons can check out the the LibCharacterKnowledge Developer Reference. LibCharacterKnowledge is also available as a standalone download for users who want to use it without installing Character Knowledge.
  • Version 1.3.9 (2022/09/23)
    • Added support for Update 36 (Firesong)

  • Version 1.3.8 (2022/07/28)
    • Added support for Update 35 (Lost Depths)

  • Version 1.3.7 (2022/06/06)
    • Updated French localization by @XXXspartiateXXX

  • Version 1.3.6 (2022/04/19)
    • Added support for Update 34 (High Isle)

  • Version 1.3.5 (2022/04/11)
    • Fixed the double-pluralization of motif chapter names resulting from ZOS pre-pluralizing the English SI_ITEMSTYLECHAPTER* strings in the ESO-7.3.7 update

  • Version 1.3.4 (2022/03/30)
    • The motif browser will now show an additional tooltip for the style material associated with a motif

  • Version 1.3.3 (2022/03/09)
    • Internal code restructuring

  • Version 1.3.2 (2022/03/02)
    • LibCharacterKnowledge updated to version 1.4.0

  • Version 1.3.1 (2022/02/25)
    • Fixed an issue that was causing the preloaded motif information for the upcoming Update 33 to interfere with the chapter information for the Worm Cult motif in the current Update 32

  • Version 1.3.0 (2022/02/17)
    • The "-" prefix can now be used in the search filter to exclude a search term
      • For example, searching for "chair -orcish" will find furnishing plans for all chairs that are not Orcish
    • Added support for Update 33 (Ascending Tide)
    • Added Russian localization by GJSmoker
    • Updated French localization by @jakez31

  • Version 1.2.12 (2021/10/10)
    • Fixed an issue where the display of "pinned" characters for chaptered motif knowledge was not respecting character tracking settings

  • Version 1.2.11 (2021/10/01)
    • One of the two different versions of "Diagram: Dwarven Pipeline Cap, Sealed" has been removed from the furnishing plan browser, because this version was removed from the game's loot table in Update 17

  • Version 1.2.10 (2021/09/28)
    • Added support for Update 32 (The Deadlands)

  • Version 1.2.9 (2021/08/05)
    • Sorting by the character ratio column in the browser UI will now take into consideration the total number of tracked characters

  • Version 1.2.8 (2021/08/02)
    • LibCharacterKnowledge updated to version 1.3.4; fixed a settings UI issue

  • Version 1.2.7 (2021/07/14)
    • Fixed a regression with the listing of the Ancestral Akaviri motif

  • Version 1.2.6 (2021/07/14)
    • Added support for Update 31 (Waking Flame)

  • Version 1.2.5 (2021/06/03)
    • LibCharacterKnowledge updated to version 1.3.1; corrected the number associated with the Thorn Legion crafting motif style

  • Version 1.2.4 (2021/05/20)
    • LibCharacterKnowledge updated to version 1.3.0; improved the data encoding format used by the export/import data sharing feature

  • Version 1.2.3 (2021/05/12)
    • Improved the handling of quest reward items

  • Version 1.2.2 (2021/05/03)
    • The new setting introduced in version 1.2.1 for the number of "pinned" characters is now a server-specific setting rather than a global installation-wide setting

  • Version 1.2.1 (2021/05/03)
    • The Advanced Filters plugin can now filter by account
    • It is now possible to configure the number of high-priority "pinned" characters whose detailed chapter knowledge information is displayed in the tooltips of chaptered motifs, in addition to that of the current character; originally, this was hard-coded to one
    • LibCharacterKnowledge updated to version 1.2.0

  • Version 1.2.0 (2021/05/02)
    • Revamped the display of motifs in the browser UI; this was done to address a number of issues:
      • Inconsistent formats of item names interfering with sort (French version)
      • Inaccuracies in the in-game names of motif items (French version)
      • New motifs that lack a full book item for use in the browser listing (e.g., Ancestral Akaviri)
      • The inability to sort by the name of the motif (the motif number was not in a separate column, so sorting was possible only on the motif number and not the name of the style)

  • Version 1.1.8 (2021/04/20)
    • Added support for Update 30 (Blackwood)

  • Version 1.1.7 (2021/03/16)
    • LibCharacterKnowledge updated to version 1.0.6

  • Version 1.1.6 (2021/03/09)
    • LibCharacterKnowledge updated to version 1.0.5

  • Version 1.1.5 (2021/03/04)
    • LibCharacterKnowledge updated to version 1.0.4

  • Version 1.1.4 (2021/02/28)
    • It is now possible for external addons to add context menu items to this addon's browser UI
    • LibExtendedJournal updated to version 1.1.0

  • Version 1.1.3 (2021/02/27)
    • LibCharacterKnowledge updated to version 1.0.3

  • Version 1.1.2 (2021/02/26)
    • Added French localization by @jakez31
    • LibCharacterKnowledge updated to version 1.0.2

  • Version 1.1.1 (2021/02/26)
    • Browser: To improve clarity, recipes and furnishing plans will now be listed by their resulting crafted items, thus hiding the prefix (i.e., "Recipe", "Praxis", etc. will now be hidden); for furnishing plans, the hidden prefix can still be matched in the search filter
    • Browser: Fixed an issue causing the "-" special search term to exclude partially-completed motif styles

  • Version 1.1.0 (2021/02/25)
    • Browser: Since special provisioning recipes are level-agnostic, the level information for these recipes have been replaced with sourcing information
    • Browser: For recipes and furnishing plans, it is now possible to link the resulting crafted items in chat, via the right-click context menu
    • Browser: "+" or "-" can now be used as special search terms to filter for known and unknown items, respectively; for example, "desk +" can be used to find all known desk plans, "ambrosia -" can be used to find all unknown ambrosia recipes, and "+" by itself will hide all unknown items
    • LibCharacterKnowledge updated to version 1.0.1

  • Version 1.0.0 (2021/02/25)
    • Initial version
Optional Files (0)


Archived Files (34)
File Name
Version
Size
Uploader
Date
1.3.8
56kB
code65536
07/28/22 06:22 AM
1.3.7
56kB
code65536
06/06/22 06:21 AM
1.3.6
56kB
code65536
04/19/22 06:40 PM
1.3.5
56kB
code65536
04/11/22 03:10 PM
1.3.4
55kB
code65536
03/30/22 09:38 AM
1.3.3
55kB
code65536
03/09/22 09:17 AM
1.3.2
55kB
code65536
03/02/22 09:58 PM
1.3.1
55kB
code65536
02/25/22 07:55 AM
1.3.0.1
55kB
code65536
02/18/22 09:54 AM
1.2.12
51kB
code65536
10/10/21 05:39 AM
1.2.11
51kB
code65536
10/01/21 06:00 AM
1.2.10
50kB
code65536
09/28/21 10:26 PM
1.2.9
50kB
code65536
08/05/21 06:18 AM
1.2.8
50kB
code65536
08/02/21 08:10 PM
1.2.7.1
50kB
code65536
07/31/21 06:37 AM
1.2.7
50kB
code65536
07/14/21 07:05 AM
1.2.6
50kB
code65536
07/14/21 02:34 AM
1.2.5
49kB
code65536
06/03/21 03:39 AM
1.2.4.1
49kB
code65536
06/01/21 04:52 AM
1.2.4
49kB
code65536
05/20/21 06:55 PM
1.2.3
48kB
code65536
05/12/21 09:43 AM
1.2.2
48kB
code65536
05/03/21 06:41 PM
1.2.1
48kB
code65536
05/03/21 12:32 PM
1.2.0
47kB
code65536
05/02/21 06:16 PM
1.1.8
46kB
code65536
04/20/21 01:33 PM
1.1.7
46kB
code65536
04/03/21 05:34 AM
1.1.6
46kB
code65536
03/09/21 08:13 AM
1.1.5
45kB
code65536
03/04/21 10:37 AM
1.1.4
45kB
code65536
02/28/21 07:47 AM
1.1.3
45kB
code65536
02/27/21 09:59 AM
1.1.2
45kB
code65536
02/26/21 01:25 PM
1.1.1
42kB
code65536
02/26/21 06:16 AM
1.1.0
42kB
code65536
02/25/21 08:57 PM
1.0.0
41kB
code65536
02/25/21 09:32 AM


Post A Reply Comment Options
Unread 11/30/22, 03:08 AM  
Baertram
Super Moderator
 
Baertram's Avatar
ESOUI Super Moderator
AddOn Author - Click to view AddOns

Forum posts: 4264
File comments: 5372
Uploads: 74
Hey code65536,

I got this report about a recipe filter and I guess your filter plugin maybe the one throwing the error here?

Originally Posted by M-ree
When viewing bank inventory, if I choose Unknown -> (specific character) from the drop-down on the Consumables -> Recipes tab, then right-click and choose Invert Filter: (character), the inversion does not apply, giving following message in the chat window:
[08:31] [AF]Original callback function of dropdown entry was not found for filterType 2!

It works correctly when viewing the general inventory, or e.g., guild banks.
Please have a look if you can help M-Ree here, if it's your plugin she is using.

As I find the time I'll see if something needs to be fine-tuned directly at AF there too.
But for the moment all filter plugins work so I'm not sure why the invertion with this one wouldn't.
Last edited by Baertram : 11/30/22 at 03:10 AM.
Report comment to moderator  
Reply With Quote
Unread 11/30/22, 03:08 AM  
M-ree

Forum posts: 2
File comments: 419
Uploads: 0
When viewing bank inventory, if I choose Unknown -> (specific character) from the drop-down on the Consumables -> Recipes tab, then right-click and choose Invert Filter: (character), the inversion does not apply, giving following message in the chat window:
[08:31] [AF]Original callback function of dropdown entry was not found for filterType 2!

It works correctly when viewing the general inventory, or e.g., guild banks.
Report comment to moderator  
Reply With Quote
Unread 11/29/22, 07:24 AM  
thoems88

Forum posts: 0
File comments: 6
Uploads: 0
Hi there, this is really a great addon.
Would it be possible to have more groups or to be able to set the order of the characters in the same group?
I really have a lot of characters^^
tyvm
Report comment to moderator  
Reply With Quote
Unread 11/27/22, 02:50 AM  
TaxTalis
AddOn Author - Click to view AddOns

Forum posts: 0
File comments: 186
Uploads: 2
Came here from Loot Log, love the item tooltips showing which other motif pages I am missing, wonderful!
Is there or could there be an option to always only show the highest priority character instead of always including the current character?
Many thanks!

EDIT: As it maybe is just me wishing for this functionality, I quickly changed Tooltips.lua line 26 from
local includedCharIds = { [CharacterKnowledge.charId] = true }
to
local includedCharIds = {}
on my end.

Clearly written and well understandable code
Last edited by TaxTalis : 11/27/22 at 03:21 AM.
Report comment to moderator  
Reply With Quote
Unread 11/25/22, 11:01 PM  
Octopuss
 
Octopuss's Avatar

Forum posts: 163
File comments: 769
Uploads: 0
I think I might have found a bug.
Let's say you have guild store opened and you create a motif page reference in the chat.
If you click on the chat link, this addon shows its info in the "popup" window - BUT then if you move over any page on the guild trader, the knowledge info disappears from the first window and shows up on the mouse over instead. The latter part makes sense, but why is it removed from the first one?
Report comment to moderator  
Reply With Quote
Unread 11/24/22, 11:47 AM  
Morwo1122

Forum posts: 0
File comments: 5
Uploads: 0
is there a preview feature for motifs, styles or funrishings? i might have overseen it
Report comment to moderator  
Reply With Quote
Unread 11/03/22, 02:03 PM  
iFedix
 
iFedix's Avatar
AddOn Author - Click to view AddOns

Forum posts: 11
File comments: 228
Uploads: 1
Hey! Would it be possible to add an info (for example in a tooltip) of where the selected motif drop and starting when? It would be extremely useful to start farming it and from when.. Thank you!
Report comment to moderator  
Reply With Quote
Unread 10/24/22, 03:04 PM  
Mysssy

Forum posts: 0
File comments: 6
Uploads: 0
Originally Posted by code65536
Originally Posted by Inspector_Miles
Do you intend add styles from crown crates and another, which do not apply to motifs?
Outfit styles are account-wide and not character-specific and would be inappropriate for an addon that tracks character-specific knowledge.
Thats really sad, because was thinking the same, that it would be really nice to have such an nice overview of the styles and the "known" Tooltip aswell on style pages. Because i really love the mod and the nice compact overview!
Is it just not possible to do or is it, that you dont want it in your mod because of the "character specific knowledge" ?
Report comment to moderator  
Reply With Quote
Unread 09/24/22, 04:08 AM  
Inspector_Miles

Forum posts: 0
File comments: 15
Uploads: 0
Originally Posted by code65536
Outfit styles are account-wide and not character-specific and would be inappropriate for an addon that tracks character-specific knowledge.
Is there a way to keep track of these outfits like in Event Collectibles?
Report comment to moderator  
Reply With Quote
Unread 09/23/22, 01:46 PM  
code65536
AddOn Author - Click to view AddOns

Forum posts: 19
File comments: 336
Uploads: 37
Originally Posted by Inspector_Miles
Do you intend add styles from crown crates and another, which do not apply to motifs?
Outfit styles are account-wide and not character-specific and would be inappropriate for an addon that tracks character-specific knowledge.
Report comment to moderator  
Reply With Quote
Unread 09/18/22, 09:12 AM  
Inspector_Miles

Forum posts: 0
File comments: 15
Uploads: 0
Do you intend add styles from crown crates and another, which do not apply to motifs?
Report comment to moderator  
Reply With Quote
Unread 09/06/22, 03:06 PM  
code65536
AddOn Author - Click to view AddOns

Forum posts: 19
File comments: 336
Uploads: 37
Originally Posted by Zenapop
This is probably a dumb question. But how do you access this master list of recipes/blueprints/praxis etc to see which ones each of your characters has?
There are three different ways to access the Character Knowledge browser (which is available only in keyboard mode; I don't have a gamepad so I can't develop for that mode)... pick whichever one is most convenient for you:
  1. Type "/ck" (without the quotes) into your chat.
  2. Make a keybind for Character Knowledge (or the Extended Journal, which CK is a part of)
  3. Access the Extended Journal (which CK is a part of) from the strip of icons at the top of the screen (this is where you have things like Quest Journal, Inventory, Map, etc.)
Report comment to moderator  
Reply With Quote
Unread 09/06/22, 09:07 AM  
Zenapop

Forum posts: 0
File comments: 8
Uploads: 0
This is probably a dumb question. But how do you access this master list of recipes/blueprints/praxis etc to see which ones each of your characters has?
Report comment to moderator  
Reply With Quote
Unread 07/05/22, 05:44 AM  
remosito
AddOn Author - Click to view AddOns

Forum posts: 29
File comments: 249
Uploads: 3
chapterknown per character feature idea: quick hack

Howdie,

couldnt resist and look at your code :-)

Code:
function CharacterKnowledge.AddTooltipExtension( tooltip, itemLink, server, charIdMotif )
	-- Abort if the item is not something we can handle
	local category = LCK.GetItemCategory(itemLink)
	if (category == LCK.ITEM_CATEGORY_NONE) then return end

	-- Initialize
	local pinnedChars = CharacterKnowledge.serverVars.tooltips.pinnedCharsForChapters
	local itemColors = CharacterKnowledge.vars.tooltips.itemColors
	local charColors = CharacterKnowledge.vars.tooltips.charColors
	LEJ.TooltipExtensionInitialize(true)

	local knownList = {}

	-- Motif knowledge sections
	if (category == LCK.ITEM_CATEGORY_MOTIF) then
		local items = LCK.GetMotifItemsFromStyle(LCK.GetStyleAndChapterFromMotif(itemLink))

		if (items and #items.chapters > 0) then
			local includedCharIds = { [CharacterKnowledge.charId] = true }
			if (charIdMotif) then
				includedCharIds[charIdMotif] = true
			end
			for i, character in ipairs(LCK.GetItemKnowledgeList(itemLink, server, includedCharIds)) do
					local chapters = { }
					local known = 0
					knownList[character.id] = 0
					for _, chapter in ipairs(LCK.GetMotifChapterNames()) do
						local knowledge = LCK.GetItemKnowledgeForCharacter(items.chapters[chapter.id], server, character.id)
						if (LCK.IsKnowledgeUsable(knowledge)) then
							if (i <= pinnedChars or includedCharIds[character.id]) then 
								table.insert(chapters, string.format("|c%06X%s|r", itemColors[knowledge], chapter.name))
							end
							if (knowledge == LCK.KNOWLEDGE_KNOWN) then
								known = known + 1
								knownList[character.id] = knownList[character.id] + 1
							end
						end
					end

					if (#chapters > 0) then
						LEJ.TooltipExtensionAddSection(
							string.format("%s (%d/%d)", character.name, known, #chapters),
							(known < #chapters) and table.concat(chapters, ", ") or string.format("|c%06X%s|r", itemColors[LCK.KNOWLEDGE_KNOWN], GetString(SI_ACHIEVEMENTS_TOOLTIP_COMPLETE))
						)
					end
			end
		end
	end

	-- Characters section
	local characters = LCK.GetItemKnowledgeList(itemLink, server)
	if (#characters > 0) then
		local results = { }
		local found = 0

		for _, character in ipairs(characters) do
			if (character.id == CharacterKnowledge.charId) then
				if knownList[character.id] then
					table.insert(results, string.format("|c%06X|l0:1:1:1:1:%06X|l%s(%s)|l|r", charColors[character.knowledge], charColors[character.knowledge], character.name, knownList[character.id]))
				else
					table.insert(results, string.format("|c%06X|l0:1:1:1:1:%06X|l%s|l|r", charColors[character.knowledge], charColors[character.knowledge], character.name))
				end
			else
				if knownList[character.id] then
					table.insert(results, string.format("|c%06X%s(%s)|r", charColors[character.knowledge], character.name, knownList[character.id]))
				else
					table.insert(results, string.format("|c%06X%s|r", charColors[character.knowledge], character.name))
				end
			end
			if (character.knowledge == LCK.KNOWLEDGE_KNOWN) then
				found = found + 1
			end
		end

		LEJ.TooltipExtensionAddSection(
			string.format("%s (%d/%d)", GetString(SI_CK_TT_HEADER), found, #characters),
			table.concat(results, ", ")
		)
	end

	LEJ.TooltipExtensionFinalize(tooltip)
end
in short what I did is:

- new var knownList that stores how many chapters are known per character for given motif
- move the "if (i <= pinnedChars or includedCharIds[character.id]) then" further down/in just around the table.insert, so known values are calcualted for all chars. But detailed output is done as before...
- for character knowledge section. if there is a known value in list. add value in paranthesis after character name. if no info about chapter knowledge for motif (or if not motif), then output as is...


not pretty as a hack...but seems to work on my end....

cheers

remosito
Report comment to moderator  
Reply With Quote
Unread 07/04/22, 06:04 AM  
remosito
AddOn Author - Click to view AddOns

Forum posts: 29
File comments: 249
Uploads: 3
feature idea

Howide,

just came accross your addons and was able to replace a few others that did tooltip and marking of inventory. Awesome.

maybe easiest to explain the feature idea is describe the use case?

Say I am at a trader and I see a cheap motif. Your addon tells me which of my characters already have it and which don't. What I am kinda missing as information is which of my characters has how many chapters of the given motif already. So I can easily pass it to the right one to fill out it's motif and get closer to the 50 needed for better master writ chances.

The detailed view can do it for 6 of my characters. But I have 10. And the detailed breakdown uses a lot of space.

So my feature request is to augment the character overview in the tooltip from

"charA, charB, charC..charZ" to "charA(#chapters), charB(#chapters),..charZ(#chapters)"

Uses way less space than the detailed view and would go beyond the limit of 6.

color coding is perfect as it is. Pretty sure you are already tracking chapter knowledge per motif on all chars (from the detailed view). So probably already have all the info in hand.

You give that info for the current character in the form of (#chapter/#totalnumber_chaptersofmotif). I feel adding the /#totalnumber_chaptersofmotif for every character would be redundant and just "waste" space.

Even more absolutely awesome would be to add "number of full motifs a character knows"


so "charA(#chapter,#fullMotifs), ...charZ(#chapter,#fulMotifs)"

not sure though if you are tracking per char how many full motifs are known though...so might be more effort.

with that information I can then make the best decision if to buy the motif page. And which of my characters to pass it to. For optimising getting them all to 50. Normally if I get a motif I would want to pass it on to the character where it would fill the given motif. But if another char is close to the 50. Might make more sense to rush that one to the final goalpost....

anyway..great addons...thanks for all your work :-)
Last edited by remosito : 07/04/22 at 06:08 AM.
Report comment to moderator  
Reply With Quote
Post A Reply



Category Jump:

Support AddOn Development!

You have just downloaded by the author . If you like this AddOn why not consider supporting the author? This author has set up a donation account. Donations ensure that authors can continue to develop useful tools for everyone.