[v1.7.0+] Automatic Notes

A place to post your add ons and ideas for them

Moderator: Moderator

Message
Author
Zizzo
Sher'Tul Godslayer
Posts: 2362
Joined: Thu Jan 23, 2003 8:13 pm
Location: A shallow water area south of Bree
Contact:

[v1.7.0+] Automatic Notes

#1 Post by Zizzo »

A comment on the Steam forum reminded me of an idea I'd occasionally considered working up. See, one of the reasons I created my Notes to Self addon was to take notes about chests and vaults and zones and similar stuff that I wanted to go back to later when I figured I was strong enough. And it works great for that — until I forget to either make a note of the thing when I see it or remove the note after I've done the thing. :oops: Automating that sort of note taking seemed appealing, but I kept getting stuck trying to figure out how to add that functionality to Notes to Self.

Now, though, I think I've got a handle on how to do it as a separate addon. It'll probably be a while before I can release it, because I want to run it through at least most of a game to test as much of the note taking as I can, but I figured I'd take the opportunity to collect some feedback.

So, here's what I'm attempting to collect notes for so far:
  • Chests, graves and doombringer pedestals; digestive sacks and tentacle trees from Cults; demon statues from Ashes; and conduits from the EoR Dominion Port.
  • Vaults, both the on-level kind and the "hidden vault" sub-zone kind.
  • Speaking of sub-zones, stuff like damp caves, intimidating caves, sealed fearscape/naga portals and the temporal rift in Daikara.
  • Some quest-related stuff, like Tempest Peak and the Sher'tul farportal.
  • Glyph sequences from Cults, if you've seen all four glyphs on the level.
  • Assorted non-main-plot "side" zones, like Ruined Dungeon or Elven Ruins, as we encounter them on the map. Currently, the list of zones we take notes for is hard-coded; I may need to figure out how to make that user-configurable. I am somewhat proud of being able to catch all five of the server-push zones, though (Santascape, Pikataclysm, Hallowed Fields, Bearscape, Poosh).
The list of collected notes will pop up on game load like Notes to Self does (configurable via game option), and can be brought up manually with a keybinding (configurable in the usual manner).

First and most obvious question, then: anything I'm missing? I keep going back and forth on whether to collect notes for backup guardians, for instance (and in particular, whether to note the ones we've killed or the ones we haven't killed).

Second question: I figure this can maybe go into ZOmnibus, but do we think it would fall under the "protection from not paying attention" exception to exclude it from ZOmnibus Lite? (For that matter, is this maybe too spoily to even go in ZOmnibus?)
Last edited by Zizzo on Tue Sep 27, 2022 1:27 am, edited 1 time in total.
"Blessed are the yeeks, for they shall inherit Arda..."

nsrr
Sher'Tul
Posts: 1125
Joined: Mon Sep 21, 2015 8:45 pm
Location: Middle of Nowhere

Re: [RFC] Automated Notes

#2 Post by nsrr »

I'd say people would like notes on guardians.

In my opinion it would be ok in ZOmnibus assuming it only makes notes on things you have seen (e.g. a note that you killed Prox or saw Prox but didn't kill him would be ok, but a note that you haven't killed the fallen paladin as soon as you return West, before even seeing him, would be too spoily).

visage
Archmage
Posts: 340
Joined: Fri Jan 10, 2014 4:09 pm

Re: [RFC] Automated Notes

#3 Post by visage »

Zizzo wrote: Fri Aug 26, 2022 12:29 am First and most obvious question, then: anything I'm missing?
Stuff I'm always writing myself the same notes about, over and over:
  • Any zone I've entered but not killed the boss of. (...or have received a quest for but not entered, such as the spider cave.)
  • To go shopping every tenth level.
  • To do the Arena before level 13.
...and one that I now realize I really should be leaving myself
  • To hang onto an arcane artifact.
Honestly, one thing in this space that would be really convenient would be to turn Cathbald's zone order into a checklist view. I think getting the UI right on that would not necessarily be obvious, though.

