Can I ask why you chose to have the hotbar icon atlas created at 64px rather than 128px? Would it be possible for you to add an option to create the atlas at 128px? My old eyes have a lot of trouble working with 64px. I generally use 128px for the icons, and 1280x1280 for the atlas.
I choose 64 since its just what I know as the standard when I was learning about bg3 modding. I guess i just learned wrong haha im still a noob at this and learning. Anyways, i made an option to now enter a custom resize, it can be found under the other resize options when you right click. Im unsure if this will interfere with my existing atlas/map if you use those as templates with custom sized icons so keep that in mind. I will need to double check it later since I cant remember off the top of my head, been keeping some distance with this extension while work has been getting busy :'(
On the latest version. It can pack the mod and create files without issue. However, it does not perform the .xml to .loca conversion. If I try the conversion by itself, I do get the notification - Loca file created using d:\BG3Modding\5e Subclass Packs\RogueSubclasses5e\Localization\English\RogueSubclasses5e.xml, however there is no file created. I even packed the mod, and then unpacked to see if there was a file, but still nothing.
Been on a bit of a hiatus with work getting wild so sorry for the late reply. Will look into this during the week. From an initial look, I'm guessing it's go something to do with where your relevant folders are. Is the xml location that is showing in the message the correct location of the xml (d:\BG3Modding\5e Subclass Packs\RogueSubclasses5e\Localization\English\RogueSubclasses5e.xml)? Likewise is your games mod folder also on your d drive? And finally what is the location of your divine.exe? If you could get me that info it could help me figure out the source of the issue. And if you know how to open the dev console on vs code, please open it and try to convert which should give you some console logs that will help me out but no worries if you can't get those.
The folder structure is indeed correct. Divine is located on D, and the game and vscode are located on my main C drive. I will add an update with the dev console as soon as I can.
Thanks for the info! No need to get the console logs ATM, I think what you provided should be enough, very helpful! It's a known issue with transferring files between different partitions or drives. I had a similar issue when packing if packing from different locations and I was able to fix that. If it is the same issue, I should be able to resolve it tonight or tmrw. If not the same issue, I may need to do more digging, will update when I know tho.
Okay I lied, the console logs will help haha I have two print statement in particular that can help me out. When you try to convert it should output something like "Parameters used in python script:" it will help me out
I believe ur name is still in the c path unless I'm looking at it wrong. Just letting ya know in case you wanted to edit it out. Anyways, cool thanks for the logs! Got it now, missing the clr python library. I will add a check for it and send out a patch later tomorrow after work. In the meantime, I can't be 100% sure since I don't know exact specifications of your system and python but you could probably open up a command prompt window and enter in pip install clr or possibly pip3 install clr. However you may also need to run pip install pythonnet first (or pip3 install pythonnet)
The extension will now prompt the user to install pythonnet if it is not installed when trying to convert xml to loca and the message stating the file was converted when it wasnt due to this missing package has been removed for clarity. If the package is not found, the user is prompted to install it directly via a prompt for ease of use. Thanks for the feedback, it's very helpful when it comes to finding issues!
Sorry I'm not sure I follow what you are asking. If you are looking to make a mod, like class mods, or new spells, etc then yeah this tool will definitely be able to help! Basically if you make mods for the game, the goal is to help centralize alot of tools into visual studio code so you don't have to run around to use them from other locations, for example the multi tool will generate a uuid/handle for you but with this tool you can do it right I visual studio code. If you are looking to use a mod, then this is not that, it's for modders to make mods.
Ah OK thanks for helpful explanation. It probably a bit advanced for me currently. But it's really good to know this resource is here as I do want to get more into understanding modding tools in future if I have the capacity.
This is the first time I tried your pak building feature but it didn't work out for me. It seems like your script wants the mods base directory and the folder inside that contains the meta.lsx to have the same name. I usually don't do it that way so the build script cant see my meta file and prompts to make one.
Example
Mod files are stored in "c:\rootmodfolder" but the meta is in c:\rootmodfolder\mods\mod name\meta.lsx
Is there any way to define that so the build won't fail?
Ahh, oversight on my end. I though the rootmodfolder name is required to be the same as mod name. I was working on a patch regarding packing, I also added this in to fix it so now it looks for a Mods folder, will use the firs folder in their as Modname and look in that for meta. Im hoping that no other folders are ever in Mods folder haha I didnt test it much since I needed to push my other patch out but it was letting me pack and would prompt me to make a meta if i deleted my meta. Let me know if something is weird with it please haha
I've seen "ScriptExtender" and "Story". I haven't seen any other folders in there other than those, but I also dont make a habit of extracting others mods.
oh hmm actualyl now tha I think about it, ive only see those inside the modname folder, not in the Mods folder directly. I will add a check for it but do mods even take when in that order? i never knew. For example, ModFolder/Mods/ModName/ScriptExtender and ModFolder/Mods/ModName/Story is what I do but you are saying you do ModFolder/Mods/ScriptExtender and ModFolder/Mods/Story? Just wanna make sure we are on the same page.
for sure, in that case it shouldnt affect the searching. All that matters is that you dont have another folder in Mods folder since it will use the first folder it finds in there as the mod name but i think typically people only include their modname folder in the Mods folder. Hopefully :p
I will have to take a look at it. I've had a few people mention lag issues but ultimately it's not happening to a lot of people (as far as I know, maybe no one is saying anything) or myself so it's been hard to figure out the source. Do you have a lot of files in your workspace? Ive seen that as a source of clunkyness as well, the tool is mostly designed to work in a smaller space at the moment until I figure out how to optimize it better sadly 😬 still new at this 😅
check this image it's not a whole lot but i expect it to not have high ping? Not sure if it's connection based or if there is a way to fix it on my end, and even after the recent revision .9.989 the average response time went down by 50ms which has been nice, but not sure what all else is going on.
I'm probably gunna have to do a semi decent refactoring for this. I'm guessing the size of the merged files might be causing this to take a while for searching. When are you getting all this lag btw, is there some specific action you are doing like hovering over a uuid, packing a mod, etc? Or it's just constantly laggy even when idle?
For sure. The most recent update should have gotten rid of the lag for large file structures on uuid and handle searches. As for the lsx validator I dont think there is much I can do for that, its just how the online tool works. Im only opening a webview page, as far as I know I cant really optimize that and it should just run as good as the page allows it to and vscode allows it too. That being said im trying to figure out how to make the local version of the validator work which would be great, but ive been having some trouble and been focusing on the lag issue from uuid/handle searches so with that out of the way hopefully I can take a look at getting the tool working locally among other things.
SO (edit 3) things, one, is there any way to add 'custom.race' to the viable race UUID's, there are quite a few that i use, namely ren's aasimar, demon, and solar races, and with cc patches becoming easier and easier (i can also give you that template) so this error can be avoided? Also how do I get rid of the 'references nonexistant VisualBank' when they're both in the same workspace? I can't tell if I broke it or what :( Edit: I'm also having trouble figuring out why I'm getting this 'closing match region and children node' from both the multitool and the lsx validator both online and in the extension, am i just inept? please help ;_; problem + code that should work
I cant download the file you added, it says the file isnt there? But regardless i think i need a bit more clarity on the first issue. You are talking about a valid race uuid, do you mean in reference to using the stat/lsx validator like making it not populate errors when using a cusom rance for validation or am i misunderstanding? For the errors you are seeing, its related to the tool made by norbyte, im just creating a webview so the tool is accessible in visual studio code and the user doesn't have to go to a new browser tab to check it. If it's erroring out, its not something I can change on my end since its not my program.
references nonexistant VisualBank is showing up most likely because you are referencing a custom race (im guessing) and im pretty sure the validator tool is searching against base game files. Its not looking for your custom uuids or anything like that. So from a quick glance im assuming that output should be expected and not a bug/something that can be fixed unless norbyte added a way to add custom uuids on the page for validation.
Likewise the closing match region and children node error you are getting is related to the validator and not my tool i think. You should direct that to the bg3 modding discord, they could probably help you more then i can. But i can prob take a stab at it, I would need to see your full file that you are validating tho, no lines hidden. Feel free to send a file or drop the code block as a reply if so.
thank you so much for your support and sorry for asking so many dumb questions, i boiled it down to some code mismatch and i cant get anything to show in game but of course bg3 is on fire at the moment so ill table it for later. always appreciate your hard work <3
Ever since you mentioned codium to me (was it you, someone brought it up), ive been making sure to update to the codium store with each patch. I wouldn't say I can fully support it since I don't make any updates thinking specifically about codium but for the most part it should be compatible. If someone brings up a request/big for codium specifically, I've been trying to accommodate for it though
Thank you for implementing some of the suggestions I made. I have one more suggestion. I find it cumbersome to reset the Mod Dest Path value and Root Mod Path in the settings every time I change the folders or workspace while translating and developing mods. Is there a way to specify the current work directory or the root folder of the workspace in the settings? If not, it would be great if you could improve it to work by including environment variables as values, such as "." or "$CWD" in Linux.
From what i understand, most people would prefer to just pack straight to the mods folder, but I could implement another setting that could when toggled, prompt the user to enter a path to send the .pak to a custom location if that would be better? Or if you have another suggestion on how to handle it, please let me know. I will resolve it in a future update if so. As for the root mod folder yeah, its definitely a bit annoying to have to set each time if you have a diff folder. It is mostly there from legacy code that has been rough to unentangle without having to change other aspects of the extension. Refactoring has helped so ive made the changes to make it auto set the current workspace when you open up visual studio code so it wont hold the previous mod path. If working with multiple mods in one workspace, you should still set the value in the settings manually since it will autoset it to the workspace dir, not the root mod (should you have multiple mods in a workspace). I havent done extensive testing on it but it did seem to be autosetting the path now. tldr: hope it works lol
I checked the new version of your extension. It updated automatically in VS Code. I noticed that the Root Mod Path changes to the path of the newly opened folder. This could cause problems when a user opens multiple folders in multiple windows.
I think i might need a bit more explanation on the issue. When i open up a folder via visual studio code (if a right click my mod folder and open or if i have vscode open and i click add folder) it will change the root folder to whatever folder i add in. If i open another vscode window while i still have my current one open, its showing my folder in the new window as the new folder i opened, not the previous folder which means im not getting the same issue? Is this the issue you are talking about, sorry i could just be misunderstanding.
Sorry, I edited the post. When I open a new mod folder, the Root Mod Path gets altered to the path of the newly opened folder. This happens when I'm working with different mod folders using vscode another window, and it changes the Root Mod Path to the location of the newly opened folder. I would prefer it to be implemented using an implicit method with variables rather than explicitly specifying the absolute path value for Root Mod Path.
gotcha, thanks for the clarity! workspace folders on newly opened windows are no longer globally set which was overwriting already opened windows. I did a quick test after making the changes and it seems to not change the root when a new window is opened now. Just be sure that if you want to change ur root folder, you do it in the workspace settings, not the user settings as they are global
I had a lot of lag a couple versions back, but the last couple updates seems to have resolved it. I just installed the latest version 0.0.991 and I'm really pleased with the speed that it does the uuid/handle lookups (mouseover) now. It's pretty much instant whereas before it took 5-10 seconds.
Thank you so much for the heads up! I haven't been having the lag issue but have heard from a few people so it's been rough finding the source and resolving it. Basically one change at a time and push it out to see if people are still having the issue since I couldn't replicate it. It looks like I might have gotten it this time!
108 comments
Thanks so much!
Likewise is your games mod folder also on your d drive?
And finally what is the location of your divine.exe?
If you could get me that info it could help me figure out the source of the issue.
And if you know how to open the dev console on vs code, please open it and try to convert which should give you some console logs that will help me out but no worries if you can't get those.
2024-03-27 14:23:25.115 [error] [Extension Host] exec error: Error: Command failed: python "c:\Users\USER\.vscode\extensions\ghostboats.bg3-mod-helper-1.0.902\support_files\python_scripts\xml_to_loca.py" -d "D:\BG3Modding\ExportTool-v1.19.3\Tools\Divine.exe" -o "d:\BG3Modding\5e Subclasses\WarraybeAberrantMind\Localization\English\WarraybeAberrantMind.loca" -f "d:\BG3Modding\5e Subclasses\WarraybeAberrantMind\Localization\English\WarraybeAberrantMind.xml"
Traceback (most recent call last):
File "c:\Users\USER\.vscode\extensions\ghostboats.bg3-mod-helper-1.0.902\support_files\python_scripts\xml_to_loca.py", line 26, in <module>
import clr
ModuleNotFoundError: No module named 'clr'
Censored out my personal name in the directory, but left all else as is.
You can install pythonnet using following command.
pip install pythonnet
Example
Mod files are stored in "c:\rootmodfolder" but the meta is in c:\rootmodfolder\mods\mod name\meta.lsx
Is there any way to define that so the build won't fail?
Edit: I'm also having trouble figuring out why I'm getting this 'closing match region and children node' from both the multitool and the lsx validator both online and in the extension, am i just inept? please help ;_; problem + code that should work
references nonexistant VisualBank is showing up most likely because you are referencing a custom race (im guessing) and im pretty sure the validator tool is searching against base game files. Its not looking for your custom uuids or anything like that. So from a quick glance im assuming that output should be expected and not a bug/something that can be fixed unless norbyte added a way to add custom uuids on the page for validation.
Likewise the closing match region and children node error you are getting is related to the validator and not my tool i think. You should direct that to the bg3 modding discord, they could probably help you more then i can. But i can prob take a stab at it, I would need to see your full file that you are validating tho, no lines hidden. Feel free to send a file or drop the code block as a reply if so.
I'm so happy!
I checked the new version of your extension. It updated automatically in VS Code. I noticed that the Root Mod Path changes to the path of the newly opened folder. This could cause problems when a user opens multiple folders in multiple windows.
When I open a new mod folder, the Root Mod Path gets altered to the path of the newly opened folder. This happens when I'm working with different mod folders using vscode another window, and it changes the Root Mod Path to the location of the newly opened folder.
I would prefer it to be implemented using an implicit method with variables rather than explicitly specifying the absolute path value for Root Mod Path.
Great work!