All tuning parameters for the pass power mod live in theDocumentation Index
Fetch the complete documentation index at: https://mintlify.com/angelballay/pes6_game_physics_mod/llms.txt
Use this file to discover all available pages before exploring further.
PassPowerConfig struct defined in PassPowerConfig.h and fully initialized in PassPowerConfig.cpp. The single global instance, g_passConfig, is read at runtime by every path inside CalculateModifiedEDI. Because the struct is a plain C aggregate, changing any value and recompiling immediately alters in-game behavior without touching hook, context, or geometry code.
ModState.cpp also patches the ball’s physics mass at address BALL_MASS_ADDRESS = 0x00B8AE70. When the mod is enabled the mass is written as 198.0f; when disabled it reverts to 188.0f. This affects how the game’s integrator naturally resolves ball velocity and is independent of the EDI boost calculation.Default Initialization
The completeg_passConfig initializer from PassPowerConfig.cpp:
Field Reference
Inertia — BallInertiaConfig inertia
These three thresholds define how ball+0x50 (the ball’s current power at hook time) is bucketed into one of five BallInertiaBand values. Every boost lookup table is indexed by that band.
Ball power values from 1 up to and including 2500 are classified as
BALL_VERY_LOW. A ball with minimal rolling momentum — nearly dead — falls into this band. Boost tables give this band the highest extra boost to compensate for poor energy transfer.Ball power values from 2501 up to and including 5000 are classified as
BALL_LOW_MID. This represents a lightly carried ball — a player controlling a slow-rolling pass.Ball power values from 5001 up to and including 7250 are classified as
BALL_CARRY. Values above 7250 are classified as BALL_HIGH. The CARRY band represents a moderately energetic ball arriving from a short pass; HIGH represents a fast-moving ball from a long pass or shot rebound.EDI Thresholds
Pass EDI values strictly below this threshold enter the LOW boost path, receiving
baseLowBoost plus the lowBoostTable extra. Values at or above this threshold but below ediThresholdIgnore enter the MID boost path.Pass EDI values at or above this threshold are returned entirely unmodified. The mod never strengthens a pass that the game already considers powerful. The no-context path also exits early at this value.
Hard safety ceiling applied as the very last step. If any combination of boosts pushes EDI above this value, it is clamped here and
boostMode is set to 0x99 in the debug state. This prevents the mod from accidentally producing super-powered passes.Base Boosts
Flat amount added to every pass that enters the LOW boost path (EDI <
ediThresholdLow), before the distance/inertia table extra is applied. Think of this as the unconditional floor lift for underpowered passes.Flat amount added to every pass that enters the MID boost path (
ediThresholdLow ≤ EDI < ediThresholdIgnore). Smaller than baseLowBoost because mid-range passes need less correction.No-Context Boosts
These fields govern what happens when a new pass context did not arrive with this hook invocation (i.e.,g_lastPowerHadNewCtx == 0). Without passer/receiver context, distance tables cannot be used.
Per-inertia-band boost applied when EDI <
ediThresholdLow and no new pass context is available. Array index matches BallInertiaBand: [ZERO, VERY_LOW, LOW_MID, CARRY, HIGH]. BALL_VERY_LOW (index 1) receives the largest no-context boost (0x0600) because the ball barely contributes energy.Flat boost added on the no-context MID path (EDI ≥
ediThresholdLow). Not band-indexed; the boost is identical regardless of ball inertia.After the no-context boost is applied, the result is clamped to this value. A pass whose original EDI already exceeded this cap is left untouched — the mod never reduces pass power.
Low-Pass Rescue
Applied when a long-distance pass arrives with very low EDI, indicating the game has under-powered it.Pass EDI must be strictly below this value to qualify for the long-distance rescue. Passes with EDI already near 0x5800 don’t need a rescue.
Minimum
distSimple value required for rescue. Only passes at distance bracket 5 or higher get this extra boost on top of the normal table extra.Additional boost added when the rescue fires and the ball band is
BALL_HIGH. A high-inertia ball transfers more energy on a long kick, warranting a larger correction.Additional boost added when the rescue fires and the ball band is anything other than
BALL_HIGH.Short-Pass Rescue
A second, tighter rescue window for short-to-medium passes that still land with too little power.Pass EDI must be strictly below this value for the short rescue to fire. The threshold is lower than
rescueLowEdiThreshold — only genuinely weak short passes qualify.Minimum
distSimple for the short rescue. Very short passes (0–2) are excluded.Maximum
distSimple for the short rescue. Passes at distance 5 or above are handled by the long rescue instead.Extra boost for
BALL_HIGH on a qualifying short rescue pass.Extra boost for all other inertia bands on a qualifying short rescue pass.
Soft Floors
Soft floors nudge EDI halfway toward a target rather than forcing it directly, preserving variation while guaranteeing a minimum feel.Soft-floor target applied after the long rescue fires for
distSimple 5–6. If EDI is still below this value after the boost, it is moved to edi + (target - edi) / 2.Soft-floor target for
distSimple 7 and above after the long rescue fires. Higher than the 5–6 floor because very long passes merit stronger guarantees.Soft-floor target applied after the short rescue fires for
distSimple 3–4.Awkward Long Rescue
Handles passes where the ball is moving away from the direction of the pass (dot product strongly negative) at medium-to-long distance.Original EDI must be strictly below this value for the awkward-long rescue to activate.
Minimum
distSimple required. Short passes with an awkward ball angle are handled by the awkward-short rescue instead.The geometry dot product (ball direction · pass direction) must be ≤ this value. A dot of -0.35 means the ball is moving at more than 110° away from the pass target, confirming a genuinely difficult ball situation.
Flat extra boost added when the awkward-long rescue fires, before the soft floor is applied.
Soft-floor target applied after
awkwardLongExtra. Nudges EDI toward this value without hard-clamping it.Awkward Short Rescue
Handles short-to-medium passes with a very negative dot product — the ball is nearly opposing the kick direction.Original EDI must be strictly below this value for the awkward-short rescue to activate.
Minimum
distSimple for this rescue path.Maximum
distSimple for this rescue path. Distance 5+ falls under the awkward-long path.Stricter dot threshold than the long rescue. The ball must be moving at more than ~138° away from the pass direction to qualify. This prevents the rescue from firing on merely slightly misaligned passes.
Flat extra boost added when the awkward-short rescue fires.
Soft-floor target for the standard awkward-short case (geometric pass distance below
awkwardShortRealLongPassDistMin).Hard cap applied after the awkward-short boost and soft floor. EDI will not exceed this value from this rescue path. Re-applied after
ApplyDistance3To6FineTune to prevent the fine-tune from overriding the cap.If the geometric pass distance (
geomPassDist) is at or above this value while distSimple is still 3–4, the rescue switches to the “real long” variant with a higher floor and cap.Soft-floor target used when the awkward-short rescue identifies a geometrically long pass misclassified as short.
Hard cap for the real-long variant of the awkward-short rescue.
Real Distance Underestimate Rescue
Applied last in the main boost sequence to correct cases wheredistSimple (the game’s discrete distance) is too low relative to the actual geometric distance of the pass.
When
distSimple is 3–4, geomPassDist must be at or above this value for the rescue to fire. Prevents corrections on truly short passes that merely happen to share the same discrete bracket.Soft-floor target for the dist 3–4 underestimate case.
Hard cap for the dist 3–4 underestimate rescue. EDI will not exceed this value from this path.
When
distSimple is exactly 5, geomPassDist must be at or above this value.Soft-floor target for the dist-5 underestimate case.
Hard cap for the dist-5 underestimate rescue.
Small flat boost added before the soft floor in the underestimate rescue. Kept intentionally modest to avoid disrupting the existing balance and is applied uniformly across both the dist 3–4 and dist-5 cases.