Zizzo
Sher'Tul Godslayer
Posts: 2362
Joined: Thu Jan 23, 2003 8:13 pm
Location: A shallow water area south of Bree
Contact:

Re: [RFC] Automated Notes

#4 Post by Zizzo »

nsrr wrote: Fri Aug 26, 2022 5:21 pm I'd say people would like notes on guardians.
Yeah, I'm leaning that way too. Will be a bit tricky, but workable.
nsrr wrote: Fri Aug 26, 2022 5:21 pm In my opinion it would be ok in ZOmnibus assuming it only makes notes on things you have seen
Right, that's the design; the note collection for a level is pretty much literally "for each map grid flagged as having been seen by the player, if it's a chest, increase chest count by 1, if it's a zone entrance, make a note of it, et cetera."
nsrr wrote: Fri Aug 26, 2022 5:21 pm (e.g. a note that you killed Prox or saw Prox but didn't kill him would be ok,
Wait, is that something people would want to keep notes on?
nsrr wrote: Fri Aug 26, 2022 5:21 pm but a note that you haven't killed the fallen paladin as soon as you return West, before even seeing him, would be too spoily).
Fair point, so backup guardians we've killed, then.


visage wrote: Sat Aug 27, 2022 3:54 am Stuff I'm always writing myself the same notes about, over and over:
  • Any zone I've entered but not killed the boss of. (...or have received a quest for but not entered, such as the spider cave.)
Hmm, keying on actually killing the boss could be tricky, especially for stuff like damp caves where the boss is a randboss. What I'm doing for now is keying on whether the player has visited the zone. For quests, I'm currently handling Tempest Peak, the Krog rescue, and parts of the Sher'tul fortress quest. (Spider cave? Oh, do you mean Ardhungol? That would probably be covered under "unvisited zones".)
visage wrote: Sat Aug 27, 2022 3:54 am
  • To go shopping every tenth level.
  • To do the Arena before level 13.
Now, that's verging into the sort of the sort of thing that kept flummoxing me when I was trying to figure out how to add this to Notes to Self, because it builds to a more general "on condition X, add note Y" infrastructure. I may try doing that in yet another separate addon, if I can figure out how.
visage wrote: Sat Aug 27, 2022 3:54 am Honestly, one thing in this space that would be really convenient would be to turn Cathbald's zone order into a checklist view. I think getting the UI right on that would not necessarily be obvious, though.
Yeah, I figured it would come to this. :| I guess we'll need a list of every zone the player knows about (from world.seen_zones{}), with selections for which ones the player wants to get a note about if it it's been seen but not visited? I think I can put that in a game options configuration dialog.

[rereads] …or wait, do you mean a "this is where you should go next" note based on where you've been so far? That seems like it would vary too much by playstyle.
"Blessed are the yeeks, for they shall inherit Arda..."

visage
Archmage
Posts: 340
Joined: Fri Jan 10, 2014 4:09 pm

Re: [RFC] Automated Notes

#5 Post by visage »

Zizzo wrote: Tue Aug 30, 2022 1:19 am [rereads] …or wait, do you mean a "this is where you should go next" note based on where you've been so far? That seems like it would vary too much by playstyle.
No, I was imagining a big checklist of every zone in the game, and thinking that was a mess from a UI perspective.
Zizzo wrote: Tue Aug 30, 2022 1:19 am
visage wrote: Sat Aug 27, 2022 3:54 am Honestly, one thing in this space that would be really convenient would be to turn Cathbald's zone order into a checklist view. I think getting the UI right on that would not necessarily be obvious, though.
Yeah, I figured it would come to this. :| I guess we'll need a list of every zone the player knows about (from world.seen_zones{}), with selections for which ones the player wants to get a note about if it it's been seen but not visited? I think I can put that in a game options configuration dialog.
Hmm, thinking about this a bit more:
  • I like the idea of only adding a zone once it's been seen, in the general case.
  • I would personally find it really useful if "...and now go here for the main questline" zones got added to the checklist even if not yet seen.
  • I would love to see zones that I'm done with (except for the backup guardian) vanish from this checklist... but then I'd want a way to bring back zones I'd dismissed them via misclick.
  • I suppose that an alternate to a dismiss mechanism that wouldn't be bad would be for the top of the checklist to be where new zones get added (or is where later zones appear), such that as the checklist fills up with completed zones they're towards the bottom of the list.

Zizzo
Sher'Tul Godslayer
Posts: 2362
Joined: Thu Jan 23, 2003 8:13 pm
Location: A shallow water area south of Bree
Contact:

Re: [RFC] Automated Notes

#6 Post by Zizzo »

visage wrote: Tue Aug 30, 2022 11:50 am Hmm, thinking about this a bit more:
  • I like the idea of only adding a zone once it's been seen, in the general case.
  • I would personally find it really useful if "...and now go here for the main questline" zones got added to the checklist even if not yet seen.
  • I would love to see zones that I'm done with (except for the backup guardian) vanish from this checklist... but then I'd want a way to bring back zones I'd dismissed them via misclick.
  • I suppose that an alternate to a dismiss mechanism that wouldn't be bad would be for the top of the checklist to be where new zones get added (or is where later zones appear), such that as the checklist fills up with completed zones they're towards the bottom of the list.
…Okay, I'm no longer sure we're talking about the same thing. Let me attach a screenshot to show where I'm going with this (this is what I've set aside for use as the Steam page image):
hmm.jpg
hmm.jpg (125.08 KiB) Viewed 13287 times
Of interest for the proximate discussion is the "Unvisited zones of interest" section. This is basically a list of all zone entrances on the worldmap that:
  • are on a map grid that the player has seen
  • the player has not yet visited
  • (for now) are on a hard-coded list of "interesting" zones
