Gamble With Your Friends
You are viewing a potentially older version of this package. View Latest Version
Install

Details

Date Uploaded
2 weeks ago
Downloads
1.6K
Size
14KB
Dependency string
Vapu-VapuFastpit-1.0.1

VapuFastpit

A BepInEx mod for Gamble With Your Friends that removes the parts of the day-transition flow you have to sit through without actually adding any gameplay — while keeping the screens you genuinely want to see (DaySummary, GameOver) intact.

What it skips

  • Pit stop / leave-casino countdown. The end-of-day trigger zone at the casino exit normally counts down for several seconds once all players are inside. This mod reduces that countdown to a fraction of a second and lets it fire as soon as one player is in the zone, so AFK or stuck teammates can't stall the day.
  • Lose-scene pit jump. When you lose, the game loads LoseStateScene which contains an actual pit you have to walk to and drop into before the GameOver screen appears. This mod automatically triggers the same SceneSwitcher the pit would have triggered, so the GameOver flow starts on its own.
  • GameOver result roll. The GameOver UI normally animates each line (title, day reached, per-player contributions, totals, ticket balance) with delays between segments. This mod feeds skip requests into the UI's own per-segment skip system so each phase completes instantly while still firing the callbacks that set the final values — you see the full result screen, just without the long buildup.

What it does NOT touch

  • Mirror.NetworkManager.ServerChangeScene — scene transitions are unmodified, LoseStateScene still loads on a loss.
  • SkipUI.SetSkippableForLocal — the DaySummary skip vote is not auto-cast, so the day-end summary screen behaves exactly as in vanilla.
  • DaySummaryUI and GameManager.ShowDayStats() — the between-day summary is shown in full.
  • EndingCutscene_Coinflip_Won, EndingCutscene_Coinflip_Lost, EndingCutscene_Debt_Paid — endgame cutscenes are unmodified.
  • FollowUsSceneManager — the post-credits scene is unmodified.

Configuration

Settings are written to BepInEx/config/vapu.fastpit.cfg on first run.

Section Key Default Description
Pit Stop CountdownSeconds 0.2 Replacement for AllPlayersTriggerZone.delayBeforeEvent. 0 makes the trigger fire instantly.
Pit Stop TriggerOnAnyPlayerInZone true If true, the zone fires when at least one player is inside instead of requiring all of them.
GameOver AutoSkipAnimation true If true, GameOverUI's animated phases auto-complete via its own skip mechanism.
GameOver AutoJumpInPit true If true, the host server auto-invokes the LoseStateScene SceneSwitcher on scene load, so nobody has to physically jump in the pit. Host-only effect.
GameOver AutoJumpDelaySeconds 1.5 Seconds to wait after LoseStateScene loads before auto-triggering the SceneSwitcher. Gives LoseInitializeRoutine and player spawn time to settle.

Multiplayer

  • The pit-stop countdown patch runs on the host (the trigger zone's logic only executes server-side after OnStartClient).
  • The auto-jump-in-pit patch is gated by NetworkServer.active, so only the host invokes it. Clients without the mod still see the result because the host calls GameManager.ShowGameOverStats()RpcPlayGameOverFeedbackGameOverUI.Show() on every client.
  • The GameOver animation skip is local to each client. Install the mod on every machine that should see the fast version.

Requirements

  • Gamble With Your Friends (Steam, Unity 6000.x, Mirror Networking)
  • BepInEx 5.4.x (BepInExPack)

Compatibility

Verified against Steam build 24474336 (app 3892270). Every hook the mod uses was re-checked against that build: the three patch targets still exist with the same signatures, all reflected private members (_pendingSegmentSkips, delayBeforeEvent, colliderCheckInterval, checkCollider, _countdownRoutine, _hasTriggered, _lastCheckTime) resolve, AllPlayersTriggerZone.CheckPlayers is unchanged from what the prefix replaces, GameOverUI still drives its animation through WaitForSecondsOrSkip / ConsumeSkipRequest, and SceneSwitcher still routes Lose into ShowGameOverStats().

Installation

Thunderstore Mod Manager / r2modman

Use Import local mod in the manager and select the release zip.

Manual

Drop VapuFastpit.dll into …/BepInEx/plugins/VapuFastpit/.

Build from source

dotnet build -c Release

The project targets netstandard2.1. It references the BepInEx core DLLs and the game's Assembly-CSharp.dll / Mirror.dll / UnityEngine.*.dll — adjust the BepInExCore and GameManaged paths in VapuFastpit.csproj to match your install.

How it works internally

Hook Type Effect
AllPlayersTriggerZone.OnStartClient Postfix Writes delayBeforeEvent and tightens colliderCheckInterval on every instance of the trigger zone as it comes online.
AllPlayersTriggerZone.CheckPlayers Prefix (replaces) Skips the "all players inside" requirement and starts the countdown as soon as one player is in the bounds.
GameOverUI.Show Postfix Starts a coroutine that keeps _pendingSegmentSkips topped up, so each WaitForSecondsOrSkip call consumes a skip and fires its end-state callback immediately.
SceneManager.sceneLoaded (event) When LoseStateScene loads on the host, waits AutoJumpDelaySeconds, finds the scene's SceneSwitcher and calls ServerProgressSceneWithoutInteraction(). With GameManager.state == Lose (2) it routes into ShowGameOverStats().

Changelog

1.0.1

  • Compatibility pass for the July 2026 game update (Steam build 24474336). No behaviour changes — every patch target, reflected field and vanilla code path the mod depends on was re-verified against the new Assembly-CSharp.dll.

1.0.0

  • Initial release.

License

MIT.

Thunderstore development is made possible with ads. Please consider making an exception to your adblock.