Editing Modding:Coding An Item

Jump to navigation Jump to search
Warning: You are not logged in. Your IP address will be publicly visible if you make any edits. If you log in or create an account, your edits will be attributed to your username, along with other benefits.

The edit can be undone. Please check the comparison below to verify that this is what you want to do, and then publish the changes below to finish undoing the edit.

Latest revision Your text
Line 3: Line 3:
|description=This page is a hub for everything related to Modding Baldur's Gate 3. Check out the following guides to learn how to mod BG3.
|description=This page is a hub for everything related to Modding Baldur's Gate 3. Check out the following guides to learn how to mod BG3.
|image=Modding_resources.webp
|image=Modding_resources.webp
}}{{Modding box}}{{Modding sidebar}}<div column-width: "60em2;>
}}{{NavModding}}
 
<div column-width: "60em2;>
You have made a mesh for a human man, a circlet. We are going to add it to the game. [[Modding:Creating and Exporting Meshes in Blender|(See here for how to make new meshes in Blender!)]]
You have made a mesh for a human man, a circlet. We are going to add it to the game. [[Modding:Creating and Exporting Meshes in Blender|(See here for how to make new meshes in Blender!)]]


Remember to check your naming conventions for .lsf.lsx files so the multitool correctly converts them, and keep in mind that some lsx files should not be converted to lsf at all.
Remember to check your naming conventions for .lsf.lsx files so the multitool correctly converts them, and keep in mind that some lsx files should not be converted to lsf at all.


This guide does not cover adding custom icons. For that, see [[Modding:Creating Item Icons|Creating Item Icons]].  
This guide does not cover adding custom icons.