The list is updated automatically every time you enter or exit the world map (these are, after all, meant to be automated notes); thus, for instance, after you've visited a zone, it will no longer be included in this list.

Now, what concerns me here is that "hard-coded list" part. It seems likely to me that different players will have different ideas about what zones should appear in this list. [For me, for instance, the T1 zones don't need to be there, because I'm going to do them directly anyway without needing to be reminded, but others might disagree.] So I figure that what zones are included in this list will probably need to be configurable as a game option.
"Blessed are the yeeks, for they shall inherit Arda..."

visage
Archmage
Posts: 340
Joined: Fri Jan 10, 2014 4:09 pm

Re: [RFC] Automated Notes

#7 Post by visage »

Zizzo wrote: Thu Sep 01, 2022 1:10 am …Okay, I'm no longer sure we're talking about the same thing. Let me attach a screenshot to show where I'm going with this:
Basically, I think that if you end up turning a zone order document into a checklist, it's not going to be entirely automated. Similarly, from what you're saying it'd be a pain to implement my some of my common use cases in a completely-automated fashion, so I wandered off down thinking about the model where adding things to the list is automated but removing them is frequently not. ...and then for me I think in any model I'd appreciate having the ability to say "no, I don't want that tracked anymore", which of course complicates the UI by wanting to have a way to remove entries (and then, ideally, by having a way to undo a removal).
Zizzo wrote: Thu Sep 01, 2022 1:10 am Now, what concerns me here is that "hard-coded list" part. It seems likely to me that different players will have different ideas about what zones should appear in this list. [For me, for instance, the T1 zones don't need to be there, because I'm going to do them directly anyway without needing to be reminded, but others might disagree.] So I figure that what zones are included in this list will probably need to be configurable as a game option.
For what it's worth, I personally wouldn't get much out of "here are zones you've seen but not visited" because I can glance at the map and see that information. The rest of the stuff you're talking about doing would be absolutely lovely to have automated, though. :)

