Super Battle Golf
Install with App

Details

Latest version
1.0.2
Last Updated
First Uploaded
Downloads
23
Likes
0
Size
42KB
Dependants

MorePlayersPlus

Lets a lobby hold more than 16 players, and keeps the parts of the game that assume 16 usable at larger sizes.

Heads up: Super Battle Golf was built for 16 players. Past about 32 the game gets noticeably laggy and less stable, and that is the game's networking, not this mod. The default limit is 32 for that reason.

What it does

  • Raises the player limit. The lobby slider and the server cap go up to the value you set (1-100).

  • Vanilla spawns up to 16. With 16 players or fewer, everyone spawns exactly where the game puts them (the front tee line, then the higher platforms behind it). Nothing is moved.

  • Extra spawn spots beyond that, in this order:

    1. In-between spots: halfway between two normal spots on the same platform (about 1.6 m apart). They are on the same surface and in the same row as the normal spots, so the ground and line of fire are the game's own.
    2. Side spots: beside the tee line on level ground, only where there is a clear shot straight ahead, and no further than MaxSideSpotDistance (14 m by default) from the platform.
    3. Rear and elevated spots: staggered rows behind the outer ends of the line, then clearly higher ground behind the platform (AllowElevatedRearSpots), within the same distance. Never behind the tower at the same height, so nobody's ball is blocked on tee-off.
    4. Squeeze spots (SqueezeLevels): a last resort, quarter-steps (about 0.8 m) on the platform, so nobody is sent to spectator while there is still room.

    From real hole measurements, the in-between and squeeze spots are all within about 6.5 m of the platform centre, while side and rear spots were found 11-39 m away, which is why they are limited by default.

    Two spots are never placed closer than their minimum gap, even when they belong to different platforms.

  • No more lost players on a full tee. Without this, running out of spots could throw an error and leave everyone still waiting stuck. A player who really cannot be placed spectates, as in vanilla.

  • Players who join after a hole has started are spectators until the next hole. That is how the game behaves with or without this mod; it is not a spawn failure.

  • Teams mode above 15 per team. The game's hard limit of 15 players per team is raised to your player limit.

  • Tab scoreboard and Esc player list in pages. Past one page of players, turn pages with the mouse wheel or PageUp / PageDown while the list is open. Kick, mute and volume work on every page.

Who needs it

  • The host needs the mod for the player limit, spawns and team limit.
  • Anyone who wants the paged Tab / Esc lists needs it themselves (it only changes their own screen).
  • Players without the mod can still join a host that has it.

Config (com.sbg.moreplayersplus.cfg)

Key Default Meaning
MaxPlayers 32 The highest the lobby player slider can go (1-100). This is the only place the limit is raised: to host more than 32, set it here (for example 64) and restart the game
InBetweenSpots true Use spots halfway between the normal ones first when the normal spots are full
SqueezeLevels 1 Last resort so nobody spectates: 1 = quarter-steps (about 0.8 m), 2 = eighth-steps (very tight), 0 = off
MinSpotGap 0.8 Closest two squeeze spots may be, in metres
ExtraSpotSpacing 0 Metres between side and rear spots. 0 uses the game's own tee spacing
MaxSideSpotDistance 14 Furthest a side, rear or elevated extra spot may be from the tee platform, in metres. In-between and squeeze spots are always on the platform and ignore this. (Replaces MaxExtraSpotDistance from 1.0.0/1.0.1, whose default was 40 and put some players 20-39 m from the tee)
RequireClearLineOfFire true Only use extra spots with an unobstructed shot ahead
AllowElevatedRearSpots true Also use clearly higher ground behind the platform when the sides are full
PaginateScoreboard true Page the Tab scoreboard
PaginatePauseMenu true Page the Esc player list
RowsPerPage 16 Players per page
PublishPresence true Store the mod version in your Steam lobby member data so a host with the mod can tell you have it (see below)
DebugOverflowAfterPlayers 0 Testing aid for hosts: treat the normal spots as full after this many players. Leave at 0
LogPerformance true In 17+ player lobbies, log frame time and network health every 30 seconds

Checking where extra spots will go

As the host, open the console and run morePlayersPreviewSpots 12 inside a hole or the driving range. It drops temporary markers (only you see them) at the extra spots it would use and writes every candidate, with the reason it was accepted or rejected, to BepInEx/LogOutput.log. Every platform on the hole is measured and logged; the number only limits how many markers appear. Platforms that are not active yet (they switch on as more players join) are labelled, because their decks can be switched off and the ground results for them are not reliable until they activate. White markers are in-between spots, green are beside the tee line, yellow are staggered rows behind the outer ends, cyan are elevated ground and red are squeeze spots.

Privacy note: the presence marker

When you are in a Steam lobby, the mod stores its own version number (for example 1.0.1) under the key mpp in your own Steam lobby member data. That is all it stores. Other players' games (and the host's copy of this mod) can read it; players without this mod never look at it. It lets a host that has the mod know who else has it, which future versions use to decide what is safe to do for each player. Turn it off with PublishPresence = false.

