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

GolfCartLauncher

New runtime item: a launcher cloned from the rocket launcher that fires a fully-drivable golf cart as the projectile.

Date uploaded a day ago
Version 0.4.0
Download link Cray-GolfCartLauncher-0.4.0.zip
Downloads 13
Dependency string Cray-GolfCartLauncher-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
Cray-SBGItemFramework-0.1.0 icon
Cray-SBGItemFramework

Shared backbone for custom item mods. Register an ItemType and a use-handler; it owns the Harmony plumbing for inventory injection, localized names, hotkey labels, tooltips, and pool-spawn injection. Required by dependent mods.

Preferred version: 0.1.0

README

GolfCartLauncher

Adds a new inventory item — a launcher cloned from the rocket launcher — that fires a fully-drivable golf cart as its projectile. Aiming and the in-hand visual carry over from the rocket launcher; on use, instead of spawning a homing rocket, the server instantiates the vanilla golf cart prefab at the barrel position with a forward velocity of around 15 – 30 mph. Single shot, item disappears from the inventory like other vanilla one-use items.

Configuration

BepInEx/config/sbg.golfcartlauncher.cfg:

  • Projectile.LaunchSpeedMph — projectile launch speed (default 22, valid 1530).
  • Projectile.UpwardArcDegrees — pitch the launch direction up by this much so the cart travels a recognisable arc instead of a flat shot (default 12).

Limitations / known gaps in v0.1

  • Spawn rate of the launcher in match item pools is 0% by default — pick it up via debug hotkey F7 while testing, or add it through the BallSaboteur-style item-grant flow.
  • The cart projectile retains all vanilla cart behavior (drivable, can be entered) — it's not a stripped projectile shell. The user who fires it is not automatically seated in the cart.
  • Multiplayer: every player in the lobby needs the mod for synced spawns. Vanilla peers won't see the projectile and may experience a desync.

Build / deploy / release

dotnet build -c Release
pwsh tools/package.ps1
gh release create vX.Y.Z artifacts/Cray-GolfCartLauncher-<ver>.zip --notes-file CHANGELOG.md

CHANGELOG

Changelog

v0.4.0

  • Migrate custom item registration onto the shared Cray.SBGItemFramework ItemKit/RegisteredItem API instead of this mod's own reflection-based injection. Requires the new Cray-SBGItemFramework dependency.
  • Fix compatibility with the July 2026 Super Battle Golf engine update:
    • PlayerInventory.RemoveIfOutOfUses gained a required dueToFinishedItemUse bool param.
    • PlayerInventory.GetFirearmAimPoint gained two leading Vector3 params (worldBackmostPoint, barrelForward), restoring raycast-based aim instead of the naive fallback.
  • First public release: this repo's initial commit only ever contained a placeholder README; the mod source itself was never previously committed or published.

v0.3.0

  • Cart now actually arcs when launched. Previously the wheel suspension/grip pinned it to the ground within frames even with brake torque suppressed. The projectile flow now also disables every WheelCollider for the configured projectile window so the cart follows pure ballistic motion, then re-enables the wheels when the window expires for a normal on-landing skid. Default speed bumped 30 → 40 mph; default arc 12° → 30°; spawn raised 0.6 m above the barrel so the cart doesn't intersect the launching player on tee-off.
  • Register a real localization entry Data/ITEM_1002 = "Cart Launcher" (BallSaboteur pattern) so the in-game name reads correctly. Adds a LocalizedString postfix that rewrites any ITEM_1002 fallback string and a HotkeyUi.SetName prefix that swaps the hotkey-bar label when the local player has a Cart Launcher equipped (vanilla would show "Rocket Launcher" because of the GetEffectivelyEquippedItem remap).
  • Tint the in-hand model so it's visually distinct from the vanilla rocket launcher. A per-frame service applies a MaterialPropertyBlock to the right-hand equipment while our item is equipped and clears the override the moment the player switches to anything else, so the equipment-pool prefab isn't permanently polluted.

v0.2.1

  • Make the ItemCollection.GetItemAtIndex prefix multi-mod-aware so the pause-menu probability grid no longer crashes when both this mod and BallSaboteur are loaded. Each mod now resolves its synthetic index against the sorted list of all custom (>=1000) ItemTypes in allItemData and only claims its own slot. Was causing PauseMenu.Awake to throw IndexOutOfRangeException, which half-initialised the menu and broke Esc.

v0.2.0

  • Fix the projectile cart being placed instead of launched. The vanilla GolfCartMovement.SetAllWheelBrakeTorque was clamping the cart to a halt within a metre of spawn at 200-500 Nm of remapped driverless brake torque. Added a Harmony prefix that forces every wheel's brakeTorque to 0 for the cart's first 2.5 s post-launch so the assigned linearVelocity actually carries it. Default launch speed bumped 22 → 30 mph (target 20-30 m flat-ground travel before the brake kicks back in to bring it to rest).
  • New config Projectile.ProjectileWindowSeconds exposes the brake-suppression window.

v0.1.0

  • Initial prototype. Runtime ItemType cloned from RocketLauncher with the rocket launcher's in-hand visual + aim. On use the server instantiates a golf cart prefab at the barrel position with a configurable forward + upward velocity.
  • Single-shot consumption: decrements the slot and removes the item from inventory.
  • Spawn rate is 0% by default; pick the item up via the F7 debug hotkey.