PseudoLoneWolf
Wyrmic
Posts: 251
Joined: Tue Jan 03, 2017 7:12 pm

Re: [RFC] Automated Notes

#8 Post by PseudoLoneWolf »

I am not a modder, merely an interested bystander, but I have some ideas. This would probably function best in its own separate note window, creating a Locations view rather than overstuffing the Notes view.

A list is created of all area entrances the player has seen, or any areas the player is directed to via a quest objective. How to compile this list is left as an exercise for the reader, I'm unfortunately not at all familiar with the tome codebase, but I imagine there is some list of active quests that you can parse and just extrapolate where the player needs to go based on what quests are active. For all areas with a boss fight, the area is removed from the list (or optionally, crossed out with strikethrough or greened out as "completed") upon killing the area boss, optionally unless all vaults/chests/Note-generating events are completed. Areas without a boss fight or with secondary objectives can be handled on a case by case basis but none come to mind currently, you'll have to refresh me on those if anyone knows of any. Deciding whether areas appear on the list can be easily accomplished with one giant options dialog menu, optionally with an easy "Group options" section i.e. "Never log T1 dungeons" or "Only show main quest areas" or even "Hide all completed areas".

The next step in the main quest, whether that be collectively all of the T2 areas, or just Dreadfell, or wherever it may be, is marked with gold text or with a star icon next to it, toggleable in options.

As for toggling locations on and off the list that already exist there because you didn't blacklist them, the best solution I can think of without overengineering an entire interactive window, is a 0-weight item added to player inventory on spawn, call it a GPS Editor or something, that you can activate to bring up a simple dialog (recycling some code out of the Attune Staff skill seems handy) containing all the currently active Locations on the menu and allowing you to toggle them off or on. This will get bloated as the game goes on but it's always going to no matter how you approach this problem, unless the player chooses to auto-hide completed areas which I think should be the default and will allow you to keep that list pruned down to only a much smaller list of active locations.

All of this can be easily done inside the same basic Notes window you're already using for the Notes mod alongside a few dialog prompts, it'll just need a bit of formatting that you can recycle out of the existing mod and you've pretty much got it in place.

Edit: In fact, now that I think about it, that GPS editor can be repurposed into a multipurpose mod tool that can do all sorts of clever trickery, should it be required. Simplest case, it's just a shortcut to all the zOmnibus options, but if some of those mods could be improved with a tool that can generate a dialog prompt from the inventory for any number of purposes, you can roll it all together into one little all-purpose tool. I don't know if there is a way to protect an item from being transmogged, but honestly if you somehow mog your mod tool then I think you deserve to live with your fate.

Edit edit: I also admit to having no idea how difficult it might be to dynamically generate dialog or options prompts, so this might be a way harder problem to solve than I think it is. That's up to you to find out or inform us of.
Let slip the toast of war.

Zizzo
Sher'Tul Godslayer
Posts: 2362
Joined: Thu Jan 23, 2003 8:13 pm
Location: A shallow water area south of Bree
Contact:

Re: [RFC] Automated Notes

#9 Post by Zizzo »

visage wrote: Sun Sep 04, 2022 11:25 am For what it's worth, I personally wouldn't get much out of "here are zones you've seen but not visited" because I can glance at the map and see that information. The rest of the stuff you're talking about doing would be absolutely lovely to have automated, though. :)
See, for me, that serves as a list of places to go back and complete after coming back from the east.

