RiskOfBrainrot-ProcSolver icon

ProcSolver

Limits proc chains based on damage sourcing. Has config for proc rate and proc chain depth. FULLY CONFIGURABLE!

Last updated 5 days ago
Total downloads 8692
Total rating 1 
Categories Mods Tweaks Server-side
Dependency string RiskOfBrainrot-ProcSolver-1.1.5
Dependants 3 other packages depend on this package

This mod requires the following mods to function

RiskofThunder-R2API_Language-1.0.1 icon
RiskofThunder-R2API_Language

API for modifying the language localisation of the game

Preferred version: 1.0.1
bbepis-BepInExPack-5.4.2116 icon
bbepis-BepInExPack

Unified BepInEx all-in-one modding pack - plugin framework, detour library

Preferred version: 5.4.2116
RiskofThunder-R2API_ProcType-1.0.2 icon
RiskofThunder-R2API_ProcType

API for registering proc types

Preferred version: 1.0.2
LordVGames-AddRunicLensToProcChain-1.0.4 icon
LordVGames-AddRunicLensToProcChain

Fixes Runic Lens being able to restart any proc chains it's in, potentially infinitely with enough luck & other proc items.

Preferred version: 1.0.4
RiskOfBrainrot-NoMoreBandsSteal-1.0.6 icon
RiskOfBrainrot-NoMoreBandsSteal

Changes some procs to only trigger on skill or equipment damage! Configurable!

Preferred version: 1.0.6
RiskOfBrainrot-ProcPatcher-1.2.0 icon
RiskOfBrainrot-ProcPatcher

Makes proc coefficient no longer affect proc chance for bleed and total damage procs. Also makes Shuriken use Primary Damage Source. Configubale.

Preferred version: 1.2.0

README

Github: https://github.com/bbborbo/RoR2ProcSolver

Discord: https://discord.gg/yFRx3E6Yep

Changes:

  • (Configurable) Caps proc chain length at 3 for chains initiated by a skill or equipment.
  • (Configurable) Caps proc chain length at 1 for chains initiated by an item (autoplay).
  • (Configurable) Reduces proc chain rate in proc chains initiated by a skill or equipment to 100%.
  • (Configurable) Reduces proc chain rate in proc chains initiated by an item (autoplay) to 50%.

How Do I Make My Mod Compatible?

Proc Solver uses a new "proc rate" parameter to control proc chains. If your proc chain item doesn't incorporate it, then it can potentially extend proc chains past when ProcSolver would have ended it. Here's how you can make it compatible:

Step 1: Add the ProcSolver DLL to your libs/references/dependencies

Step 2: Add this piece of code to somewhere in your project

public static float GetProcRate(DamageInfo damageInfo)
{
    if (damageInfo.procCoefficient <= 0 || !procSolverInstalled)
        return damageInfo.procCoefficient;

    return _GetProcRate(damageInfo);
}

[MethodImpl(MethodImplOptions.NoInlining | MethodImplOptions.NoOptimization)]
private static float _GetProcRate(DamageInfo damageInfo)
{
    return ProcSolverPlugin.GetProcRateMod(damageInfo);
}

Step 3: Any time you have a proc chain item, when rolling to proc, replace Util.CheckRoll(yourProcChance * damageInfo.procCoefficient, attackerMaster) with Util.CheckRoll(yourProcChance * GetProcRate(damageInfo), attackerMaster)

This will not affect your items' proc chances if ProcSolver is not installed!

Made by Orange and Kiwi. Thanks to mysticalchicken for help with the proc chain mask !

CHANGELOG

1.1.6

  • Optimized proc chain depth calculation
  • Updated dependencies
  • Updated default config values following ProcPatcher math changes
  • Updated compatibility information

1.1.5:

  • Updated for alloyed Collective
  • Compensates for SureProc in proc chain limit