Skip to content

Optimizations, bug fixes and suggestions. - #27

Open
HIEROT wants to merge 10 commits into
HaVeNII7:mainfrom
HIEROT:main
Open

Optimizations, bug fixes and suggestions.#27
HIEROT wants to merge 10 commits into
HaVeNII7:mainfrom
HIEROT:main

Conversation

@HIEROT

@HIEROT HIEROT commented Jul 9, 2026

Copy link
Copy Markdown

Each category of changes are commited separately, please refer to each commit comment.

Copilot AI review requested due to automatic review settings July 9, 2026 21:56

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This pull request updates several “weapon-spell” entries to ensure weapon-related bonuses apply correctly (once) on hybrid weapon+spell attacks, alongside a few Lua/script adjustments and added balance/systems suggestion documentation.

Changes:

  • Adjusted multiple weapon-spell SpellSuccess functors to use non-suppressed weapon hits so weapon bonuses can apply (without double-dipping on riders).
  • Tweaked Script Extender Lua behavior for party-follower DB access and an item distribution equip flag.
  • Added/updated markdown documentation capturing the weapon-spell bonus rationale and broader balance suggestions.

Reviewed changes

Copilot reviewed 4 out of 14 changed files in this pull request and generated 14 comments.

Show a summary per file
File Description
WeaponDR.md Documents the recommended pattern for hybrid weapon spells receiving weapon bonuses once.
OtherSuggestions.md Adds broader balance feedback/suggestions documentation.
Home Brew - Comprehensive Reworks/Public/HomeBrew - Comprehensive Reworks/Stats/Generated/Data/Spells Reworked - Spell_Target.txt Updates melee weapon-spell SpellSuccess weapon hit functors (e.g., Green-Flame Blade, Thunderous Strike).
Home Brew - Comprehensive Reworks/Public/HomeBrew - Comprehensive Reworks/Stats/Generated/Data/Spells Reworked - Spell_Projectile.txt Updates Lightning Arrow weapon hit functors in SpellSuccess across upcast variants.
Home Brew - Comprehensive Reworks/Public/HomeBrew - Comprehensive Reworks/Stats/Generated/Data/Feats Reworked - Spell_Target.txt Updates weapon hit functors for feat-based weapon-spells with riders.
Home Brew - Comprehensive Reworks/Public/HomeBrew - Comprehensive Reworks/Stats/Generated/Data/Classes Reworked (Wizard) - Spell_Projectile.txt Updates weapon hit functor for a wizard weapon-spell projectile entry.
Home Brew - Comprehensive Reworks/Public/HomeBrew - Comprehensive Reworks/Stats/Generated/Data/Classes Reworked (Warlock) - Spell_Target.txt Updates Eldritch Strike weapon hit functors across scaling variants.
Home Brew - Comprehensive Reworks/Public/HomeBrew - Comprehensive Reworks/Stats/Generated/Data/Classes Reworked (Sorcerer) - Passive.txt Changes Frigid Madness save DC calculation to an explicit CalculateSpellDC(...).
Home Brew - Comprehensive Reworks/Public/HomeBrew - Comprehensive Reworks/Stats/Generated/Data/Classes Reworked (Fighter) - Spell_Zone.txt Updates zone-based elemental fletching weapon hit functors on SpellSuccess.
Home Brew - Comprehensive Reworks/Public/HomeBrew - Comprehensive Reworks/Stats/Generated/Data/Classes Reworked (Fighter) - Spell_Rush.txt Updates Rush_DraconicBlitz weapon hit functor in SpellSuccess.
Home Brew - Comprehensive Reworks/Public/HomeBrew - Comprehensive Reworks/Stats/Generated/Data/Classes Reworked (Fighter) - Spell_Projectile.txt Updates multiple elemental fletching projectile entries to use non-suppressed weapon hits on SpellSuccess.
Home Brew - Comprehensive Reworks/Public/HomeBrew - Comprehensive Reworks/Stats/Generated/Data/Classes Reworked (Cleric) - Spell_Target.txt Updates Striking Iron weapon hit functor in SpellSuccess.
Home Brew - Comprehensive Reworks/Mods/HomeBrew - Comprehensive Reworks/ScriptExtender/Lua/JWL_ItemDistribution.lua Changes one distribution entry to no longer auto-equip an item.
Home Brew - Comprehensive Reworks/Mods/HomeBrew - Comprehensive Reworks/ScriptExtender/Lua/AddCreaturetoParty.lua Adds safer DB access helper for party followers and updates call sites.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

data "SpellProperties" "GROUND:DealDamage(MainRangedWeapon, MainRangedWeaponDamageType,,,0,,true);GROUND:DealDamage(LevelMapValue(D8Cantrip), Psychic,Magical);GROUND:ExecuteWeaponFunctors(MainHand)"
data "SpellSuccess" "DealDamage(max(1,MainRangedWeapon), MainRangedWeaponDamageType,,,0,,true); DealDamage(LevelMapValue(D8Cantrip), Psychic,Magical); ExecuteWeaponFunctors(MainHand)"
data "SpellSuccess" "DealDamage(max(1,MainRangedWeapon), MainRangedWeaponDamageType); DealDamage(LevelMapValue(D8Cantrip), Psychic,Magical); ExecuteWeaponFunctors(MainHand)"
data "SpellFail" "DealDamage((max(1,MainRangedWeapon))/2, MainRangedWeaponDamageType,,,0,,true); DealDamage(LevelMapValue(D8Cantrip)/2, Psychic,Magical); ExecuteWeaponFunctors(MainHand)"
data "Level" "2"
data "SpellSuccess" "DealDamage(MainMeleeWeapon, MainMeleeWeaponDamageType,,,0,,true);DealDamage(2d12+16,Force,Magical);IF(not (HasStatus('PENUMBRA_LIGHT', context.Source) or HasStatus('PENUMBRA_LIGHT_TECHNICAL', context.Source) or HasStatus('PENUMBRA_DARK', context.Source) or HasStatus('PENUMBRA_DARK_TECHNICAL', context.Source))):SpawnExtraProjectiles(Projectile_EldritchBlastStrike);IF(HasStatus('PENUMBRA_LIGHT', context.Source) or HasStatus('PENUMBRA_LIGHT_TECHNICAL', context.Source)):SpawnExtraProjectiles(Projectile_EldritchBlastStrike_Penumbral_Radiant);IF(HasStatus('PENUMBRA_DARK', context.Source) or HasStatus('PENUMBRA_DARK_TECHNICAL', context.Source)):SpawnExtraProjectiles(Projectile_EldritchBlastStrike_Penumbral_Necrotic)"
data "SpellSuccess" "DealDamage(MainMeleeWeapon, MainMeleeWeaponDamageType);DealDamage(2d12+16,Force,Magical);IF(not (HasStatus('PENUMBRA_LIGHT', context.Source) or HasStatus('PENUMBRA_LIGHT_TECHNICAL', context.Source) or HasStatus('PENUMBRA_DARK', context.Source) or HasStatus('PENUMBRA_DARK_TECHNICAL', context.Source))):SpawnExtraProjectiles(Projectile_EldritchBlastStrike);IF(HasStatus('PENUMBRA_LIGHT', context.Source) or HasStatus('PENUMBRA_LIGHT_TECHNICAL', context.Source)):SpawnExtraProjectiles(Projectile_EldritchBlastStrike_Penumbral_Radiant);IF(HasStatus('PENUMBRA_DARK', context.Source) or HasStatus('PENUMBRA_DARK_TECHNICAL', context.Source)):SpawnExtraProjectiles(Projectile_EldritchBlastStrike_Penumbral_Necrotic)"
data "TooltipDamageList" "DealDamage(MainMeleeWeapon, MainMeleeWeaponDamageType,,,0,,true);DealDamage(2d12+16,Force)"
data "Level" "3"
data "SpellSuccess" "DealDamage(MainMeleeWeapon, MainMeleeWeaponDamageType,,,0,,true);DealDamage(3d12+24,Force,Magical);IF(not (HasStatus('PENUMBRA_LIGHT', context.Source) or HasStatus('PENUMBRA_LIGHT_TECHNICAL', context.Source) or HasStatus('PENUMBRA_DARK', context.Source) or HasStatus('PENUMBRA_DARK_TECHNICAL', context.Source))):SpawnExtraProjectiles(Projectile_EldritchBlastStrike);IF(HasStatus('PENUMBRA_LIGHT', context.Source) or HasStatus('PENUMBRA_LIGHT_TECHNICAL', context.Source)):SpawnExtraProjectiles(Projectile_EldritchBlastStrike_Penumbral_Radiant);IF(HasStatus('PENUMBRA_DARK', context.Source) or HasStatus('PENUMBRA_DARK_TECHNICAL', context.Source)):SpawnExtraProjectiles(Projectile_EldritchBlastStrike_Penumbral_Necrotic)"
data "SpellSuccess" "DealDamage(MainMeleeWeapon, MainMeleeWeaponDamageType);DealDamage(3d12+24,Force,Magical);IF(not (HasStatus('PENUMBRA_LIGHT', context.Source) or HasStatus('PENUMBRA_LIGHT_TECHNICAL', context.Source) or HasStatus('PENUMBRA_DARK', context.Source) or HasStatus('PENUMBRA_DARK_TECHNICAL', context.Source))):SpawnExtraProjectiles(Projectile_EldritchBlastStrike);IF(HasStatus('PENUMBRA_LIGHT', context.Source) or HasStatus('PENUMBRA_LIGHT_TECHNICAL', context.Source)):SpawnExtraProjectiles(Projectile_EldritchBlastStrike_Penumbral_Radiant);IF(HasStatus('PENUMBRA_DARK', context.Source) or HasStatus('PENUMBRA_DARK_TECHNICAL', context.Source)):SpawnExtraProjectiles(Projectile_EldritchBlastStrike_Penumbral_Necrotic)"
data "TooltipDamageList" "DealDamage(MainMeleeWeapon, MainMeleeWeaponDamageType,,,0,,true);DealDamage(3d12+24,Force)"
using "Projectile_LightningArrow"
data "SpellSuccess" "TARGET:DealDamage(MainRangedWeapon, MainRangedWeaponDamageType,,,0,,true);TARGET:DealDamage(3d6+12,Lightning,Magical);ExecuteWeaponFunctors(MainHand);AOE:DealDamage(3d6+12,Lightning,Magical);ApplyStatus(SELF,MAG_CHARGED_LIGHTNING,100,1)"
data "SpellSuccess" "TARGET:DealDamage(MainRangedWeapon, MainRangedWeaponDamageType);TARGET:DealDamage(3d6+12,Lightning,Magical);ExecuteWeaponFunctors(MainHand);AOE:DealDamage(3d6+12,Lightning,Magical);ApplyStatus(SELF,MAG_CHARGED_LIGHTNING,100,1)"
data "TooltipDamageList" "DealDamage(3d6+12,Lightning)"
using "Projectile_LightningArrow"
data "SpellSuccess" "TARGET:DealDamage(MainRangedWeapon, MainRangedWeaponDamageType,,,0,,true);TARGET:DealDamage(4d6+16,Lightning,Magical);ExecuteWeaponFunctors(MainHand);AOE:DealDamage(4d6+16,Lightning,Magical);ApplyStatus(SELF,MAG_CHARGED_LIGHTNING,100,1)"
data "SpellSuccess" "TARGET:DealDamage(MainRangedWeapon, MainRangedWeaponDamageType);TARGET:DealDamage(4d6+16,Lightning,Magical);ExecuteWeaponFunctors(MainHand);AOE:DealDamage(4d6+16,Lightning,Magical);ApplyStatus(SELF,MAG_CHARGED_LIGHTNING,100,1)"
data "TooltipDamageList" "DealDamage(4d6+16,Lightning)"
using "Projectile_LightningArrow"
data "SpellSuccess" "TARGET:DealDamage(MainRangedWeapon, MainRangedWeaponDamageType,,,0,,true);TARGET:DealDamage(5d6+20,Lightning,Magical);ExecuteWeaponFunctors(MainHand);AOE:DealDamage(5d6+20,Lightning,Magical);ApplyStatus(SELF,MAG_CHARGED_LIGHTNING,100,1)"
data "SpellSuccess" "TARGET:DealDamage(MainRangedWeapon, MainRangedWeaponDamageType);TARGET:DealDamage(5d6+20,Lightning,Magical);ExecuteWeaponFunctors(MainHand);AOE:DealDamage(5d6+20,Lightning,Magical);ApplyStatus(SELF,MAG_CHARGED_LIGHTNING,100,1)"
data "TooltipDamageList" "DealDamage(5d6+20,Lightning)"
using "Projectile_LightningArrow"
data "SpellSuccess" "TARGET:DealDamage(MainRangedWeapon, MainRangedWeaponDamageType,,,0,,true);TARGET:DealDamage(6d6+24,Lightning,Magical);ExecuteWeaponFunctors(MainHand);AOE:DealDamage(6d6+24,Lightning,Magical);ApplyStatus(SELF,MAG_CHARGED_LIGHTNING,100,1)"
data "SpellSuccess" "TARGET:DealDamage(MainRangedWeapon, MainRangedWeaponDamageType);TARGET:DealDamage(6d6+24,Lightning,Magical);ExecuteWeaponFunctors(MainHand);AOE:DealDamage(6d6+24,Lightning,Magical);ApplyStatus(SELF,MAG_CHARGED_LIGHTNING,100,1)"
data "TooltipDamageList" "DealDamage(6d6+24,Lightning)"
data "SpellProperties" "ApplyStatus(STRIKINGIRON_VFX,100,1);IF(HasPassive('BrazenEmbers', context.Source)):ApplyStatus(STRIKINGIRON_ADVANTAGE,100,3);IF(HasPassive('Smeltsong', context.Source)):ApplyStatus(BURNING_LAVA,100,3);GROUND:DealDamage(MainMeleeWeapon, MainMeleeWeaponDamageType);GROUND:ExecuteWeaponFunctors(MainHand)"
data "SpellRoll" "Attack(AttackType.MeleeWeaponAttack)"
data "SpellSuccess" "DealDamage(MainMeleeWeapon, MainMeleeWeaponDamageType,,,0,,true);DealDamage(LevelMapValue(D8Cantrip),Fire,Magical);ExecuteWeaponFunctors(MainHand)"
data "SpellSuccess" "DealDamage(MainMeleeWeapon, MainMeleeWeaponDamageType);DealDamage(LevelMapValue(D8Cantrip),Fire,Magical);ExecuteWeaponFunctors(MainHand)"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants