Jump to content

G3 Introduces the Lore From Learning Mod (v6 released)


Recommended Posts

G3 is pleased to introduce the The Lore From Learning mod, a small WeiDU mod that adds lore bonuses to your main character as you learn and adventure throughout the game. The bonuses (and the stimuli that provide them) are, by design, meant to be minor and enhance the role-playing aspect of the game.

v6 changelog

  • Fixed bug that prevented installation without the new component

v5 changelog

  • Fixed corrupted text in the Polish translation, thanks Roberciiik!
  • Added the Exploring Areas Provides Lore Bonuses component
  • Thanks to Cahir (Polish) and paladin84 (Russian) for the translation updates for the new component
  • Fixed a bug where the custom values set by players in customize.tpa could be ignored by the mod

v4 changelog

  • Added Russian translation, courtesy of yota13

v3 changelog

  • Added Polish translation, courtesy of Cahir
  • Decreased the threshold for the third point of lore in the Defeating Monsters Provides Lore Bonuses component
  • Added some missing Project Infinity stuff that really should have been in v1
  • Earning a lore point with the other components could interfere with the various counters for the Party Members Provide Lore Bonuses component
  • Earning lore from books now requires literacy (9 INT)

v2 changelog:

  • Fixed bug where Weapon Knowledge Provides Lore Bonuses would not install on non-EE games
  • Fixed bug where Defeating Monsters Provides Lore Bonuses was not iterating correctly when looping through monster types
  • Fixed bug where earning a point of lore would prevent sleep
  • Added a few more continuations in scripts to hopefully prevent conflicts with actual combat actions
  • Fixed bug where Defeating Monsters Provides Lore Bonuses was not picking up on the correct breakpoints for lore bonuses

For Translators!

The mod has about 100 strings total, of which 80 can be automatically generated using a hidden component. All you have to do is uncomment it in the tp2, make a few settings, and then run it on BG2 (most of the strings) and IWD (about 10 more). Once that's done there are about ~20 more strings to translate.

 

Edited by CamDawg
v6
Link to comment

Hi,

Intriguing addition, I can't wait to try it.

For the bug report... martial lore does not work on classic game:

[cdlore/baf/martial.baf] PARSE ERROR at line 3 column 1-29
Near Text: )
    [ProficiencyGT] not found in TRIGGER.IDS

Link to comment

I hope you don't mind if I expand the bug report a little.

I haven't tested it in-game yet (BGEE+SoD), but I suspect this script portion of PLAYER1D.BCS has been incorrectly generated by the mod:

IF
  GlobalGT("cd_lore_monster_total","GLOBAL",71524)  // ???
  Global("cd_lore_monster_bonus","GLOBAL",0)
THEN
  RESPONSE #100
    SetGlobal("cd_lore_monster_bonus","GLOBAL",1)
    ApplySpellRES("cdlore1",Myself)
    DisplayString(Myself,71525)  // Defeating many types of monsters has earned you a lore bonus.
END

IF
  GlobalGT("cd_lore_monster_total","GLOBAL",71526)  // ???
  Global("cd_lore_monster_bonus","GLOBAL",1)
THEN
  RESPONSE #100
    SetGlobal("cd_lore_monster_bonus","GLOBAL",2)
    ApplySpellRES("cdlore1",Myself)
    DisplayString(Myself,71527)  // Defeating even more varieties of monsters has earned you a lore bonus.
END

IF
  GlobalGT("cd_lore_monster_total","GLOBAL",71528)  // ???
  Global("cd_lore_monster_bonus","GLOBAL",2)
THEN
  RESPONSE #100
    SetGlobal("cd_lore_monster_bonus","GLOBAL",3)
    ApplySpellRES("cdlore1",Myself)
    DisplayString(Myself,71529)  // You have earned another lore bonus for defeating so many monsters.
END

It looks like the numbers used by the GlobalGT() triggers are strrefs and refer to the strings "monster_bonus_1", "monster_bonus_2" and "monster_bonus_3" respectively. Maybe a case of undefined variables during installation?

Edit: Another potential issue: The following script block was added identically over 80 times to the DPLAYER3.BCS script:

IF
  Global("cd_lore_monster_100","GLOBAL",0)
  See([0.0.100])
  StateCheck(LastSeenBy(Myself),STATE_REALLY_DEAD)
THEN
  RESPONSE #100
    SetGlobal("cd_lore_monster_100","GLOBAL",1)
    IncrementGlobal("cd_lore_monster_total","GLOBAL",1)
END

 

Edited by argent77
Update
Link to comment

The mod makes the assumption that you're using your rest period productively and just uses simple checks for books in your inventory. So on every sleep you'll get a message that you 'spent time reading book X' and, when a certain threshold is reached, you'll get a point of lore for it.

Link to comment