==Sample Templates==
== Sample Templates ==
Please do remember it is best practice to unpack and consult the game files directly.
Please do remember it is best practise to unpack and consult the game files directly.
*[https://www.nexusmods.com/baldursgate3/mods/3862 Mod Builder] by ReallyLazyIcarus. A python script that generates a folder workspace and empty lsx in the correct format to be converted with the multitool. Recommended!
*[https://www.nexusmods.com/baldursgate3/mods/3862 Mod Builder] by ReallyLazyIcarus. A python script that generates a folder workspace and empty lsx in the correct format to be converted with the multitool. Recommended!
*[https://www.nexusmods.com/baldursgate3/mods/5165 BG3 Equipment Generator] by Bytebard. A new program, it looks to be a promising new way to add items.
*[https://www.nexusmods.com/baldursgate3/mods/5165 BG3 Equipment Generator] by Bytebard. A new program, it looks to be a promising new way to add items.
Line 21: Line 23:
*[https://www.nexusmods.com/baldursgate3/mods/249 Sample Equipment Mod] by AnteMaxx
*[https://www.nexusmods.com/baldursgate3/mods/249 Sample Equipment Mod] by AnteMaxx
**A template mod for Armor and Weapon modding, and for implementing custom icons. Contains 3 armors, 1 weapon and 1 backpack. Mainly a modder's resource, but can be enjoyed by players as well.
**A template mod for Armor and Weapon modding, and for implementing custom icons. Contains 3 armors, 1 weapon and 1 backpack. Mainly a modder's resource, but can be enjoyed by players as well.
*[https://www.nexusmods.com/baldursgate3/mods/1808 BG3 Creator's Cauldron]- an older program. Useful for its long lists of armor.txt and passives for you to use.
*[https://www.nexusmods.com/baldursgate3/mods/1808 BG3 Creator's Cauldron]- an older program. Useful for its long lists of armor.txt and passives for you to use.  
*[https://www.nexusmods.com/baldursgate3/mods/502 BG3 MiniTool by Padme4000]- Can generate a [[Modding:Creating meta.lsx|Meta]] for you to use.
*[https://www.nexusmods.com/baldursgate3/mods/502 BG3 MiniTool by Padme4000]- Can generate a [[Modding:Creating meta.lsx|Meta]] for you to use.
==File Overview==
==File Overview ==


Your mod is '''MySweetMod'''
Your mod is '''MySweetMod'''
Line 45: Line 47:
******Assets
******Assets
*******Characters
*******Characters
******** [PAK]_Armor <-- material and mesh LSX for custom outfits and weapons
********[PAK]_Armor <-- material and mesh LSX for custom outfits and weapons
****GUI  
**** GUI  
*****RootTemplates <--- Your Roottemplate lsx goes here. MySweetMod.Lsx
*****RootTemplates <--- Your Roottemplate lsx goes here. MySweetMod.Lsx
*****Stats
*****Stats  
*******Generated <--- TreasureTable.txt - This tells the game where the item will spawn.
*******Generated <--- TreasureTable.txt - This tells the game where the item will spawn.
********Data <--- Armor.txt, Object.txt, Passive.txt, Weapon.txt and other TXT files. These contain stats.
********Data <--- Armor.txt, Object.txt, Passive.txt, Weapon.txt and other TXT files. These contain stats.
Line 129: Line 131:
  </save>                           
  </save>                           


==Materials and Texture .lsx==
==Materials and Texture .lsx ==
Now, we move on to our materialbank.
Now, we move on to our materialbank.


Line 191: Line 193:


In order to make, say, pants disappear when boots are put on, you may need to use a _Vertcut Material, such as 'Public/Shared/Assets/Materials/Characters/CHAR_BASE_VertCut.lsf', and ensure VertexMask is set to True in the mesh lsx. (As well as vertex painting the item itself the desired colour)
In order to make, say, pants disappear when boots are put on, you may need to use a _Vertcut Material, such as 'Public/Shared/Assets/Materials/Characters/CHAR_BASE_VertCut.lsf', and ensure VertexMask is set to True in the mesh lsx. (As well as vertex painting the item itself the desired colour)
[[Modding:Non-VT Shaders|See here for a list of available materials.]]


We now add a texturebank to the same lsx.
We now add a texturebank to the same lsx.
Line 222: Line 222:
If there is anything wrong with the material, your item may simply refuse to show up, so it is worth double-checking everything here.
If there is anything wrong with the material, your item may simply refuse to show up, so it is worth double-checking everything here.


==RootTemplate ==
==RootTemplate==
Now for the game to recognise the circlet as an item, we add it to the root template lsx:
Now for the game to recognise the circlet as an item, we add it to the root template lsx:


Line 243: Line 243:
  <attribute id="MapKey" type="FixedString" value="0000000000000000000000000002" /> '''This links up to the armor.txt to form the armor.'''
  <attribute id="MapKey" type="FixedString" value="0000000000000000000000000002" /> '''This links up to the armor.txt to form the armor.'''
  <attribute id="Name" type="LSString" value="MY_COOL_NEW_CIRCLET" /> '''This links up to the armor.txt to form the armor.'''
  <attribute id="Name" type="LSString" value="MY_COOL_NEW_CIRCLET" /> '''This links up to the armor.txt to form the armor.'''
  <attribute id="ParentTemplateId" type="FixedString" value="4d2e0931-3a01-4759-834b-8ae36749daab" /> '''This tells the game roughly what kind of item it is, such as in this case a helm. You should use the right kind for your item to avoid inherited problems. For example a shield will not know it is a shield without this ParentTemplate.''' '''If something is not specified in your root template, [such as description, icon, equip sound] it will fall back on this parenttemplate and use the ones listed there.'''
  <attribute id="ParentTemplateId" type="FixedString" value="4d2e0931-3a01-4759-834b-8ae36749daab" /> '''This tells the game roughly what kind of item it is, such as in this case a helm. You should use the right kind for your item to avoid inherited problems. For example a shield will not know it is a shield without this ParentTemplate.'''
  <attribute id="PhysicsTemplate" type="FixedString" value="327039da-0827-811f-24e8-fc57e86c7ba2" /> '''I believe similar to the above, this needs to be roughly the same type as the armour you are adding.'''
  <attribute id="PhysicsTemplate" type="FixedString" value="327039da-0827-811f-24e8-fc57e86c7ba2" /> '''I believe similar to the above, this needs to be roughly the same type as the armour you are adding.'''
  <attribute id="Type" type="FixedString" value="item" />
  <attribute id="Type" type="FixedString" value="item" />
Line 440: Line 440:
If you plan to put a lot of items in your mod, it is recommended to create a bag item containing them and put that in the Tutorial Chest, to avoid clutter.
If you plan to put a lot of items in your mod, it is recommended to create a bag item containing them and put that in the Tutorial Chest, to avoid clutter.


If something goes wrong, it is recommended to overwrite a custom mesh from someone else's  
If something goes wrong, it is recommended to overwrite a custom mesh from someone else's mod, or add it to the back of an existing mod. When you know the fault is not with your mesh, you check your materials, and so you can fix things one step at a time.
 
 
[[Category:Modding guides]]
[[Category:Modding guides]]
[[Category:Armor modding]]
[[Category:Armor modding]]
mod, or add it to the back of an existing mod. When you know the fault is not with your mesh, you check your materials, and so you can fix things one step at a time.{{Modding navbox}}
Please note that all contributions to Baldur's Gate 3 Wiki are considered to be released under the CC BY-NC-SA license, except when noted otherwise (see BG3Wiki:Copyrights for details). If you do not want your writing to be edited and redistributed at will, do not submit it here. Per our Content Rules, you are promising that you wrote this yourself, or copied it from a public domain or similar free resource. Do not submit copyrighted work without permission!

To edit this page, please answer the question that appears below (more info):

Cancel Editing help (opens in new window)