Why your logs matter

Super Battle Golf was built for 16 players, and almost nobody has had a chance to see what 30, 50 or 100 players actually do to it. Which spawn spots work on which holes, where the lag really comes from, and whether characters go invisible past 16 are all things that only show up in real lobbies with real hardware, and they differ from one hole and one machine to the next.

This mod is early, and the next versions are being built from what players' logs show rather than from guesses. If you play a big lobby, a log from that session is the most useful thing you can send, even if nothing went wrong: "it worked fine with 40 players on this hole" is just as valuable as a bug.

Send logs to Kaosys on Discord. You can find me in the Brimstone server and the SBGL server.

Reporting a problem

The mod writes everything needed to understand a problem to the normal BepInEx log, so a bug report is just that file. The log is replaced every time the game starts, so copy it before relaunching. It is BepInEx/LogOutput.log inside your mod manager profile (in Thunderstore Mod Manager: Settings -> Browse profile folder). Please also say whether you were the host, how many players were in the lobby, and roughly which hole.

What it records (every line is tagged, search for the tag):

Tag What
[Session] Mod, game and Unity versions, your hardware, the mod's settings, and the other BepInEx mods loaded
[Startup] Every game method the mod hooked, and [PatchOnStartClient] / [PatchLoadValuesLambda] / [PatchTeamCap] lines saying each patch applied (or why not)
[Match] Each change of hole, match state or player count
[Spawn] Per platform, how many extra spots of each kind were available and why others were rejected; every spot given (platform, index, kind=vanilla or the extra spot's kind, position); and a full breakdown if a player could not be placed
[Lists] Page counts for the Tab and Esc lists
[Perf] In lobbies of 17+: frame time and network health every 30 s, and every frame over 250 ms
[Probe] A physics / network / tee-platform / per-player snapshot, written automatically at the first tee-off with 17+ players, or on demand with the morePlayersProbe console command
[Presence] Whether the mod marker was published to the Steam lobby

Errors inside the mod are caught, logged once with context (and rate-limited), and never allowed to break the game. Frame and network lines can be turned off with LogPerformance = false.

What is in a log: the lines above plus everything BepInEx and the game itself print. This mod does not record player names or chat, but the game does print player names and Steam IDs (for example when someone connects or is initialised as a participant), and BepInEx prints folder paths that can contain your Windows user name. If that matters to you, delete those lines before sending. Anything you send is used only to improve this mod.

If the game crashed, the BepInEx log cannot capture it. Please also send the game's own Player.log: C:\Users\<you>\AppData\LocalLow\Brimstone\Super Battle Golf\Player.log, and anything in %TEMP%\Brimstone\Super Battle Golf\ (Unity's crash folder). Copy them before you launch the game again.

Where to send it: Discord, to Kaosys (Brimstone server or SBGL server). A short note with the player count, whether you hosted, and what you saw is plenty.

Known limits

  • Lag and instability past ~32 players come from the game itself; this mod does not fix them.
  • Invisible characters past 16 players were reported for the original mod. It is untested on the current game build here; if you see it, please report the player count. When more than 16 players are in a match the mod writes a note to the BepInEx log to help with that.
  • Extra spawn spots depend on the shape of each hole's tee area. In-between spots add up to about 12 on a normal layout (28 players) and squeeze spots add more, but on a very large lobby some holes can still run out, in which case the remaining players spectate like vanilla. The log says exactly how many were available.
  • In-between and squeeze spots are close together (about 1.6 m and 0.8 m). If a swing reaches a neighbour's ball, please report it with the hole name; the log records how far a swing reaches.
  • Page turning uses the mouse wheel and PageUp / PageDown; there is no gamepad paging yet.

Future plans

These are plans, not promises, and the order depends on what the logs show:

  • Stack-and-ghost spawns for very large lobbies. For holes with a tiny tee area, players who have the mod would share the normal spawn spots and pass through each other and each other's balls for the first second or two, so nobody's shot is blocked. Items (freeze bombs, rockets) and airhorns would still hit everyone. Players without the mod would keep using the side spots. This needs real-lobby data first.
  • Lag reduction for 30+ players. The game sends every object to every player, so cost grows quickly. Candidates are throttling the busiest per-player traffic (spectator cameras, ping updates), removing the freeze when teams are rebuilt at match start, and doing less work for far-away players.
  • Invisible characters past 16 players, if the logs confirm it happens on the current game version.
  • Gamepad paging for the Tab and Esc player lists.
  • Anything else the logs point to.

Compatibility

  • Not compatible with MoreGolfers by Sulayre. Both change the same game methods, so the mod refuses to load alongside it. Remove one.
  • Credit: based on MoreGolfers by Sulayre (source: github.com/Sulayre/sbg-more-golfers), used with their permission. MorePlayersPlus updates the idea for current game versions and adds the spawn, team-limit and list changes above. It finds the game methods it patches at runtime rather than by fixed names, so ordinary game updates should not break it.
Thunderstore development is made possible with ads. Please consider making an exception to your adblock.