About this mod
This is a re-imagining of the Shadow Sorcerer from 5e Xanathar's Guide to Everything which is adapted to work within the confines of a Level 12 BG Campaign. This is largely inspired and assisted by another module that was around during Early Access - Sorcerer Subclasses. This mod however is going to focus on Shadow Sorcerer only.
- Requirements
- Permissions and credits
-
Translations
- Ukrainian
- Russian
- Portuguese
- Korean
- Italian
- Donations
Please install the Baldurs Gate 3 - Script Extender.
https://github.com/Norbyte/bg3se
If you have already installed a version prior to 1.01 - you 'might' get save corruption or CTD when moving to the higher versions. Unfortunately this is because in the earlier versions the spell ID's were in one format, but in later versions I changed to use a prefix in the spell-id's - to add more compatibility with other mods. The consequence of this is that it seems to cause a CTD when loading a game where you have achieved perhaps level 7+.
I apologise for this inconvenience - this is my first time doing a mod for BG3 - so it was not something I was aware of.
I am hoping this will never occur again.
In versions 1.01+ :
All spells, passives, creatures, weapons, armors etc - that this mod introduces will have a prefix that should make sure it does not conflict with other mods or unintended interaction with classes.
Eg:
Drow racial - Darkness - will be unaffected by Shadow Sorcerer
Warlock Darkness - will be unaffected by Shadow Sorcerer etc
Darkness - Enchant Item now uses a version of BLIND that does not trigger combat - so no unintentional combat being triggered in camp or when using it as a stealth aid.
Updates: Please ensure you have BG3 Script Extender - 1.01+ uses this for Darkness Spell
- 1.15
Rebased datatemplate.xaml from patch 6 client Endarken no longer reports an advantage on attacks in tooltips. - 1.14
- Not sure if the previous version was being hooked up correctly to the compatibility framework or not. I've dug through a few other mods and implemented som extra code to mirror what they are doing to faciliate this - it should hopefully get the compatibility framework working again.
- Not sure if the previous version was being hooked up correctly to the compatibility framework or not. I've dug through a few other mods and implemented som extra code to mirror what they are doing to faciliate this - it should hopefully get the compatibility framework working again.
- 1.13
- Was having a small hiatus
- Fixed data template.xaml to fix the party display
- Updated to use the stats loaded approach as described on compatibility framework documentation- have not tested this thoroughly yet - let me know if it is not working or doing something odd.
- 1.12
- Small change to LUA script to remove nil/null related error being printed to console.
- Adding support for the Compatibility Framework - this mod will attempt to dynamically add itself to the classes screen in instances where other people are adding sorcerer sub-classes.
- Removal of some redundant files.
- Altered the hound of ill omen to prevent it from getting 300% hp bonus from Tactician Plus (300% hp boost) mod. This fix is also in the Hound of Ill Omen enhancement mod.
- 1.11
- Improved UI was using a sub-folder layout for class icons - I have now updated Shadow Sorcerer to use the same folder path. This should ensure that shadow sorc icons work with improved ui.
- The Hound of ill Omen is now summonable by players if they are using level cap removers - eg: level 12+ can now summon the hound - however it won't have any additional stats.
- 1.10
- Fixing of Strength of the Grave : Previous versions were applying the heal effect before the death or downed status was applied, which ended up negating the +1 heal effect from the passive feature. This feature now uses script extender to detect the application of downed or death and then apply the +1 heal. The result is that the sorcerer will briefly enter downed or death status, but then get back up.
- Grants +1 heal
- Restores action points
- Restores bonus action points
- Restores movement points
- Only triggers on death or downed from non radiant and non-critical hit damages
- Only occurs once per long rest
- +1 Hp might not sound like alot, but given it lets you survive to another turn - you will have the ability to possibly down a potion, cast a spell, jump/teleport to safety. This is all at the mercy of the turns though and how many foes you face.
- Starting from 1.10 : This mod will now be compatible with ImprovedUI. There was a delay on this because both the ImprovedUI author and I had to collaborate and decide on pak priorities that we could both use which would also prevent larian patches from stepping on our toes. Eg: Larian hotfixes have now got up to 21 in pak priority. So we needed to choose something much higher, while also allowing ImprovedUI to be higher than Shadow Sorcerer.
- This new collaborative approach will mean that Shadow Sorcerer will work out of the box on its own, but will also work with ImprovedUI (the version they have released today: 7/10/2023).
- This means that using Shadow Sorcerer will not 'require' you to use another mod, but you can use that other mod if you choose to.
- The icon override packs for Shadow Sorcerer are also being updated too.
- Fixing of Strength of the Grave : Previous versions were applying the heal effect before the death or downed status was applied, which ended up negating the +1 heal effect from the passive feature. This feature now uses script extender to detect the application of downed or death and then apply the +1 heal. The result is that the sorcerer will briefly enter downed or death status, but then get back up.
- Small Adjustment to the uninstallation script.
- The uninstallation script will no longer run at the end of respec - this was probably a bad idea to begin with - as it meant that it was possibly going to affect respec's where you were respecing to Shadow Sorcerer or when you were just respecing to change some spells etc.
- The new way of running the uninstallation script will be done by executing a console command - you should refer to the newly revised uninstall steps in this document.
- Since hotfix 7 - it is possibly no longer as important as it previously was to 'clean' your character. As Larian have now added code that handles invalid items and the like which were causing crashes.
- Shadow Blade was possibly not charging any spell slots
- It was also using a bonus action instead of action - given that no one complained about it using bonus action, I decided to keep it as bonus action, but now it uses spell slots. So while you can use it in tandem with an action, it will however cost spell slots now.
- It is now a container spell and will allow using of spell slots from 2-6 (upcast does not increase its strength)
- I might change the upcast to make it more powerful with higher spell slots- Undecided at this stage.
- I was hoping that Hotfix 7 might have fixed some legacy Shadow Sorcerer saves from pre 1.01- unfortunately it did not.
1.08 is out
- Reverted - Some UI issues caused by spells being added by script extender.
- Darkness spells are now added by the passives instead of me trying to be smart and adding them via script extender.
- Darkness correctly charges : Spell slots, or 2 Sorcery points if cast while eyes of the dark toggle is enabled.
- Im keeping an eye on the Shadow Walk ability - it is functional - but there might be something wrong with it not updating the icon to show enabled/disabled.
- This version resolves save corruption that occurs when people are uninstalling the mod. I've included detailed steps on how to uninstall the mod in the readme.html file - please read it and follow the steps precisely.
- Some passives have been refactored to be simpler - their logic is moved into Script Extender. Script Extender is basically a hard requirement now for Eyes of the Dark to work.
- Removed from redundant scripts.
- Spells such as the Darkness granted by this mod are now treated as Class Actions - on the Common tab.
1.06 is out - Wall of Darkness should now respect Devils Sight, Adjusted Umbral Forms cost (increased to 6 sorcery points, duration lowered from 10 to 6 turns), cool-down is still once per battle.
1.05 is out - Wall of Darkness spell now using default Darkness Icon - I was just experimenting with custom icons before.
- Wall of Darkness now using surface radius of 2ft and 2ft aura radius - the 1ft was a little too thin looking.
1.04 is out - Now adds an exception to Devils Sight warlock ability. They should now be immune to the blindness from Shadow Sorcerer darkness ability.
1.03 is out -
- NEW SPELL - Wall of Darkness - Your control over darkness allows you to shape the Darkness field into a narrow barrier. You can use this to block line of sight. It can also trigger your Darkness Sight - granted by the Eyes of the Dark passive feature.
- Wall of Darkness will block line of sight by default.
- Similar to Darkness, if you expend 2 sorcery points to cast it, then you will get immunity to the line of sight penalty.
- Use case: Enemies will need to cross the darkness line if they want to get visibility of you, your own melee fighters can be there waiting for them when they do. You can also use it to help with sneaking from point A to point B etc.
27/08/2023: (Optional Mod ): Added Optional - Class Icon Override - 3x variations of the mods default icon. One with blue eyes, green eyes and red eyes. As always - only use one icon override pak at a time. These do not need to have a load order set. Just being present in the mod folder will override the mods class icon.
27/08/2023: (Optional Mod ): Added Optional - Class Icon Override - Purple Crystal - If you prefer the purple crystal class icon - this will change the class icon to that version. Other class icon variants are coming too.
27/08/2023: (Optional Mod ): Added Sorcerer Unleashed compatibility mod - which enables shadow sorcerer under the unleashed mod.
1.02 is out - Class icon is now fixed
1.01 is out -
- Unfortunately this is going to be a potentially breaking change for anyone who has been using a previous version. In order to stay compatible with other mods - I have renamed most of the Shadow Sorc abilities to have a prefix in front of them. This means you will have access to your Racial darkness spell as well as the default 2nd spell level Darkness spell. If you have acquired Eyes of the Dark - Darkness - at level 3 already on a previous version, there is a chance that you will CTD on this version. However this version 'should' be more future proofed to prevent compatibility issues later on.
- Darkness localisation strings fixed
- Darkness now friendly/compatible with racial and other class versions.
- Enchant Item version of Darkness no longer starts combat.
- Added scaffolding to facilitate future scripting.
- Identified main reason why Enchant Item doesn't work 100% - its because some of the game events that it relies on are no longer exposed in the release version. This manifests in the blind effect being applied even if the enchanted item being stowed.
- Script Extender now used for Darkness - Enchant Item
- If you cast Enchant Item on yourself - the item in your main hand will be enchanted- you can unequip this and equip this as much as you like - it will toggle the darkness effect on and off.
- If you cast Enchant Item on an item on the ground - you can throw this item, however your concentration will be broken when adding it to your inventory. There is a somewhat intentional reason behind this. The logistics are around converting one status type to another and vice versa - eg: Darkness is on the item, when picked up - it would need to be cancelled and then applied to the character on equip etc - and then a daisy chain of possible actions such as equip, unequip, drop, throw and cancel concentration etc. It is much easier if we just keep both separate. Eg: If you cast it on an item on the ground - the intent is to use it as a projectile. If you cast it on your main hand weapon- then it will not be dropable.
0.9 is out - Localisation string added for Darkness Cloud, Darkness - Enchant Item now works when cast on yourself. It will enchant the item in your mainhand slot. Be aware - item enchanting seems to agro people when the aura envelops them - its either because - they don't like being blinded, or because it is picked up as coming from a weapon? I dunno at this stage. Shadow Blade is now more like Pact blade- you get proficiency on it. Darkness - Enchant Item does currently have a vfx oddity - when you cast it on yourself, it can create clouds that float in the air around your original casting location. I suspect this is just a limitation due to casting an AOE vfx on an object. It receives 0 for the area, so it basically turns the cloud vfx inside out as it tries to calculate a radius - just a guess. It is otherwise functional.
0.8 is out - This now corrects the Hound of Ill Omen - it now gets some temp hp as well as the all important Aura effect that applies Disadvantage to the victim against the Hound's summoner. See below for the mechanics. Note: this bug fix is in the optional hound mod too - So if you use that mod, you will need to download the latest version of it too.
0.7 is out - Umbral Form is added for Level 11 (as opposed to the previously planned level 10)
0.6 is out - Shadow Blade has the finesse icon removed- which was leading people to believe it was still using Dex instead of Cha. Screenshot is included in the readme.html file showing that it is indeed using CHA for attack calculations. Even if the description does not suggest this.
0.5 is out - Shadow Blade now uses your Spell Casting ability modifier as an attack bonus. Eg: Instead of using Dex, it uses Cha.
0.4 is out - Added info.json - maybe it will work with other mod-managers- I don't use them - so someone else can confirm if it does.
Added readme.html file - and also included link to a discord server where I will keep discussion on future development etc.
0.3 is out - replaces Greater Invisibility at level 9 with Hunger of Hadar (Shadow Magic) - a custom variant of it that only lets you cast it on shadowed areas.
0.2 is out - this fixes a passive ability that was lacking description/display text.
Shadow Sorcerer - by Baaleos
Credits: DiZ91891 - He created a Sorcerer Subclasses mod for Early Access. One of the subclasses which was present was Shadow Sorcerer. I also tend to play Shadow Sorcerer in table-top 5e adventures - so figured I wanted to create my own version of Shadow Sorcerer for the BG3 Release version. Many of the present abilities in this mod are tweaked versions of his or I studied his and learned how they work and then reimplemented them etc.
About:
This mod is a reinvention of the Xanathar's Guide to Everything Shadow Sorcerer, in an attempt to give as much thematic accuracy, while making it 'nice' for Baldurs Gate 3.
One of the critical differences between this one and the one that was present in the Early Access mod is that this uses only Vanilla assets (icons etc) and has no dependencies on external mods such as Spells5e - I might add a version or patch that will add those spells in - but for the time being I am just focusing on the vanilla spells and some custom ones - self contained in the mod itself.
Fair warning - this is a Shadow Sorcerer done the way that 'I' imagine they would be. So they will not be 100% canon - partly because we are squeezing them into 12 vanilla levels and simulating some of the level gains that other sorcery subclasses get.
Eg: Storm Sorcery get 6 storm spells at level 6 - so we do something similar in Shadow Sorcery.
Note: this sub-class has some Quest interactions. It grants resistance and immunity to the Shadow Curse in Shadow Cursed lands. Details below. (Level 3 and Level 6)
Level Progression:
Level 1
Passives : Eyes of the Dark & Strength of the Grave
Spells: Hex, Disguise Self, Endarken (Custom cantrip spell - details below)
Eyes of the Dark gives you perhaps the strongest Dark Vision in the game.
Strength of the Grave will allow you 'once per long rest' to resist death (a strike that would have reduced you to 0 hp, will instead leave you at 1 hp, provided it was not a critical or done by radiant damage)
Endarken spell
This is a AOE cantrip that simply extinguishes light sources. This can be handy if you are in an illuminated area and need some more shadow. When you get to higher levels - darkness will provide bonuses and during combat, extinguishing each light source one by one can be expensive in terms of action points, so this spell will do a large AOE all in one go. It does not affect burning surfaces - it literally removes burning status from lamps, torches, camp fires and other 'objects' that have the burning status.
Level 3 :
Passives:
Eyes of the Dark : Darkness
Shadow Curse: Resistance
Shadow Armor
Spells: Darkness (Item enchantment + Cloud)
Use of the Eyes of the Dark toggle will switch to a version of the Darkness spell that uses 2 sorcery points instead, but the darkness will not blind you, I also figured out how to make it so it will not obscure your line of sight. So you will be able to shoot in and out of darkness clouds after having used 2 sorcery points to cast a Darkness spell. The caveat on this - is that it will give you clear line of sight and blindness immunity through 'all' darkness clouds - whether you cast them or not.
Shadow Curse : Resistance
The Shadow Curse operates on a tiered progression system. Level 1 is applied and then it daisy chains to Level 2 etc.
Because you are now more adept at Shadow Magic and your connection to the Shadowfell is increasing - you will only ever be subject to the level 1 damage from Shadow Curse. This means you could potentially run through the Shadow Cursed lands and use potions to stave off the damage. This does not extend to the party, only to the Shadow Sorcerer themselves.
Shadow Armor
While in partial or full darkness, you receive +1 AC and advantage of preception rolls.
Level 6:
Passives:
Shadow Curse: Immunity
Enhanced Shadow Armor
Class Action : Hound of Ill Omen (Mark)
First you mark an enemy - this costs no resources.
This will make another ability available also called Hound of Ill Omen - this is the summon ability.
This can be cast on a Bonus Action and costs 3 sorcery points.
The Hound can only attack the person marked by you. Enemies will receive disadvantage against saving throws, when the saving throw is initiated by the person who cast the 'Mark' ability.
Eg: Khalen is a Shadow Sorcerer, he uses the Mark/Precursor ability on Sam.
Khalen then uses the bonus action to summon the hound right beside Sam. A status effect will appear on Sam called 'Ill Omen' - this is applied while Sam is within 3ft of the Hound.
If Shadowheart casts Guiding Bolt on Sam - there will be no Disadvantage - because she is not the owner of the Hound and did not mark Sam.
If Khalen casts Lightning Bolt on Sam - there will be a disadvantage - because he is the owner/summoner and the person who marked Sam to start with.
The disadvantage will last only as long as the Hound is within 3ft of the victim - so it encourages you to keep your Hound on its target.
Note: Moving the hound around the battle field will not mark everyone with the disadvantage - only people who are 'marked' can receive the disadvantage. It is theoretically possible to mark more people - every 2 rounds the 'Mark' ability does become available. However the Hound still needs to be nearby for them to receive the disadvantage.
Hound is dismissable.
You can mark a new target every 2 rounds. This is just to make it so the Dire Wolf does not go to waste while it is summoned.
Spells : Shadow Blade, Blur, Blindness, See Invisibility, Invisibility, Shadow Walk**
These spells were chosen because I thought they were thematically good for a Shadow Based sorcerer. In my mind, a Shadow Sorcerer would stick to the shadows and utilise spells that affect vision, visibility and the like.
Shadow Curse : Immunity
The shadow curse no longer affects your Shadow Sorcerer character at all due to their connection to the Shadowfell strengthening.
Enhanced Shadow Armor
While in partial or full darkness, you receive +2 AC and advantage of preception and Stealth rolls.
Shadow Walk spell is a custom variant of the Shadow Step spell used by the Shadows in Shadow Cursed lands.
This does not cost a spell slot - it consumes a bonus action instead but requires a full round between uses. This was put in there to make it not too powerful outside of combat situations. Once I figure out how to move it to be a class skill as opposed to spell, I will do so, until then- it might display as a Spell.
It also requires that the Origin and Destinations are both in full or partial darkness. I only recently got it working to the point where it checks the Destination obscurity for partial/full darkness. Its quite fun - it actually recognises shadows on the ground as valid teleport locations. This limitation will make it more balanced and more true to the Xanathar's Guide to Everything rulebook. Granted this teleport power is meant to be granted at level 14 - but given the level cap is 12 - I shifted it down to 6. In my playthrough, I reached level 6 Shadow Sorcerer around Act 2 - so I think the teleport will come in handy from Act2 onwards.
Level 9:
Adds Hunger of Hadar (Shadow Magic) - a variant of the Warlock spell that requires you to target shadowed areas or areas of partial/total darkness.
Level 11:
Umbral Form - Once per combat ability, 10 round duration - so use it carefully
Can be cast as a bonus action, but requires 4 sorcery points
+Movement (Similar to Haste)
+Advantage to all saving throws
+2 AC (This can stack with the Shadow Armor/Enhanced Shadow Armor passive bonuses)
Immunity to Darkness (You are unhindered by darkness)
Immunity to difficult terrain
Resistance to all damage types except Force and Radiant
A level 11 Shadow Sorcerer can effectively use darkness abilities to take on 3 Steel Watch centurions and some fighters/mages solo.
Here is a video showing one such encounter- the only reason I died was because the centurion exploded in my face.
https://youtu.be/uoOtKG7npZ8
Manual Installation instructions:
Either use a mod manager to add this to your mod order or adjust your modsettings.lsx manually.
Drop the pak file into:
C:\Users\<USERNAMEHERE>\AppData\Local\Larian Studios\Baldur's Gate 3\Mods
Then open the following file in a text editor - like notepad++
C:\Users\<USERNAMEHERE>\AppData\Local\Larian Studios\Baldur's Gate 3\PlayerProfiles\Public\modsettings.lsx
Add the following underneath GustavDev
<node id="ModuleShortDesc">
<attribute id="Folder" value="BG3ShadowSorcerer" type="LSString" />
<attribute id="MD5" value="" type="LSString" />
<attribute id="Name" value="BG3ShadowSorcerer" type="LSString" />
<attribute id="UUID" value="38291fe1-40a3-4af7-bbbd-c9a55f3e39c0" type="FixedString" />
<attribute id="Version64" value="2" type="int64" />
</node>
Then in the mod order element above that :
<node id="Module">
<attribute id="UUID" value="38291fe1-40a3-4af7-bbbd-c9a55f3e39c0" type="FixedString" />
</node>
It might resemble this when you are done
<?xml version="1.0" encoding="UTF-8"?>
<save>
<version major="4" minor="0" revision="9" build="331" />
<region id="ModuleSettings">
<node id="root">
<children>
<node id="ModOrder">
<children>
<node id="Module">
<attribute id="UUID" value="28ac9ce2-2aba-8cda-b3b5-6e922f71b6b8" type="FixedString" />
</node>
<node id="Module">
<attribute id="UUID" value="38291fe1-40a3-4af7-bbbd-c9a55f3e39c0" type="FixedString" />
</node>
</children>
</node>
<node id="Mods">
<children>
<node id="ModuleShortDesc">
<attribute id="Folder" value="GustavDev" type="LSString" />
<attribute id="MD5" value="4fdef99ec596bb9d2d254e10f2c32a91" type="LSString" />
<attribute id="Name" value="GustavDev" type="LSString" />
<attribute id="UUID" value="28ac9ce2-2aba-8cda-b3b5-6e922f71b6b8" type="FixedString" />
<attribute id="Version64" value="144115832324585265" type="int64" />
</node>
<node id="ModuleShortDesc">
<attribute id="Folder" value="BG3ShadowSorcerer" type="LSString" />
<attribute id="MD5" value="" type="LSString" />
<attribute id="Name" value="BG3ShadowSorcerer" type="LSString" />
<attribute id="UUID" value="38291fe1-40a3-4af7-bbbd-c9a55f3e39c0" type="FixedString" />
<attribute id="Version64" value="2" type="int64" />
</node>
</children>
</node>
</children>
</node>
</region>
</save>