Download
(14 Kb)
Download
Updated: 02/11/24 02:18 PM
Pictures
File Info
Updated:02/11/24 02:18 PM
Created:03/21/21 11:05 AM
Monthly downloads:113
Total downloads:4,706
Favorites:21
MD5:
Story Saver
Version: 14
by: f1rex [More]
This AddOn saves history of dialogues, subtitles, books/notes and quest items. Saved data can be displayed with /storysaver command or special keybind in settings

AddOn allows you to:
  • Read saved dialogues with all options and previously selected options
  • Read saved subtitles
  • Read saved books/notes
  • Browse saved quest items
  • Show place of event on map
  • Delete event
  • Filter events by type
  • Fulltext search of events
  • Sort events
  • Configure auto-deletion after specific count of days

Languages (if you want to help with adding new languages and/or supporting them, please, write to me):
  • English (fallback)
  • Ukrainian
  • Russian

Dependencies:
  • LibAddonMenu-2.0
  • LibGPS
  • LibMapPing (optional, although LibGPS requires LibMapPing)

Cautions:
  • Remember to backup your data file periodically, especially do it before AddOn update
  • Reading book/note from Lore Library will add new event to history

GitHub:
For any contributions, please, use https://github.com/powerbq/eso-addon-storysaver

Purpose:
There are times when simply no time/desire/effort to read dialogues or notes (for example in group dungeons). In this case, you would like not to lose plot thread and be able to restore it later. Or when you just want to remember quest or phrase referenced by NPC. AddOn functionality will help you with this
Version 14

