You are viewing a potentially older version of this package. View all versions.
Cray-NowWatchThisDrive-0.4.0 icon

NowWatchThisDrive

Replaces the nice-shot announcer line with the now-watch-this-drive clip on a 100% charged swing.

Date uploaded a month ago
Version 0.4.0
Download link Cray-NowWatchThisDrive-0.4.0.zip
Downloads 622
Dependency string Cray-NowWatchThisDrive-0.4.0

This mod requires the following mods to function

BepInEx-BepInExPack-5.4.2305 icon
BepInEx-BepInExPack

BepInEx pack for Mono Unity games. Preconfigured and ready to use.

Preferred version: 5.4.2305

README

NowWatchThisDrive

Replaces the announcer's "nice shot" audio with the classic "now watch this drive" clip whenever you pull off a 100%-charged swing. In multiplayer, if other players in the match also have the mod installed, the clip is replicated to every client and played from the swinger's world position.

Install

Via r2modman or Thunderstore Mod Manager — search for Cray-NowWatchThisDrive and install.

Manual install: drop both files into <r2modman profile>/BepInEx/plugins/Cray-NowWatchThisDrive/:

  • NowWatchThisDrive.dll
  • NowWatchThisDrive.wav

Requires BepInExPack 5.4.2305.

How it works

Super Battle Golf has Unity's native audio disabled and routes everything through FMOD. The mod preloads the bundled WAV through FMODUnity.RuntimeManager.CoreSystem.createSound, then Harmony-prefixes CourseManager.PlayAnnouncerLineLocalOnly — when the announcer would play NiceShot, we play the override clip instead and skip the vanilla FMOD event. Every other announcer line (hole-in-one, overtime, …) is untouched.

In multiplayer, the mod does not send any custom network messages. Instead, it follows the game's existing replicated SwingNiceShot VFX event and plays the clip as 3D FMOD audio from that position on each modded client. Players without the mod keep vanilla behavior and are not affected.

Building from source

Requirements: .NET SDK 7.0+, a Super Battle Golf install (Steam default path is auto-detected).

git clone https://github.com/Calen-Ray/SBG-now-watch-this-drive.git
cd SBG-now-watch-this-drive
dotnet build -c Release

Override the game path or r2modman profile by copying Developer.props.example to Developer.props and editing.

Swapping the audio clip

Source WAV is Audio/NowWatchThisDrive.wav (16-bit PCM, 44.1 kHz stereo). Replace the file and rebuild. If starting from an mp3/ogg, convert first:

ffmpeg -y -i source.mp3 -acodec pcm_s16le -ar 44100 -ac 2 Audio/NowWatchThisDrive.wav

Packaging for Thunderstore

pwsh tools/package.ps1

Produces artifacts/Cray-NowWatchThisDrive-<version>.zip ready to upload.

Releasing

Automated via .github/workflows/release.yml — publishing a GitHub Release uploads the attached zip to Thunderstore.

One-time setup. Add a THUNDERSTORE_TOKEN repository secret (Settings -> Secrets and variables -> Actions). The token comes from thunderstore.io/settings/teams/ under the Cray team.

Cut a release:

# 1. Bump version_number in manifest.json and add a CHANGELOG.md entry.
# 2. Commit + tag + push.
git commit -am "Release v0.3.0"
git tag v0.3.0
git push --follow-tags

# 3. Build the zip locally (CI can't build — hosted runners don't have the game DLLs).
pwsh tools/package.ps1

# 4. Create the GitHub Release with the zip attached; the workflow publishes on release.published.
gh release create v0.3.0 artifacts/Cray-*-*.zip --notes-file CHANGELOG.md

Credits

License

MIT — see LICENSE.

CHANGELOG

Changelog

v0.4.0

  • Swinger now hears their own clip as full-quality 2D audio (no positional attenuation), restoring pre-3D playback feel.
  • Other players in a multiplayer lobby still hear the clip as 3D audio positioned at the swinger's hit point.
  • Tightened 3D rolloff range (8m–60m linear) so distance cues are audibly distinct rather than collapsing to L/R panning only.

v0.3.2

  • Added verbose diagnostic logging around the NiceShot announcer intercept, SwingNiceShot VFX hook, and each FMOD playback step to isolate freezes during trigger-time audio execution.

v0.3.1

  • Removed the custom Mirror audio replication messages that could disconnect clients without the mod.
  • Drive clip playback now follows the game's existing replicated SwingNiceShot VFX event instead.

v0.3.0

  • Replicate perfect-swing clip playback to all modded clients in a match via Mirror.
  • Play the clip as 3D FMOD audio from the emitting golfer's position instead of only locally.

v0.2.1

  • New icon / cover art by MultipleBees. Original high-res art kept in cover-art/.
  • Added .github/workflows/release.yml so publishing a GitHub Release auto-uploads the zip to Thunderstore.

v0.2.0

  • Updated bundled audio clip.
  • Route audio playback through FMOD (Unity's native audio is disabled in the game build).
  • Reference assets deploy alongside the DLL in the Thunderstore package layout.

v0.1.0

  • Initial release.
  • Intercepts CourseManager.PlayAnnouncerLineLocalOnly(NiceShot) and plays the override clip.