PseudoLoneWolf wrote: Sun Sep 04, 2022 11:48 pm A list is created of all area entrances the player has seen, or any areas the player is directed to via a quest objective.
Quest objective? That wouldn't include a lot of the zones we're interested in listing, like Ruined Dungeon or Elven Ruins. And the quest log already kind of covers that.
PseudoLoneWolf wrote: Sun Sep 04, 2022 11:48 pm For all areas with a boss fight, the area is removed from the list (or optionally, crossed out with strikethrough or greened out as "completed") upon killing the area boss,
And that's two votes for conditioning on killing the zone boss. [sound F/X: source diving] …okay, it looks like the zone boss is available from game.zone.generator.actor.guardian, and I'm already mucking around in Actor:die() catching backup guardians, so I can probably make that work. It'll mean more testing, of course…
PseudoLoneWolf wrote: Sun Sep 04, 2022 11:48 pm optionally unless all vaults/chests/Note-generating events are completed.
Oh, chests and vaults and stuff already get their own listings, and stay listed until you do them.
PseudoLoneWolf wrote: Sun Sep 04, 2022 11:48 pm Deciding whether areas appear on the list can be easily accomplished with one giant options dialog menu, optionally with an easy "Group options" section i.e. "Never log T1 dungeons" or "Only show main quest areas" or even "Hide all completed areas".
"Easy", he says… :roll: :wink: What I'm actually leaning toward ATM is just a selectable list of zones the player knows about, as recorded in world.seen_zones{}, with a default subset of them pre-selected as "interesting". I've already done something along those lines in Alternate Zones Option, and it's also what the Change Zone dialog in the debug section does, so it shouldn't be too hard.
PseudoLoneWolf wrote: Sun Sep 04, 2022 11:48 pm The next step in the main quest, whether that be collectively all of the T2 areas, or just Dreadfell, or wherever it may be, is marked with gold text or with a star icon next to it, toggleable in options.
Now, this is kind of drifting into mission creep. I'm okay with letting the quest log be the indicator of where to go next; this addon is mainly about collecting reminders of places and things I want to go back and do later.
PseudoLoneWolf wrote: Sun Sep 04, 2022 11:48 pm […] a 0-weight item added to player inventory on spawn, call it a GPS Editor or something, that you can activate to bring up a simple dialog (recycling some code out of the Attune Staff skill seems handy) containing all the currently active Locations on the menu and allowing you to toggle them off or on.
…? We wouldn't need an object for that; I was planning to put it in the game option.
PseudoLoneWolf wrote: Sun Sep 04, 2022 11:48 pm All of this can be easily done inside the same basic Notes window you're already using for the Notes mod alongside a few dialog prompts, it'll just need a bit of formatting that you can recycle out of the existing mod and you've pretty much got it in place.
Mm, one of the things that kept tripping me up when I was originally trying to do this in Notes to Self was how to keep track of which notes were auto-generated and which notes were entered manually, which gets complicated if you allow the automatic notes to be editable. Plus this addon is starting to get complex enough in its own right that I'm leery of trying to merge it back into Notes to Self. I suppose I could have the two addons cooperate if they're both present and arrange to put their notes into the same popup.
PseudoLoneWolf wrote: Sun Sep 04, 2022 11:48 pm I don't know if there is a way to protect an item from being transmogged, but honestly if you somehow mog your mod tool then I think you deserve to live with your fate.
For reference, if I were going to go the object route, the easiest way to make it non-transmo-able would be to flag it as a plot item, like I do with the Experimental Annelid Accelerator from Worm that Walks as Fast as You.
"Blessed are the yeeks, for they shall inherit Arda..."

Zizzo
Sher'Tul Godslayer
Posts: 2362
Joined: Thu Jan 23, 2003 8:13 pm
Location: A shallow water area south of Bree
Contact:

Re: [RFC] Automated Notes

#10 Post by Zizzo »

Making progress. Here's the configuration dialog I've worked up so far:
hmm1.png
hmm1.png (129.09 KiB) Viewed 13180 times
Need to test this, along with the zone boss handling, and then I should be ready to release.
"Blessed are the yeeks, for they shall inherit Arda..."

Zizzo
Sher'Tul Godslayer
Posts: 2362
Joined: Thu Jan 23, 2003 8:13 pm
Location: A shallow water area south of Bree
Contact:

Re: [RFC] Automated Notes

#11 Post by Zizzo »