- Changed logic of dialogue options getting (GetChatter* functions don't work properly)
- Refactoring


Version 13

- Fixed book reading
- Added gamepad support
- Settings menu
- Delete selected instead of optimize storage
- Ukrainian localization
- Fixes
- Refactoring


Version 12

- Removed external tools
- Fixed book reading for new APIVersion
- Moved all data to account wide saved variables
- Optimize storage instead of deduplication
- Doesn't save dialogues if there is only a guild store option
- Doesn't create dialogue event for body if it already exists in another event
- Adds new options to existing dialogue event
- Stores the date of option adding
- Stores the option type for future using
- Huge of improvements
- Moved old data migration methods to another class
- Other refactoring


Version 11

- Renamed executable and source file (from main.* to cleanup.*)
- Added files for building .exe from .py (Python 3+ with PIP required)


Version 10

- API version update
- Added executable for unused cache cleanup (bin folder). Look .py file for source code


Version 9

- API version update


Version 8

- Minor fixes


Version 7

- Added automatic check for duplicates on new event


Version 6

- Changed character variables schema
- Added quest items event type
- Added manual deduplication
- Improved map functionality (thanks to Alianym)
- Minor improvements and refactoring


Version 5

- Fixed syntax error


Version 4

- Changed max size of book part to 500 characters
- Disabled account variables cleanup


Version 3

- Fixed bug when some books were saving incorrectly (thanks to tiker)


Version 2

- Fixed error during init (thanks to tiker)
Post A Reply Comment Options
Unread 03/22/21, 09:21 AM  
snorunt361
AddOn Author - Click to view AddOns

Forum posts: 3
File comments: 13
Uploads: 1
Thank you very much.

Thank you for making this Addon !!
I like "Story Saver" very much.

This is very nice.
Thank you very much.

----My English is poor. I'm sorry.
Report comment to moderator  
Reply With Quote
Unread 03/22/21, 11:18 AM  
f1rex
AddOn Author - Click to view AddOns

Forum posts: 0
File comments: 17
Uploads: 2
Re: Thank you very much.

Originally Posted by snorunt361
Thank you for making this Addon !!
I like "Story Saver" very much.

This is very nice.
Thank you very much.

----My English is poor. I'm sorry.
You are welcome! And thank you for kind words.
Report comment to moderator  
Reply With Quote
Unread 03/22/21, 01:59 PM  
tiker

Forum posts: 0
File comments: 32
Uploads: 0
This addon does not work for me for some reason. In game, the /storysaver command returns "invalid chat command". Logging out does not create a .lua file in saved variables directory so it seems like it isn't loading. However, looking at the list of addons, it is there, enabled, with all required libraries.

The only thing I see from this addon is the option to set key bindings. I set a key but when pressing, the following error appears:

:1: function expected instead of nil
stack traceback:
:1: in function '(main chunk)'
|caaaaaa<Locals> keybind = "TOGGLE_STORY_SAVER" </Locals>|r

Running on PCNA with English client.
Report comment to moderator  
Reply With Quote
Unread 03/22/21, 02:47 PM  
tiker

Forum posts: 0
File comments: 32
Uploads: 0
Originally Posted by tiker
This addon does not work for me for some reason. In game, the /storysaver command returns "invalid chat command". Logging out does not create a .lua file in saved variables directory so it seems like it isn't loading. However, looking at the list of addons, it is there, enabled, with all required libraries.

The only thing I see from this addon is the option to set key bindings. I set a key but when pressing, the following error appears:

:1: function expected instead of nil
stack traceback:
:1: in function '(main chunk)'
|caaaaaa<Locals> keybind = "TOGGLE_STORY_SAVER" </Locals>|r

Running on PCNA with English client.
Fixed it. In StorySaver.lua, change

EVENT_MANAGER:RegisterForEvent(name, EVENT_ADD_ON_LOADED, StorySaver.OnAddOnLoaded)

to

EVENT_MANAGER:RegisterForEvent(StorySaver.name, EVENT_ADD_ON_LOADED, StorySaver.OnAddOnLoaded)
Report comment to moderator  
Reply With Quote
Unread 03/22/21, 06:56 PM  
f1rex
AddOn Author - Click to view AddOns

Forum posts: 0
File comments: 17
Uploads: 2
Originally Posted by tiker
Originally Posted by tiker
This addon does not work for me for some reason. In game, the /storysaver command returns "invalid chat command". Logging out does not create a .lua file in saved variables directory so it seems like it isn't loading. However, looking at the list of addons, it is there, enabled, with all required libraries.

The only thing I see from this addon is the option to set key bindings. I set a key but when pressing, the following error appears:

:1: function expected instead of nil
stack traceback:
:1: in function '(main chunk)'
|caaaaaa<Locals> keybind = "TOGGLE_STORY_SAVER" </Locals>|r

Running on PCNA with English client.
Fixed it. In StorySaver.lua, change

EVENT_MANAGER:RegisterForEvent(name, EVENT_ADD_ON_LOADED, StorySaver.OnAddOnLoaded)

to

EVENT_MANAGER:RegisterForEvent(StorySaver.name, EVENT_ADD_ON_LOADED, StorySaver.OnAddOnLoaded)
Thank you. Fixed it
Report comment to moderator  
Reply With Quote
Unread 03/22/21, 10:34 PM  
Akopian Atrebates

Forum posts: 9
File comments: 230
Uploads: 0
Been Looking for This

I hate missing all the dialogue on these whirlwind dungeon rushes. Never know what is going on . . . Always wanted this. Thanks.
Report comment to moderator  
Reply With Quote
Unread 03/23/21, 01:55 AM  
f1rex
AddOn Author - Click to view AddOns

Forum posts: 0
File comments: 17
Uploads: 2
Re: Been Looking for This

Originally Posted by Akopian Atrebates
I hate missing all the dialogue on these whirlwind dungeon rushes. Never know what is going on . . . Always wanted this. Thanks.
Thank you for comment. I think best way is to collect Leeching Plate set (Imperial City Prison) and then you can complete most of dungeons in solo without rush. But there are dungeons you can not pass in this way because of mechanics. With best wishes.
Report comment to moderator  
Reply With Quote
Unread 03/23/21, 08:11 AM  
tiker

Forum posts: 0
File comments: 32
Uploads: 0
Another bug to report: Blank books

Some books appear blank in game. Reviewing the saved variables file, the first string is nil with a comment about the length of the string. Here is an example for a book that appears blank when viewing with Story Saver:

Code:
                    ["Fleeing Senchal"] = 
                    {
                        ["85899299-3162"] = 
                        {
                            [1] = nil, -- invalid string value (was your string larger than 2000 characters?)
                            [2] = "maybe we will discover more fear-driven and hubris-driven behavior. That is beyond our control.\n\nWe will start where we are. Move forward. Make each step count.\n\n* * *\nZiss! It has been … decades? I forgot I wrote down my pain in this little journal and tucked it into one of our hidden safeholds. Those were dark days. We were staving off more than the flu back then. We fought off fear and starvation. Lived off the land without destroying it and ourselves. But one thing everyone in that group had in common: We knew we needed to be better. Do better. Have more empathy. Be kind. And learn patience. With others, and most of all with ourselves.\n\nYes, devastation surrounded us for quite a while as we traveled. We saw many behaving badly. We tried to offset that as much as we could, and to some extent, we succeeded. Not as much as we'd like, but the path was the effort, not the result.\n\nI shall leave this little book behind with the hopes that any who pick it up will remember these words: Start where you are. Each moment, and especially when facing the worst things you can imagine, that's all you can do. Start where you are.\n\nRiifa, Itinerant Healer",
                        },
                    },
Report comment to moderator  
Reply With Quote
Unread 03/23/21, 09:06 AM  
tiker

Forum posts: 0
File comments: 32
Uploads: 0
I do like this addon. It has some potential. I currently use an addon named Librarian which I customized a bit but it only tracks books, not quest chatter, etc. I would love to replace that addon with this but...

It really needs a way to prevent logging duplicate events. The number of times I go to the bank, pick up daily crafting quests, guild trader visits, etc. really increases the size of the variables file. It should be pretty easy to implement. Get the hash of the text, if it exists, do not store a new event.

Anyways, I'm still playing around with this addon. I really like the fact that it stores the quest chatter.

Thanks.
Last edited by tiker : 03/23/21 at 09:07 AM.
Report comment to moderator  
Reply With Quote
Unread 03/23/21, 09:09 AM  
f1rex
AddOn Author - Click to view AddOns

Forum posts: 0
File comments: 17
Uploads: 2
Originally Posted by tiker
Another bug to report: Blank books

Some books appear blank in game. Reviewing the saved variables file, the first string is nil with a comment about the length of the string. Here is an example for a book that appears blank when viewing with Story Saver:

Code:
                    ["Fleeing Senchal"] = 
                    {
                        ["85899299-3162"] = 
                        {
                            [1] = nil, -- invalid string value (was your string larger than 2000 characters?)
                            [2] = "maybe we will discover more fear-driven and hubris-driven behavior. That is beyond our control.\n\nWe will start where we are. Move forward. Make each step count.\n\n* * *\nZiss! It has been … decades? I forgot I wrote down my pain in this little journal and tucked it into one of our hidden safeholds. Those were dark days. We were staving off more than the flu back then. We fought off fear and starvation. Lived off the land without destroying it and ourselves. But one thing everyone in that group had in common: We knew we needed to be better. Do better. Have more empathy. Be kind. And learn patience. With others, and most of all with ourselves.\n\nYes, devastation surrounded us for quite a while as we traveled. We saw many behaving badly. We tried to offset that as much as we could, and to some extent, we succeeded. Not as much as we'd like, but the path was the effort, not the result.\n\nI shall leave this little book behind with the hopes that any who pick it up will remember these words: Start where you are. Each moment, and especially when facing the worst things you can imagine, that's all you can do. Start where you are.\n\nRiifa, Itinerant Healer",
                        },
                    },
Hey, thank you again for report, i have uploaded new version. Please, check problematic books again.
Report comment to moderator  
Reply With Quote
Unread 03/23/21, 09:35 AM  
f1rex
AddOn Author - Click to view AddOns

Forum posts: 0
File comments: 17
Uploads: 2
Originally Posted by tiker
I do like this addon. It has some potential. I currently use an addon named Librarian which I customized a bit but it only tracks books, not quest chatter, etc. I would love to replace that addon with this but...

It really needs a way to prevent logging duplicate events. The number of times I go to the bank, pick up daily crafting quests, guild trader visits, etc. really increases the size of the variables file. It should be pretty easy to implement. Get the hash of the text, if it exists, do not store a new event.

Anyways, I'm still playing around with this addon. I really like the fact that it stores the quest chatter.

Thanks.
I will add new features later. First i need to close all questions about possible bugs. One of reasons why i didn't add deduplication is that i don't imagine how it will be. When i become to understand logic of feature and imagine interface for it, half of work is already done.
Report comment to moderator  
Reply With Quote
Unread 03/23/21, 10:59 AM  
tiker

Forum posts: 0
File comments: 32
Uploads: 0
Originally Posted by f1rex
I will add new features later. First i need to close all questions about possible bugs. One of reasons why i didn't add deduplication is that i don't imagine how it will be. When i become to understand logic of feature and imagine interface for it, half of work is already done.
Glad to hear it's planned.

Another bug:
When viewing the list of books, find a book that is in a zone different from the zone you are in and press "M" to show on map. In my case, I'm in Alinor (Summerset) and trying to show the map of a book I found in Clockwork City. The map appears showing my current zone, quickly changes to Clockwork City and then back to Alinor. I tried it a couple of times. Sometimes Clockwork City flashes so fast I can't see it, other times there is a 1 second pause before the map changes back to Alinor.

This might be a conflict with another addon but I'm not sure yet. I'll play around with it more when I have time.
Report comment to moderator  
Reply With Quote
Unread 03/23/21, 11:25 AM  
tiker

Forum posts: 0
File comments: 32
Uploads: 0
Originally Posted by f1rex
Hey, thank you again for report, i have uploaded new version. Please, check problematic books again.
This is still an issue with the new version. Looking at the code, it looks like you are counting 2000 words, not characters.

Edit:
I'm testing a fix for you.

Edit 2:
After running some tests, your code should have worked. My own tests also failed. Even though the game reports character lengths of 2000 characters, it still fails when you are close to that number.

I reduced 2000 to 1024 and it works so far. I'm not sure what the magic number is but I'm sticking with 1024 for now.
Last edited by tiker : 03/23/21 at 12:16 PM.
Report comment to moderator  
Reply With Quote
Unread 03/23/21, 01:37 PM  
f1rex
AddOn Author - Click to view AddOns

Forum posts: 0
File comments: 17
Uploads: 2
Originally Posted by tiker
Originally Posted by f1rex
Hey, thank you again for report, i have uploaded new version. Please, check problematic books again.
This is still an issue with the new version. Looking at the code, it looks like you are counting 2000 words, not characters.

Edit:
I'm testing a fix for you.

Edit 2:
After running some tests, your code should have worked. My own tests also failed. Even though the game reports character lengths of 2000 characters, it still fails when you are close to that number.

I reduced 2000 to 1024 and it works so far. I'm not sure what the magic number is but I'm sticking with 1024 for now.
Can you tell me where i can find this book to reproduce situation? :-)
Report comment to moderator  
Reply With Quote
Unread 03/23/21, 05:12 PM  
tiker