Thank you Cam, for releasing this little gem and appreciate for mentioning me in the credits 🙂

Now, copy & pasting our brainstorming from Discord:

I was thinking how to improve The Lore of Learning even more and I have one more idea. One that could slightly differentiate Lore from Identify spell a bit. As usual, I have no clue, how hard this would be to implement. What if, after reaching a certain (high) Lore threshold a character would be able to get an idea that some specific magic item lay rest somwhere in the area. This could be implemented as a short info in the combat log, something like was done for Tracking skill, IIRC. An this could be limited to specific, iconic items, like Carsomyr, Silver Sword or the parts of The Wave or Crom Fayer. The first threshold that gave more general vibe could be around 60-70% and the second, that would give more detailed info (with the exact nature of the item that is hidden in the area) could be get after reaching Lore value of 90+%. 

This would promote even more to have at least one scholarly character in the party.

I realize that this would be of no use for players that knows these games inside out, but this mod was always to add more flavor rather than make the gameplay easier.

For items that are assembled from parts, the second threshold could be lowered by 1-2% for each part already found.

Identify is like reading an object's magical aura, to pull out info about their magical properties and lore behind this object. But you need to touch the object. Lore on the other hand, is aquiring this info by learning about those objects during the course of adventure.

I was thinking to limit it to the most known and iconic items, simply because you could learn about them during your adventure. It's impossible to know about all magical items on the Sword Coast even having 100 Lore.

The second part of this idea is what you have suggested, something like a ranger tracking ability--i.e. if you visit Ulcaster with high enough lore, one of the characters would say a little bit about it. But this would need to be used wisely, to not get too spoilery. 

Link to comment
5 hours ago, CamDawg said:

The mod makes the assumption that you're using your rest period productively and just uses simple checks for books in your inventory. So on every sleep you'll get a message that you 'spent time reading book X' and, when a certain threshold is reached, you'll get a point of lore for it.

This is a welcome mod. There is so little of anything for role-playing around here that this is less like a drop of rain in the desert than a frog from the sky. About books: wouldn't it be better to involve the player more actively in reading? Why not make him use an item ability instead? Do it a few times, and the book has been read, and the character gets a lore point. Giving passive bonuses simply for having items in the backpack is not very interesting and takes away interaction. It's true, some players may find clicking on a book a few nights in a row boring, but those are the players who would find leafing through a book boring. Why worry about them? I'm making some books myself now, to be sold in stores. Not to give lore but to give experience to the reader (I'll add a read-aloud option, too, I think, to benefit the whole party). And I'm going to make the player click on them. If a person isn't physically involved, a feature doesn't engage.

Also, you are adding all these ways to gain Lore, so it would be nice to introduce some ways to use Lore. For example, why not make it suppress magic and elemental resistance on spell targets? You might be able to channel this before the main spell effects through Apply effects list - > Self - > subspell, if you put this combo on top of the stack, but even if it comes in too late, the effect will be active for the rest of the fight. Make it Non-magical, and it will be as if the character has scanned the enemy's defenses with the first spell and will now benefit from the knowledge, with next shots. 

Link to comment
26 minutes ago, temnix said:

This is a welcome mod. There is so little of anything for role-playing around here that this is less like a drop of rain in the desert than a frog from the sky. About books: wouldn't it be better to involve the player more actively in reading? Why not make him use an item ability instead? Do it a few times, and the book has been read, and the character gets a lore point. Giving passive bonuses simply for having items in the backpack is not very interesting and takes away interaction. It's true, some players may find clicking on a book a few nights in a row boring, but those are the players who would find leafing through a book boring. Why worry about them? I'm making some books myself now, to be sold in stores. Not to give lore but to give experience to the reader (I'll add a read-aloud option, too, I think, to benefit the whole party). And I'm going to make the player click on them. If a person isn't physically involved, a feature doesn't engage.

While I agree that adding more RP to the BG series would be welcoming, I'm also in the camp that reading the same book a couple of times to gain some bonus (or even opening the book a couple of times) could be tedious. UNLESS there would be a way to limit the book description while reading it for the first time to only a fragment and revealing following parts with each consecutive reading until the full book can be read (adding a bonus to Lore in the result as a reward). But I imagine this would be a nightmare to code (probably a couple of copies of the same book needs to be made which may not be feasible at all). If this could be implemented I would add it as an option, so the player could choose if he wants passive bonuses or prefers to seeking it actively.

43 minutes ago, temnix said:

Also, you are adding all these ways to gain Lore, so it would be nice to introduce some ways to use Lore. For example, why not make it suppress magic and elemental resistance on spell targets? You might be able to channel this before the main spell effects through Apply effects list - > Self - > subspell, if you put this combo on top of the stack, but even if it comes in too late, the effect will be active for the rest of the fight. Make it Non-magical, and it will be as if the character has scanned the enemy's defenses with the first spell and will now benefit from the knowledge, with next shots. 

