
CustomRunEx
Extends the Custom Run feature with additional options and features.CustomRunEx
CustomRunEx extends PEAK's Custom Run options with access to hidden settings, optional difficulty selection, optional progression, and an in-run shortcut to the options window. Run settings remain host-controlled in multiplayer.
Features
- Show the original hidden Custom Run setting (
TimeScale) withShowHiddenSettings. - Optionally show a difficulty dropdown in the Custom Options header. The host can choose Tenderfoot or an unlocked ascent level at the airport without changing RunSettings values; during a run, the dropdown only shows the current level. The selected level is retained when starting.
- Open or close Custom Options with a configurable key while at the airport or during a Custom Run. Non-host players can view the options, but only the host can change RunSettings.
- Optionally earn achievements, accumulate statistics, and unlock ascent levels in Custom Runs with
AllowProgressionInCustomRun, disabled by default. When enabled, successful summits also count towardTimesPeaked.
Configuration
The config file is generated by BepInEx after the mod first loads. General/Enable defaults to on. All RunOptions switches, including AllowProgressionInCustomRun, default to off.
| Section / key | Default | Effect |
|---|---|---|
General/Enable |
true |
Enable CustomRunEx features. |
RunOptions/ShowHiddenSettings |
false |
Show the original hidden TimeScale option in Custom Options. |
RunOptions/ShowDifficultyDropdown |
false |
Show the difficulty dropdown, let the host choose an unlocked starting level at the airport without changing RunSettings values, and retain the selected level when starting. The dropdown is read-only during a run. |
RunOptions/AllowProgressionInCustomRun |
false |
Allow the local player to earn achievements, accumulate statistics (including TimesPeaked), and unlock ascent levels in Custom Runs. |
Keybinds/Show Custom Run Window Key |
F12 |
Open or close Custom Options at the airport or during a Custom Run. |
Changes to Enable and the RunOptions switches are applied when Custom Options is next opened, not while that window stays open. Enable, ShowDifficultyDropdown, and AllowProgressionInCustomRun also get an initial snapshot when the mod loads. The keybind is read when a key is pressed. Older configuration key names are not migrated or read.
The progression setting applies to each player's own account. Each player who wants this feature needs the mod installed and configured locally; the host's configuration is not synchronized. Achievement conditions, Steam availability checks, and the original local-player win event still determine whether progress is recorded. General/Enable=false or AllowProgressionInCustomRun=false restores the original Custom Run progression restrictions.
Allowing progression also restores the original ascent-completion progression: completing a Custom Run at a retained ascent level can increase MaxAscent and unlock the next level.
Difficulty selection behavior
With ShowDifficultyDropdown enabled, entering Custom Run retains the host's selected boarding-pass level. The host can then change the level in the Custom Options header at the airport, choosing Tenderfoot or an unlocked ascent from 0 to 8. The boarding-pass increment/decrement buttons remain disabled in Custom Run. Entering Custom Run, enabling the selector, and changing its selection do not apply any settings preset: the selected ascent and RunSettings option values are independent.
Reopening the options window or pressing Start also preserves the current option values. Restore Defaults explicitly resets options as in PEAK without changing the selected level. PEAK still has rules that directly inspect the ascent level: for example, ascent 1+ forces its original fall-damage behavior, and Tenderfoot prevents zombie spawning even if the corresponding Custom Option is changed. This feature does not override those rules.
Only the host can start a Custom Run with a preserved ascent level. At the airport, non-host players see a disabled "Host chooses" placeholder; the host's pending selection is not synchronized or transferred on host migration. During a run, all players' dropdowns show the actual ascent and cannot change it. RunSettings and the starting ascent use PEAK's existing multiplayer synchronization; there is no separate CustomRunEx mode state. A non-host starting Custom Run follows the original game behavior.
True Final Ascent compatibility
With TFA installed and ShowDifficultyDropdown enabled, the selector also works in TFA's Custom Climb editor opened with its pencil button. It uses TFA's own difficulty selection, titles, and full available ladder, including installed ascent extensions, rather than the vanilla unlock limit. F12 alone does not enter this TFA editing context.
Selecting a level preserves TFA's mode marker and custom-climb selection without changing RunSettings. When starting, the compatibility patch replaces TFA's fixed custom-climb grade 0 with the selected level; TFA still handles map creation, room properties, start synchronization, and restoration. With the feature disabled, TFA retains its original grade-0 behavior. TFA's Mini Run lock is preserved when CustomRunEx refreshes the options.
TFA remains optional. The adapter checks the required members and the custom-climb launch IL before enabling compatibility; an unsupported implementation is reported in the BepInEx log. The contract was checked against TFA 3.0.3. Ordinary TFA climbs and daily climbs keep their original start behavior, and the selector remains read-only during a run.
Upgrading to 0.3.0
ShowDifficultyDropdown replaces UseSelectedAscentInCustomRun and defaults to off. The old value is not migrated; enable the new key to use the selector and retain the starting ascent. Disabling the feature does not undo existing option changes or change the ascent of an ongoing run.
Automatic ascent-based option presets have been removed. Previously applied or saved option values are retained; adjust them manually or use Restore Defaults if needed.
The natural-item list extension, pagination, hidden-variant labels, and natural-spawn filtering have been removed. CustomRunEx now leaves the item list and item spawning to PEAK. The old natural-item configuration entry is no longer read; existing RunSettings values are not cleared.