Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!

Categories

Neverwinter Nights: Enhanced Edition has been released! Visit nwn.beamdog.com to make an order. NWN:EE FAQ is available.
Soundtracks for BG:EE, SoD, BG2:EE, IWD:EE, PST:EE are now available in the Beamdog store.
Attention, new and old users! Please read the new rules of conduct for the forums, and we hope you enjoy your stay!

[MOD] Bubb's Spell Menu (Update: v2.0!)

245

Comments

  • BubbBubb Member Posts: 376
    edited February 2018
    Good news! I managed to find a way to display the spell count for both mage and priest spells. Unfortunately this only applies to in-party NPCs, but it's better than nothing. I've released v1.5 for both the light and extended versions that applies this change. I'd say that both the light and the extended versions are very stable now - it should be safe to use them for a normal play through. If you find any bugs, please let me know.

    FlashburnGusindaJuliusBorisov
  • BubbBubb Member Posts: 376

    Version Extended v1.6:

    I've updated the extended edition to version v1.6. Since this version is supposed to be the "has-all-the-features" release, I've ported the search bar from the light version into the extended edition. If looking through all the tiles to find the spell you are looking for is too tiresome, you can now simply search for it! Also, I fixed quite a nasty bug where in extreme cases both the first and last spells in a level were hidden from the user. As always, please uninstall the old version before installing the new version. Enjoy!

    FlashburnGusindaNostarielJuliusBorisov
  • BubbBubb Member Posts: 376
    After much work, I've finally got something to show you guys! I've created a Windows program that can automatically merge two (compatible) UI.MENU files, and so the issue of having to override any other UI mods is now fixed. I've released versions 1.7 and 1.6 for both the extended and light versions respectively that applies this new patching installer. If automatic patching cannot be done, the WeiDU installer will give you a failure message with some technical exception information. If you believe a patching failure is indeed a bug, please report it to me. This mod should now be compatible with most other UI mods, only excluding huge UI overhaul mods that also alter the spell book / hotbar. If anyone wants me to make a compatibility patch for an unsupported UI mod, just ask!

    FlashburnJuliusBorisovKilivitz
  • FlashburnFlashburn Member Posts: 1,591
    Good stuff, @Bubb! I don't have major UI overhauls installed, just a select few from the EE UI Tweaks, so I tried installing the new Extended version but I got a failure message. Where should I send the .debug file?

  • BubbBubb Member Posts: 376
    @Flashburn
    Hmm, that is strange. Unfortunately, due to the "third party" nature of the UIUtil.exe (from WeiDU's perspective) the .debug file will not contain the error. Could you rerun the broken installation, and tell me the exception message that appears in the console? It should look something like this: Unable to patch UI.MENU: . Also, knowing the exact components that you have installed from EE UI Tweaks should help me track down the error. I'll build in proper error logging soon so this process should go smoother next time...

  • FlashburnFlashburn Member Posts: 1,591
    @Bubb
    Here's the parts of EE UI Tweaks I have installed:

    ~EEUITWEAKS/EEUITWEAKS.TP2~ #0 #2900 // lefreut's Improved Record Screen: 1.9
    ~EEUITWEAKS/EEUITWEAKS.TP2~ #0 #3000 // Leveling Progress Bars Tweaks: 1.9
    ~EEUITWEAKS/EEUITWEAKS.TP2~ #0 #3050 // lefreut's Improved Inventory Screen: 1.9
    ~EEUITWEAKS/EEUITWEAKS.TP2~ #0 #4000 // Joined Store Panels Using lefreut's Solution: 1.9
    ~EEUITWEAKS/EEUITWEAKS.TP2~ #0 #4010 // lefreut's Steal Multiple Items: 1.9
    ~EEUITWEAKS/EEUITWEAKS.TP2~ #0 #4020 // Adul's Improved Store Usability: 1.9
    ~EEUITWEAKS/EEUITWEAKS.TP2~ #0 #5000 // lefreut's Tooltip Scroll: 1.9
    ~EEUITWEAKS/EEUITWEAKS.TP2~ #0 #2000 // Transparent Sidebars: 1.9
    ~EEUITWEAKS/EEUITWEAKS.TP2~ #0 #1000 // Mods Options: 1.9
    ~EEUITWEAKS/EEUITWEAKS.TP2~ #0 #1010 // Hidden Game Options: 1.9
    ~EEUITWEAKS/EEUITWEAKS.TP2~ #0 #1030 // Portrait Selectors -> BillyYank's Multi-Portrait Mod: 1.9
    ~EEUITWEAKS/EEUITWEAKS.TP2~ #0 #3010 // Leveling Progress Bars Options: 1.9


    And here's what attempting to install your Extended spell menu displays:
    Install Component [Bubb's Spell Menu Extended]?
    [I]nstall, or [N]ot Install or [Q]uit? i

    Installing [Bubb's Spell Menu Extended] [1.7]
    Copying 1 file ...
    Adding LUA line: ""
    Adding LUA line: "-- BUBB EDIT DEBUG DUMP START"
    Adding LUA line: "-- BUBB EDIT DEBUG DUMP END"
    Adding LUA line: ""
    Adding LUA line: "--BUBB EDIT MESSAGE BOX START"
    Adding LUA line: ""
    Adding LUA line: "worldMessageBoxTextOverride = """
    Adding LUA line: "previousWorldMessageBoxText = """
    Adding LUA line: "maximumSize = 0"
    Adding LUA line: "--BUBB EDIT MESSAGE BOX END"
    Adding LUA line: ""
    Adding LUA line: "--BUBB EDIT SPELL START"
    Adding LUA line: ""
    Adding LUA line: "spellListInfo = {}"
    Adding LUA line: "filteredSpellListInfo = {}"
    Adding LUA line: "alignCenter = true"
    Adding LUA line: "slotRowOffsets ="
    Adding LUA line: "{"
    Adding LUA line: "[1] = 0, [2] = 0, [3] = 0, [4] = 0, [5] = 0,"
    Adding LUA line: "[6] = 0, [7] = 0, [8] = 0, [9] = 0"
    Adding LUA line: "}"
    Adding LUA line: "slotsAvailable = nil"
    Adding LUA line: ""
    Adding LUA line: "hotbarButtonsDisabled = false"
    Adding LUA line: "pausedOnOpen = false"
    Adding LUA line: ""
    Adding LUA line: "oldSpellSearchEdit = ''"
    Adding LUA line: "spellSearchEdit = ''"
    Adding LUA line: "-- BUBB EDIT Slot Functions START"
    Adding LUA line: "-- BUBB EDIT Slot Functions END"
    Adding Function: alphanumericSortEntries
    Adding Function: charAt
    Adding Function: customSpellMenuWatchdog
    Adding Function: decrementRowOffset
    Adding Function: doActionForSlot
    Adding Function: dump
    Adding Function: extractSpellTooltipContents
    Adding Function: fillDumpLevel
    Adding Function: fillSpellListInfo
    Adding Function: filterSpellListInfoAll
    Adding Function: filterSpellListInfoCleric
    Adding Function: filterSpellListInfoMage
    Adding Function: filterSpellListInfoSearch
    Adding Function: findAllPairs
    Adding Function: findFirst
    Adding Function: findNewSpellIndex
    Adding Function: getBamForSlot
    Adding Function: getCountForSlot
    Adding Function: getFirstSpellUUID
    Adding Function: getFrameForSlot
    Adding Function: getIconEnabledForSlot
    Adding Function: getIconForSlot
    Adding Function: getLongestSpellCount
    Adding Function: getSlotEnabled
    Adding Function: getSlotEndsAreArrows
    Adding Function: getSlotInfoOffset
    Adding Function: getSlotIsArrow
    Adding Function: getSlotsVerticalCenter
    Adding Function: getSpellCastableCountFromResref
    Adding Function: getSpellForSlot
    Adding Function: getSpellUUID
    Adding Function: getTooltipContents
    Adding Function: getTooltipForSlot
    Adding Function: getUnprocessedPoint
    Adding Function: incrementRowOffset
    Adding Function: initializeSlots
    Adding Function: isFirstTooltipTalk
    Adding Function: isSlotFirst
    Adding Function: isTooltipArrow
    Adding Function: isTooltipQuickSpell
    Adding Function: isTooltipSpecial
    Adding Function: isTooltipSpell
    Adding Function: launchSpellMenu
    Adding Function: printEntries
    Adding Function: processLineAdded
    Adding Function: removeFirstLine
    Adding Function: replaceSpellUUIDs
    Adding Function: resetSpellHotbar
    Adding Function: resolveTooltip
    Adding Function: selectSpellWithUUID
    Adding Function: seperateLines
    Adding Function: updateMessageBox
    Adding Function: worldMessageBoxOverride
    Adding Menu: BUBB_SPELL_MENU_SLOTS
    Deleting Line From Menu CHARACTER @298: "text lua " otherlist[rowNumbe
    r][2]""
    Unable to patch UI.MENU: Could not map CHARACTER @298
    FAILURE:
    Could not patch UI.MENU.
    Stopping installation because of error.
    Stopping installation because of error.

    ERROR Installing [Bubb's Spell Menu Extended], rolling back to previous state
    Will uninstall 2 files for [BUBB_SPELL_MENU_EXTENDED/SETUP-BUBB_SPELL_MENU_EXT
    ENDED.TP2] component 0.
    Uninstalled 2 files for [BUBB_SPELL_MENU_EXTENDED/SETUP-BUBB_SPELL_MENU_EXT
    ENDED.TP2] component 0.
    ERROR: Failure("Could not patch UI.MENU.")
    PLEASE email the file SETUP-BUBB_SPELL_MENU_EXTENDED.DEBUG to Bubb

  • AstroBryGuyAstroBryGuy Member Posts: 3,376
    edited March 2018
    Bubb said:

    After much work, I've finally got something to show you guys! I've created a Windows program that can automatically merge two (compatible) UI.MENU files, and so the issue of having to override any other UI mods is now fixed. I've released versions 1.7 and 1.6 for both the extended and light versions respectively that applies this new patching installer. If automatic patching cannot be done, the WeiDU installer will give you a failure message with some technical exception information. If you believe a patching failure is indeed a bug, please report it to me. This mod should now be compatible with most other UI mods, only excluding huge UI overhaul mods that also alter the spell book / hotbar. If anyone wants me to make a compatibility patch for an unsupported UI mod, just ask!

    Error report - the installation crashes when run on a non-Windows OS. You should check %WEIDU_OS% before attempting to run the Windows binary with AT_NOW.

    Install Component [Bubb's Spell Menu Extended]? [I]nstall, or [N]ot Install or [Q]uit? i Installing [Bubb's Spell Menu Extended] [1.7] Copying 1 file ... /bin/sh: bubb_spell_menu_extended/work/UIUtil.exe: cannot execute binary file Copying 1 file ... ERROR: error loading [bubb_spell_menu_extended/work/out.MENU] Stopping installation because of error.

    Is installation without the Windows utility program possible?

    Bubb
  • BubbBubb Member Posts: 376
    edited March 2018
    @Flashburn
    At a glance, that error usually means that one of your components has already edited one of the lines my mod edits. I'll look into it more and see if it is indeed a bug, or an incompatibility. If it's an incompatibility, I'll attempt to build a compatibility patch.

    EDIT: Looks like it's lefreut's Improved Record Screen that's causing a conflict. I will bang my head around and see if I can come up with a solution.

    @AstroBryGuy
    That is a really good point - I did not think about cross-platform, though I do now see that WeiDU has a Linux distribution. I believe that is what you are running, correct? Just because you seem more knowledgeable than me on the subject, is WeiDU also runnable on MacOS? Regarding MacOS, I think WeiDU has to be run through wine - would wine properly run my utility program as well?

    The approach I have taken to automate the installation process is much easier to develop for, though it would be possible for me to make the patches manually with WeiDU. I'll look into cross-platform compatibility, and for now I'll implement an update that checks the OS, and offer the override method for non-windows OS. Thank you for the report!

    FlashburnAstroBryGuy
  • BubbBubb Member Posts: 376
    I've released v1.8 and v1.7 for the extended and light versions respectively to fix the cross-platform bugs @AstroBryGuy pointed out. The patching method will only be offered to Windows users now, and the user can chose between performing the patching or override method of installation. I'll work for the next few days on improving the patching compatibility, and see if I can get it cross-platform.

    Flashburn
  • BubbBubb Member Posts: 376
    edited March 2018
    @Flashburn
    I've released v1.9 of the extended edition which includes a compatibility patch for lefreut's Improved Record Screen. Can you try again and see if that fixed it? It certainly works on my end using the mod configuration you described, so hopefully you are good to go!

    Flashburn
  • FlashburnFlashburn Member Posts: 1,591
    @Bubb
    It does work, actually; thank you for your hard work! This should make playing mages much easier. Some quick feedback, although I will understand if some of these just can't be fixed because of hardcoded limitations:

    Some icons are blank in the Innates tab, namely class abilities/Bhaal powers from Rogue Rebalancing and aTweaks (the non-BG styled icons at least). Innates do not display how many uses they have, either. Minor Sequencer and Spell Sequencer also appear to be using the Mirror Image icon instead of their respective icons (though Spell Trigger is correct).
    Divine Might looks like this:

    Certain status effect icons in the record screen also appear to be displaying incorrectly.

    Finally, right-clicking a spell or ability does not bring up its description.

    Bubb
  • BubbBubb Member Posts: 376
    @Flashburn
    Dang, I thought I might have had it all working for a second! Hah, I'll look at fixing most of these tomorrow, thanks for your feedback - they shouldn't be that hard to fix.

    1. I suspect that some of the innate icons are blank because they do not follow the vanilla naming convention which I use to detect the "hotbar" versions. I'll see if I can detect them another way.

    2. Minor Sequencer and Spell Sequencer displaying the wrong icons is actually really weird, this might take a bit to fix.

    3. The way in which I found to display the spell counts does not apply to innate spells, its a hard coded limitation of the engine which I cannot bypass, unfortunately.

    4. The SPELL_UUIDs not being properly replaced should just be a one-line fix, though it is weird that not all of the spell effects are broken.

    5. That's funny, I never knew that existed! It should be easy enough to add.

    I appreciate you sticking through all of this; its invaluable to have someone to report all the hard-to-reach bugs!

    Flashburn
  • BubbBubb Member Posts: 376
    @Flashburn
    I should have asked for this before, but could you attach a savefile with the broken icons, and your WeiDU.log? It should help me track down the issue of the broken icons.

  • BubbBubb Member Posts: 376
    @Flashburn
    I've released v1.11 of the extended edition; it should fix everything that you mentioned (except for the spell count for innates, that's hardcoded). Let's see if it is all working; fingers crossed!

    Flashburn
  • FlashburnFlashburn Member Posts: 1,591
    @Bubb
    1, 2, and 5 are fixed now, but there's some status icons that are still improperly named.

    Bubb
  • BubbBubb Member Posts: 376
    @Flashburn
    D'oh; turns out my fix worked for that bug, I just made a typo in the .uipatch file. v1.12 is out and it fixes those pesky SPELL_UUIDs on the record screen, actually tested this time! Let's see, 4th time's a charm? :p

  • FlashburnFlashburn Member Posts: 1,591
    edited March 2018
    @Bubb
    I accidentally uninstalled v1.11 with v1.12's weidu installer. With this extended spell menu uninstalled (and with v1.12 installed after my screw-up), every single spell's name has been replaced with a UUID label instead of its correct name. There's no way to fix this except with a total reinstallation. :cry:

    Post edited by Flashburn on
  • BubbBubb Member Posts: 376
    Man, I am so sorry to hear that! I feel like it’s my fault for not stressing enough how important it is to uninstall before installing a new version. The backup files which allow for clean uninstallation must have been deleted when you were switching versions. I know how painful it is to break a super-modded install, and I’m sorry my mod was the one to break it. I understand if you are quite done with this mod - all these bugs and unfortunate events must be frustrating. From now on with every version release I’ll put warnings as to the correct procedure, to avoid situations like this in the future. It’s stings even more, because I believe that v1.12 fixed all of your bugs. :'(

  • FlashburnFlashburn Member Posts: 1,591
    edited March 2018
    It was my mistake for not uninstalling properly. I realized I'd done something wrong when v1.11 was unsintalled really fast when it normally takes a little while. Fortunately, I keep all the mods I've downloaded and any custom tweaks I've performed myself in a folder in case something like this happens or for when the game updates. I kept my Weidu log too so I know what order to re-install everything in, plus it gave me a chance to update to the latest version of some mods I was using. Nothing like waiting on Sword Coast Strategems to install at 4:30 AM!

    Unfortunately, I cannot launch the game after installing v1.12. as it gives me an error message:
    [string "BGEE.lua"]:5047: invalid escape sequence near '\['

    then another message after clicking OK:
    [string "M_BYSTYL.lua"]:9: attempt to index global 'styles' (a nil value)

    Thankfully, uninstalling v1.12 allows me to launch the game without problems, and my saves are just fine.

  • BubbBubb Member Posts: 376
    edited March 2018
    @Flashburn
    That is really weird - that error usually means there was a fatal flaw in UIUtil.exe, but you did manage to "install" v1.12 before, correct? Has anything changed about what UI mods you have installed? Could you please attach your working UI.MENU, and then the broken UI.MENU from an attempt to install v1.12. This is really strange - because I can install v1.12 in the UI mod configuration you described earlier with no problems at all.

    EDIT: I Just noticed that the file in question is BGEE.lua, not UI.MENU. Please attach the working and broken variants of BGEE.lua instead of UI.MENU like I said earlier.

    Post edited by Bubb on
  • FlashburnFlashburn Member Posts: 1,591
    @Bubb
    The only thing different this time is that I didn't install the Hidden Game Options part of EE UI Tweaks because I installed the latest version of @argent77's Reveal Hidden Game Options, which was marked as incompatible with the one from EE UI Tweaks. I installed EE UI Tweaks very last in my setup this time with these components:
    ~EEUITWEAKS/EEUITWEAKS.TP2~ #0 #1000 // Mods Options: 1.9
    ~EEUITWEAKS/EEUITWEAKS.TP2~ #0 #1030 // Portrait Selectors -> BillyYank's Multi-Portrait Mod: 1.9
    ~EEUITWEAKS/EEUITWEAKS.TP2~ #0 #2000 // Transparent Sidebars: 1.9
    ~EEUITWEAKS/EEUITWEAKS.TP2~ #0 #2900 // lefreut's Improved Record Screen: 1.9
    ~EEUITWEAKS/EEUITWEAKS.TP2~ #0 #3000 // Leveling Progress Bars Tweaks: 1.9
    ~EEUITWEAKS/EEUITWEAKS.TP2~ #0 #3010 // Leveling Progress Bars Options: 1.9
    ~EEUITWEAKS/EEUITWEAKS.TP2~ #0 #3050 // lefreut's Improved Inventory Screen: 1.9
    ~EEUITWEAKS/EEUITWEAKS.TP2~ #0 #4000 // Joined Store Panels Using lefreut's Solution: 1.9
    ~EEUITWEAKS/EEUITWEAKS.TP2~ #0 #4010 // lefreut's Steal Multiple Items: 1.9
    ~EEUITWEAKS/EEUITWEAKS.TP2~ #0 #4020 // Adul's Improved Store Usability: 1.9
    ~EEUITWEAKS/EEUITWEAKS.TP2~ #0 #5000 // lefreut's Tooltip Scroll: 1.9

    Bubb
  • BubbBubb Member Posts: 376
    I think I found the source of the error. Turns out it has nothing to do with the UI.MENU patching; it was in the WeiDU installer. Can you try this build and see if it fixes that bug? Here

    Flashburn
  • FlashburnFlashburn Member Posts: 1,591
    @Bubb
    That one works! All spell/ability icons, labels, and descriptions are correct. Status effect icons on the record screen are also correct. I think you finally did it!

    Bubb
  • BubbBubb Member Posts: 376
    @Flashburn
    Victory! Haha, thanks for sticking through all of that debugging nonsense. Enjoy, and if you see anything else out of place, please don't hesitate to report it!

    Flashburn
  • FlashburnFlashburn Member Posts: 1,591
    @Bubb
    Found another bug. Trying to open the history tab of the dialog window causes the current speaker's lines to disappear from the main dialog window.

    Normal:

    Bugged:

  • FlashburnFlashburn Member Posts: 1,591
    Found another. Whenever a mage releases a contingency or sequencer, the UUID text displays overhead instead of "Contingency" or "Spell Trigger".


    Also... I've noticed that when using NearInfinity, every single spell's name has been changed to a UUID, though it displays correctly in-game. This presents something of a problem to me because I often use NearInfinity to look up what a spell does exactly. Is there no way this mod will work without renaming every single spell?

  • BubbBubb Member Posts: 376
    @Flashburn
    As always, thanks for reporting. It seems like you are an adept bug finder! Hah... I'll look into them. Regarding renaming every spell in the game, I'll try to explain why I do it, and the downsides to not doing it.

    The only thing my mod can read from the hotbar is the spell names - no other information is exposed to the LUA environment. I rename every spell into a UUID so I can track-down the icon, spell name, and any other information about these spells. I could NOT use the SPELL_UUID system, (and, to be honest, that would fix a lot of these bugs), though any spells with duplicate spell names would get confused by the mod, (if the icons were different, they would both get the same icon, for example). The problem arises when there are two spells in the game that have the same name, with some of these spells being NPC spells with weird stats. Which version of the spell do I show the player? The SPELL_UUID system is the only way to tell for sure, though if Beamdog exposes more information in an update, I could be rid of it.

    I'll try to see what's causing the bugs you mentioned above. I won't be near a computer for the next few days, but I'll start working on them soon.

    Flashburn
  • BubbBubb Member Posts: 376
    edited March 2018
    @Flashburn
    I believe I've fixed those two bugs; they were a bit trickier than the rest. I've had to make some widespread changes to get the contingency SPELL_UUIDs to be correct, so hopefully I didn't break something else by extension. Could you test this build and see if everything is resolved? Here

    Edit: OK, it seems there is a bug with my solution to the NPC dialog. I'll work on it some more. The contingency text should be fixed, though.

    Edit2: After looking at it some more, it looks like the dialog text bug represents a clash between my mod and a hardcoded behavior. This will most likely take a rewrite of my custom message box handling code; it might be another day before I have this fixed.

    Edit3: The bug with the NPC dialog text has been resolved. Can you test the build from the link above?

    Post edited by Bubb on
    Flashburn
  • FlashburnFlashburn Member Posts: 1,591
    edited March 2018
    @Bubb
    The bugs are indeed fixed now. I won't be testing BG2EE for a little while because I failed to kill Melissan at the throne in the no-reload thread. But I think I'll be using this for my next run.

    Can support for Nahal's Reckless Dweomer be added? Or anything that uses opcode 214 (select spell), like Spell Immunity?

    Bubb
Sign In or Register to comment.