While the concept of having a high Lore resulting in a way to be more effective vs various spells seems interesting, I fear it may overcomplicate things. I imagine that mage with high Lore may be versed to counter the spells of enemy spellcaster easily, in a different manner, depending on the spell used, but having for example different bonuses vs different spells IS overcomplicating things. BUT it could be interesting to find a universal bonus, that could be fitting during the fight with ANY enemy spellcaster. But I'm not yet convinced about this topic, to be honest.

As an addition to the second part of an idea from my previous post, the high Lore value could result with the description in the combat log, revealing what kind of monsters may roam specific areas. Apart from the obvious benefit of alerting the player that there may be specific danger in the area (which for example could result in casting appropriate defensive spells), this could also add a gameplay bonus vs this specific creature type, but ONLY in this particular area, where those creatures were previously detected via high Lore. This would be a small bonus, that may depend on the type of detected creature (bonus that is the most effective in the fight with this specific creature, like +1-2% of magic resistance vs liches, +1 AC vs missiles vs kobolds, +1 save bonus vs petrification vs basilisks, etc).

Link to comment
54 minutes ago, Salk said:

Oh I see, thank you Bartimaeus.

Lately you have come to my rescue several times. You're not a Paladin, are you? But if you are, I can send your way some damsel in distress... 😋 

Certainly not! At absolute best, I'm True Neutral by way of competing internal conflicts and desires that eternally pull and tear away at me, :).

Link to comment

What complicates things is complicating things. This game is simple at heart, don't turn it into a checks-and-balances nightmare. Nobody will care, and what matters is to have fun. I gave an example - use Lore to lower resistances. It's just one possibility and you don't have to embrace it, but letting chances slip by because something somewhere may go wrong or end up presented imperfectly is no way to create. Take my other idea, reading books. There are obvious limitations in the way books work in this engine, and it's neither possible nor desirable to complicate them. How complicated can a sheet of paper with words on it get, anyway? In Morrowind there were many books, they had stories in them, and the moment the player opened the book, he got a bonus point to one of the skills. He didn't have to read the contents if he didn't want to. Taking a clue from there, why not make books a clickable item that will give a lore point and, for effect, display its text in the bottom window? Never mind nightly reading sessions when there is nothing to read - just one click, and the player is done with it. Or rather, the character. Give the book to someone else in the party and have him read it, too, to improve his own lore. This, I would say, is how complex the whole thing merits being either for the player or for you, the coder. There are better uses of life than to crouch in a chair growing a big ass coding three-part presentation for what is just a 32 pixel icon from 1998. In the space you spend on minutiae you could create several more game additions.

The part about monster descriptions is better left to a tracking mod.

P. S. I was going to do this for bards: gather experience from surrounding creatures. A self-centered repeating EFF channeled through lore, dripping small amounts of XP on the party. A reason to rub shoulders in crowds. But, of course, you are going to second-guess yourself into the ground, aren't you?

P. P. S. Another idea I thought I might make into a mod but won't now: a potions mod. Make all potions unidentified and requiring some modest lore level to identify. With Identify at temples 100 gp a pop, high lore will quickly become important. This would only work to the fullest, though, if you randomly made some of the potions found in containers and on creatures cursed (Weidu's RANDOM function). Instead of several different-looking cursed bottles that we know by sight and stay away from after the first playthrough randomize cursed potions so that they look exactly the same as good articles. If you do that, no party will feel safe just tipping over the bottles they come across. A character with easy power of identification will be able to earn his keep.

Edited by temnix
Link to comment
On 5/27/2021 at 11:55 PM, Cahir said:

I was thinking how to improve The Lore of Learning even more and I have one more idea. One that could slightly differentiate Lore from Identify spell a bit. As usual, I have no clue, how hard this would be to implement. What if, after reaching a certain (high) Lore threshold a character would be able to get an idea that some specific magic item lay rest somwhere in the area. This could be implemented as a short info in the combat log, something like was done for Tracking skill, IIRC. An this could be limited to specific, iconic items, like Carsomyr, Silver Sword or the parts of The Wave or Crom Fayer. The first threshold that gave more general vibe could be around 60-70% and the second, that would give more detailed info (with the exact nature of the item that is hidden in the area) could be get after reaching Lore value of 90+%. 

Expanding the idea, there can also be a hardcore version of this component. If there is no one in your party with enough Lore (let's say 20), those items can be hidden so well, that can be unavailable to the party. It's simply not there. It can be available again after one of the party members reach a specific Lore threshold. A combat log message can appear informing that there are stories of a powerful artefact hidden in X area, and it could be wise to visit it again.

Link to comment

Join the conversation

You are posting as a guest. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...