Havent touched this game in forever (prefer the first), but wanna try to give it another shot. However, before I can begin: what's the consensus on the best history/legacy options? I don't wanna impair my ability to enjoy this game because I missed something because of it.
Yes, it will impair my ability to enjoy the game if I find out later I lost something I would have wanted to have otherwise.
more seriously, the non-"everything bad" pre-built legacies generally get you everything in the game, whereas if you import or do your own custom history you could easily choose to resolve quests and story points in ways where you deny yourself unique stuff. the one exception that i can think of is the Devil of Caroc plate, only some of the pre-built histories will get you that, and i'm only pretty certain of "everything good" option being one of them. (there may be another)
edit: you won't be able to get "everything" using a pre-built history, because the berath option (fair and balanced) is the only way to get the unique consumable "berath's bell", but also impossible to get devil of caroc breastplate. similarly i don't think there's any other way to get hylea's consumable without benefiting her in the legacy, which is mutually exclusive with berath's bell. can be important for e.g. a no-rest or low-rest run where the hylea's consumable is very very good.
As I recall my custom minmax history involves following Hylea, because I'm benevolent like that. It also involves getting the bonuses from Heritage Hill and the Skaen blood pool, because I'm benevolent like that. And then whatever will let me get the breastplate and put a hat on Aloth's head for me to borrow.
My Deadfire mods
Out With The Good: The mod for tidying up your Deadfire combat tooltip.
Waukeen's Berth: Make all your basic purchases at Queen's Berth.
Carrying Voice: Wider chanter invocations.
Nemnok's Congregation: Lets all priests express their true faith.
For a normal party run I consider the Devil of Caroc Breastplate to be way, way more important than any temporary consumable effect - and if you like to play a generally benevolent person - like most players do - you can't go wrong with the benevolent pre-set background imo.
1) which God you pledged - hylea is the best for nearly every case because she's the "good" option but more important you get hyleas bounty which is incredibly useful food for most of the game when your skills are lacking, and for many builds remains the best food throughout the game. If you're doing a no rest run which id recommend then hyleas bounty is the best food
2) whether to sacrifice a companion and who. There is no reason not to besides role-playing. The wiki has a list of bonuses under status affects (effigys resentment). Best one varies by build but Sagani is most useful for the largest number of builds
4) aloths starting equipment depends on whether he was made GM of leaden key. If no he has keybreaker scepter, if yes then thaos headdress. The headdress is better unless you need an okay scepter early
The Sky Dragon Wurm is one of the better pets in the early game but is only available depending on your actions to the Sky Dragon. In the unmodded game this is bugged out (search online for details, Nexus has a mod that fixes this iirc) so the history that you have to choose for it doesn't really make sense.
Best practice would be to use the built in tag history bindings/functions. They already handle the table partitioning for you including instances where requested historical data spans multiple partitions.
Here is how I got the equivalent functionality using the system.tag.queryTagHistory function. I think there is room to optimize but functionality wise this does what I want it to (equivalent of the query attached to my original post):
Why is this a history query when you are displaying what appears to be live data? Since there is tag history, presumably there are tags? I would just get the data from the live tags and construct a dataset with system.dataset.toDataSet(). Running in a timer event, writing to a memory tag, so any client can display it.
@pturmel I think this is what you suggested, if so it really helped me simplify. Here is the code which just reads from the tags. I read the tags 3 at a time to simplify the indexing. The good side effect is that when you do it this way, the table automatically shows up with little check marks, which is good.
The code will run much faster if you don't split these up. Read all of them at once. Consider using a project script module top level variable to hold the constructed list of tag paths, so that part won't have to execute every time. (I strongly recommend placing all gateway event code in a project script module, leaving just a one-line function call in the event itself.)
I now have everything written in the project library and running from a gateway timer script. It runs in 30ms. Being able to populate the table with a single tag that has the data aggregated already is super convenient.
I have a table with a bunch of records that users can update. However, I now want to keep a history of their changes just in case they want to rollback. Rollback in this case is not the db rollback but more like revert changes two weeks later when they realized that they made a mistake. The distinction being that I can't have a transaction do the job.
One simple way to keep version history is to create basically an identical table (eg. with _version suffix). Both of the tables would have a version field, which for the main table you increment for every update you do. The version table would have a composite primary key on (id, version).
Whenever you do an update on the actual table, you also INSERT a new row in the version table with duplicate data. Whenever you want to find the version history, all you need to do is something such as SELECT * FROM content_version WHERE id = CONTENT_ID ORDER BY version.
The easiest solution (depending on your specific needs) would probably be to add an on update/insert/delete trigger to your table, so you can perform extra logging when data is inserted/updated/deleted. That way even manual interventions on the db will be covered...
Frustrated's answer is one solution - another is an audit table that records the changes, when, and by whom. It's really a question of approach. If performance on your application tables is critical, and they could grow massively using an 'active row' approach, then the audit table is better, as it would separate the history from the active stuff (and I would hope that fixing user errors is less common than 'normal' transactions).
I would recommend a second table. A super simple and easy way would be to duplicate the schema of each table and a Date/Time Stamp column and "ModifiedByUserID" column that will store what the original data was.
When they make an update to a record, insert a copy of it as a new record (triggers can keep the timestamps current) and then set the old record status to "Archive" and the new one to "Active". If you want, you can also have other audit fields such as "Last Updated timestamp", "Date Archived", "Date Unarchived" (for when you rollback), "Created by User", "Last Modified by User",... If you want a complete history of auditing, you'd need a separate audit table.
For example: assume I create employee table + Car table and in a third table I will record the relation employee car each time it changes (with a date). Of course, this should be supported by a GUI from where I can pick the component (employee and car) of the record that will populate the new table:
I have a document written in iron manuscript ink by my ancestor in 1752. It is a pledge of a club of about 50 teenage(!)young men to walk a Christian life. Exquisite, powerful prose and the writing is of course a work of art. A date in the margin says that the club was started in 1715.
I have had this previously folded treasure flattened at an art conservation place. I know that this original document will fade away if exposed to light, but I am unsure how to safely make copies to hang and enjoy. The art folks said a home scanner would be fine, but a friend of mine advised carefully considering the method first so that I only have to expose it to one blast of light. With the right digital image, I could then make copies identical to the original as well as some that are easier to read for sharing.
So, can you advise me as to what is that best method for copying this document? Do I need to have this done professionally?
Also, I wonder if there would be any interest in researching who these other young men were in history? All their names are beautifully signed on the back.
My apologies for taking so long to answer your email. I was totally consumed with my daughter's wedding, which took place last Saturday (plus days of happiness and large families before and after). It was perfect!
A scan would be fine for reproducing the letter since most recent machines have relatively low lights and---surprisingly enough---18th century paper is far superior to 19th and early-20th century paper (made with an acid that has been eating away at all sorts of books and documents). That way you could make good copies. No need to have this done professionally. However I don't know of anyone who could help you research these young men, other than tracking their names through the historical societies of the town.
Books on world history, including American, Chinese, French, Russian, German or British history. The big global conflicts of the 20th century remain a key source of fascination, and we have a large number of book recommendations on World War II.
3a8082e126