Forum posts: 0
File comments: 32
Uploads: 0
Originally Posted by f1rex
Can you tell me where i can find this book to reproduce situation? :-)
Sort of.

In Clockwork City, head to the crafting building. Click on the various bookshelves. You'll get random books but the books "The Truth in Sequence: Volume 10" and "The Truth in Sequence: Volume 1" will give you this problem. Typically, I was able to get one or both books without any problems on the second floor of the crafting building, middle section.

What I figured out is that counting the number of characters in the array in memory is not the same when written to file. Take this for example:
Code:
                    ["Note to Throne Keeper Farvad"] = 
                    {
                        ["1714440070-1077"] = 
                        {
                            [1] = "Farvad, \n\nYesterday I happened to pass by the mausoleum of King Ra Boshek and decided to stop by, as I've always admired the Statues of Ward and Warning that guard its entrance. I was shocked to find the crypt in a state of abject negligence. Sand choked the doorway, prayer wheels were faded or missing, and someone had scrawled \"Yazhmeena is Indecorous!\" on the lintel. \n\nThis is entirely unacceptable. Ra Boshek's crypt is in your quadrant of the necropolis, and I must hold you responsible for this malfeasance. I am well aware that, since that incident with the drunken scholar (may Satakal smite him), the remains of Ra Boshek are no longer in residence in his mausoleum. This is no excuse: the re-consecration of His Majesty's remains—what the Ash'abah left of him, anyway—is nearly complete, and his Rite of Re-Interment is to take place at Mid Year. I expect to see his mausoleum restored to pristine condition by Loredas at the latest, or you won't be spending any Fredas nights in Bergama for the foreseeable future. \n\n— Priestess Yazhmeena, High Throne Keeper",
                        },
                    },
Going by the key, this should be 1077 characters. Copy / paste to your favorite text editor and count the characters, you'll find 1079 characters. I don't know if it is the escape characters that make it longer writting to the file or not but it is longer. You might be able to get away with reducing 2000 to 1990 but without knowing why there are extra characters, who knows if that'll work when translating to other languages.
Report comment to moderator  
Reply With Quote
Post A Reply



Category Jump: