u/Environmental-Foot20

▲ 42 r/BG3mods

Dynamic Difficulty Scaling - DDS (WIP)

Hello everyone! GraphicFade here.

I've been working on a new difficulty mod called Dynamic Difficulty Scaling (DDS). The goal is to make existing combat encounters more challenging and unpredictable. This should include encounters adding from mods also.

Instead of just slapping a flat +200% HP modifier on everything and increasing simple stats, DDS dynamically scales all encounters and randomizes them.

The core script is functional, but before I finalize a beta release, I would love some feedback from players on balance.

⚔️ Leveling & HP Scaling

  • Level Matching: If enemies are lower level than the player, the enemies dynamically match the highest-level player in your party. Bosses are pushed to Player Level + 2.
  • Split HP Mathematics: To keep early games fair but make late games terrifying, HP is calculated in two steps:
    • Level & Constitution: Enemies get a HP boost based on their Level + Constitution modifier.
      • Levels 1-3: HP increased by level + CON modifier.
      • Levels 4-6: HP increased by level multiplied by 2 + CON modifier.
      • Levels 7-9: HP increased by level multiplied by 3 + CON modifier multiplied by 2.
      • Levels 10-12: HP increased by level multiplied by 4 + CON modifier multiplied by 2.
      • Levels 13-15: HP increased by level multiplied by 5 + CON modifier multiplied by 3.
      • Levels 16-18: HP increased by level multiplied by 6 + CON modifier multiplied by 3.
      • Levels 19+: HP increased by level multiplied by 7 + CON modifier multiplied by 4.
    • Party Size Multiplier: In addition, the enemies HP scales with your party size.
      • 1 Player: No change
      • 2 Players: 10% HP increase
      • 3 Players: 20% HP increase
      • 4 Players: 30% HP increase
      • 5 Players: 40% HP increase
      • 6 Players: 50% HP increase
      • 7 Players: 60% HP increase
      • 8+ Players: 70% HP increase

🛡️ Core Stats

Core stats are tied strictly to level tiers, not party size.

  • Levels 1-3: No change
  • Levels 4-6: +1 Attack/Saving Throws
  • Levels 7-9: +1 AC, +1 Attack/Saving Throws
  • Levels 10-12: +1 AC, +2 Attack/Saving Throws
  • Levels 13-15: +2 AC, +2 Attack/Saving Throws
  • Levels 16-18: +2 AC, +3 Attack/Saving Throws
  • Levels 19+: +3 AC, +3 Attack/Saving Throws

🎲 Unpredictable Encounters

Every time you enter a fight, it will play out differently.

  • Pre-Cast Defenses: Every enemy has a 30% chance to enter combat with a defensive buff already active (e.g., Mage Armor, Bless, Barkskin, Blur).
  • Racial Features: Enemies get unique, stats based on their race tags. (e.g., Halflings cannot be targeted by Opportunity Attacks, or Drow attacks deal extra poison damage and blind on critical hits).
    • Human: The first time this creature is inflicted with one of the following statuses (Stunned, Paralyzed, Frightened, Sleep), it instantly cleanses the status and gains Advantage on its next Attack Roll.
    • Elf: When this creature is missed by a melee attack, it can cast Misty Step up to 3m (10ft) away until the end of it's next turn.
    • Drow: Attacks deal additional Poison damage. Furthermore, when this creature scores a Critical Hit, the target is Blinded for 1 turn.
    • Half-Elf: At the start of combat, this creature randomly gains Resistance to either Physical Damage (Bludgeoning, Piercing, Slashing) OR Magical Damage (Elemental, Force, Radiant, Necrotic) for 3 turns.
    • Half-Orc: When this creature's HP drops below 50%, its movement speed increases by 3m (10ft), and its melee attacks apply the Bleeding status.
    • Halfling: This creature cannot be targeted by Opportunity Attacks.
    • Dwarf: All physical damage is reduced by a flat 5 points.
    • Gnome: When this creature successfully rolls a Saving Throw against a spell, the caster of that spell takes 1d4 Force damage.
    • Tiefling: When this creature is hit by a melee attack, the attacker takes 1d6 Fire damage.
    • Dragonborn: This creature is Immune to Critical Hits.
    • Githyanki: TBD
    • Undead: When this creature hits a target with a melee attack, the target cannot regain Hit Points until the start of the creature's next turn.
    • Goblins: This creature deals an extra 1d6 damage to targets that are Prone, Restrained, or Enwebbed.

👑 Bosses & Leaders

  • Boss Resistance Phase: To prevent bosses from being nuked on Turn 1 before they get to act, all major bosses gain Resistance to all damage for their first 2 turns of combat.
  • Commander Auras: Leader like NPCs emit unique auras that strengthen nearby allies. (Still need to create a list of Leader like NPC).

🏆 Unique Buffs and Champions

Standard enemies have a chance to mutate into massive threats when combat starts:

  • Minor Buffs (15% Chance): An enemy gains a minor boost (like +3m Movement Speed, Minor Damage Reduction, or Spell Reflection), they also get an additional bonus action.
  • Champions (5% Chance): An enemy receives a Major Archetype Buff (e.g., Warrior, Necromancer, Assassin, Blood Knight) which heavily alters their difficulty, They also get an additional action and bonus action. These Archetypes are still a WIP, so expect changes.
    • Warrior: Tank Role. Gains a +3 bonus to Armor Class and can use the "Riposte" reaction to counterattack any melee attack that misses them.
    • Templar: Tank Role. Has Advantage on saving throws against spells. Spell attack rolls against you have disadvantage, all spell damage taken reflects 50% of the damage back at the attacker.
    • Blood Knight: Damage Role. Heals themselves for 25% of all damage they deal to players, making them incredibly hard to wear down, They deal additional damage to targets below 50% HP.
    • Primalist: Damage Role. Their attacks deal additional 1d6 random elemental damage (Fire, Cold, or Lightning), and when they are struck by a spell the deals elemental damage, they gain Resistance to that damage type for 1 turn.
    • Berserker: Damage Role. Immunity to being Frightened or Charmed, every 20% of their HP missing, they deal more damage - cannot be healed.
    • Assassin: Damage Role. Turns Invisible every 3 turns, can cast shadow step, and their critical strike threshold is reduced by 3.
    • Shapeshifter: Damage Role. Has access to multiple wildshape forms.
    • Plaguebringer: Damage Role. Emits a noxious aura that constantly applies the Poisoned status, Applies Damage over time conditions.
    • Reaper: Damage Role. Attacks deal heavy Necrotic damage that temporarily reduces the player's maximum HP. If they strike a player who is below 10% HP, it is an instant death.
    • Beast Master: Summoner Role. Summons a Dire Wolf or Bear companion (Maybe both?). As long as they have a companion near them, the Beastmaster has Advantage on all attacks and elevated movement speed.
    • Necromancer: Summoner Role. Continues to spawn undead minions to overwhelm the party. Casts necrotic spells.
    • Preserver: Support Role. Heals allies and consistently shields them with temporary hit points.
    • Enchanter: Support Role. Grants buffs to their allies while debuffing enemies.
  • Consumable Rewards: Enemies that have these unique buffs will drop extra loot. Minor enemies drop 1-2 standard consumables, while Champions drop 2-3 higher-rarity potions, scrolls, or arrows.

I forgot to mention these can stack, so an enemy could have the Champion buff + pre-cast defensive buff + unique minor buff.

reddit.com
u/Environmental-Foot20 — 7 days ago