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
BepInEx pack for Mono Unity games. Preconfigured and ready to use.
Preferred version: 5.4.2305Cray-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.0README
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 (default22, valid15–30).Projectile.UpwardArcDegrees— pitch the launch direction up by this much so the cart travels a recognisable arc instead of a flat shot (default12).
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
F7while 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.SBGItemFrameworkItemKit/RegisteredItemAPI instead of this mod's own reflection-based injection. Requires the newCray-SBGItemFrameworkdependency. - Fix compatibility with the July 2026 Super Battle Golf engine update:
PlayerInventory.RemoveIfOutOfUsesgained a requireddueToFinishedItemUsebool param.PlayerInventory.GetFirearmAimPointgained two leadingVector3params (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
WheelColliderfor 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 aLocalizedStringpostfix that rewrites anyITEM_1002fallback string and aHotkeyUi.SetNameprefix that swaps the hotkey-bar label when the local player has a Cart Launcher equipped (vanilla would show "Rocket Launcher" because of theGetEffectivelyEquippedItemremap). - Tint the in-hand model so it's visually distinct from the vanilla rocket launcher. A
per-frame service applies a
MaterialPropertyBlockto 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.GetItemAtIndexprefix 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 inallItemDataand only claims its own slot. Was causing PauseMenu.Awake to throwIndexOutOfRangeException, which half-initialised the menu and broke Esc.
v0.2.0
- Fix the projectile cart being placed instead of launched. The vanilla
GolfCartMovement.SetAllWheelBrakeTorquewas 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'sbrakeTorqueto 0 for the cart's first 2.5 s post-launch so the assignedlinearVelocityactually 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.ProjectileWindowSecondsexposes 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.