We have a Steam curator now. You should be following it. https://store.steampowered.com/curator/44994899-RPGHQ/
Editing spell list for beginners
Editing spell list for beginners
See Slavic's post.
Note: his used to be the Voice AI tutorial. It has now moved to: viewtopic.php?t=1778-bg3-changing-npc-voices-using-ai
Note: his used to be the Voice AI tutorial. It has now moved to: viewtopic.php?t=1778-bg3-changing-npc-voices-using-ai
Last edited by orinEsque on April 10th, 2024, 00:48, edited 69 times in total.
Tags:
Added a link I found on to how you can change voices with AI.
- Slavic Sorcerer
- Posts: 853
- Joined: Sep 9, '23
- Location: Poland
Editing spell list for beginners
The guide is aimed at those who never created a mod in their entire life, and lists obvious knowledge more experienced people may already have.
The guide covers how to edit Spell List of a specific class, by either adding or removing spells.
This guide is not about how to create custom spells, nor how to edit spells (damage etc).
It's written by an amateur who discovered last week how to do it, so feel free to leave suggestions and corrections - especially on formatting here.
Preparations
Before we start, make sure you uninstall every mod from your game; including copy-paste-override ones. Just to be on the safe side.
Or you can browse for the files needed on the web, but it's better to take it from your installation folder
Those preparations will make out life easier while creating the mod. It's better to keep the things tidy.
If you can find yourself in chaos, you can skip this part
We're gonna create a lot of folders, and I will reference those folders later on.
We will also get our SpellList files.
The guide is aimed at those who never created a mod in their entire life, and lists obvious knowledge more experienced people may already have.
The guide covers how to edit Spell List of a specific class, by either adding or removing spells.
This guide is not about how to create custom spells, nor how to edit spells (damage etc).
It's written by an amateur who discovered last week how to do it, so feel free to leave suggestions and corrections - especially on formatting here.
Preparations
Before we start, make sure you uninstall every mod from your game; including copy-paste-override ones. Just to be on the safe side.
Or you can browse for the files needed on the web, but it's better to take it from your installation folder
Those preparations will make out life easier while creating the mod. It's better to keep the things tidy.
If you can find yourself in chaos, you can skip this part
We're gonna create a lot of folders, and I will reference those folders later on.
We will also get our SpellList files.
- Create separate folder that will hold everything you work on; I named my folder "BG3 Modding",
- Inside the BG3 Modding folder create ExportTool folder,
- Download ExportTool by Norbyte,
- Unpack the package inside the ExportTool folder,
- Inside the ExportTool folder, create folder called Mod,
- Inside the Mod folder, create a new folder called Shared,
- Inside the BG3 Modding folder (we are circling back to the main folder) create BG3 Mod Manager folder,
- Download BG3 Mod Manager,
- Upack BG3 Mod manager in BG3 Mod Manager folder,
- Open ExportTool's application (called ConverterApp.exe as of writing),
- In the Game tab at the top of the window, make sure the game selected is Baldur's Gate 3 and the version at the bottom says [current version] (Baldur's Gate 3 release).
- Proceed to PAK / LSV Tools tab,
- In the Extract Package section, Package Path line, click on the thre dots ...,
- Find Shared.pak in your BG3 folder. By default it should be in: Baldurs Gate 3/Data folder. Click on it, then click Open,
- In the Extract Package section, Destination Path line, click on the thre dots ...,
- Pick the Shared folder we created earlier.
Notes- You can, of course, skip the BG3 Mod manager, but it's gonna make installing and uninstalling mods a hassle, so it's not recommended.
- Apply relative fixes to BG3 Mod Manager, should you need them.
- Directory listed to Shared.pak is the default one.
Now the tedious part
Strap yourself and tell momma you're gonna be late for dinner.
For this example, we will be giving the Cleric class Bone Chill cantrip, and Misty Step spell
To make this work with BG3 Manager, we need to create the mod itself, and then the meta file.
This way we can use BG3 Manager to install and uninstall the mod whenever we see fit, and it reduces the risks of breaking your game.
We will be working on SpellList.lsx files.
There are two files like this; both in Shared and SharedDev folder. If the node with spells is not present in one, it should be present in another.
It's possible that's just my case and you won't see such separation in yours, but I doubt it
Folder preparation- Go to the BG3 Modding folder,
- Create new folder, name it "Cleric spells expanded",
- In it, create two folders: Mods and Public,
- Inside the Mods folder, create folder "Cleric spells expanded". Final result should look like this: Cleric spells expanded/Mods/Cleric spells expanded
- Inside the Public folder, create "Cleric spells expanded" folder, then . Inside it, create Lists folder. Final result should look like this: Cleric spells expanded/Public/Cleric spells expaned/Lists
- Go to Shared/Public/SharedDev/Lists,
- Find SpellList.lsx file, and copy it to Cleric spells expanded/Public/Cleric spells expaned/Lists,
- Open the copied SpellList.lsx file in notepad,
- Remove every node, leaving something like this (values my vary but it's fine since we copied it from the original):
► Show Spoiler - Save the file,
- Open SpellList.lsx files, both from Shared/Public/SharedDev/Lists and Shared/Public/Shared/Lists,
- Find nodes for Cleric spells, by ctrl+F or scrolling,
- Copy node with cantrips, and paste it into your SpellList mod. Do the same with circle 2 spells. It should look like this now:
► Show Spoiler
- In the "Cleric cantrips (Wisdom)" node, look at <attribute id="Spells" type="LSString" value=. That's where the spell list is. Carefully add Target_ChillTouch; to it
- Repeat the step above, but at "Cleric SLevel 2" type Target_MistyStep;
- The result will look like this:
► Show Spoiler
- Save the file
We will be creating the aftermentioned meta file. I admit, I just copied it from other existing mods, like a template, and I have no idea how to write one from scratch
Writing the mod - meta part- Open notepad,
- Paste this content:
► Show Spoiler
- Make sure <version major="4" minor="0" revision="9" build="329"/> line is the same as your spell list's
- In <attribute id="Author" type="LSWString" value=" "/> type your nickname (e.g. "Slavic Sorcerer"),
- In <attribute id="Description" type="LSWString" value=" "/> type short description (e.g. "Expands cleric spells"),
- In <attribute id="Folder" type="LSWString" value=" " type the name of the folder where the mod is located (in this case, "Cleric spells expanded"),
- In <attribute id="Name" type="FixedString" value=" "/> type the name of the mod (in this case, also "Cleric spells expanded"),
- In <attribute id="UUID" type="FixedString" value=" "/> paste a unique, generated UUID. You can find a generator here,
- Save the file as meta.lsx in Cleric spells expanded/Mods/Cleric spells expanded
- Don't include the brackets ( [ ] ), they are there for better readability of the guide
Making .pak file
Now with everything prepared, let's go to the finish line.
- Copy Shared.pak directly from the game's file to the BG3 Modding folder,
- Proceed to the ExportTool,
- Proceed to PAK/LSV Tools tab,
- In the Create Package section, in the line Source Path, click on the three dots ...,
- Pick the main folder of "Cleric spells expanded",
- In the Create Package section, in the line Package Path, click on the three dots ...,
- Pick the Shared.pak copied in step 1,
- Click "Create package",
- Rename the file to ClericSpellsExpanded
You can check if everything was done correctly by extracting your mod the same way we did with Shared.pak
If it looks like what's in the folders we created during this process, then it should be fine
Possible issues and how to deal with them
Extracting package failed, pop up while extracting Shared.pak
Read the popup. Most likely the version of the game has been changed. An update of the ExportTool is needed in this case. For other popups...well...google is your friend
I created two spell list mods, and only one works
Either one of them is done incorrectly, or one overwrites the other. I didn't investigate further how to solve this, I just dumped all spell edits into one mod.
Should anyone know how to fix it another way, please chime in
It's the only mod installed, and it doesn't work still
Double check your writing for sure. Worst case scenario, start from the beginning. Most likely there is a typo in the code.
Where do I get spells to add them to the list?
You can look on the web. I use the list from CheatEngine forum. If unsure, like for example with Shield spell, you can double check in the SpellList in either SharedDev or Shared.
I do not recommend adding spells that are created for other units (like for Mind Flayers). I never did this, I don't know what would happen. Do it at your own if you wish, but don't blame me :V
I added spell-like ability (e.g. Archfey's Fey Presence), and it doesn't show up
Spell-like ability =/= spell. Once I figure out how to do it, I will post a follow up
Last edited by Slavic Sorcerer on January 4th, 2024, 20:11, edited 4 times in total.
- Slavic Sorcerer
- Posts: 853
- Joined: Sep 9, '23
- Location: Poland
Editing spell list for beginners - class specific followup
I decided to leave it as a separate thing. The guide is already a walltext.
There is a difference in how you mod spell lists between classes that prepare spells, and classes that memorize them
This also plays a role when you're making your own custom class
Classes preparing spells know every spell, but they have limited slots to prepare them based on their class, and they can change it on a whim
Classes memorizing spells pick one (or otherwise) spell every level up, and they can exchange spells during level up too
Classes that prepare spells are: Cleric, Druid, Paladin
Classes that memorize spells: Bard, Sorcerer, Warlock, Eldritch Knight, Arcane Trickster, Ranger, Wizard*
*Wizard is a special case. From gameplay point of view, does both, but in terms of modding, we would mod Wizard as a class that memorizes spells. Also, I never made a mod for Wizard, I just looked at the lists and found pararells
(if I missed a spellcasting class, please tell me, I'm writing it from the top of my head)
Prepare spells classes
The case is pretty simple. The lists just look like this
I'll use Druid as an example
Take look at the list of spells. Level 1 spells are placed in "Druid spells level 1", Level 2 spells in "Druid spells level 2"
Cure Wounds spell appears only in the Level 1 spell list, but it doesnt in Level 2
Darkvision appears only in the Level 2 spell list, but it doesnt in Level 1
Make sure to place in their respective spell level. Placing them in different spell level nodes will render the mod not working at best, and crashing your game at worst.
The placing of the spell makes no difference gameplay wise. You can make sure it's alphabetical, but it's not necessary. Simply placing them in the correct node is enough
Memorizing spells classes
It gets a little more messy with those kinds of classes.
Sorcerer will be the example here
Notice how looooong the spell list is at Level 2. This is because every spell from Level 1 is repeated here
It is done to allow Sorcerers (and in turn, other memorizing spells classes) to pick spells at any time; like picking Sleep spell at level 7
When editing the spell lists for those classes, it is important to make sure the new spell appears on every appropriate list, or you won't be able to pick it later on.
E.g. Cure Wounds is a Level 1 spell, and we have to add it in Level 1 node, Level 2, Level 3, Level 4, Level 5, and Level 6
The placement on the list also matters
If you put Cure Wounds at the beginning of every list, it will appear next to Level 2, Level 3, Level 4 etc. spells. While functionality is not affected, it looks off
You can't also place Spirit Guardiansin Level 1 list, because it won't work. It requires to edit the Spirit Guardians spell itself to do so
You would place Spirit Guardians on the lists from Level 3 and up
What about cantrips?
Editing it is the simplest out of the bunch.
Every time the class picks a cantrip, their respective Cantrip list will be called
Placing Sacred Flame on the Wizard's cantrip list will make the cantrip one of the options when that happens
As always, I appreciate feedbacks and corrections, so don't hesitate
I decided to leave it as a separate thing. The guide is already a walltext.
There is a difference in how you mod spell lists between classes that prepare spells, and classes that memorize them
This also plays a role when you're making your own custom class
Classes preparing spells know every spell, but they have limited slots to prepare them based on their class, and they can change it on a whim
Classes memorizing spells pick one (or otherwise) spell every level up, and they can exchange spells during level up too
Classes that prepare spells are: Cleric, Druid, Paladin
Classes that memorize spells: Bard, Sorcerer, Warlock, Eldritch Knight, Arcane Trickster, Ranger, Wizard*
*Wizard is a special case. From gameplay point of view, does both, but in terms of modding, we would mod Wizard as a class that memorizes spells. Also, I never made a mod for Wizard, I just looked at the lists and found pararells
(if I missed a spellcasting class, please tell me, I'm writing it from the top of my head)
Prepare spells classes
The case is pretty simple. The lists just look like this
I'll use Druid as an example
► Show Spoiler
Cure Wounds spell appears only in the Level 1 spell list, but it doesnt in Level 2
Darkvision appears only in the Level 2 spell list, but it doesnt in Level 1
Make sure to place in their respective spell level. Placing them in different spell level nodes will render the mod not working at best, and crashing your game at worst.
The placing of the spell makes no difference gameplay wise. You can make sure it's alphabetical, but it's not necessary. Simply placing them in the correct node is enough
Memorizing spells classes
It gets a little more messy with those kinds of classes.
Sorcerer will be the example here
► Show Spoiler
It is done to allow Sorcerers (and in turn, other memorizing spells classes) to pick spells at any time; like picking Sleep spell at level 7
When editing the spell lists for those classes, it is important to make sure the new spell appears on every appropriate list, or you won't be able to pick it later on.
E.g. Cure Wounds is a Level 1 spell, and we have to add it in Level 1 node, Level 2, Level 3, Level 4, Level 5, and Level 6
The placement on the list also matters
If you put Cure Wounds at the beginning of every list, it will appear next to Level 2, Level 3, Level 4 etc. spells. While functionality is not affected, it looks off
You can't also place Spirit Guardiansin Level 1 list, because it won't work. It requires to edit the Spirit Guardians spell itself to do so
You would place Spirit Guardians on the lists from Level 3 and up
What about cantrips?
Editing it is the simplest out of the bunch.
► Show Spoiler
Placing Sacred Flame on the Wizard's cantrip list will make the cantrip one of the options when that happens
As always, I appreciate feedbacks and corrections, so don't hesitate
- Slavic Sorcerer
- Posts: 853
- Joined: Sep 9, '23
- Location: Poland
I have a follow up on this.I added spell-like ability (e.g. Archfey's Fey Presence), and it doesn't show up
Spell-like ability =/= spell. Once I figure out how to do it, I will post a follow up
Yes, you can add spell-like abilities to the spell list.
It works the same way as spells do, but there is a caveat:
Memorizing spells classes - you can prepare this spell. It won't be shown on the list of the spells prepared, but it will take a slot (even though visually it won't fill out the slot), and it will not consume spell slots unles stated otherwise or unless you edit the ability to do so. Same goes for short/long rest cooldowns.
Prepare spells classes - the spell-like ability will be one of the options to be picked like any spell would. All other properties, unless edited, will be the same as if you gained this as an ability.
Using it as a cantrip option - I'm 99.9% sure it will work, since it worked by just slapping it on the spell list.
Should I do it?
It's really up to you.
The upside is that you don't have to bother yourself with progression list edition (something I'm working on but a day is only 24h, so apologies), and if you - like me - are not satisfied with the e.g. Druid spell list, it might be an option
The downside is that it takes a precious slot that a spell could take. A spell that would not be limited by casting once per short/long rest
Does it work with Channel Divinity/Oath spell-like abilities?
It does, but unless those abilities are edited, they will require their respective resources (e.g. channel divinity charges) that naturally only a Cleric can obtain, unless edited + it will take up a slot from prepared spells
There are pieces of gear that grant the character wearing them those resources. Clerics can get an amulet from the temple in Act 3 while Paladins can obtain a piece of chest armor in Act 2 from one of the Moonrise Towers vendors
Does it work for every spell like ability?
I assume that yes. However I didn't test every single ability in that way, so I cannot be certain + editing progression will save you memory/preparation spell slots
Found this great bg3 modding resource
If confused looking up this place first is a good idea:
https://github.com/BG3-Community-Librar ... brary/wiki
If confused looking up this place first is a good idea:
https://github.com/BG3-Community-Librar ... brary/wiki
Last edited by orinEsque on November 7th, 2023, 22:55, edited 1 time in total.
Heya, do you do AI voice Tav requests? If so, what could we do to help? I have about 12 minutes of IWD dialogue that I generated with 11Labs AI. Thanks.
Not me unfortunately. There's thousands of lines. And after doing the no alphabets mod I'll be doing my own personal projects.dantrag28 wrote: ↑ November 18th, 2023, 09:40Heya, do you do AI voice Tav requests? If so, what could we do to help? I have about 12 minutes of IWD dialogue that I generated with 11Labs AI. Thanks.
However if you want to learn to make your own i can give you pointers.
I've seen a tutorial video on YouTube, it moves fast, and might as well be in Klingon. If you have a link to a simplified walkthrough, that'd be great! When I say "simplified", I mean for people with severe computer skill issues. ThanksiorinEsque wrote: ↑ November 18th, 2023, 16:40Not me unfortunately. There's thousands of lines. And after doing the no alphabets mod I'll be doing my own personal projects.dantrag28 wrote: ↑ November 18th, 2023, 09:40Heya, do you do AI voice Tav requests? If so, what could we do to help? I have about 12 minutes of IWD dialogue that I generated with 11Labs AI. Thanks.
However if you want to learn to make your own i can give you pointers.
Hmm I can type the steps out for you? Would that help?dantrag28 wrote: ↑ November 18th, 2023, 17:40I've seen a tutorial video on YouTube, it moves fast, and might as well be in Klingon. If you have a link to a simplified walkthrough, that'd be great! When I say "simplified", I mean for people with severe computer skill issues. ThanksiorinEsque wrote: ↑ November 18th, 2023, 16:40Not me unfortunately. There's thousands of lines. And after doing the no alphabets mod I'll be doing my own personal projects.dantrag28 wrote: ↑ November 18th, 2023, 09:40Heya, do you do AI voice Tav requests? If so, what could we do to help? I have about 12 minutes of IWD dialogue that I generated with 11Labs AI. Thanks.
However if you want to learn to make your own i can give you pointers.
That be great, Thanks! Whenever you get time.orinEsque wrote: ↑ November 18th, 2023, 17:51Hmm I can type the steps out for you? Would that help?dantrag28 wrote: ↑ November 18th, 2023, 17:40I've seen a tutorial video on YouTube, it moves fast, and might as well be in Klingon. If you have a link to a simplified walkthrough, that'd be great! When I say "simplified", I mean for people with severe computer skill issues. ThanksiorinEsque wrote: ↑ November 18th, 2023, 16:40
Not me unfortunately. There's thousands of lines. And after doing the no alphabets mod I'll be doing my own personal projects.
However if you want to learn to make your own i can give you pointers.
I followed your tutorial step by step and I tried to add Moonbeam to the Clerics Light Domain. But after I created the package I can't install it with the BG3 Mod Manager as it says "does it include a pak.file" which it obviously is. I'm literally loosing my mind over here I just want Moonbeam :')Slavic Sorcerer wrote: ↑ November 1st, 2023, 20:35Editing spell list for beginners
The guide is aimed at those who never created a mod in their entire life, and lists obvious knowledge more experienced people may already have.
The guide covers how to edit Spell List of a specific class, by either adding or removing spells.
This guide is not about how to create custom spells, nor how to edit spells (damage etc).
It's written by an amateur who discovered last week how to do it, so feel free to leave suggestions and corrections - especially on formatting here.
Preparations
Before we start, make sure you uninstall every mod from your game; including copy-paste-override ones. Just to be on the safe side.
Or you can browse for the files needed on the web, but it's better to take it from your installation folder
Those preparations will make out life easier while creating the mod. It's better to keep the things tidy.
If you can find yourself in chaos, you can skip this part
We're gonna create a lot of folders, and I will reference those folders later on.
We will also get our SpellList files.
- Create separate folder that will hold everything you work on; I named my folder "BG3 Modding",
- Inside the BG3 Modding folder create ExportTool folder,
- Download ExportTool by Norbyte,
- Unpack the package inside the ExportTool folder,
- Inside the ExportTool folder, create folder called Mod,
- Inside the Mod folder, create a new folder called Shared,
- Inside the BG3 Modding folder (we are circling back to the main folder) create BG3 Mod Manager folder,
- Download BG3 Mod Manager,
- Upack BG3 Mod manager in BG3 Mod Manager folder,
- Open ExportTool's application (called ConverterApp.exe as of writing),
- In the Game tab at the top of the window, make sure the game selected is Baldur's Gate 3 and the version at the bottom says [current version] (Baldur's Gate 3 release).
- Proceed to PAK / LSV Tools tab,
- In the Extract Package section, Package Path line, click on the thre dots ...,
- Find Shared.pak in your BG3 folder. By default it should be in: Baldurs Gate 3/Data folder. Click on it, then click Open,
- In the Extract Package section, Destination Path line, click on the thre dots ...,
- Pick the Shared folder we created earlier.
NotesCreating functioning mod
- You can, of course, skip the BG3 Mod manager, but it's gonna make installing and uninstalling mods a hassle, so it's not recommended.
- Apply relative fixes to BG3 Mod Manager, should you need them.
- Directory listed to Shared.pak is the default one.
Now the tedious part
Strap yourself and tell momma you're gonna be late for dinner.
For this example, we will be giving the Cleric class Bone Chill cantrip, and Misty Step spell
To make this work with BG3 Manager, we need to create the mod itself, and then the meta file.
This way we can use BG3 Manager to install and uninstall the mod whenever we see fit, and it reduces the risks of breaking your game.
We will be working on SpellList.lsx files.
There are two files like this; both in Shared and SharedDev folder. If the node with spells is not present in one, it should be present in another.
It's possible that's just my case and you won't see such separation in yours, but I doubt it
Folder preparationWriting the mod - SpellList part
- Go to the BG3 Modding folder,
- Create new folder, name it "Cleric spells expanded",
- In it, create two folders: Mods and Public,
- Inside the Mods folder, create folder "Cleric spells expanded". Final result should look like this: Cleric spells expanded/Mods/Cleric spells expanded
- Inside the Public folder, create "Cleric spells expanded" folder, then . Inside it, create Lists folder. Final result should look like this: Cleric spells expanded/Public/Cleric spells expaned/Lists
Now your edited spell list sits in your Cleric spells expanded/Public/Cleric spells expanded/Lists folder.
- Go to Shared/Public/SharedDev/Lists,
- Find SpellList.lsx file, and copy it to Cleric spells expanded/Public/Cleric spells expaned/Lists,
- Open the copied SpellList.lsx file in notepad,
- Remove every node, leaving something like this (values my vary but it's fine since we copied it from the original):
► Show Spoiler- Save the file,
- Open SpellList.lsx files, both from Shared/Public/SharedDev/Lists and Shared/Public/Shared/Lists,
- Find nodes for Cleric spells, by ctrl+F or scrolling,
- Copy node with cantrips, and paste it into your SpellList mod. Do the same with circle 2 spells. It should look like this now:
► Show Spoiler- In the "Cleric cantrips (Wisdom)" node, look at <attribute id="Spells" type="LSString" value=. That's where the spell list is. Carefully add Target_ChillTouch; to it
- Repeat the step above, but at "Cleric SLevel 2" type Target_MistyStep;
- The result will look like this:
► Show Spoiler- Save the file
We will be creating the aftermentioned meta file. I admit, I just copied it from other existing mods, like a template, and I have no idea how to write one from scratch
Writing the mod - meta partNow we have the meta file in Cleric spells expanded/Mods/Cleric spells expanded, and our edited spell list in Cleric spells expanded/Public/Cleric spells expanded/Lists
- Open notepad,
- Paste this content:
► Show Spoiler- Make sure <version major="4" minor="0" revision="9" build="329"/> line is the same as your spell list's
- In <attribute id="Author" type="LSWString" value=" "/> type your nickname (e.g. "Slavic Sorcerer"),
- In <attribute id="Description" type="LSWString" value=" "/> type short description (e.g. "Expands cleric spells"),
- In <attribute id="Folder" type="LSWString" value=" " type the name of the folder where the mod is located (in this case, "Cleric spells expanded"),
- In <attribute id="Name" type="FixedString" value=" "/> type the name of the mod (in this case, also "Cleric spells expanded"),
- In <attribute id="UUID" type="FixedString" value=" "/> paste a unique, generated UUID. You can find a generator here,
- Save the file as meta.lsx in Cleric spells expanded/Mods/Cleric spells expanded
Making .pak file
Now with everything prepared, let's go to the finish line.
Now install it as any mod using BG3 Mod Manager.
- Copy Shared.pak directly from the game's file to the BG3 Modding folder,
- Proceed to the ExportTool,
- Proceed to PAK/LSV Tools tab,
- In the Create Package section, in the line Source Path, click on the three dots ...,
- Pick the main folder of "Cleric spells expanded",
- In the Create Package section, in the line Package Path, click on the three dots ...,
- Pick the Shared.pak copied in step 1,
- Click "Create package",
- Rename the file to ClericSpellsExpanded
You can check if everything was done correctly by extracting your mod the same way we did with Shared.pak
If it looks like what's in the folders we created during this process, then it should be fine
Possible issues and how to deal with them
Extracting package failed, pop up while extracting Shared.pak
Read the popup. Most likely the version of the game has been changed. An update of the ExportTool is needed in this case. For other popups...well...google is your friend
I created two spell list mods, and only one works
Either one of them is done incorrectly, or one overwrites the other. I didn't investigate further how to solve this, I just dumped all spell edits into one mod.
Should anyone know how to fix it another way, please chime in
It's the only mod installed, and it doesn't work still
Double check your writing for sure. Worst case scenario, start from the beginning. Most likely there is a typo in the code.
Where do I get spells to add them to the list?
You can look on the web. I use the list from CheatEngine forum. If unsure, like for example with Shield spell, you can double check in the SpellList in either SharedDev or Shared.
I do not recommend adding spells that are created for other units (like for Mind Flayers). I never did this, I don't know what would happen. Do it at your own if you wish, but don't blame me :V
I added spell-like ability (e.g. Archfey's Fey Presence), and it doesn't show up
Spell-like ability =/= spell. Once I figure out how to do it, I will post a follow up
- Slavic Sorcerer
- Posts: 853
- Joined: Sep 9, '23
- Location: Poland
Damn, I love MoonbeamW3LTUS wrote: ↑ January 4th, 2024, 02:37I followed your tutorial step by step and I tried to add Moonbeam to the Clerics Light Domain. But after I created the package I can't install it with the BG3 Mod Manager as it says "does it include a pak.file" which it obviously is. I'm literally loosing my mind over here I just want Moonbeam :')
Both of my Clerics had it
Due to PC issues I no longer have the mods nor setup to make them
► Show Spoiler
I do remember I had similar issue to yours.
What helped me was doing the mod from scratch again.
The error, with information you provided, isnt about how you wrote the SpellList. At least not at this stage.
Something went amiss during ExportTool part.
Just to be sure please check:
- If the SpellList you created is in .lsx format
- if the SpellList sits in the correct folder path: Cleric spells expanded/Public/Cleric spells expanded/Lists
- if the meta file (which also needs to be in .lsx) sits in the correct folder path: Cleric spells expanded/Mods/Cleric spells expanded
I want to take a look just in case.
Last edited by Slavic Sorcerer on January 4th, 2024, 10:55, edited 2 times in total.
Alright, thank you!! I will start it from scratch and write down every step to see where the mistake isSlavic Sorcerer wrote: ↑ January 4th, 2024, 10:52Damn, I love MoonbeamW3LTUS wrote: ↑ January 4th, 2024, 02:37I followed your tutorial step by step and I tried to add Moonbeam to the Clerics Light Domain. But after I created the package I can't install it with the BG3 Mod Manager as it says "does it include a pak.file" which it obviously is. I'm literally loosing my mind over here I just want Moonbeam :')
Both of my Clerics had it
Due to PC issues I no longer have the mods nor setup to make themI'll help you the best I can.► Show Spoiler
I do remember I had similar issue to yours.
What helped me was doing the mod from scratch again.
The error, with information you provided, isnt about how you wrote the SpellList. At least not at this stage.
Something went amiss during ExportTool part.
Just to be sure please check:Also, could you please copy-paste your created SpellList? Not the file itself, but the code, so to speak.
- If the SpellList you created is in .lsx format
- if the SpellList sits in the correct folder path: Cleric spells expanded/Public/Cleric spells expanded/Lists
- if the meta file (which also needs to be in .lsx) sits in the correct folder path: Cleric spells expanded/Mods/Cleric spells expanded
I want to take a look just in case.
- removed all mods from the mod folder and BG3 Mod Manager (I have no spell mods anyway)Slavic Sorcerer wrote: ↑ January 4th, 2024, 10:52Damn, I love MoonbeamW3LTUS wrote: ↑ January 4th, 2024, 02:37I followed your tutorial step by step and I tried to add Moonbeam to the Clerics Light Domain. But after I created the package I can't install it with the BG3 Mod Manager as it says "does it include a pak.file" which it obviously is. I'm literally loosing my mind over here I just want Moonbeam :')
Both of my Clerics had it
Due to PC issues I no longer have the mods nor setup to make themI'll help you the best I can.► Show Spoiler
I do remember I had similar issue to yours.
What helped me was doing the mod from scratch again.
The error, with information you provided, isnt about how you wrote the SpellList. At least not at this stage.
Something went amiss during ExportTool part.
Just to be sure please check:Also, could you please copy-paste your created SpellList? Not the file itself, but the code, so to speak.
- If the SpellList you created is in .lsx format
- if the SpellList sits in the correct folder path: Cleric spells expanded/Public/Cleric spells expanded/Lists
- if the meta file (which also needs to be in .lsx) sits in the correct folder path: Cleric spells expanded/Mods/Cleric spells expanded
I want to take a look just in case.
- created all the needed folders and placed both the Mod Manager and ExportTool in it
- exported the shared.pak file inside the ExportTool/Mod folder
- copied the SpellLists.lsx file to BG3 Modding\Cleric Light Moonbeam\Public\Cleric Light Moonbeam\Lists
- removed everything like in your description
- found the required node in the Shared (not SharedDev) folder
- I found a „Cleric, Light Domain spell scroll list“ as well but I doubt that’s the one?
- added the node into SpellLists.lsx file and added „Target_Moonbeam;“ to the spells
- saved it
- created the meta.lsx file and followed your instructions
- packed it all up and still the same issue
Currently it looks like:
BG3 Modding\Cleric Light Moonbeam\Mods\Cleric Light Moonbeam\meta.lsx
BG3 Modding\Cleric Light Moonbeam\Public\Cleric Light Moonbeam\Lists\SpellLists.lsx
meta.lsx
Code: Select all
<?xml version="1.0" encoding="UTF-8"?>
<save>
<version major="4" minor="3" revision="0" build="300"/>
<region id="Config">
<node id="root">
<children>
<node id="Dependencies"/>
<node id="ModuleInfo">
<attribute id="Author" type="LSWString" value="[W3LTUS]"/>
<attribute id="CharacterCreationLevelName" type="FixedString" value=""/>
<attribute id="Description" type="LSWString" value="[adds Moonbeam to the Light Domain]"/>
<attribute id="Folder" type="LSWString" value="[Cleric Light Moonbeam]"/>
<attribute id="GMTemplate" type="FixedString" value=""/>
<attribute id="LobbyLevelName" type="FixedString" value=""/>
<attribute id="MD5" type="LSString" value=""/>
<attribute id="MainMenuBackgroundVideo" type="FixedString" value=""/>
<attribute id="MenuLevelName" type="FixedString" value=""/>
<attribute id="Name" type="FixedString" value="[Cleric Light Moonbeam]"/>
<attribute id="NumPlayers" type="uint8" value="4"/>
<attribute id="PhotoBooth" type="FixedString" value=""/>
<attribute id="StartupLevelName" type="FixedString" value=""/>
<attribute id="Tags" type="LSWString" value=""/>
<attribute id="Type" type="FixedString" value="Add-on"/>
<attribute id="UUID" type="FixedString" value="[084de853-d53f-45d6-86ba-c2936ae68f7f]"/>
<attribute id="Version" type="int32" value="1"/>
<children>
<node id="PublishVersion">
<attribute id="Version" type="int32" value="1"/>
</node>
<node id="Scripts"/>
<node id="TargetModes">
<children>
<node id="Target">
<attribute id="Object" type="FixedString" value="Story"/>
</node>
</children>
</node>
</children>
</node>
</children>
</node>
</region>[/pre]
Code: Select all
<?xml version="1.0" encoding="UTF-8"?>
<save>
<version major="4" minor="3" revision="0" build="300"/>
<region id="SpellLists">
<node id="root">
<children>
<node id="SpellList">
<attribute id="Comment" type="LSString" value="Cleric Light Domain 2"/>
<attribute id="Spells" type="LSString" value="Target_FlamingSphere;Target_Moonbeam;Projectile_ScorchingRay"/>
<attribute id="UUID" type="guid" value="31037493-7a57-4dce-9412-4689c010199c"/>
</node>
</children>
</node>
</region>
</save>
EDIT
It finally worked. I downloaded a different mod, unpacked it and changed the files so it was basically the same as in your tutorial. The only difference was the json file. I was able to pack it together afterwards with ModManager recognizing it... so I think it was a small mistake hidden in the code. Moonbeam wasn't availaible for me at first tho... I added the Spell Scroll List (the one I mentioned earlier) as well with Moonbeam in it and it worked!
Thank you for your help.
Last edited by W3LTUS on January 4th, 2024, 20:06, edited 1 time in total.
- Slavic Sorcerer
- Posts: 853
- Joined: Sep 9, '23
- Location: Poland
Hm, I'll review the guide later if I missed to mention this, but remove the bracketsW3LTUS wrote: ↑ January 4th, 2024, 19:15meta.lsxCode: Select all
<?xml version="1.0" encoding="UTF-8"?> <save> <version major="4" minor="3" revision="0" build="300"/> <region id="Config"> <node id="root"> <children> <node id="Dependencies"/> <node id="ModuleInfo"> <attribute id="Author" type="LSWString" value="[W3LTUS]"/> <attribute id="CharacterCreationLevelName" type="FixedString" value=""/> <attribute id="Description" type="LSWString" value="[adds Moonbeam to the Light Domain]"/> <attribute id="Folder" type="LSWString" value="[Cleric Light Moonbeam]"/> <attribute id="GMTemplate" type="FixedString" value=""/> <attribute id="LobbyLevelName" type="FixedString" value=""/> <attribute id="MD5" type="LSString" value=""/> <attribute id="MainMenuBackgroundVideo" type="FixedString" value=""/> <attribute id="MenuLevelName" type="FixedString" value=""/> <attribute id="Name" type="FixedString" value="[Cleric Light Moonbeam]"/> <attribute id="NumPlayers" type="uint8" value="4"/> <attribute id="PhotoBooth" type="FixedString" value=""/> <attribute id="StartupLevelName" type="FixedString" value=""/> <attribute id="Tags" type="LSWString" value=""/> <attribute id="Type" type="FixedString" value="Add-on"/> <attribute id="UUID" type="FixedString" value="[084de853-d53f-45d6-86ba-c2936ae68f7f]"/> <attribute id="Version" type="int32" value="1"/> <children> <node id="PublishVersion"> <attribute id="Version" type="int32" value="1"/> </node> <node id="Scripts"/> <node id="TargetModes"> <children> <node id="Target"> <attribute id="Object" type="FixedString" value="Story"/> </node> </children> </node> </children> </node> </children> </node> </region>[/pre]
EDIT: Yes, I did miss it. The guide has been updated.
Using the example of this function:
Code: Select all
<attribute id="UUID" type="FixedString" value="[084de853-d53f-45d6-86ba-c2936ae68f7f]"/>
Because brackets ([ ]) are read as a part of the value, it tries to call for [084de853-d53f-45d6-86ba-c2936ae68f7f], which does not exist.
Values to be called for must be exactly the same in both SpellList and meta files, including folder names for the meta file.
Copy-paste this one in the meta.lsx and see if it works
Code: Select all
<?xml version="1.0" encoding="UTF-8"?>
<save>
<version major="4" minor="3" revision="0" build="300"/>
<region id="Config">
<node id="root">
<children>
<node id="Dependencies"/>
<node id="ModuleInfo">
<attribute id="Author" type="LSWString" value="W3LTUS"/>
<attribute id="CharacterCreationLevelName" type="FixedString" value=""/>
<attribute id="Description" type="LSWString" value="adds Moonbeam to the Light Domain"/>
<attribute id="Folder" type="LSWString" value="Cleric Light Moonbeam"/>
<attribute id="GMTemplate" type="FixedString" value=""/>
<attribute id="LobbyLevelName" type="FixedString" value=""/>
<attribute id="MD5" type="LSString" value=""/>
<attribute id="MainMenuBackgroundVideo" type="FixedString" value=""/>
<attribute id="MenuLevelName" type="FixedString" value=""/>
<attribute id="Name" type="FixedString" value="Cleric Light Moonbeam"/>
<attribute id="NumPlayers" type="uint8" value="4"/>
<attribute id="PhotoBooth" type="FixedString" value=""/>
<attribute id="StartupLevelName" type="FixedString" value=""/>
<attribute id="Tags" type="LSWString" value=""/>
<attribute id="Type" type="FixedString" value="Add-on"/>
<attribute id="UUID" type="FixedString" value="084de853-d53f-45d6-86ba-c2936ae68f7f"/>
<attribute id="Version" type="int32" value="1"/>
<children>
<node id="PublishVersion">
<attribute id="Version" type="int32" value="1"/>
</node>
<node id="Scripts"/>
<node id="TargetModes">
<children>
<node id="Target">
<attribute id="Object" type="FixedString" value="Story"/>
</node>
</children>
</node>
</children>
</node>
</children>
</node>
</region>[/pre]
Let me know if that works.
Also, I use the words "function" and "code" for lack of better term.
Apologies to any programmers out there for my sins.
Last edited by Slavic Sorcerer on January 4th, 2024, 20:15, edited 4 times in total.
Yes it worked. As mentioned earlier the spell scroll list is important in this case as well! Thank you!Slavic Sorcerer wrote: ↑ January 4th, 2024, 20:08Hm, I'll review the guide later if I missed to mention this, but remove the bracketsW3LTUS wrote: ↑ January 4th, 2024, 19:15meta.lsxCode: Select all
<?xml version="1.0" encoding="UTF-8"?> <save> <version major="4" minor="3" revision="0" build="300"/> <region id="Config"> <node id="root"> <children> <node id="Dependencies"/> <node id="ModuleInfo"> <attribute id="Author" type="LSWString" value="[W3LTUS]"/> <attribute id="CharacterCreationLevelName" type="FixedString" value=""/> <attribute id="Description" type="LSWString" value="[adds Moonbeam to the Light Domain]"/> <attribute id="Folder" type="LSWString" value="[Cleric Light Moonbeam]"/> <attribute id="GMTemplate" type="FixedString" value=""/> <attribute id="LobbyLevelName" type="FixedString" value=""/> <attribute id="MD5" type="LSString" value=""/> <attribute id="MainMenuBackgroundVideo" type="FixedString" value=""/> <attribute id="MenuLevelName" type="FixedString" value=""/> <attribute id="Name" type="FixedString" value="[Cleric Light Moonbeam]"/> <attribute id="NumPlayers" type="uint8" value="4"/> <attribute id="PhotoBooth" type="FixedString" value=""/> <attribute id="StartupLevelName" type="FixedString" value=""/> <attribute id="Tags" type="LSWString" value=""/> <attribute id="Type" type="FixedString" value="Add-on"/> <attribute id="UUID" type="FixedString" value="[084de853-d53f-45d6-86ba-c2936ae68f7f]"/> <attribute id="Version" type="int32" value="1"/> <children> <node id="PublishVersion"> <attribute id="Version" type="int32" value="1"/> </node> <node id="Scripts"/> <node id="TargetModes"> <children> <node id="Target"> <attribute id="Object" type="FixedString" value="Story"/> </node> </children> </node> </children> </node> </children> </node> </region>[/pre]
EDIT: Yes, I did miss it. The guide has been updated.
Using the example of this function:The value to be called for in this one is between " ", and in the eyes of the function the value is [084de853-d53f-45d6-86ba-c2936ae68f7f], not 084de853-d53f-45d6-86ba-c2936ae68f7f as it should be.Code: Select all
<attribute id="UUID" type="FixedString" value="[084de853-d53f-45d6-86ba-c2936ae68f7f]"/>
Because brackets ([ ]) are read as a part of the value, it tries to call for [084de853-d53f-45d6-86ba-c2936ae68f7f], which does not exist.
Values to be called for must be exactly the same in both SpellList and meta files, including folder names for the meta file.
Copy-paste this one in the meta.lsx and see if it worksCode: Select all
<?xml version="1.0" encoding="UTF-8"?> <save> <version major="4" minor="3" revision="0" build="300"/> <region id="Config"> <node id="root"> <children> <node id="Dependencies"/> <node id="ModuleInfo"> <attribute id="Author" type="LSWString" value="W3LTUS"/> <attribute id="CharacterCreationLevelName" type="FixedString" value=""/> <attribute id="Description" type="LSWString" value="adds Moonbeam to the Light Domain"/> <attribute id="Folder" type="LSWString" value="Cleric Light Moonbeam"/> <attribute id="GMTemplate" type="FixedString" value=""/> <attribute id="LobbyLevelName" type="FixedString" value=""/> <attribute id="MD5" type="LSString" value=""/> <attribute id="MainMenuBackgroundVideo" type="FixedString" value=""/> <attribute id="MenuLevelName" type="FixedString" value=""/> <attribute id="Name" type="FixedString" value="Cleric Light Moonbeam"/> <attribute id="NumPlayers" type="uint8" value="4"/> <attribute id="PhotoBooth" type="FixedString" value=""/> <attribute id="StartupLevelName" type="FixedString" value=""/> <attribute id="Tags" type="LSWString" value=""/> <attribute id="Type" type="FixedString" value="Add-on"/> <attribute id="UUID" type="FixedString" value="084de853-d53f-45d6-86ba-c2936ae68f7f"/> <attribute id="Version" type="int32" value="1"/> <children> <node id="PublishVersion"> <attribute id="Version" type="int32" value="1"/> </node> <node id="Scripts"/> <node id="TargetModes"> <children> <node id="Target"> <attribute id="Object" type="FixedString" value="Story"/> </node> </children> </node> </children> </node> </children> </node> </region>[/pre]
Let me know if that works.
Also, I use the words "function" and "code" for lack of better term.
Apologies to any programmers out there for my sins.