How is this meant to interact with the Hexblade's "Bind Hexed Weapon". At the moment it seems to be a case of only one or the other - either use "Bind Hexed Weapon" and get the chance to apply Hexblade's Curse, or "Bind Pact Weapon" and get the option to toggle damage types.
I've been dual wielding on my Warlock. I used "Bind Hexed Weapon" on one weapon, swapped it to my offhand, and then applied "Bind Pact Weapon" from this mod to the other weapon. The to-hit bonus changes to my Charisma bonus on both weapons, as expected, but I've not seen a single Hexblade's Curse proc. So I'm curious about the intended interaction as well.
If it helps for troubleshooting, below are my Warlock-specific mods: - DnD5R - Warlock Pacts as Invocations - Invocations Expanded - OneDnD UA7 Warlock Magical Cunning - OneDnD UA7 Warlock Pact of the Blade - DnD5R - Warlock Patron Spells - Hexblade (Larian)
Edit: As soon as I posted this, I got my first Hexblade's Curse proc. I guess I'm just supremely unlucky (or blind), seeing as I'm currently at Nere. Please disregard my dual wielding question. However, it would be nice to have the Hexblade's Curse proc on the "Bind Pact Weapon" ability for dueling or two-handed setups.
Hello! Thanks for a year or more of warlock shenanigans. I've recently updated to Patch 8, and found a feature here that doesn't seem to be working (specifically it's that the necrotic/psychic/radiant options don't show up). Not reporting any bugs as it is probably my load order, but before I start testing my list mod by mod for conflicts, I was just curious if this is a known issue with Patch 8 or if you have plans to update the mod for Patch 8. Thanks!
hi its because of the Patch 8 unfortunately, i already read this on other mods posts regarding "toggles" on the hotbar Patch 8 changed some things with the "IsHidden" flag which affects passives and toggles now, previously on Patch 7 only passives and stuff with toggles would still show up on the hotbar
Hoping for an update as well, Pact of the Blade felt so smooth to play with this mod compared to the vanilla game and i cant play warlock without it anymore haha
is it possible to remove the sound effects when the toggle is on for Pact Weapon: Necrotic? that wooshing sound is driving me crazy haha there is no sound effect for Pact Weapon: Radiant or Pact Weapon: Psychic
I think the effects we were using based game assets, but I can have a gander at them to see about the attached sound effects. Do note we've got patch 8 dropping soon, so we may not get around to this right away.
I've been trying to do something similar in function to this for my own use and have made a toggle passive which shows up as planned, but for the life of me can't get a damage type change to work. I don't assume to know exactly what you did but I've been trying with "WeaponDamageTypeOverride" in the boosts column as in WeaponDamageTypeOverride(Radiant). Usually I just find something similar in the toolkit to learn how it works but can't find that function anywhere. Could you pls point me in the right direction and tell me what I need to do?
The common problem people run into with the damage type override is that it needs to be applied to the weapon itself and not the character. This can make it a bit complicated to manage. As a basic example, if you want the player to have the ability to change the damage type, you could have the passive toggle apply a status to the weapon, but then you need to make sure the status is removed as well, otherwise you can end up having the damage override remain on all the weapons it is applied to.
Anyway, the code for this pact weapon is freely visible in the community library. It sounds like you're using the toolkit though, so this might be a lot of information to parse if you're not experienced with the old school modding methods.
new entry "CL_STATUS_ONEDND_PACTBLADE_MAIN" type "StatusData" data "StatusType" "BOOST" data "Passives" "CL_Passive_OneDnD_PactBlade_Toggle_MeleeMainHand;CL_Passive_OneDnD_PactBlade_Toggle_RangedMainHand;CL_Passive_OneDnD_PactBlade_Toggle_MeleeOffHand;CL_Passive_OneDnD_PactBlade_Toggle_RangedOffHand;CL_Passive_OneDnD_PactBlade_Damage_Necrotic;CL_Passive_OneDnD_PactBlade_Damage_Psychic;CL_Passive_OneDnD_PactBlade_Damage_Radiant" data "StatusGroups" "SG_RemoveOnRespec" data "StackType" "Overwrite" data "StatusPropertyFlags" "DisableOverhead;DisableCombatlog;DisablePortraitIndicator;IgnoreResting"
new entry "CL_STATUS_ONEDND_PACTBLADE_MAIN_NO_APPLY_TOGGLES" type "StatusData" data "StatusType" "BOOST" data "Passives" "CL_Passive_OneDnD_PactBlade_Damage_Necrotic;CL_Passive_OneDnD_PactBlade_Damage_Psychic;CL_Passive_OneDnD_PactBlade_Damage_Radiant" data "StatusGroups" "SG_RemoveOnRespec" data "StackType" "Overwrite" data "StatusPropertyFlags" "DisableOverhead;DisableCombatlog;DisablePortraitIndicator;IgnoreResting"
new entry "CL_Passive_OneDnD_PactBlade_Toggle_MeleeMainHand" type "PassiveData" data "Icon" "CL_Icons_OneDnD_PactWeapon_Melee_Toggle" data "DisplayName" "hd6ae785ag6f2fg4173g9319gdf789b24385f;1" data "Description" "he9ed94abg0148g48d9g8e7egcfa402c8e040;1" data "DescriptionParams" "DealDamage(,Necrotic);DealDamage(,Psychic);DealDamage(,Radiant)" data "ExtraDescription" "h47a84058g47abg44b4gb33agd30875eae28e;1" data "TooltipUseCosts" "BonusActionPoint:1" data "ToggleOnFunctors" "ApplyStatus(CL_STATUS_ONEDND_PACTBLADE_MELEEMAINHAND,100,-1);IF(not HasStatus('PACT_BLADE',GetItemInEquipmentSlot(EquipmentSlot.MeleeMainHand,context.Source)) and HasActionResource('BonusActionPoint',1,0,false,false,context.Source)):ApplyStatus(SELF,CL_STATUS_ONEDND_PACTBLADE_REAPPLY,100,0);UseActionResource(SELF,BonusActionPoint,1)" data "StatsFunctors" "ApplyStatus(SELF,CL_STATUS_ONEDND_PACTBLADE_REAPPLY,100,0)" data "StatsFunctorContext" "OnEquip" data "Conditions" "not HasStatus('PACT_BLADE',GetItemInEquipmentSlot(EquipmentSlot.MeleeMainHand,context.Source)) and not Combat(context.Source)" data "EnabledConditions" "CL_HasWeaponInMeleeMainHand()" data "EnabledContext" "OnEquip" data "Properties" "IsToggled;ToggledDefaultAddToHotbar;IsHidden" data "ToggleGroup" "PactBladeWeapon"
new entry "CL_Passive_OneDnD_PactBlade_Toggle_RangedMainHand" type "PassiveData" using "CL_Passive_OneDnD_PactBlade_Toggle_MeleeMainHand" data "Icon" "CL_Icons_OneDnD_PactWeapon_Ranged_Toggle" data "DisplayName" "h5a6b2e55g2decg4478gbac1g6abc143d88b1;1" data "Description" "h08226d83g061ag4521gb627g74a3f013fc52;1" data "ToggleOnFunctors" "ApplyStatus(CL_STATUS_ONEDND_PACTBLADE_RANGEDMAINHAND,100,-1);IF(not HasStatus('PACT_BLADE',GetItemInEquipmentSlot(EquipmentSlot.RangedMainHand,context.Source)) and HasActionResource('BonusActionPoint',1,0,false,false,context.Source)):ApplyStatus(SELF,CL_STATUS_ONEDND_PACTBLADE_REAPPLY,100,0);UseActionResource(SELF,BonusActionPoint,1)" data "Conditions" "not HasStatus('PACT_BLADE',GetItemInEquipmentSlot(EquipmentSlot.RangedMainHand,context.Source)) and not Combat(context.Source)" data "StatsFunctors" "ApplyStatus(SELF,CL_STATUS_ONEDND_PACTBLADE_REAPPLY,100,0)" data "EnabledConditions" "CL_HasWeaponInRangedMainHand()"
new entry "CL_Passive_OneDnD_PactBlade_Toggle_MeleeOffHand" type "PassiveData" using "CL_Passive_OneDnD_PactBlade_Toggle_MeleeMainHand" data "Icon" "CL_Icons_OneDnD_PactWeapon_Melee_Offhand_Toggle" data "DisplayName" "h0467fa81gf86fg4ef5gb72bgb3e14efe3362;1" data "Description" "hf5bd604cg0662g4c2fgad66g4bbc4115959c;1" data "ToggleOnFunctors" "ApplyStatus(CL_STATUS_ONEDND_PACTBLADE_MELEEOFFHAND,100,-1);IF(not HasStatus('PACT_BLADE',GetItemInEquipmentSlot(EquipmentSlot.MeleeOffHand,context.Source)) and HasActionResource('BonusActionPoint',1,0,false,false,context.Source)):ApplyStatus(SELF,CL_STATUS_ONEDND_PACTBLADE_REAPPLY,100,0);UseActionResource(SELF,BonusActionPoint,1)" data "Conditions" "not HasStatus('PACT_BLADE',GetItemInEquipmentSlot(EquipmentSlot.MeleeOffHand,context.Source)) and not Combat(context.Source)" data "StatsFunctors" "ApplyStatus(SELF,CL_STATUS_ONEDND_PACTBLADE_REAPPLY,100,0)" data "EnabledConditions" "CL_HasWeaponInMeleeOffHand()"
new entry "CL_Passive_OneDnD_PactBlade_Toggle_RangedOffHand" type "PassiveData" using "CL_Passive_OneDnD_PactBlade_Toggle_MeleeMainHand" data "Icon" "CL_Icons_OneDnD_PactWeapon_Ranged_Offhand_Toggle" data "DisplayName" "hc6dd4c2dg8a5fg4fd9gb1bdga42f621e1658;1" data "Description" "he8e06849ge21ag4734g9282g79f8f80b1591;1" data "DescriptionParams" "DealDamage(,Necrotic);DealDamage(,Psychic);DealDamage(,Radiant)" data "ToggleOnFunctors" "ApplyStatus(CL_STATUS_ONEDND_PACTBLADE_RANGEDOFFHAND,100,-1);IF(not HasStatus('PACT_BLADE',GetItemInEquipmentSlot(EquipmentSlot.RangedOffHand,context.Source)) and HasActionResource('BonusActionPoint',1,0,false,false,context.Source)):ApplyStatus(SELF,CL_STATUS_ONEDND_PACTBLADE_REAPPLY,100,0);UseActionResource(SELF,BonusActionPoint,1)" data "Conditions" "not HasStatus('PACT_BLADE',GetItemInEquipmentSlot(EquipmentSlot.RangedOffHand,context.Source)) and not Combat(context.Source)" data "StatsFunctors" "ApplyStatus(SELF,CL_STATUS_ONEDND_PACTBLADE_REAPPLY,100,0)" data "EnabledConditions" "CL_HasWeaponInRangedOffHand()"
new entry "CL_STATUS_ONEDND_PACTBLADE_MELEEMAINHAND" type "StatusData" data "StatusType" "BOOST" data "StatusGroups" "SG_RemoveOnRespec" data "StackId" "PACTBLADE_SLOTTYPE" data "StackType" "Overwrite" data "RemoveEvents" "OnStatusRemoved;OnTurn" data "RemoveConditions" "not HasStatus('CL_STATUS_ONEDND_PACTBLADE_MAIN')" data "StatusPropertyFlags" "DisableOverhead;DisableCombatlog;DisablePortraitIndicator;IgnoreResting"
new entry "CL_STATUS_ONEDND_PACTBLADE_RANGEDMAINHAND" type "StatusData" data "StatusType" "BOOST" using "CL_STATUS_ONEDND_PACTBLADE_MELEEMAINHAND"
new entry "CL_STATUS_ONEDND_PACTBLADE_MELEEOFFHAND" type "StatusData" data "StatusType" "BOOST" using "CL_STATUS_ONEDND_PACTBLADE_MELEEMAINHAND"
new entry "CL_STATUS_ONEDND_PACTBLADE_RANGEDOFFHAND" type "StatusData" data "StatusType" "BOOST" using "CL_STATUS_ONEDND_PACTBLADE_MELEEMAINHAND"
new entry "CL_STATUS_ONEDND_PACTBLADE_REAPPLY" type "StatusData" data "StatusType" "BOOST" data "OnApplyFunctors" "IF(HasStatus('CL_STATUS_ONEDND_PACTBLADE_MELEEMAINHAND',context.Source)):UseSpell(CL_Shout_OneDnD_PactOfTheBlade_Bind_MeleeMainhand,true,true,true);IF(HasStatus('CL_STATUS_ONEDND_PACTBLADE_RANGEDMAINHAND',context.Source)):UseSpell(CL_Shout_OneDnD_PactOfTheBlade_Bind_RangedMainhand,true,true,true);IF(HasStatus('CL_STATUS_ONEDND_PACTBLADE_MELEEOFFHAND',context.Source)):UseSpell(CL_Shout_OneDnD_PactOfTheBlade_Bind_MeleeOffhand,true,true,true);IF(HasStatus('CL_STATUS_ONEDND_PACTBLADE_RANGEDOFFHAND',context.Source)):UseSpell(CL_Shout_OneDnD_PactOfTheBlade_Bind_RangedOffhand,true,true,true)" data "StatusPropertyFlags" "DisableOverhead;DisableCombatlog;DisablePortraitIndicator"
new entry "CL_Passive_OneDnD_PactBlade_Damage_Necrotic" type "PassiveData" data "Icon" "CL_Icons_OneDnD_PactWeapon_Necrotic_Toggle" data "DisplayName" "hbfedf3c8gc2ebg4ccagb222g605b2fe383f1;1" data "Description" "h8f70b516g19ebg47f2g8cbagda7df0f2e370;1" data "DescriptionParams" "DealDamage(,Necrotic)" data "ToggleOnFunctors" "ApplyStatus(SELF,CL_STATUS_ONEDND_PACTBLADE_NECROTIC,100,-1);IF(HasStatus('PACT_BLADE',GetItemInEquipmentSlot(EquipmentSlot.MeleeMainHand,context.Source))):ApplyEquipmentStatus(MeleeMainHand,CL_STATUS_ONEDND_PACTBLADE_WEAPON,100,-1);IF(HasStatus('PACT_BLADE',GetItemInEquipmentSlot(EquipmentSlot.RangedMainHand,context.Source))):ApplyEquipmentStatus(RangedMainHand,CL_STATUS_ONEDND_PACTBLADE_WEAPON,100,-1);IF(HasStatus('PACT_BLADE',GetItemInEquipmentSlot(EquipmentSlot.MeleeOffHand,context.Source))):ApplyEquipmentStatus(MeleeOffHand,CL_STATUS_ONEDND_PACTBLADE_WEAPON,100,-1);IF(HasStatus('PACT_BLADE',GetItemInEquipmentSlot(EquipmentSlot.RangedOffHand,context.Source))):ApplyEquipmentStatus(RangedOffHand,CL_STATUS_ONEDND_PACTBLADE_WEAPON,100,-1)" data "ToggleOffFunctors" "RemoveStatus(SELF,CL_STATUS_ONEDND_PACTBLADE_NECROTIC);IF(HasStatus('PACT_BLADE',GetItemInEquipmentSlot(EquipmentSlot.MeleeMainHand,context.Source))):ApplyEquipmentStatus(MeleeMainHand,CL_STATUS_ONEDND_PACTBLADE_WEAPON,100,-1);IF(HasStatus('PACT_BLADE',GetItemInEquipmentSlot(EquipmentSlot.RangedMainHand,context.Source))):ApplyEquipmentStatus(RangedMainHand,CL_STATUS_ONEDND_PACTBLADE_WEAPON,100,-1);IF(HasStatus('PACT_BLADE',GetItemInEquipmentSlot(EquipmentSlot.MeleeOffHand,context.Source))):ApplyEquipmentStatus(MeleeOffHand,CL_STATUS_ONEDND_PACTBLADE_WEAPON,100,-1);IF(HasStatus('PACT_BLADE',GetItemInEquipmentSlot(EquipmentSlot.RangedOffHand,context.Source))):ApplyEquipmentStatus(RangedOffHand,CL_STATUS_ONEDND_PACTBLADE_WEAPON,100,-1)" data "ToggleGroup" "PactBladeDamageType" data "Properties" "IsToggled;ToggledDefaultAddToHotbar;IsHidden"
new entry "CL_Passive_OneDnD_PactBlade_Damage_Psychic" type "PassiveData" using "CL_Passive_OneDnD_PactBlade_Damage_Necrotic" data "Icon" "CL_Icons_OneDnD_PactWeapon_Psychic_Toggle" data "DisplayName" "ha378d7b5g1870g4350ga61bg3ffcf601e034;1" data "Description" "h8f70b516g19ebg47f2g8cbagda7df0f2e370;1" data "DescriptionParams" "DealDamage(,Psychic)" data "ToggleOnFunctors" "ApplyStatus(SELF,CL_STATUS_ONEDND_PACTBLADE_PSYCHIC,100,-1);IF(HasStatus('PACT_BLADE',GetItemInEquipmentSlot(EquipmentSlot.MeleeMainHand,context.Source))):ApplyEquipmentStatus(MeleeMainHand,CL_STATUS_ONEDND_PACTBLADE_WEAPON,100,-1);IF(HasStatus('PACT_BLADE',GetItemInEquipmentSlot(EquipmentSlot.RangedMainHand,context.Source))):ApplyEquipmentStatus(RangedMainHand,CL_STATUS_ONEDND_PACTBLADE_WEAPON,100,-1);IF(HasStatus('PACT_BLADE',GetItemInEquipmentSlot(EquipmentSlot.MeleeOffHand,context.Source))):ApplyEquipmentStatus(MeleeOffHand,CL_STATUS_ONEDND_PACTBLADE_WEAPON,100,-1);IF(HasStatus('PACT_BLADE',GetItemInEquipmentSlot(EquipmentSlot.RangedOffHand,context.Source))):ApplyEquipmentStatus(RangedOffHand,CL_STATUS_ONEDND_PACTBLADE_WEAPON,100,-1)" data "ToggleOffFunctors" "RemoveStatus(SELF,CL_STATUS_ONEDND_PACTBLADE_PSYCHIC);IF(HasStatus('PACT_BLADE',GetItemInEquipmentSlot(EquipmentSlot.MeleeMainHand,context.Source))):ApplyEquipmentStatus(MeleeMainHand,CL_STATUS_ONEDND_PACTBLADE_WEAPON,100,-1);IF(HasStatus('PACT_BLADE',GetItemInEquipmentSlot(EquipmentSlot.RangedMainHand,context.Source))):ApplyEquipmentStatus(RangedMainHand,CL_STATUS_ONEDND_PACTBLADE_WEAPON,100,-1);IF(HasStatus('PACT_BLADE',GetItemInEquipmentSlot(EquipmentSlot.MeleeOffHand,context.Source))):ApplyEquipmentStatus(MeleeOffHand,CL_STATUS_ONEDND_PACTBLADE_WEAPON,100,-1);IF(HasStatus('PACT_BLADE',GetItemInEquipmentSlot(EquipmentSlot.RangedOffHand,context.Source))):ApplyEquipmentStatus(RangedOffHand,CL_STATUS_ONEDND_PACTBLADE_WEAPON,100,-1)"
new entry "CL_Passive_OneDnD_PactBlade_Damage_Radiant" type "PassiveData" using "CL_Passive_OneDnD_PactBlade_Damage_Necrotic" data "Icon" "CL_Icons_OneDnD_PactWeapon_Radiant_Toggle" data "DescriptionParams" "DealDamage(,Radiant)" data "DisplayName" "hac917788g7986g44f6g802aga22564ddff40;1" data "Description" "h8f70b516g19ebg47f2g8cbagda7df0f2e370;1" data "ToggleOnFunctors" "ApplyStatus(SELF,CL_STATUS_ONEDND_PACTBLADE_RADIANT,100,-1);IF(HasStatus('PACT_BLADE',GetItemInEquipmentSlot(EquipmentSlot.MeleeMainHand,context.Source))):ApplyEquipmentStatus(MeleeMainHand,CL_STATUS_ONEDND_PACTBLADE_WEAPON,100,-1);IF(HasStatus('PACT_BLADE',GetItemInEquipmentSlot(EquipmentSlot.RangedMainHand,context.Source))):ApplyEquipmentStatus(RangedMainHand,CL_STATUS_ONEDND_PACTBLADE_WEAPON,100,-1);IF(HasStatus('PACT_BLADE',GetItemInEquipmentSlot(EquipmentSlot.MeleeOffHand,context.Source))):ApplyEquipmentStatus(MeleeOffHand,CL_STATUS_ONEDND_PACTBLADE_WEAPON,100,-1);IF(HasStatus('PACT_BLADE',GetItemInEquipmentSlot(EquipmentSlot.RangedOffHand,context.Source))):ApplyEquipmentStatus(RangedOffHand,CL_STATUS_ONEDND_PACTBLADE_WEAPON,100,-1)" data "ToggleOffFunctors" "RemoveStatus(SELF,CL_STATUS_ONEDND_PACTBLADE_RADIANT);IF(HasStatus('PACT_BLADE',GetItemInEquipmentSlot(EquipmentSlot.MeleeMainHand,context.Source))):ApplyEquipmentStatus(MeleeMainHand,CL_STATUS_ONEDND_PACTBLADE_WEAPON,100,-1);IF(HasStatus('PACT_BLADE',GetItemInEquipmentSlot(EquipmentSlot.RangedMainHand,context.Source))):ApplyEquipmentStatus(RangedMainHand,CL_STATUS_ONEDND_PACTBLADE_WEAPON,100,-1);IF(HasStatus('PACT_BLADE',GetItemInEquipmentSlot(EquipmentSlot.MeleeOffHand,context.Source))):ApplyEquipmentStatus(MeleeOffHand,CL_STATUS_ONEDND_PACTBLADE_WEAPON,100,-1);IF(HasStatus('PACT_BLADE',GetItemInEquipmentSlot(EquipmentSlot.RangedOffHand,context.Source))):ApplyEquipmentStatus(RangedOffHand,CL_STATUS_ONEDND_PACTBLADE_WEAPON,100,-1)"
new entry "CL_STATUS_ONEDND_PACTBLADE_NECROTIC" type "StatusData" data "StatusType" "BOOST" data "StackId" "PACTBLADE_DAMAGETYPE" data "RemoveEvents" "OnStatusRemoved;OnTurn" data "RemoveConditions" "not HasStatus('CL_STATUS_ONEDND_PACTBLADE_MAIN')" data "StatusGroups" "SG_RemoveOnRespec" data "StatusPropertyFlags" "DisableOverhead;DisableCombatlog;DisablePortraitIndicator;IgnoreResting"
new entry "CL_STATUS_ONEDND_PACTBLADE_PSYCHIC" type "StatusData" data "StatusType" "BOOST" using "CL_STATUS_ONEDND_PACTBLADE_NECROTIC"
new entry "CL_STATUS_ONEDND_PACTBLADE_RADIANT" type "StatusData" data "StatusType" "BOOST" using "CL_STATUS_ONEDND_PACTBLADE_NECROTIC"
new entry "CL_STATUS_ONEDND_PACTBLADE_WEAPON" type "StatusData" data "StatusType" "BOOST" data "Icon" "Skill_Warlock_BindPactWeapon" data "StackId" "PACT_BLADE_DAMAGE_TYPE_WEAPON" data "RemoveEvents" "OnStatusRemoved;OnTurn" data "RemoveConditions" "not HasStatus('PACT_BLADE')" data "Boosts" "IF(HasStatus('CL_STATUS_ONEDND_PACTBLADE_NECROTIC',GetOwner(context.Source))):WeaponDamageTypeOverride(Necrotic);IF(HasStatus('CL_STATUS_ONEDND_PACTBLADE_PSYCHIC',GetOwner(context.Source))):WeaponDamageTypeOverride(Psychic);IF(HasStatus('CL_STATUS_ONEDND_PACTBLADE_RADIANT',GetOwner(context.Source))):WeaponDamageTypeOverride(Radiant)" data "OnApplyFunctors" "IF(not HasStatus('CL_STATUS_ONEDND_PACTBLADE_NECROTIC',GetOwner(context.Source)) and not HasStatus('CL_STATUS_ONEDND_PACTBLADE_PSYCHIC',GetOwner(context.Source)) and not HasStatus('CL_STATUS_ONEDND_PACTBLADE_RADIANT',GetOwner(context.Source))):ApplyStatus(CL_STATUS_ONEDND_PACT_BLADENORMAL_WEAPON,100,-1);IF(HasStatus('CL_STATUS_ONEDND_PACTBLADE_NECROTIC',GetOwner(context.Source))):ApplyStatus(CL_STATUS_ONEDND_PACTBLADE_NECROTIC_WEAPON,100,-1);IF(HasStatus('CL_STATUS_ONEDND_PACTBLADE_PSYCHIC',GetOwner(context.Source))):ApplyStatus(CL_STATUS_ONEDND_PACTBLADE_PSYCHIC_WEAPON,100,-1);IF(HasStatus('CL_STATUS_ONEDND_PACTBLADE_RADIANT',GetOwner(context.Source))):ApplyStatus(CL_STATUS_ONEDND_PACTBLADE_RADIANT_WEAPON,100,-1)" data "StatusGroups" "SG_RemoveOnRespec" data "StackType" "Overwrite" data "StatusPropertyFlags" "DisableOverhead;DisableCombatlog;DisablePortraitIndicator;IgnoreResting"
new entry "CL_STATUS_ONEDND_PACTBLADE_NECROTIC_WEAPON" type "StatusData" data "StatusType" "BOOST" data "Icon" "Skill_Warlock_BindPactWeapon" data "FormatColor" "Green" data "DisplayName" "hbfedf3c8gc2ebg4ccagb222g605b2fe383f1;1" data "Description" "h983e72deg4e0cg4ac8g80d0g03146a5a2e83;1" data "DescriptionParams" "DealDamage(,Necrotic)" data "StackId" "PACT_BLADE_VFX" data "RemoveEvents" "OnStatusRemoved;OnTurn" data "RemoveConditions" "not HasStatus('PACT_BLADE')" data "StatusGroups" "SG_RemoveOnRespec" data "StackType" "Overwrite" data "StatusEffect" "ef230b11-f9c5-406e-9c7c-08b6f6309db2" data "StatusPropertyFlags" "DisableCombatlog;IgnoreResting"
new entry "CL_STATUS_ONEDND_PACTBLADE_PSYCHIC_WEAPON" type "StatusData" data "StatusType" "BOOST" using "CL_STATUS_ONEDND_PACTBLADE_NECROTIC_WEAPON" data "DisplayName" "ha378d7b5g1870g4350ga61bg3ffcf601e034;1" data "FormatColor" "Pink" data "DescriptionParams" "DealDamage(,Psychic)" data "StatusEffect" "0356e372-c3d8-4943-883c-b51f24afbc63"
new entry "CL_STATUS_ONEDND_PACTBLADE_RADIANT_WEAPON" type "StatusData" data "StatusType" "BOOST" using "CL_STATUS_ONEDND_PACTBLADE_NECROTIC_WEAPON" data "DisplayName" "hac917788g7986g44f6g802aga22564ddff40;1" data "FormatColor" "Gold" data "DescriptionParams" "DealDamage(,Radiant)" data "StatusEffect" "fdb6fe37-0f9b-46b4-bb42-8a4079073fb2"
new entry "CL_STATUS_ONEDND_PACT_BLADENORMAL_WEAPON" type "StatusData" data "StatusType" "BOOST" using "CL_STATUS_ONEDND_PACTBLADE_NECROTIC_WEAPON" data "DisplayName" "h7ac40bcag9679g46f0gb54fg093c562a9b66;2" data "Description" "hb5821feag2ff1g4781gbae9g883a69741d6a;3" data "StatusEffect" "" data "StatusPropertyFlags" "DisableOverhead;DisableCombatlog;IgnoreResting"
new entry "CL_Shout_OneDnD_PactOfTheBlade_Bind" type "SpellData" data "SpellType" "Shout" data "SpellProperties" "" data "TargetConditions" "Self()" data "Icon" "Skill_Warlock_BindPactWeapon" data "ContainerSpells" "CL_Shout_OneDnD_PactOfTheBlade_Bind_MeleeMainhand;CL_Shout_OneDnD_PactOfTheBlade_Bind_RangedMainhand;CL_Shout_OneDnD_PactOfTheBlade_Bind_MeleeOffhand;CL_Shout_OneDnD_PactOfTheBlade_Bind_RangedOffhand;CL_Shout_OneDnD_PactOfTheBlade_Remove" data "DisplayName" "h3b3b7fcbg4167g4f90gb900g842334ea59c8;2" data "Description" "hba6e2a96gcefbg431agb604g02c9d84e1d46;1" data "DescriptionParams" "DealDamage(,Necrotic);DealDamage(,Psychic);DealDamage(,Radiant)" data "ExtraDescription" "hc174c0dbg30bdg41e4g8c8cge54257c4584e;1" data "ExtraDescriptionParams" "Distance(1.5)" data "TooltipStatusApply" "ApplyStatus(PACT_BLADE,100, -1)" data "CastSound" "Action_Cast_BindPactWeapon" data "CastTextEvent" "Cast" data "UseCosts" "BonusActionPoint:1" data "SpellAnimation" "8b8bb757-21ce-4e02-a2f3-97d55cf2f90b,,;,,;35b644cf-5c13-4407-9dc1-23bf4309216e,,;823e3ddf-c670-41ef-b7b4-9f4a4e38300b,,;7bb52cd4-0b1c-4926-9165-fa92b75876a3,,;,,;0b07883a-08b8-43b6-ac18-84dc9e84ff50,,;,,;,," data "VerbalIntent" "Utility" data "SpellFlags" "IsLinkedSpellContainer" data "SpellAnimationIntentType" "Aggressive" data "RequirementConditions" "not Unarmed() and not Tagged('PACT_OF_THE_BLADE',GetActiveWeapon())" data "PrepareEffect" "8e9914c9-7008-4252-ab31-a9776c444194" data "CastEffect" "fc23a5a6-f05b-40c3-8e0f-99377cfb04cc" data "Sheathing" "Sheathed"
new entry "CL_Shout_OneDnD_PactOfTheBlade_Bind_MeleeMainhand" type "SpellData" data "SpellType" "Shout" using "CL_Shout_OneDnD_PactOfTheBlade_Bind" data "SpellContainerID" "CL_Shout_OneDnD_PactOfTheBlade_Bind" data "SpellProperties" "IF(not HasStatus('CL_STATUS_ONEDND_PACTBLADE_MAIN')):ApplyStatus(CL_STATUS_ONEDND_PACTBLADE_MAIN,100,-1);ApplyEquipmentStatus(MeleeMainHand,PACT_BLADE,100,-1);ApplyEquipmentStatus(MeleeMainHand,CL_STATUS_ONEDND_PACTBLADE_WEAPON,100,-1)" data "Icon" "Skill_Warlock_BindPactWeapon" data "ContainerSpells" "" data "DisplayName" "hd8d71343g6d98g4099g8a53g093b6242d2d5;1" data "Description" "he9ed94abg0148g48d9g8e7egcfa402c8e040;1" data "DescriptionParams" "DealDamage(,Necrotic);DealDamage(,Psychic);DealDamage(,Radiant)" data "SpellFlags" "" data "RequirementConditions" "WieldingWeapon('Melee',false,true)" data "WeaponTypes" "Melee" data "Sheathing" "Melee"
new entry "CL_Shout_OneDnD_PactOfTheBlade_Bind_RangedMainhand" type "SpellData" data "SpellType" "Shout" using "CL_Shout_OneDnD_PactOfTheBlade_Bind_MeleeMainhand" data "SpellContainerID" "CL_Shout_OneDnD_PactOfTheBlade_Bind" data "SpellProperties" "IF(not HasStatus('CL_STATUS_ONEDND_PACTBLADE_MAIN')):ApplyStatus(CL_STATUS_ONEDND_PACTBLADE_MAIN,100,-1);ApplyEquipmentStatus(RangedMainHand,PACT_BLADE,100,-1);ApplyEquipmentStatus(RangedMainHand,CL_STATUS_ONEDND_PACTBLADE_WEAPON,100,-1)" data "Icon" "CL_Icons_OneDnD_PactWeapon_Ranged" data "DisplayName" "h43d73aebg49c0g4159g8735gda570350149a;1" data "Description" "h08226d83g061ag4521gb627g74a3f013fc52;1" data "DescriptionParams" "DealDamage(,Necrotic);DealDamage(,Psychic);DealDamage(,Radiant)" data "RequirementConditions" "WieldingWeapon('Ammunition',false,true)" data "WeaponTypes" "Ammunition" data "Sheathing" "Ranged"
new entry "CL_Shout_OneDnD_PactOfTheBlade_Bind_MeleeOffhand" type "SpellData" data "SpellType" "Shout" using "CL_Shout_OneDnD_PactOfTheBlade_Bind_MeleeMainhand" data "SpellContainerID" "CL_Shout_OneDnD_PactOfTheBlade_Bind" data "SpellProperties" "IF(not HasStatus('CL_STATUS_ONEDND_PACTBLADE_MAIN')):ApplyStatus(CL_STATUS_ONEDND_PACTBLADE_MAIN,100,-1);ApplyEquipmentStatus(MeleeOffHand,PACT_BLADE,100,-1);ApplyEquipmentStatus(MeleeOffHand,CL_STATUS_ONEDND_PACTBLADE_WEAPON,100,-1)" data "Icon" "CL_Icons_OneDnD_PactWeapon_Melee_Offhand" data "DisplayName" "h3a3621e2g0e6dg4b18gb401g380c5da4bb04;1" data "Description" "hf5bd604cg0662g4c2fgad66g4bbc4115959c;1" data "DescriptionParams" "DealDamage(,Necrotic);DealDamage(,Psychic);DealDamage(,Radiant)" data "RequirementConditions" "CL_HasWeaponInMeleeOffHand()" data "Sheathing" "Melee" data "WeaponTypes" "Melee"
new entry "CL_Shout_OneDnD_PactOfTheBlade_Bind_RangedOffhand" type "SpellData" data "SpellType" "Shout" using "CL_Shout_OneDnD_PactOfTheBlade_Bind_MeleeMainhand" data "SpellContainerID" "CL_Shout_OneDnD_PactOfTheBlade_Bind" data "SpellProperties" "IF(not HasStatus('CL_STATUS_ONEDND_PACTBLADE_MAIN')):ApplyStatus(CL_STATUS_ONEDND_PACTBLADE_MAIN,100,-1);ApplyEquipmentStatus(RangedOffHand,PACT_BLADE,100,-1);ApplyEquipmentStatus(RangedOffHand,CL_STATUS_ONEDND_PACTBLADE_WEAPON,100,-1)" data "Icon" "CL_Icons_OneDnD_PactWeapon_Ranged_Offhand" data "DisplayName" "h6e1f3b08g9338g4194gb79egdb574add28ff;1" data "Description" "he8e06849ge21ag4734g9282g79f8f80b1591;1" data "DescriptionParams" "DealDamage(,Necrotic);DealDamage(,Psychic);DealDamage(,Radiant)" data "RequirementConditions" "CL_HasWeaponInRangedOffHand()" data "Sheathing" "Ranged" data "WeaponTypes" "Ammunition"
new entry "CL_Shout_OneDnD_PactOfTheBlade_Remove" type "SpellData" data "SpellType" "Shout" using "CL_Shout_OneDnD_PactOfTheBlade_Bind_MeleeMainhand" data "SpellContainerID" "CL_Shout_OneDnD_PactOfTheBlade_Bind" data "SpellProperties" "RemoveStatus(CL_STATUS_ONEDND_PACTBLADE_MAIN);ApplyEquipmentStatus(MeleeMainHand,PACT_BLADE,100,0);ApplyEquipmentStatus(RangedMainHand,PACT_BLADE,100,0);ApplyEquipmentStatus(MeleeOffHand,PACT_BLADE,100,0);ApplyEquipmentStatus(RangedOffHand,PACT_BLADE,100,0)" data "Icon" "Skill_Warlock_DismissPactWeapon" data "DisplayName" "he9e44a3eg7f4ag41b9gb857g97f69f21e401;1" data "Description" "h3c811d7bg3666g4dcfg9791gdd37d82a72c7;1" data "ExtraDescription" "" data "TooltipStatusApply" "" data "UseCosts" "" data "RequirementConditions" "HasStatus('CL_STATUS_ONEDND_PACTBLADE_MAIN')" data "Sheathing" "Sheathed"
new entry "CL_Passive_OneDnD_PactOfTheBlade" type "PassiveData" data "DisplayName" "ha3bef4ccgd1dfg46d2ga453g49e67df2361c;2" data "Description" "ha46981c9g003ag4c06g9aa1gd811c530608f;1" data "ExtraDescription" "h74a01e25gb442g45b7g899fg6846bcdbbd9b;1" data "DescriptionParams" "DealDamage(,Necrotic);DealDamage(,Psychic);DealDamage(,Radiant)" data "Icon" "PassiveFeature_PactOfTheBlade" data "Properties" "Highlighted" data "Boosts" "UnlockSpell(Shout_PactOfTheBlade);UnlockSpell(CL_Shout_OneDnD_PactOfTheBlade_Bind)"
Just saw this, didn't get a notification. Thankyou so much for this, shows me exactly how you did yours and the fields and phrasing I need. Yes I am using toolkit, I'm not a real modder, just a guy that likes tinkering for fun. With that I should be able to work it out now I've got something to go off. In my googling I did end up at the community library but couldn't work it out, you're right I do not have experience with old school modding methods, if there's no toolkit (Dragon Age Origins, Fallout 4, Skyrim, BG3) I'm done. But the way you've set it out here makes perfect sense. Much appreciated.
I would use this except it has (OneDND) on the tooltip for the bind ranged weapon and it just bugs me and makes it feel like a low quality mod. Petty but also a strange easily fixed design choice.
61 comments
If you would like some specific variations/requests made, please post over at Repertoire of Random Requests.
If it helps for troubleshooting, below are my Warlock-specific mods:
- DnD5R - Warlock Pacts as Invocations
- Invocations Expanded
- OneDnD UA7 Warlock Magical Cunning
- OneDnD UA7 Warlock Pact of the Blade
- DnD5R - Warlock Patron Spells - Hexblade (Larian)
Edit: As soon as I posted this, I got my first Hexblade's Curse proc. I guess I'm just supremely unlucky (or blind), seeing as I'm currently at Nere. Please disregard my dual wielding question. However, it would be nice to have the Hexblade's Curse proc on the "Bind Pact Weapon" ability for dueling or two-handed setups.
Is it a bug?
Patch 8 changed some things with the "IsHidden" flag which affects passives and toggles now, previously on Patch 7 only passives and stuff with toggles would still show up on the hotbar
Hoping for an update as well, Pact of the Blade felt so smooth to play with this mod compared to the vanilla game and i cant play warlock without it anymore haha
that wooshing sound is driving me crazy haha
there is no sound effect for Pact Weapon: Radiant or Pact Weapon: Psychic
cant wait for the patch 8 update, this mod is the reason what makes Warlock playable for me haha
Noted🐱
The common problem people run into with the damage type override is that it needs to be applied to the weapon itself and not the character. This can make it a bit complicated to manage. As a basic example, if you want the player to have the ability to change the damage type, you could have the passive toggle apply a status to the weapon, but then you need to make sure the status is removed as well, otherwise you can end up having the damage override remain on all the weapons it is applied to.
Anyway, the code for this pact weapon is freely visible in the community library. It sounds like you're using the toolkit though, so this might be a lot of information to parse if you're not experienced with the old school modding methods.
new entry "CL_STATUS_ONEDND_PACTBLADE_MAIN"
type "StatusData"
data "StatusType" "BOOST"
data "Passives" "CL_Passive_OneDnD_PactBlade_Toggle_MeleeMainHand;CL_Passive_OneDnD_PactBlade_Toggle_RangedMainHand;CL_Passive_OneDnD_PactBlade_Toggle_MeleeOffHand;CL_Passive_OneDnD_PactBlade_Toggle_RangedOffHand;CL_Passive_OneDnD_PactBlade_Damage_Necrotic;CL_Passive_OneDnD_PactBlade_Damage_Psychic;CL_Passive_OneDnD_PactBlade_Damage_Radiant"
data "StatusGroups" "SG_RemoveOnRespec"
data "StackType" "Overwrite"
data "StatusPropertyFlags" "DisableOverhead;DisableCombatlog;DisablePortraitIndicator;IgnoreResting"
new entry "CL_STATUS_ONEDND_PACTBLADE_MAIN_NO_APPLY_TOGGLES"
type "StatusData"
data "StatusType" "BOOST"
data "Passives" "CL_Passive_OneDnD_PactBlade_Damage_Necrotic;CL_Passive_OneDnD_PactBlade_Damage_Psychic;CL_Passive_OneDnD_PactBlade_Damage_Radiant"
data "StatusGroups" "SG_RemoveOnRespec"
data "StackType" "Overwrite"
data "StatusPropertyFlags" "DisableOverhead;DisableCombatlog;DisablePortraitIndicator;IgnoreResting"
new entry "CL_Passive_OneDnD_PactBlade_Toggle_MeleeMainHand"
type "PassiveData"
data "Icon" "CL_Icons_OneDnD_PactWeapon_Melee_Toggle"
data "DisplayName" "hd6ae785ag6f2fg4173g9319gdf789b24385f;1"
data "Description" "he9ed94abg0148g48d9g8e7egcfa402c8e040;1"
data "DescriptionParams" "DealDamage(,Necrotic);DealDamage(,Psychic);DealDamage(,Radiant)"
data "ExtraDescription" "h47a84058g47abg44b4gb33agd30875eae28e;1"
data "TooltipUseCosts" "BonusActionPoint:1"
data "ToggleOnFunctors" "ApplyStatus(CL_STATUS_ONEDND_PACTBLADE_MELEEMAINHAND,100,-1);IF(not HasStatus('PACT_BLADE',GetItemInEquipmentSlot(EquipmentSlot.MeleeMainHand,context.Source)) and HasActionResource('BonusActionPoint',1,0,false,false,context.Source)):ApplyStatus(SELF,CL_STATUS_ONEDND_PACTBLADE_REAPPLY,100,0);UseActionResource(SELF,BonusActionPoint,1)"
data "StatsFunctors" "ApplyStatus(SELF,CL_STATUS_ONEDND_PACTBLADE_REAPPLY,100,0)"
data "StatsFunctorContext" "OnEquip"
data "Conditions" "not HasStatus('PACT_BLADE',GetItemInEquipmentSlot(EquipmentSlot.MeleeMainHand,context.Source)) and not Combat(context.Source)"
data "EnabledConditions" "CL_HasWeaponInMeleeMainHand()"
data "EnabledContext" "OnEquip"
data "Properties" "IsToggled;ToggledDefaultAddToHotbar;IsHidden"
data "ToggleGroup" "PactBladeWeapon"
new entry "CL_Passive_OneDnD_PactBlade_Toggle_RangedMainHand"
type "PassiveData"
using "CL_Passive_OneDnD_PactBlade_Toggle_MeleeMainHand"
data "Icon" "CL_Icons_OneDnD_PactWeapon_Ranged_Toggle"
data "DisplayName" "h5a6b2e55g2decg4478gbac1g6abc143d88b1;1"
data "Description" "h08226d83g061ag4521gb627g74a3f013fc52;1"
data "ToggleOnFunctors" "ApplyStatus(CL_STATUS_ONEDND_PACTBLADE_RANGEDMAINHAND,100,-1);IF(not HasStatus('PACT_BLADE',GetItemInEquipmentSlot(EquipmentSlot.RangedMainHand,context.Source)) and HasActionResource('BonusActionPoint',1,0,false,false,context.Source)):ApplyStatus(SELF,CL_STATUS_ONEDND_PACTBLADE_REAPPLY,100,0);UseActionResource(SELF,BonusActionPoint,1)"
data "Conditions" "not HasStatus('PACT_BLADE',GetItemInEquipmentSlot(EquipmentSlot.RangedMainHand,context.Source)) and not Combat(context.Source)"
data "StatsFunctors" "ApplyStatus(SELF,CL_STATUS_ONEDND_PACTBLADE_REAPPLY,100,0)"
data "EnabledConditions" "CL_HasWeaponInRangedMainHand()"
new entry "CL_Passive_OneDnD_PactBlade_Toggle_MeleeOffHand"
type "PassiveData"
using "CL_Passive_OneDnD_PactBlade_Toggle_MeleeMainHand"
data "Icon" "CL_Icons_OneDnD_PactWeapon_Melee_Offhand_Toggle"
data "DisplayName" "h0467fa81gf86fg4ef5gb72bgb3e14efe3362;1"
data "Description" "hf5bd604cg0662g4c2fgad66g4bbc4115959c;1"
data "ToggleOnFunctors" "ApplyStatus(CL_STATUS_ONEDND_PACTBLADE_MELEEOFFHAND,100,-1);IF(not HasStatus('PACT_BLADE',GetItemInEquipmentSlot(EquipmentSlot.MeleeOffHand,context.Source)) and HasActionResource('BonusActionPoint',1,0,false,false,context.Source)):ApplyStatus(SELF,CL_STATUS_ONEDND_PACTBLADE_REAPPLY,100,0);UseActionResource(SELF,BonusActionPoint,1)"
data "Conditions" "not HasStatus('PACT_BLADE',GetItemInEquipmentSlot(EquipmentSlot.MeleeOffHand,context.Source)) and not Combat(context.Source)"
data "StatsFunctors" "ApplyStatus(SELF,CL_STATUS_ONEDND_PACTBLADE_REAPPLY,100,0)"
data "EnabledConditions" "CL_HasWeaponInMeleeOffHand()"
new entry "CL_Passive_OneDnD_PactBlade_Toggle_RangedOffHand"
type "PassiveData"
using "CL_Passive_OneDnD_PactBlade_Toggle_MeleeMainHand"
data "Icon" "CL_Icons_OneDnD_PactWeapon_Ranged_Offhand_Toggle"
data "DisplayName" "hc6dd4c2dg8a5fg4fd9gb1bdga42f621e1658;1"
data "Description" "he8e06849ge21ag4734g9282g79f8f80b1591;1"
data "DescriptionParams" "DealDamage(,Necrotic);DealDamage(,Psychic);DealDamage(,Radiant)"
data "ToggleOnFunctors" "ApplyStatus(CL_STATUS_ONEDND_PACTBLADE_RANGEDOFFHAND,100,-1);IF(not HasStatus('PACT_BLADE',GetItemInEquipmentSlot(EquipmentSlot.RangedOffHand,context.Source)) and HasActionResource('BonusActionPoint',1,0,false,false,context.Source)):ApplyStatus(SELF,CL_STATUS_ONEDND_PACTBLADE_REAPPLY,100,0);UseActionResource(SELF,BonusActionPoint,1)"
data "Conditions" "not HasStatus('PACT_BLADE',GetItemInEquipmentSlot(EquipmentSlot.RangedOffHand,context.Source)) and not Combat(context.Source)"
data "StatsFunctors" "ApplyStatus(SELF,CL_STATUS_ONEDND_PACTBLADE_REAPPLY,100,0)"
data "EnabledConditions" "CL_HasWeaponInRangedOffHand()"
new entry "CL_STATUS_ONEDND_PACTBLADE_MELEEMAINHAND"
type "StatusData"
data "StatusType" "BOOST"
data "StatusGroups" "SG_RemoveOnRespec"
data "StackId" "PACTBLADE_SLOTTYPE"
data "StackType" "Overwrite"
data "RemoveEvents" "OnStatusRemoved;OnTurn"
data "RemoveConditions" "not HasStatus('CL_STATUS_ONEDND_PACTBLADE_MAIN')"
data "StatusPropertyFlags" "DisableOverhead;DisableCombatlog;DisablePortraitIndicator;IgnoreResting"
new entry "CL_STATUS_ONEDND_PACTBLADE_RANGEDMAINHAND"
type "StatusData"
data "StatusType" "BOOST"
using "CL_STATUS_ONEDND_PACTBLADE_MELEEMAINHAND"
new entry "CL_STATUS_ONEDND_PACTBLADE_MELEEOFFHAND"
type "StatusData"
data "StatusType" "BOOST"
using "CL_STATUS_ONEDND_PACTBLADE_MELEEMAINHAND"
new entry "CL_STATUS_ONEDND_PACTBLADE_RANGEDOFFHAND"
type "StatusData"
data "StatusType" "BOOST"
using "CL_STATUS_ONEDND_PACTBLADE_MELEEMAINHAND"
new entry "CL_STATUS_ONEDND_PACTBLADE_REAPPLY"
type "StatusData"
data "StatusType" "BOOST"
data "OnApplyFunctors" "IF(HasStatus('CL_STATUS_ONEDND_PACTBLADE_MELEEMAINHAND',context.Source)):UseSpell(CL_Shout_OneDnD_PactOfTheBlade_Bind_MeleeMainhand,true,true,true);IF(HasStatus('CL_STATUS_ONEDND_PACTBLADE_RANGEDMAINHAND',context.Source)):UseSpell(CL_Shout_OneDnD_PactOfTheBlade_Bind_RangedMainhand,true,true,true);IF(HasStatus('CL_STATUS_ONEDND_PACTBLADE_MELEEOFFHAND',context.Source)):UseSpell(CL_Shout_OneDnD_PactOfTheBlade_Bind_MeleeOffhand,true,true,true);IF(HasStatus('CL_STATUS_ONEDND_PACTBLADE_RANGEDOFFHAND',context.Source)):UseSpell(CL_Shout_OneDnD_PactOfTheBlade_Bind_RangedOffhand,true,true,true)"
data "StatusPropertyFlags" "DisableOverhead;DisableCombatlog;DisablePortraitIndicator"
new entry "CL_Passive_OneDnD_PactBlade_Damage_Necrotic"
type "PassiveData"
data "Icon" "CL_Icons_OneDnD_PactWeapon_Necrotic_Toggle"
data "DisplayName" "hbfedf3c8gc2ebg4ccagb222g605b2fe383f1;1"
data "Description" "h8f70b516g19ebg47f2g8cbagda7df0f2e370;1"
data "DescriptionParams" "DealDamage(,Necrotic)"
data "ToggleOnFunctors" "ApplyStatus(SELF,CL_STATUS_ONEDND_PACTBLADE_NECROTIC,100,-1);IF(HasStatus('PACT_BLADE',GetItemInEquipmentSlot(EquipmentSlot.MeleeMainHand,context.Source))):ApplyEquipmentStatus(MeleeMainHand,CL_STATUS_ONEDND_PACTBLADE_WEAPON,100,-1);IF(HasStatus('PACT_BLADE',GetItemInEquipmentSlot(EquipmentSlot.RangedMainHand,context.Source))):ApplyEquipmentStatus(RangedMainHand,CL_STATUS_ONEDND_PACTBLADE_WEAPON,100,-1);IF(HasStatus('PACT_BLADE',GetItemInEquipmentSlot(EquipmentSlot.MeleeOffHand,context.Source))):ApplyEquipmentStatus(MeleeOffHand,CL_STATUS_ONEDND_PACTBLADE_WEAPON,100,-1);IF(HasStatus('PACT_BLADE',GetItemInEquipmentSlot(EquipmentSlot.RangedOffHand,context.Source))):ApplyEquipmentStatus(RangedOffHand,CL_STATUS_ONEDND_PACTBLADE_WEAPON,100,-1)"
data "ToggleOffFunctors" "RemoveStatus(SELF,CL_STATUS_ONEDND_PACTBLADE_NECROTIC);IF(HasStatus('PACT_BLADE',GetItemInEquipmentSlot(EquipmentSlot.MeleeMainHand,context.Source))):ApplyEquipmentStatus(MeleeMainHand,CL_STATUS_ONEDND_PACTBLADE_WEAPON,100,-1);IF(HasStatus('PACT_BLADE',GetItemInEquipmentSlot(EquipmentSlot.RangedMainHand,context.Source))):ApplyEquipmentStatus(RangedMainHand,CL_STATUS_ONEDND_PACTBLADE_WEAPON,100,-1);IF(HasStatus('PACT_BLADE',GetItemInEquipmentSlot(EquipmentSlot.MeleeOffHand,context.Source))):ApplyEquipmentStatus(MeleeOffHand,CL_STATUS_ONEDND_PACTBLADE_WEAPON,100,-1);IF(HasStatus('PACT_BLADE',GetItemInEquipmentSlot(EquipmentSlot.RangedOffHand,context.Source))):ApplyEquipmentStatus(RangedOffHand,CL_STATUS_ONEDND_PACTBLADE_WEAPON,100,-1)"
data "ToggleGroup" "PactBladeDamageType"
data "Properties" "IsToggled;ToggledDefaultAddToHotbar;IsHidden"
new entry "CL_Passive_OneDnD_PactBlade_Damage_Psychic"
type "PassiveData"
using "CL_Passive_OneDnD_PactBlade_Damage_Necrotic"
data "Icon" "CL_Icons_OneDnD_PactWeapon_Psychic_Toggle"
data "DisplayName" "ha378d7b5g1870g4350ga61bg3ffcf601e034;1"
data "Description" "h8f70b516g19ebg47f2g8cbagda7df0f2e370;1"
data "DescriptionParams" "DealDamage(,Psychic)"
data "ToggleOnFunctors" "ApplyStatus(SELF,CL_STATUS_ONEDND_PACTBLADE_PSYCHIC,100,-1);IF(HasStatus('PACT_BLADE',GetItemInEquipmentSlot(EquipmentSlot.MeleeMainHand,context.Source))):ApplyEquipmentStatus(MeleeMainHand,CL_STATUS_ONEDND_PACTBLADE_WEAPON,100,-1);IF(HasStatus('PACT_BLADE',GetItemInEquipmentSlot(EquipmentSlot.RangedMainHand,context.Source))):ApplyEquipmentStatus(RangedMainHand,CL_STATUS_ONEDND_PACTBLADE_WEAPON,100,-1);IF(HasStatus('PACT_BLADE',GetItemInEquipmentSlot(EquipmentSlot.MeleeOffHand,context.Source))):ApplyEquipmentStatus(MeleeOffHand,CL_STATUS_ONEDND_PACTBLADE_WEAPON,100,-1);IF(HasStatus('PACT_BLADE',GetItemInEquipmentSlot(EquipmentSlot.RangedOffHand,context.Source))):ApplyEquipmentStatus(RangedOffHand,CL_STATUS_ONEDND_PACTBLADE_WEAPON,100,-1)"
data "ToggleOffFunctors" "RemoveStatus(SELF,CL_STATUS_ONEDND_PACTBLADE_PSYCHIC);IF(HasStatus('PACT_BLADE',GetItemInEquipmentSlot(EquipmentSlot.MeleeMainHand,context.Source))):ApplyEquipmentStatus(MeleeMainHand,CL_STATUS_ONEDND_PACTBLADE_WEAPON,100,-1);IF(HasStatus('PACT_BLADE',GetItemInEquipmentSlot(EquipmentSlot.RangedMainHand,context.Source))):ApplyEquipmentStatus(RangedMainHand,CL_STATUS_ONEDND_PACTBLADE_WEAPON,100,-1);IF(HasStatus('PACT_BLADE',GetItemInEquipmentSlot(EquipmentSlot.MeleeOffHand,context.Source))):ApplyEquipmentStatus(MeleeOffHand,CL_STATUS_ONEDND_PACTBLADE_WEAPON,100,-1);IF(HasStatus('PACT_BLADE',GetItemInEquipmentSlot(EquipmentSlot.RangedOffHand,context.Source))):ApplyEquipmentStatus(RangedOffHand,CL_STATUS_ONEDND_PACTBLADE_WEAPON,100,-1)"
new entry "CL_Passive_OneDnD_PactBlade_Damage_Radiant"
type "PassiveData"
using "CL_Passive_OneDnD_PactBlade_Damage_Necrotic"
data "Icon" "CL_Icons_OneDnD_PactWeapon_Radiant_Toggle"
data "DescriptionParams" "DealDamage(,Radiant)"
data "DisplayName" "hac917788g7986g44f6g802aga22564ddff40;1"
data "Description" "h8f70b516g19ebg47f2g8cbagda7df0f2e370;1"
data "ToggleOnFunctors" "ApplyStatus(SELF,CL_STATUS_ONEDND_PACTBLADE_RADIANT,100,-1);IF(HasStatus('PACT_BLADE',GetItemInEquipmentSlot(EquipmentSlot.MeleeMainHand,context.Source))):ApplyEquipmentStatus(MeleeMainHand,CL_STATUS_ONEDND_PACTBLADE_WEAPON,100,-1);IF(HasStatus('PACT_BLADE',GetItemInEquipmentSlot(EquipmentSlot.RangedMainHand,context.Source))):ApplyEquipmentStatus(RangedMainHand,CL_STATUS_ONEDND_PACTBLADE_WEAPON,100,-1);IF(HasStatus('PACT_BLADE',GetItemInEquipmentSlot(EquipmentSlot.MeleeOffHand,context.Source))):ApplyEquipmentStatus(MeleeOffHand,CL_STATUS_ONEDND_PACTBLADE_WEAPON,100,-1);IF(HasStatus('PACT_BLADE',GetItemInEquipmentSlot(EquipmentSlot.RangedOffHand,context.Source))):ApplyEquipmentStatus(RangedOffHand,CL_STATUS_ONEDND_PACTBLADE_WEAPON,100,-1)"
data "ToggleOffFunctors" "RemoveStatus(SELF,CL_STATUS_ONEDND_PACTBLADE_RADIANT);IF(HasStatus('PACT_BLADE',GetItemInEquipmentSlot(EquipmentSlot.MeleeMainHand,context.Source))):ApplyEquipmentStatus(MeleeMainHand,CL_STATUS_ONEDND_PACTBLADE_WEAPON,100,-1);IF(HasStatus('PACT_BLADE',GetItemInEquipmentSlot(EquipmentSlot.RangedMainHand,context.Source))):ApplyEquipmentStatus(RangedMainHand,CL_STATUS_ONEDND_PACTBLADE_WEAPON,100,-1);IF(HasStatus('PACT_BLADE',GetItemInEquipmentSlot(EquipmentSlot.MeleeOffHand,context.Source))):ApplyEquipmentStatus(MeleeOffHand,CL_STATUS_ONEDND_PACTBLADE_WEAPON,100,-1);IF(HasStatus('PACT_BLADE',GetItemInEquipmentSlot(EquipmentSlot.RangedOffHand,context.Source))):ApplyEquipmentStatus(RangedOffHand,CL_STATUS_ONEDND_PACTBLADE_WEAPON,100,-1)"
new entry "CL_STATUS_ONEDND_PACTBLADE_NECROTIC"
type "StatusData"
data "StatusType" "BOOST"
data "StackId" "PACTBLADE_DAMAGETYPE"
data "RemoveEvents" "OnStatusRemoved;OnTurn"
data "RemoveConditions" "not HasStatus('CL_STATUS_ONEDND_PACTBLADE_MAIN')"
data "StatusGroups" "SG_RemoveOnRespec"
data "StatusPropertyFlags" "DisableOverhead;DisableCombatlog;DisablePortraitIndicator;IgnoreResting"
new entry "CL_STATUS_ONEDND_PACTBLADE_PSYCHIC"
type "StatusData"
data "StatusType" "BOOST"
using "CL_STATUS_ONEDND_PACTBLADE_NECROTIC"
new entry "CL_STATUS_ONEDND_PACTBLADE_RADIANT"
type "StatusData"
data "StatusType" "BOOST"
using "CL_STATUS_ONEDND_PACTBLADE_NECROTIC"
new entry "CL_STATUS_ONEDND_PACTBLADE_WEAPON"
type "StatusData"
data "StatusType" "BOOST"
data "Icon" "Skill_Warlock_BindPactWeapon"
data "StackId" "PACT_BLADE_DAMAGE_TYPE_WEAPON"
data "RemoveEvents" "OnStatusRemoved;OnTurn"
data "RemoveConditions" "not HasStatus('PACT_BLADE')"
data "Boosts" "IF(HasStatus('CL_STATUS_ONEDND_PACTBLADE_NECROTIC',GetOwner(context.Source))):WeaponDamageTypeOverride(Necrotic);IF(HasStatus('CL_STATUS_ONEDND_PACTBLADE_PSYCHIC',GetOwner(context.Source))):WeaponDamageTypeOverride(Psychic);IF(HasStatus('CL_STATUS_ONEDND_PACTBLADE_RADIANT',GetOwner(context.Source))):WeaponDamageTypeOverride(Radiant)"
data "OnApplyFunctors" "IF(not HasStatus('CL_STATUS_ONEDND_PACTBLADE_NECROTIC',GetOwner(context.Source)) and not HasStatus('CL_STATUS_ONEDND_PACTBLADE_PSYCHIC',GetOwner(context.Source)) and not HasStatus('CL_STATUS_ONEDND_PACTBLADE_RADIANT',GetOwner(context.Source))):ApplyStatus(CL_STATUS_ONEDND_PACT_BLADENORMAL_WEAPON,100,-1);IF(HasStatus('CL_STATUS_ONEDND_PACTBLADE_NECROTIC',GetOwner(context.Source))):ApplyStatus(CL_STATUS_ONEDND_PACTBLADE_NECROTIC_WEAPON,100,-1);IF(HasStatus('CL_STATUS_ONEDND_PACTBLADE_PSYCHIC',GetOwner(context.Source))):ApplyStatus(CL_STATUS_ONEDND_PACTBLADE_PSYCHIC_WEAPON,100,-1);IF(HasStatus('CL_STATUS_ONEDND_PACTBLADE_RADIANT',GetOwner(context.Source))):ApplyStatus(CL_STATUS_ONEDND_PACTBLADE_RADIANT_WEAPON,100,-1)"
data "StatusGroups" "SG_RemoveOnRespec"
data "StackType" "Overwrite"
data "StatusPropertyFlags" "DisableOverhead;DisableCombatlog;DisablePortraitIndicator;IgnoreResting"
new entry "CL_STATUS_ONEDND_PACTBLADE_NECROTIC_WEAPON"
type "StatusData"
data "StatusType" "BOOST"
data "Icon" "Skill_Warlock_BindPactWeapon"
data "FormatColor" "Green"
data "DisplayName" "hbfedf3c8gc2ebg4ccagb222g605b2fe383f1;1"
data "Description" "h983e72deg4e0cg4ac8g80d0g03146a5a2e83;1"
data "DescriptionParams" "DealDamage(,Necrotic)"
data "StackId" "PACT_BLADE_VFX"
data "RemoveEvents" "OnStatusRemoved;OnTurn"
data "RemoveConditions" "not HasStatus('PACT_BLADE')"
data "StatusGroups" "SG_RemoveOnRespec"
data "StackType" "Overwrite"
data "StatusEffect" "ef230b11-f9c5-406e-9c7c-08b6f6309db2"
data "StatusPropertyFlags" "DisableCombatlog;IgnoreResting"
new entry "CL_STATUS_ONEDND_PACTBLADE_PSYCHIC_WEAPON"
type "StatusData"
data "StatusType" "BOOST"
using "CL_STATUS_ONEDND_PACTBLADE_NECROTIC_WEAPON"
data "DisplayName" "ha378d7b5g1870g4350ga61bg3ffcf601e034;1"
data "FormatColor" "Pink"
data "DescriptionParams" "DealDamage(,Psychic)"
data "StatusEffect" "0356e372-c3d8-4943-883c-b51f24afbc63"
new entry "CL_STATUS_ONEDND_PACTBLADE_RADIANT_WEAPON"
type "StatusData"
data "StatusType" "BOOST"
using "CL_STATUS_ONEDND_PACTBLADE_NECROTIC_WEAPON"
data "DisplayName" "hac917788g7986g44f6g802aga22564ddff40;1"
data "FormatColor" "Gold"
data "DescriptionParams" "DealDamage(,Radiant)"
data "StatusEffect" "fdb6fe37-0f9b-46b4-bb42-8a4079073fb2"
new entry "CL_STATUS_ONEDND_PACT_BLADENORMAL_WEAPON"
type "StatusData"
data "StatusType" "BOOST"
using "CL_STATUS_ONEDND_PACTBLADE_NECROTIC_WEAPON"
data "DisplayName" "h7ac40bcag9679g46f0gb54fg093c562a9b66;2"
data "Description" "hb5821feag2ff1g4781gbae9g883a69741d6a;3"
data "StatusEffect" ""
data "StatusPropertyFlags" "DisableOverhead;DisableCombatlog;IgnoreResting"
new entry "CL_Shout_OneDnD_PactOfTheBlade_Bind"
type "SpellData"
data "SpellType" "Shout"
data "SpellProperties" ""
data "TargetConditions" "Self()"
data "Icon" "Skill_Warlock_BindPactWeapon"
data "ContainerSpells" "CL_Shout_OneDnD_PactOfTheBlade_Bind_MeleeMainhand;CL_Shout_OneDnD_PactOfTheBlade_Bind_RangedMainhand;CL_Shout_OneDnD_PactOfTheBlade_Bind_MeleeOffhand;CL_Shout_OneDnD_PactOfTheBlade_Bind_RangedOffhand;CL_Shout_OneDnD_PactOfTheBlade_Remove"
data "DisplayName" "h3b3b7fcbg4167g4f90gb900g842334ea59c8;2"
data "Description" "hba6e2a96gcefbg431agb604g02c9d84e1d46;1"
data "DescriptionParams" "DealDamage(,Necrotic);DealDamage(,Psychic);DealDamage(,Radiant)"
data "ExtraDescription" "hc174c0dbg30bdg41e4g8c8cge54257c4584e;1"
data "ExtraDescriptionParams" "Distance(1.5)"
data "TooltipStatusApply" "ApplyStatus(PACT_BLADE,100, -1)"
data "CastSound" "Action_Cast_BindPactWeapon"
data "CastTextEvent" "Cast"
data "UseCosts" "BonusActionPoint:1"
data "SpellAnimation" "8b8bb757-21ce-4e02-a2f3-97d55cf2f90b,,;,,;35b644cf-5c13-4407-9dc1-23bf4309216e,,;823e3ddf-c670-41ef-b7b4-9f4a4e38300b,,;7bb52cd4-0b1c-4926-9165-fa92b75876a3,,;,,;0b07883a-08b8-43b6-ac18-84dc9e84ff50,,;,,;,,"
data "VerbalIntent" "Utility"
data "SpellFlags" "IsLinkedSpellContainer"
data "SpellAnimationIntentType" "Aggressive"
data "RequirementConditions" "not Unarmed() and not Tagged('PACT_OF_THE_BLADE',GetActiveWeapon())"
data "PrepareEffect" "8e9914c9-7008-4252-ab31-a9776c444194"
data "CastEffect" "fc23a5a6-f05b-40c3-8e0f-99377cfb04cc"
data "Sheathing" "Sheathed"
new entry "CL_Shout_OneDnD_PactOfTheBlade_Bind_MeleeMainhand"
type "SpellData"
data "SpellType" "Shout"
using "CL_Shout_OneDnD_PactOfTheBlade_Bind"
data "SpellContainerID" "CL_Shout_OneDnD_PactOfTheBlade_Bind"
data "SpellProperties" "IF(not HasStatus('CL_STATUS_ONEDND_PACTBLADE_MAIN')):ApplyStatus(CL_STATUS_ONEDND_PACTBLADE_MAIN,100,-1);ApplyEquipmentStatus(MeleeMainHand,PACT_BLADE,100,-1);ApplyEquipmentStatus(MeleeMainHand,CL_STATUS_ONEDND_PACTBLADE_WEAPON,100,-1)"
data "Icon" "Skill_Warlock_BindPactWeapon"
data "ContainerSpells" ""
data "DisplayName" "hd8d71343g6d98g4099g8a53g093b6242d2d5;1"
data "Description" "he9ed94abg0148g48d9g8e7egcfa402c8e040;1"
data "DescriptionParams" "DealDamage(,Necrotic);DealDamage(,Psychic);DealDamage(,Radiant)"
data "SpellFlags" ""
data "RequirementConditions" "WieldingWeapon('Melee',false,true)"
data "WeaponTypes" "Melee"
data "Sheathing" "Melee"
new entry "CL_Shout_OneDnD_PactOfTheBlade_Bind_RangedMainhand"
type "SpellData"
data "SpellType" "Shout"
using "CL_Shout_OneDnD_PactOfTheBlade_Bind_MeleeMainhand"
data "SpellContainerID" "CL_Shout_OneDnD_PactOfTheBlade_Bind"
data "SpellProperties" "IF(not HasStatus('CL_STATUS_ONEDND_PACTBLADE_MAIN')):ApplyStatus(CL_STATUS_ONEDND_PACTBLADE_MAIN,100,-1);ApplyEquipmentStatus(RangedMainHand,PACT_BLADE,100,-1);ApplyEquipmentStatus(RangedMainHand,CL_STATUS_ONEDND_PACTBLADE_WEAPON,100,-1)"
data "Icon" "CL_Icons_OneDnD_PactWeapon_Ranged"
data "DisplayName" "h43d73aebg49c0g4159g8735gda570350149a;1"
data "Description" "h08226d83g061ag4521gb627g74a3f013fc52;1"
data "DescriptionParams" "DealDamage(,Necrotic);DealDamage(,Psychic);DealDamage(,Radiant)"
data "RequirementConditions" "WieldingWeapon('Ammunition',false,true)"
data "WeaponTypes" "Ammunition"
data "Sheathing" "Ranged"
new entry "CL_Shout_OneDnD_PactOfTheBlade_Bind_MeleeOffhand"
type "SpellData"
data "SpellType" "Shout"
using "CL_Shout_OneDnD_PactOfTheBlade_Bind_MeleeMainhand"
data "SpellContainerID" "CL_Shout_OneDnD_PactOfTheBlade_Bind"
data "SpellProperties" "IF(not HasStatus('CL_STATUS_ONEDND_PACTBLADE_MAIN')):ApplyStatus(CL_STATUS_ONEDND_PACTBLADE_MAIN,100,-1);ApplyEquipmentStatus(MeleeOffHand,PACT_BLADE,100,-1);ApplyEquipmentStatus(MeleeOffHand,CL_STATUS_ONEDND_PACTBLADE_WEAPON,100,-1)"
data "Icon" "CL_Icons_OneDnD_PactWeapon_Melee_Offhand"
data "DisplayName" "h3a3621e2g0e6dg4b18gb401g380c5da4bb04;1"
data "Description" "hf5bd604cg0662g4c2fgad66g4bbc4115959c;1"
data "DescriptionParams" "DealDamage(,Necrotic);DealDamage(,Psychic);DealDamage(,Radiant)"
data "RequirementConditions" "CL_HasWeaponInMeleeOffHand()"
data "Sheathing" "Melee"
data "WeaponTypes" "Melee"
new entry "CL_Shout_OneDnD_PactOfTheBlade_Bind_RangedOffhand"
type "SpellData"
data "SpellType" "Shout"
using "CL_Shout_OneDnD_PactOfTheBlade_Bind_MeleeMainhand"
data "SpellContainerID" "CL_Shout_OneDnD_PactOfTheBlade_Bind"
data "SpellProperties" "IF(not HasStatus('CL_STATUS_ONEDND_PACTBLADE_MAIN')):ApplyStatus(CL_STATUS_ONEDND_PACTBLADE_MAIN,100,-1);ApplyEquipmentStatus(RangedOffHand,PACT_BLADE,100,-1);ApplyEquipmentStatus(RangedOffHand,CL_STATUS_ONEDND_PACTBLADE_WEAPON,100,-1)"
data "Icon" "CL_Icons_OneDnD_PactWeapon_Ranged_Offhand"
data "DisplayName" "h6e1f3b08g9338g4194gb79egdb574add28ff;1"
data "Description" "he8e06849ge21ag4734g9282g79f8f80b1591;1"
data "DescriptionParams" "DealDamage(,Necrotic);DealDamage(,Psychic);DealDamage(,Radiant)"
data "RequirementConditions" "CL_HasWeaponInRangedOffHand()"
data "Sheathing" "Ranged"
data "WeaponTypes" "Ammunition"
new entry "CL_Shout_OneDnD_PactOfTheBlade_Remove"
type "SpellData"
data "SpellType" "Shout"
using "CL_Shout_OneDnD_PactOfTheBlade_Bind_MeleeMainhand"
data "SpellContainerID" "CL_Shout_OneDnD_PactOfTheBlade_Bind"
data "SpellProperties" "RemoveStatus(CL_STATUS_ONEDND_PACTBLADE_MAIN);ApplyEquipmentStatus(MeleeMainHand,PACT_BLADE,100,0);ApplyEquipmentStatus(RangedMainHand,PACT_BLADE,100,0);ApplyEquipmentStatus(MeleeOffHand,PACT_BLADE,100,0);ApplyEquipmentStatus(RangedOffHand,PACT_BLADE,100,0)"
data "Icon" "Skill_Warlock_DismissPactWeapon"
data "DisplayName" "he9e44a3eg7f4ag41b9gb857g97f69f21e401;1"
data "Description" "h3c811d7bg3666g4dcfg9791gdd37d82a72c7;1"
data "ExtraDescription" ""
data "TooltipStatusApply" ""
data "UseCosts" ""
data "RequirementConditions" "HasStatus('CL_STATUS_ONEDND_PACTBLADE_MAIN')"
data "Sheathing" "Sheathed"
new entry "CL_Passive_OneDnD_PactOfTheBlade"
type "PassiveData"
data "DisplayName" "ha3bef4ccgd1dfg46d2ga453g49e67df2361c;2"
data "Description" "ha46981c9g003ag4c06g9aa1gd811c530608f;1"
data "ExtraDescription" "h74a01e25gb442g45b7g899fg6846bcdbbd9b;1"
data "DescriptionParams" "DealDamage(,Necrotic);DealDamage(,Psychic);DealDamage(,Radiant)"
data "Icon" "PassiveFeature_PactOfTheBlade"
data "Properties" "Highlighted"
data "Boosts" "UnlockSpell(Shout_PactOfTheBlade);UnlockSpell(CL_Shout_OneDnD_PactOfTheBlade_Bind)"
In my googling I did end up at the community library but couldn't work it out, you're right I do not have experience with old school modding methods, if there's no toolkit (Dragon Age Origins, Fallout 4, Skyrim, BG3) I'm done.
But the way you've set it out here makes perfect sense. Much appreciated.