STIXSWORLDHD Bugfix Suite

03 Step Three

Tune the Suite

One config file. Every movement parameter the controller exposes.

Out of the box the suite already fixes ramps — you don’t have to touch a thing. But if you want to, every movement, slope, dash, roll, bounce, gravity and ground parameter the controller exposes is yours to tune, all from one config file. No GUI, no overlay, no console commands — by design.

One .cfg file 18 sections Every option has a min .. max range Live re-apply (~1s)

Where it lives

One file, written for you

The plugin writes its config on first launch (see Step 02), then you edit it in any text editor. You’ll find it beside BepInEx.cfg:

config file location
…\PAC-MAN WORLD Re-PAC\BepInEx\config\com.stixsworldhd.pacmanworldrepac.ungodlybugfix.cfg
BepInEx\config\The BepInEx config folder showing BepInEx.cfg and the plugin config com.stixsworldhd.pacmanworldrepac.ungodlybugfix.cfg at around 32 KB.
The file you edit — com.stixsworldhd.pacmanworldrepac.ungodlybugfix.cfg. Click to view full size.

Don’t hand-create it — let it generate

Launch the game once first. The plugin fills the file with every option, its default, and its allowed min .. max range already written in as comments. Then edit. Saving while the game is running re-applies your changes within about a second.

The mental model

How overrides and multipliers combine

Almost every raw tuning field works as a pair: an Override_* on/off switch and a matching *_Value number. The rule for the final value the game actually uses is just:

the one rule that governs every field
final value = (Override ? your_value : game_original) × category_multiplier

Tune the right numbers

Capture the baseline first

The numeric default printed next to each *_Value is a sensible starting point — not necessarily the game’s own value, because the real values live in the game data, not the code. So on the very first frame Pac-Man’s controller loads, the plugin dumps the game’s true original value for every field it can touch to the log. Read those before you override anything.

1

Launch once and open the log

Start the game, then open the BepInEx log and search for the baseline block:

BepInEx\LogOutput.log — search for this
CAPTURED GAME BASELINE

(This dump is controlled by LogCapturedBaseline in Section 00, on by default.)

2

Note the real value you want to change

The block lists each field name with the controller’s actual starting number — the ground truth to tune against instead of guessing.

3

Flip the override and set your number

In the .cfg, set that field’s Override_* to true and put your desired number in the matching *_Value line:

example — a single field, switched on
Override_DashSpeed = true
DashSpeed_Value    = 28.0
4

Save — it re-applies on its own

Save the file. Changes are picked up automatically within about a second (the interval is WatchdogIntervalSeconds in Section 00), and again on every level load. No restart needed.

The whole surface

Every section at a glance

Eighteen numbered sections, 0017. The colour of the number tells you what kind of section it is:

Yellow — a ramp fix, on by default Cyan — an opt-in helper, off by default Blue — a raw override group, off by default
00

Core — master, logging, baseline, timing

MasterEnable, log verbosity, the LogCapturedBaseline dump, and WatchdogIntervalSeconds (how often saved edits are re-applied). MasterEnable = false makes the plugin completely dormant.

01

Rev-roll-up-ramp fix master + ramp window fix

The on/off switch for the whole ramp fix, plus what counts as a ramp — the angle window (e.g. RampMaxAngle) the other fixes operate inside.

02

Up-ramp momentum fix

Kills the momentum bleed that slows you to a crawl going up: speed retention, a per-degree boost that grows with steepness, hard caps so steep faces never fling you, and CompensateHorizontalProgress to make ramps feel as fast as flat ground.

03

Uphill speed floor fix

A minimum along-the-surface speed while climbing, relative to your learned flat-ground speed. Set MinUphillSpeedFraction = 1.0 to never lose any speed uphill at all.

04

Anti wall-misdetection fix

Stops the roll dying dead on the ramp. When you’re genuinely climbing within the allowed angle (AntiWallMaxAngle), the false “wall” hit is cleared and your forward push restored.

05

Anti-bounce fix

Stops the ping backwards down the slope. The “Bound” reaction that fires on ramps as if you hit a wall has its energy re-aimed up the ramp instead (AntiBounceMaxAngle).

06

Slope stick / anti-launch fix

Stops you rocketing off the crest. A configurable “slope stick” gently keeps you hugging the surface as retained speed carries you over the top.

07

Expanded roll-slope window opt-in

Lets the Rev-Roll engage across a wider band of slope angles than vanilla allows — for stubborn, awkward geometry. Off by default.

08

Dynamic dash thresholds opt-in

While you’re on a ramp, the dash’s internal bounce / continue / brake angle thresholds are temporarily relaxed, then snapped back the instant you’re off it. Off by default.

09

Slope angle overrides

Raw control of the controller’s slope angles: scFootSlopeDeg, scSlopeDeg, scRollDeg, scRollDegPower, scCeilDeg.

10

Dash / Rev-Roll speed overrides

Dash and Rev-Roll speeds — normal and Metal Pac-Man, plus the fast and minimum speed values.

11

Dash timing & charge overrides

The charge, hold, continue and brake angles and times that shape how a dash builds and releases.

12

Roll overrides

Roll speeds (normal + Metal), the rolling angle, and the margin / brake times.

13

Bound (bounce) overrides

The raw bounce reaction: force, time, and angle threshold.

14

Gravity overrides

Vertical gravity for normal, Metal, and in-water states.

15

Ground-detection overrides

Ground ray distance and radius, slope-down and air-roll frame counts, and the ground-Y tolerance — the low-level “am I on the ground?” tuning.

16

Run & walk speed overrides

Ordinary run and walk speeds — normal and Metal Pac-Man.

17

Global multipliers

The four top-level scalars applied to everything: DashSpeedMultiplier, RollSpeedMultiplier, RunWalkSpeedMultiplier, GravityScale. All default to 1.0.

Every individual option also carries its own full description and min .. max range inside the .cfg itself — open it in any text editor and read as you go.

Copy/paste intentions

A few tuning recipes

“Just make ramps feel right”

Do nothing. The defaults already fix it — this is the whole point of the suite.

“Never lose speed uphill”

Section 03: set MinUphillSpeedFraction = 1.0.

“Ramps as fast as flat ground”

Section 02: set CompensateHorizontalProgress = true.

“Conquer steeper ramps than vanilla”

Raise RampMaxAngle (Section 01) plus AntiWallMaxAngle / AntiBounceMaxAngle, and consider the Section 07 expanded roll window.

“Faster dashes everywhere”

Section 17: set DashSpeedMultiplier = 1.5.

“Heavier, snappier landings”

Section 17: set GravityScale = 1.3.

Always reversible

Flip any Override_* back to false (or set MasterEnable = false) and the game returns to its own values. Nothing you change here is permanent.