I just uploaded the initial public version (v1.1.2) of my new Deed Tracker plugin over at lotrointerface.com. I was first inspired by the Hytbold Assistant plugin by Galuhad, which gave me a great UI starting point, combined with some inspiration on how to detect completed deeds.
The main window shows hierarchical lists of deeds for each page & tab, with quick references for LOTRO Points, Virtue XP, and reputation, and a character selection drowdown to view the Deed Tracker status of your other characters on that server.
Unlike the LOTRO notification area, Deed Tracker keeps track of all of your completed deeds, so you can review them at your leisure:
There are many identically-named deeds in pre-Rohan, so you may have to help Deed Tracker figure out which of the seven identically-named Warg-slayers it was you just completed. (Or was it the Quest?)
For the adventurous, I have an experimental feature for detailed objective information in the deed tooltips:
More detailed information is available at lotrointerface.
Last edited by b414213562; Apr 20 2021 at 11:42 AM.
I assume correctly that this tracks deeds using chat messages, so if you ever not save your data (like your client crashes without saving plugin data to disk) your data in the plugin and the game will get out of sync?
Great job on setting that up though, and I foresee it being a pain to keep the list of deeds up to date with every update :-)
I assume correctly that this tracks deeds using chat messages, so if you ever not save your data (like your client crashes without saving plugin data to disk) your data in the plugin and the game will get out of sync?
Great job on setting that up though, and I foresee it being a pain to keep the list of deeds up to date with every update :-)
Great questions!
>I assume correctly that this tracks deeds using chat messages
Yes, the Deed Tracker monitors the "Quest" chat channel, because both quest and deed completion text goes there.
>if you ever not save your data (like your client crashes without saving plugin data to disk) your data in the plugin and the game will get out of sync?
Yes, currently the plugin must be successfully unloaded for changes to be saved. In the near future I wish to add an "auto-save" feature where it saves during a session too.
> I foresee it being a pain to keep the list of deeds up to date with every update :-)
dmorcellet's lotro-data repository has been a very useful resource for finding new deeds in each update.
Fantastic job. I had thought about doing something similar many years ago, but the amount of work needed to set-up and maintain put me off. However there are more resources available now to help keep on top of it, so hopefully it will be manageable Good job.
Yeah, I have found it invaluable, just a shame that it is not available for French and German, makes my life developing Travel Window a bit harder :-)
I reached out to dmorcellet, and he generously generated a deeds.xml in French and German for me to experiment with, because I do want to add French and German support!
At the moment, Deed Tracker expects every deed to have a unique name (example: Slayer of Bree-land) because I wrote it based on an English-speaking perspective. As far as I can tell, though, in both French and German some deeds are conjugated based on the gender of the character (German: Bezwinger des Breelandes (male) or Bezwingerin des Breelandes (female), and French: Exterminateur du Pays de Bree (male) or Exterminatrice du Pays de Bree (female)).
I need to rework the deed-finding logic to either a) know the gender of the character (I think LUA doesn't give access to this, but I could always prompt the user), or b) check each possible deed against the masculine and feminine forms of the name we're checking it against.
Fantastic job. I had thought about doing something similar many years ago, but the amount of work needed to set-up and maintain put me off. However there are more resources available now to help keep on top of it, so hopefully it will be manageable Good job.
My thanks again for the fantastic Hytbold Assistant! I had thought about a deed tracker from time to time in the past, but it wasn't until I was using H.A. that I got really inspired.
Last edited by b414213562; Apr 20 2021 at 02:28 PM.
I'm very excited about two new features this release:
One-click sharing of deed completion with the channel of your choice - great for letting your group know you're done with that slayer deed.
Click the chat bubble to share, and change the channel at the bottom. (Thanks to FowlMap for the inspiration!)
If you use Waypoint, there's now one-click target setting for location-based deed objectives:
Version 1.1.3 release notes:
UI:
Added option to hide deeds that aren't actively available.
Added option to prevent Completion Window from appearing while player is in combat.
Added button on Completion Window to share deed completion with a specified channel.
Added integration with the Waypoint plugin, by adding an arrow next to location-based deed objectives. Click the arrow to update your Waypoint target.
Deeds:
Fixed reputation values for several deeds.
Tweaked summary for Rhovanion / Eastern Rohan / To the Aid of Rohan
Other:
Determining if any given completion is a deed takes less time.
Added an auto-save feature so progress is saved after completing a deed, instead of only when the plugin is unloaded or the character logs off.
When unchecking a deed without reputation, the completion timestamp is now cleared.
Chat commands to open window (/deed, /deeds, and /deedtracker) now work.
Minimize now returns to on-screen if saved position is off-screen.
Corrected issue with Instances / The Grey Mountains "Not Actively Achievable" deeds not being visible.
Removed 20 LP incorrectly assigned to category CRE / Epic / Epic - Volume I - The Shadows of Angmar.
Removed 15 LP incorrectly assigned to category CRE / Reputation / - Durin's Folk -.
Fixed numerous quotes in objectives that were showing up as q.
Lore text was sometimes visually cut off for long lores.
Removed erroneous "0 times" from some item use deed objectives.
Not-actively-achievable deeds were included in completed deed counts but not overall deed counts. Now they are counted for neither.
Fixed bug that prevented Completion Window from opening when option "Do not open the completion window automatically when a deed is completed" was enabled.
Really cool plugin. It'd be neat if there would be a way to use LOTRO Companion's data to populate a character's completed deeds in this. Just a one-way thing to get you started.
Really cool plugin. It'd be neat if there would be a way to use LOTRO Companion's data to populate a character's completed deeds in this. Just a one-way thing to get you started.
I agree! My plan is to eventually try to do this. Until then, remember that when you mark a meta deed like "Deeds of the Shire" complete, Deed Tracker will auto-complete all pre-requisite deeds.
Last edited by b414213562; May 02 2021 at 08:03 AM.
I agree! My plan is to eventually try to do this. Until then, remember that you mark a meta deed like "Deeds of the Shire" complete, and Deed Tracker will auto-complete all pre-requisite deeds.
Too bad since to made my game freeze when I do an achievement. (the freeze occur when the alert for the store point appear)
Will need more testing from my part (I have a lot of plugins and some others always active).
Too bad since to made my game freeze when I do an achievement. (the freeze occur when the alert for the store point appear)
Will need more testing from my part (I have a lot of plugins and some others always active).
Version 1.1.3 makes the deed check faster, so I recommend updating from 1.1.2 if you haven't already. Let me know if this helps!
If you have a lot of characters, then the autosave feature can make the game pause for a moment about 5 seconds after you complete a deed. This is not right away, so probably not your problem.
If you have a lot of characters, then the autosave feature can make the game pause for a moment about 5 seconds after you complete a deed. This is not right away, so probably not your problem.
hum. Can be it. I have a looot of characters.
And 5s is about the time for the store point alert after deed.
I will make tests in 2 weeks, next time I can play.
That could be it. In order for you to be able to see the completion status of other characters, they all have to be stored in one file. Currently, the save data is not very optimized, which might lead to the delay. I will think about how to improve this.
I was really excited to use this, spent about 2 hours checking off the deeds in the plugin that I already completed. Hit a lag spot while updating, the whole system crashed, and when I booted the game back up, all of the deeds were blank again.
I'd consider using this for an all new character as it seems stable there, but was pretty crushed that I lost that 2 hours of work on my main, completionist character, and not willing to risk that again...
Nice work though, seems pretty cool, but like I said, got kinda burnt, and not sure how/why it did that.
That could be it. In order for you to be able to see the completion status of other characters, they all have to be stored in one file. Currently, the save data is not very optimized, which might lead to the delay. I will think about how to improve this.
You do not have to store all the data in one file. Use a separate file for each character as well as one master file that only has the names of the characters - used to know the names of the the .plugindata files for each character. That way you can read ALL the files but only save the one for the current player. That will mean you will have roughly the same amount of time to save one character as a hundred - only the name file will be larger and that one could be optimized to only save when a new character is detected (the current player .plugindata file is nil) or a character has been manually removed from the list (the only way to remove a character - you can also save a .plugindata file with just a single nil value to save a tiny bit of drive space or just leave the character's .plugindata file as is). It sounds like a lot of work but it will significantly improve your save times.
I have had this installed for a couple of weeks but have been putting off manually filling in the stuff I completed before the install.
I was only at L55, so I knew if I got going on it now, the task would not be as complex as if I was a much higher level.
It took me about 20 minutes.
It went pretty smoothly after I got started. It took a few minutes to figure it out, but once I go going, it was a breeze.
Thanks for your efforts. I will use this now when it's time to go and pile up some VXP.
I will be able within a minute or two to figure out where I can gain the most for the least effort, which is why this exists...right?
Keep on developing it.
And start another project.
You seem to enjoy it and you're good at it.
I was really excited to use this, spent about 2 hours checking off the deeds in the plugin that I already completed. Hit a lag spot while updating, the whole system crashed, and when I booted the game back up, all of the deeds were blank again.
Oh no! I'm so sorry you lost your work like that.
Version 1.1.2 only saves when you log off (Or manually unload the plugin), but in version 1.1.3 I added an autosave feature that periodically saves your progress. Could you report back which version you were using? If it was 1.1.2, I hope you will consider updating.
You do not have to store all the data in one file. Use a separate file for each character as well as one master file that only has the names of the characters - used to know the names of the the .plugindata files for each character. That way you can read ALL the files but only save the one for the current player. That will mean you will have roughly the same amount of time to save one character as a hundred - only the name file will be larger and that one could be optimized to only save when a new character is detected (the current player .plugindata file is nil) or a character has been manually removed from the list (the only way to remove a character - you can also save a .plugindata file with just a single nil value to save a tiny bit of drive space or just leave the character's .plugindata file as is). It sounds like a lot of work but it will significantly improve your save times.
:O I hadn't thought about splitting the character save data into multiple files... I think that will be both fast to implement and a great speed-up for both the initial load and periodic saves. Thank you!
Thanks to feedback here and on the Deed Tracker Discord server, I focused on reducing save times for accounts with many characters on one server. When you load Deed Tracker 1.2.1, it will split out each character into its own save file. Autosaving will only save current-character data (instead of every character) reducing how much time it takes.
Version 1.2.1 release notes:
UI:
Added tooltips for overall progress bars.
Adjusted width of objective text to ensure it does not end up under scrollbar.
Now, even with rounding, % complete will not show 100% unless all deeds are complete.
Deeds:
Marked the following CRE / Race & Social deeds as Not Actively Available, Purchase Required: Autumn Adventurer, Goat-herder, Spring in Your Step, Sun-strider, Veteran of the Third Age, and Winter-rider
Marked CRE / Race & Social / The Steeds of Gorgoroth as Not Actively Available, Obsolete
Other:
Changed how character data is stored. Instead of all of it in a single file, there is now a file for each character. This should improve performance during autosaves after completing a deed.
Bugs:
Fixed invalid lookups for Allegiances, which meant they were not auto-checked when completed.
Not-actively-achievable deeds were included in some VXP and LP calculations where they shouldn't have been.
Just a quick update to fix a few issues that LotroInterface user marmi found.
Version 1.2.2 release notes:
Deeds:
Made Allegiance deeds hierarchical.
Fixed Eregion / Dunland / Slayer of Dunland and Rhovanion / Wells of Langflood / Slayer of the Wells of Langflood: They do not require Advanced slayer deeds.
Thanks to feedback here and on the Deed Tracker Discord server, I focused on reducing save times for accounts with many characters on one server. When you load Deed Tracker 1.2.1, it will split out each character into its own save file. Autosaving will only save current-character data (instead of every character) reducing how much time it takes.