Okay, I'm satisfied with what I'm seeing, so I think it's time to release this. And I already have an expected Frequently Asked Question, which I'll add below for reference. (And tip o' the hat to Demoknight's Speedrunner class, which made testing much faster.)

And first question for future changes: if Notes to Self is also active, do we want to combine their two on-character-load popups into one? (User-configurable, we presume.) That will almost certainly require changes to both addons.

[Implementation notes:

Code: Select all

Hooks:
  ToME:load [to add our keybinding]
  ToME:runDone [to display auto-notes after loading everything]
  GameOptions:generateList [to add our game option]
Superload:
  mod.class.Actor:
    die() [to detect killing zone bosses and backup guardians]
  mod.class.Game:
    setupCommands() [to add our action to the keybinding]
  mod.class.GameState:
    activateBackupGuardian() [to make notes about backup guardians]
  mod.class.Player:
    onEnterLevel() [update level notes]
    onLeaveLevel() [update level notes]
    on_quest_grant() [update quest event notes]
    on_quest_status() [update quest event notes]
"Blessed are the yeeks, for they shall inherit Arda..."

Zizzo
Sher'Tul Godslayer
Posts: 2362
Joined: Thu Jan 23, 2003 8:13 pm
Location: A shallow water area south of Bree
Contact:

Re: [RFC] Automated Notes

#12 Post by Zizzo »

Frequently Asked Questions:

Hey! My notes are listing two vaults on the level, but there's only one.

That's a side effect of a shortcut in the current implementation. What the code is counting as a proxy for "vaults" is unopened sealed doors, or equivalents like huge loose rocks. Some vaults have multiple doors, and thus will be counted multiple times. We may attempt in a future version to detect unopened vault doors associated with a vault that has an opened door and not count them, but that is expected to be annoyingly difficult (if possible). In the meantime, as a workaround, opening all of a vault's doors will properly clear it from the automatic notes for the level.
"Blessed are the yeeks, for they shall inherit Arda..."

Zizzo
Sher'Tul Godslayer
Posts: 2362
Joined: Thu Jan 23, 2003 8:13 pm
Location: A shallow water area south of Bree
Contact:

Re: [v1.7.0+] Automatic Notes

#13 Post by Zizzo »

Aaand already a bugfix. :oops: I knew I should have done more testing on the game settings… Turns out those .cfg files in the settings/ directory aren't full-featured Lua files that can use things like table.insert(). So v1a changes the output format of our saved settings to something that works. If you changed any of your "interesting" zone settings, those were clobbered and you'll need to re-enter them; We Apologize for the Inconvenience.™
"Blessed are the yeeks, for they shall inherit Arda..."

Zizzo
Sher'Tul Godslayer
Posts: 2362
Joined: Thu Jan 23, 2003 8:13 pm
Location: A shallow water area south of Bree
Contact:

Re: [v1.7.0+] Automatic Notes

#14 Post by Zizzo »

Pushing out v1a.1 with a small bugfix. See, we make an effort to discard any collected notes about chests and vaults and stuff in certain zones like the Thieves quest zone after we leave them, since we can't return to them. The Godfeaster zone from Cults is one of those zones, and we detect having left it by checking for the associated achievement. Or at least we were trying to; thanks to a rogue copy/paste mixup, we were looking for said achievement among completed quests. :oops: That's now detected properly.
"Blessed are the yeeks, for they shall inherit Arda..."

Zizzo
Sher'Tul Godslayer
Posts: 2362
Joined: Thu Jan 23, 2003 8:13 pm
Location: A shallow water area south of Bree
Contact:

Re: [v1.7.0+] Automatic Notes

#15 Post by Zizzo »

Been having problems recently with the automatic notes not noticing that we've killed the zone boss of a server-push zone (most recently Poosh), and thus continuing to list the zone as unvisited even after having completed it. Fortunately, these zones also have an associated achievement, which we can check for as an indicator that we've completed the zone. That's going out as v1a.2.
"Blessed are the yeeks, for they shall inherit Arda..."

Post Reply