I didn't really fix broken things with FocusCore much, it was mostly forking, reorganizing, and then adding new things. So anything relying on FocusCore specifically won't be able to benefit much without being changed to point towards AahzLib instead, at the very least, and I can't guarantee I haven't changed something enough to not break a FocusCore-dependent mod.
FocusCore and AahzLib are just code libraries, that provide classes and helpers like: Helpers.Format:CreateUUID() and we import these libraries into our other mods by setting the metatable to point to them. So for example with EasyCheat, in that codebase we're working in a sandboxed mod environment that SE provides, and we do this: setmetatable(Mods.AahzEasyCheat, {__index = Mods.AahzLib}) Which essentially means, as a fallback in our sandbox, if a function isn't found defined in the AahzEasyCheat environment, it falls back to the definitions in AahzLib.
This makes it so we can gather up all the reusable classes/helpers into one code library for easy maintenance, and not have to keep a separate instance of the code in each dependent mod.
tl;dr, Focus Lodestones probably wouldn't benefit, since it doesn't refer to any new code in AahzLib. The main problem with Lodestones iirc is simply that it included ModFixer.txt, which will now break patch 7+.
Thanks for the mods! Just wanted to check, whenever I load my game it mentions that there's several instances of AahzLib running and needs confirmation. Is this normal?
If AahzLib is at the top of your order, yes, that's expected. It's a default vanilla behavior (bug) with the in-game mod manager currently, a weird bug where the name of the first (or second?) mod in your load order is used for all third party mods in the list. The prompt is useless basically, so you just hit confirm or start game, without checking/unchecking anything. Unfortunately the new in-game mod manager is uh, not good 👍
Cool, thanks for the confirmation XD just wanted to double check because I'm at a point where there's like 50 of them showing up XD got kinda concerning
Hi. First of all I'd like to say I have really enjoyed your mods. I think they're very innovative and help out with testing and just generally QOL in ways I don't think any other BG3 mods have quite done in the same way. I'm currently running Patch 7 and it keeps screaming about AahzLib. That by itself is well, whatever, right? But When I installed and started using EasyDye weird things started happening. I really love EasyDye. I think it's a mod way ahead of it's time. At any rate, the problems first showed up as not really being able to dye a full set then it kept reverting to the original and then other parts of the game started to break. I tried it on several fresh starts. If anything the problems kept getting worse.
Thanks, and yeah it's not really a problem with AahzLib, it's EasyDye unfortunately. The timer the console is probably complaining about is doing its job just fine, it's the code that gets called by the timer.
EasyDye needs to do something after X time, so it uses an AahzLib timer to do that, and
The AahzLib timer runs the EasyDye code after X time, but
That code runs into an error and the SE console points to AahzLib, because that's where the control was last given
In its current state, EasyDye can only handle certain equipment come to find out. The stuff that it can't handle, has a different structure than EasyDye expects, and causes errors. I'm currently writing a very large chunk of code that I'll hopefully be able to simplify and optimize, for fully accounting for each item's visuals and linking visuals to their items accurately, instead of the guesswork it's currently doing and getting wrong sometimes. For now it's hit-or-miss on whether EasyDye will play nice with certain items sadly, and I have it automatically applying what it thinks it can do, so it causes more unwanted behavior with no way to toggle it off on specific items.
It's kind of a mess that worked in the limited testing from me getting it to work, but clearly wasn't ready for the wild of public testing 😅
Hi there, Just a quick question. Updating this mod doesn't require any specific steps does it? I can just replace the one I had before with this latest update?
Nope, just plop the new version in like normal, easy install/update/uninstall.
EasyCheat is now recommended to uninstall with Mod Uninstaller now though, if you're using any of its statuses/spells, but that would be an EasyCheat thing, not AahzLib 👍
Thanks Tet! Still in the works. I got it to about 70% functional, then had a realization that necessitated a lot of reworking, which brought me down to like 40%. I'm closer to 60% done now, but it's still not ready for a public beta. It's cleaner now and more realtime, but here's an example from a couple weeks ago to get an idea:
Edited: ^ Click to open animated gif
Making everything multiplayer compatible with server-client syncing is a headache when you're passing around fully customized colors in realtime instead of just dye preset ID's 😅
That's actually really cool, I can see this really being expanded when official mod tools are out with its own proper menu instead of the basic MCM one but that's more work and I don't blame you if you don't wanna deal with all that.
I'm not involved in that, and if I was, I likely wouldn't be able to release anything publicly for it. That being said, this is just a code lib and can't cause any errors, because no code is ever run on its own. It's implicitly compatible, and will be ready whenever SE is ready for patch 7 👍
23 comments
Focuses' Lodestones require focuscore. Do you have any idea if that mod would benefit from improvements made here?
FocusCore and AahzLib are just code libraries, that provide classes and helpers like:
Helpers.Format:CreateUUID()
and we import these libraries into our other mods by setting the metatable to point to them. So for example with EasyCheat, in that codebase we're working in a sandboxed mod environment that SE provides, and we do this:setmetatable(Mods.AahzEasyCheat, {__index = Mods.AahzLib})
Which essentially means, as a fallback in our sandbox, if a function isn't found defined in the AahzEasyCheat environment, it falls back to the definitions in AahzLib.This makes it so we can gather up all the reusable classes/helpers into one code library for easy maintenance, and not have to keep a separate instance of the code in each dependent mod.
tl;dr, Focus Lodestones probably wouldn't benefit, since it doesn't refer to any new code in AahzLib. The main problem with Lodestones iirc is simply that it included ModFixer.txt, which will now break patch 7+.
Just wanted to check, whenever I load my game it mentions that there's several instances of AahzLib running and needs confirmation. Is this normal?
In its current state, EasyDye can only handle certain equipment come to find out. The stuff that it can't handle, has a different structure than EasyDye expects, and causes errors. I'm currently writing a very large chunk of code that I'll hopefully be able to simplify and optimize, for fully accounting for each item's visuals and linking visuals to their items accurately, instead of the guesswork it's currently doing and getting wrong sometimes. For now it's hit-or-miss on whether EasyDye will play nice with certain items sadly, and I have it automatically applying what it thinks it can do, so it causes more unwanted behavior with no way to toggle it off on specific items.
It's kind of a mess that worked in the limited testing from me getting it to work, but clearly wasn't ready for the wild of public testing 😅
Just a quick question. Updating this mod doesn't require any specific steps does it?
I can just replace the one I had before with this latest update?
EasyCheat is now recommended to uninstall with Mod Uninstaller now though, if you're using any of its statuses/spells, but that would be an EasyCheat thing, not AahzLib 👍
Edited: ^ Click to open animated gif
Making everything multiplayer compatible with server-client syncing is a headache when you're passing around fully customized colors in realtime instead of just dye preset ID's 😅
Sneaky progress updates: