Vasodilation
Spend stamina to resist Cold. Host-synced ratios for sprint, jump, climb, rope, and vine. Alpine walls skip. Emote warmth included. DanceTillYouDrop compatible.
By tony4twenty
| Date uploaded | 2 weeks ago |
| Version | 2.0.0 |
| Download link | tony4twenty-Vasodilation-2.0.0.zip |
| Downloads | 2279 |
| Dependency string | tony4twenty-Vasodilation-2.0.0 |
This mod requires the following mods to function
BepInEx-BepInExPack_PEAK
BepInEx pack for PEAK. Preconfigured and ready to use.
Preferred version: 5.4.75301README
π₯Ά Vasodilation
Keep moving to keep warm.
Spending stamina on movement resists Cold β same idea as a heat pack, just from staying active. It will not make you invincible; it buys you time. Only runs while you actually have Cold.
Not just the Alpines β even at night when Ascent 5 starts getting cold.
Find the mod in the Peak Modding Discord under #mod-releases to discuss issues, reports, or thanks.
π‘ What It Does
Cold removed uses a host-synced ratio per movement type:
- π Sprint
- π¦ Jump / SprintJump / ClimbJump
- πͺ’ RopeClimb (up only) and VineClimb (including Alpine). Hang, vine grab, and rope climb-down do not warm
- π§ WallClimb β hang, move, and re-grab except in Alpine
π Emotes do not use stamina, so they use a separate host rate: Dance, Crashout, Shimmy, Backflip, Wave, and Bully.
Infinite stamina (lollipops, etc.) does not warm you. Cheaper stamina (ice, tired climb, egg buffs, Tenderfoot) warms less; harder stamina (high Ascent) warms more.
π‘οΈ Host-Controlled Multiplayer
- β Host has mod β Clients with the mod get warmth using the hostβs config
- β Host doesnβt have mod β Nobody gets the effect (even if clients have it)
- π Host migration / late join β Config re-syncs automatically
- π Fair by design β No client-side advantage in lobbies where the host doesnβt have it
π€ Compatibility
- DanceTillYouDrop β optional. If that mod keeps you looping an allowed emote, Vasodilation keeps applying
EmoteColdPerSecondfor the whole loop.
βοΈ Configuration (BepInEx)
A config file is created on first run:
BepInEx/config/tony4twentys.Vasodilation.cfg
Warmth (host values sync to the room). Each is Cold per stamina spent (0.5 = half, 1 = 1:1) except emote, which is Cold per second.
Sprint = 0.5Jump = 0.25β standing jumpSprintJump = 0.25β jump while sprintingClimbJump = 0.25β wall sprint-boost (skipped in Alpine)WallClimb = 0.5β wall hang / move / re-grab (skipped in Alpine)RopeClimb = 1.0β climbing up a ropeVineClimb = 0.75β climbing a vineEmoteColdPerSecond = 0.01β Dance, Crashout, Shimmy, Backflip, Wave, Bully
General (host values sync to the room)
ColdGateOn = 0.025β Start warming once Cold is above thisColdGateOff = 0.0β Stop warming once Cold is at or below this
Debug (local only, not synced)
VerboseLogs = falseβ Log warmth about once per second per move. Leave off unless you are debugging
π¦ Installation
- Download the mod manually and extract the files
- Drop the
.dllinto your/PEAK/BepInEx/plugins/folder - Launch the game and the config will be generated automatically
π₯ Or use a mod manager π₯
π Credits
Author - mod created by tony4twenty
Check out my other PEAK mods
Stay fast. Stay warm. Stay alive.
CHANGELOG
Changelog
[2.0.0] - 2026-09-17
Rework for current PEAK. More ways to stay warm, stamina-based heat, and the same RaiseEvent host handshake as my other mods.
Warmth (was sprint-only in 1.2.2)
- Per-move host-synced ratios: Sprint
0.5, Jump / SprintJump / ClimbJump0.25, WallClimb0.5, RopeClimb1.0, VineClimb0.75 - Rope hang, vine hang, vine grab, and kicks do not warm
- Wall climbing warms the same way except in Alpine (cold surfaces)
- Infinite stamina / no real spend = no warmth
- Emotes are the only fake: host
EmoteColdPerSecond(default0.01) for Dance, Crashout, Shimmy, Backflip, Wave, and Bully - Works with DanceTillYouDrop β allowed emotes keep warming for as long as that mod keeps you emoting them
Multiplayer (replaced 1.2.2's PhotonCustomPropsUtils room property)
- Host handshake + config sync via Photon RaiseEvent 162 (
tony4twentys.Vasodilation) - No more
VASO_CFG_V1room CustomProperties and no PhotonCustomPropsUtils dependency - If the host does not have Vasodilation, clients stay cold (even if they have the mod)
- Host ratio / emote rate / gate values sync on join, late join, host migrate, and live config changes
- Solo / offline works without waiting on a room property
- Drops 1.x
ColdPerSecond/TickSecondsinstead of keeping dead config keys - Removed PhotoCustomPropsUtils dependency
[1.2.2] - 2025-09-16
- Readded PhotonCustomPropsUtils dependency to improve the host handshake and config sync
- Should also fix it not working in offline mode
[1.2.1] - 2025-08-24
- Removede the leftover PhotonCustomPropsUtils dependecy stuff I didnt remove before previous update -_-
[1.2.0] - 2025-08-24
- Host-authoritative behavior: effect only applies if the host has the mod; clients consume host ticks and settings.
- Config sync: host writes room property
VASO_CFG_V1(pipe-packed); clients adopt host config on join and when updated. - Networking: per-actor ticks sent via Photon RaiseEvent (no PhotonView required); prevents scene-load hangs.
- Reliability: broadcast ticks β clients gate locally (must be sprinting &
Cold > gateOff); hysteresis reduces flicker. - Compatibility: explicit
IInRoomCallbacks/IMatchmakingCallbacks/IOnEventCallbackimplementations for PEAKβs PUN signatures; handles host migration (re-publishes config and restarts loop). - Debugging: new config
Debug.VerboseLogswith detailed join, publish/receive, and tick apply/skip messages. - Fixes: resolved client not receiving effects under host configs; removed ambiguous
Hashtableusage and invalid PhotonView IDs.
[1.1.0] - 2025-08-12
- Checks if player has cold affliction before activating, removing unwanted VFX/SFX anytime the player runs
[1.0.0] - 2025-08-06
- Initial release.