Baldur's Gate 3

This mod allows other modders to add their own spawns, and it is relatively simple.

- If you have never modded before, find a tutorial and join the #bg3-mods-dev-chat channel in the BG3/Larian Studios Discord.
- Download LSLib and Modders Multitool. Use stickies or the tutorial to figure out why and what to do with them.
- The rest of this assumes you know how to set up the folder structure for your mod and know how to pack it. If you don't, to Discord you go!

- Create a mod folder structure for your new mod.
- In the same folder you have the Stats folder in, create one called RandomCasts (no space).
- In the RandomCasts folder, create a text file called Outcomes.lsx and add the following code block:

<?xml version="1.0" encoding="UTF-8"?>
<save>
    <version major="4" minor="0" revision="9" build="307"/>
    <region id="Outcomes">
        <node id="root">
            <children>
        <node id="Outcome">
                    <attribute id="GroupName" type="FixedString" value="
SpawnGroupNameHere"/>
                    <attribute id="Spell" type="FixedString" value="
YourSpawnShoutSpellNameHere"/>
                    <attribute id="UUID" type="guid" value="UniqueUUID"/>
                </node>

            </children>
        </node>
    </region>
</save>


- The GREEN code is static, you don't mess with it.
- The YELLOW and BLUE code you will copy and modify as many times as you need.
- Customize the blue code as appropriate. The UUID can be obtained via Modders Multitool and the Shout data is below.
- Place the Shout spawn data in a file located in Stats\Generated\Data in your folder structure. It's easy if you learned the basics. You can have as many as you want. If you don't know what a Root Template is, or what a MapKey is, off to Discord you go!

Spawn Group names are as follows:
Shadowquake_WLDMainA for Act 1
Shadowquake_CREMainA for Crèche Y'llek
Shadowquake_SCLMainA for Act 2
Shadowquake_BGOMainA for Baldur's Gate (Outskirts)
Shadowquake_CTYMainA for Baldur's Gate (Main City)
Shadowquake_IRNMainA for the Iron Throne

new entry "YourSpawnShoutSpellNameHere"
type "SpellData"
data "SpellType" "Shout"
using "TH_Shadowquake_SpawnBase"
data "DisplayName" "YourLocalizationFileHandleHere;1"
data "Icon" "Spell_Enchantment_CrownOfMadness"
data "SpellRoll" "CharacterLevelGreaterThan(0)"
data "SpellSuccess" "Spawn(SpawnRootTemplateMapKeyUUID,Permanent,,,THREV_SpawnPortal_Color,TH_Shadowquake_SpawnStatus)"

- The following color spawn portals are available. This does NOT need to be used if the spawn has another entry method (explosion, comes from the ground, etc) and you can completely delete that boost from the Shout if it is not used.
* THREV_SpawnPortal_Purple
* THREV_SpawnPortal_Green
* THREV_SpawnPortal_Red
* THREV_SpawnPortal_Blue

- This is IMPORTANT! If you are adding a powerful spawn and do NOT want it to scale, replace TH_Shadowquake_SpawnStatus in the Shout above with TH_Shadowquake_SpawnNoScaling
- If you want to level-lock your spawn to prevent it from spawning and kicking the ass of a low-level group change the data "SpellRoll" "CharacterLevelGreaterThan(0)" from 0 to whatever level you want. There is a system in place to reroll if an initial spawn is level-locked.
-- - If you want to add additional checks to your spawn to to ensure it only spawns in certain scenarios, in addition to changing the character minimum level (see above), you can change the data "SpellRoll" "CharacterLevelGreaterThan(0)" and add things like and not IsInSunlight(context.Source) or and InSurface('SurfaceWater') to allow the spawn ONLY if the player isn't in sunlight or if they are in a water surface.

- Pack your mod, upload it to Nexus and list the main file from here as a Required File. That's it!

Article information

Added on

Edited on

Written by

GabeCamomescro