You are viewing a potentially older version of this package. View all versions.
lammas123-PEAKER-0.4.9 icon

PEAKER

Who knew that PEAK could get even more PEAK!? An all-in-one feature & fix mod for larger expeditions! Patch: 1.62.a

Date uploaded 2 months ago
Version 0.4.9
Download link lammas123-PEAKER-0.4.9.zip
Downloads 7557
Dependency string lammas123-PEAKER-0.4.9

This mod requires the following mods to function

BepInEx-BepInExPack_PEAK-5.4.75301 icon
BepInEx-BepInExPack_PEAK

BepInEx pack for PEAK. Preconfigured and ready to use.

Preferred version: 5.4.75301
lammas123-PEAKERRpcInfo-1.1.0 icon
lammas123-PEAKERRpcInfo

A dependency for mods that need the info parameter on Rpcs.

Preferred version: 1.1.0

README

Who Needs the Mod?

For all features, only the host is required to have the mod, though it's recommended all clients have it for the best experience.

More Scouts (Host Only)

The maximum number of scouts that may join your expeditions has been increased to 20, and is configurable from 1 to 30!

There will always be enough marshmallows and hot dogs for everyone to have a bite to eat at campfires!

  • The number that spawn is based on how many scouts there are at the start of the expedition, more or less will not spawn if scouts join or leave mid game.

Why Limit It?

The game and its networking is unoptimized, untested, and unstable in many ways for this many scouts, and would require massive reworks that would be far too invasive for a mod to perform without risking breaking the game, or breaking with each game update.

Character Ragdolls

The physics-based ragdoll characters lead to a lot of CPU-bound lag around 15-20 scouts, even on the most performant of cpus.

Without the mod, all dead scout's characters are teleported to the same spot off screen and constantly collide on your client's end, causing lots of lag! This is fixed by disabling dead character's colliders on your end if you have the mod.

Photon Networking Instability

The game has lots of networking to do, especially when lots of scouts are revived at the same time via the Ancient Statue. In the past (at least) it was a common occurence for many scouts in the lobby to disconnect when several scouts were being respawned at once due to Photon being unable to keep up, effectively crashing and ruining the lobby.

Client Side Improvements

Normally, there's only enough volume sliders in the pause menu for ~8 scouts, the mod creates more sliders as the number of scouts demands it.

There's only enough nametags for ~8 scouts in the base game, leading to nametags being missing or even incorrect for some scouts when there's more than 8. The mod creates more nametags as the number of scouts demands it.

The helicopter at the PEAK only has enough seating for 4 scouts, this mod fixes that by making every scout past 4 sit on the laps of other scouts.

The end screen normally can only handle 4 scouts, the mod fixes that. It may look a little janky, but I'd rather not fully remake the UI to fit the extra scouts.

It may be difficult to keep count of so many scouts in larger lobbies, so the mod displays the current and maximum number of scouts for the lobby in the top left next to the version string.

Cheat Detection

To assist with finding cheaters in your (potentially) public lobbies, the mod comes with a couple cheat detections. This mod will not actively moderate and automatically punish detected cheaters (besides one optional case), only detecting potential cheating.

The Atlas and Cherry Mods

If a scout joins your lobby using the Atlas or Cherry mods, you will be constantly notified every 10 seconds of their presence.

  • I haven't met many Atlas nor Cherry users in my dozens of lobbies who didn't use their mods to cheat, ruin the experience, or otherwise crash the lobby.
  • There is one host only config option (off by default) where you can enable automatically kicking Atlas and Cherry mod users. Seeing as it's easy to check, can't be falsely flagged, and has been requested by hosts using this mod, this is the one 100% safe automatic punishment I can implement.

Detections

You'll be notified when a scout:

  • forces another scout to slip on a banana peel,
  • forces a bee swarm to disperse,
  • forcefully changes a bee swarm's anger illegally,
  • makes a tick to attach to another scout,
  • forces a flare to trigger the game to end,
  • forcefully extinguishes a campfire,
  • attempts to make the game end,
  • attempts to kill another scout,
  • attempts to revive another scout,
  • attempts to teleport another scout,
  • forcefully initializes or retarget's another scout's ghost,
  • spawns an eruption,
  • forces a magic bean to grow,
  • forces the fog to start or sync,
  • attempts to forcefully start the game or return to the airport,
  • forces a bridge to shake or fall,
  • forces a rope to detach,
  • forces a icicle to shake or fall,
  • forces a piton to break or start breaking,
  • or illegally instantiates a networked prefab.

Do Note

As of writing this, some of these notifications may be triggered through normal gameplay, such as by reviving another scout, though others, such as attaching a tick to another scout or spawning an eruption, are not. Use your best judgement and game knowledge before taking action.

PEAKER GUI (F9 Keybind)

Managing such large lobbies can be a hassle, so having a centralized and simple to use GUI to help keep things under control is crucial. This GUI comes with several actions and features you may use!

Actions

Simple buttons you may use to perform a specific action quickly.

Airport Start Kiosk Lock Toggle (Host Only)

The Start Kiosk is now locked, so only the host may start the expedition by default! Great for keeping random people from starting your expeditions prematurely on settings you didn't want!

Light Nearby Campfire (Host Only)

This will force the campfire near you to instantly light, useful if scouts are afk after respawning or unwilling to come close enough to the campfire for you to light it normally.

  • Keep in mind, this will not teleport distant scouts to the campfire! If scouts are still climbing the current section, the mountain will unload and they may fall out of bounds!

Spawn Backpack (Host Only)

This mod does not spawn more backpacks at each campfire. If you'd like more backpacks to be in play, or something happens to a backpack and you just want to get another, this is the action to use!

Skip End Screen (Host Only)

Are scouts taking too long to confirm the end screen and continue on to the credits? Skip the wait and roll the credits!

Copy Invite

This will copy the Steam lobby invite link to your clipboard! Makes it easy to share your lobby's invite link and fill the expedition quicker.

Steam Lobby Lock Toggle (Host Only)

While the Steam Lobby is locked, no scouts will be able to join. Useful if you've started your expedition and don't want anyone joining in the middle of it, which may cause desync issues and other bugs!

  • If scouts already in your expedition disconnect, they will not be able to rejoin unless you unlock the Steam Lobby!

Scouts

Here, you will find every Photon and Steam scout in your expedition, with several options for managing them.

For Photon scouts, you may:

  • Kick them (Host Only),
    • The same as pressing the kick button in the pause menu.
  • Modify their character's max velocity,
    • Useful if that scout's ragdoll is freaking out, simply decrease their max velocity until the issue stops.
  • and Ignore Cheat Detections from them.

For Steam scouts, you can:

  • Copy their Steam ID to your clipboard,
  • Open their Steam Profile in the Steam Overlay,
  • Ban them,
    • This does not make them leave the game, only preventing them from entering future ones you host.
  • Temporarily ignore their ban,
    • Technical explanation will come later.
  • and Allow them into First Class.

First Class

First Class is my representation of an 'allowlist' where, when enabled, only Steam scouts you've added to it (or Steam friends if that's enabled) may enter your expedition when you're the host.

From here, you may manage the scouts you've added to the list in game, or open the first-class.txt where you may edit the list freely.

The No Fly List

If you have a list for First Class, then you've got to have a list for those who may not partake on your expeditions. The No Fly List is my representation of a 'denylist' where Steam scouts you've added to it will not be able to enter your expedition when you're the host.

From here, you may manage the scouts you've added to the list in game, or open the banned.txt where you may edit the list freely.

Important to Note

There may be a slight chance for banned scouts may be able to get around this, depending on if a bunch of scouts join the expedition at the same time in a certain order, but I have not experienced this myself, and with how the game works, I cannot patch this without requiring everyone to have the mod.

  • This also applies to First Class!

Other than that, the only way to get around this ban would be for them to get another copy of the game on another Steam account (or a friend), which you can then also promptly ban.

How the Ban Works (Simplified)

  • When someone first tries to join your expedition, they first join your Steam lobby.
  • They'll then ask you for a Photon room name, so that they may enter the expedition.
  • So long as a banned scout's Steam ID is present in your Steam lobby (unless they are ignored), you will send a completely random, incorrect Photon room name in response.
    • The Photon room name is sent to every person in the Steam lobby, I cannot control who receives it, as this is just part of Steam's SteamMatchmaking API.
  • Scouts will then try joining this Photon room of the incorrect name, are unable to do so, and promptly disconnect from your Steam lobby.

Witch Hunting or Public Shaming (Sharing the banned.txt)

I do not condone or wish to witch hunt or publicly shame anyone, and thus will never share my own banned.txt publicly.

  • Though I feel confident most people would agree that most of the people I have banned should be banned from their public lobbies, not everyone will, and I'd rather not deal with the drama associated with managing a public ban list. I just wanna play the game.

If your friends have been hosting with this mod a while, you can ask them for their ban list to get a head start. Otherwise, just start hosting and ban those you don't want in your lobbies when they come around, you'll quickly accumulate a list of banned scouts of your own and start having a good time climbing PEAKs again.

Config

Here contains some config options from the mod's config file you may change in game without opening the file!

Locale/Language

This mod supports localization! It only ships with the English (US) locale (aka. en-US), but it's easy to write your own localization config and share it, or use someone elses! Localization configs are located at *profile-directory*/BepInEx/config/lammas123.PEAKER/.

Character Physics Optimization Mode

By default, character's colliders will be disabled when they're dead (to improve performance) since they're the cause of lots of lag in vanilla. I guess the option is there to disable this optimization if you want to see how much laggier the game would be without it!

Late Join Anti Fling Mode (Experimental!)

It's been reported that people joining later in the game often leads to their ragdolls bugging out. To try and combat this, this setting can be enabled to automatically slow the maximum velocity of scout's ragdolls when they join late.

Max Scouts (Host Only)

A slider to change the maximum number of scouts allowed in your lobby.

Cheat Detections

A toggle to enable and disable cheat detections, in case they're not needed or you need to turn them on.

Automatically Kick Atlas and Cherry Users (Host Only)

After request from users of this mod, I've added this one automatic cheat detection punishment as an option that's off by default. If this is enabled and a scout with the Atlas or Cherry mods joins your lobby, they will be automatically kicked.

W.I.P!

This mod is still semi-experimental, so there may be a few issues! Until I'm satisfied with the state of the mod, I won't be releasing a 1.0.0 version of the mod to reflect the mod's unfinished state!

If you encounter any issues, have any suggestions, or would like to offer help, I am in the PEAK Modding Discord!

Installation (Manual)

Firstly, I don't recommend manual installation to the average user. You can always use Thunderstore Mod Manager, r2modman, or Gale to mod your games if you're not familiar with this process!

  1. Download this BepInEx if you don't already have it installed. If you do, skip to step 4.
  2. Extract the contents of the .zip into your game's root directory.
    • You may navigate there directly by: opening your Steam library, right clicking them game, selecting Manage, and then Browse local files.
  3. Run the game once, wait for the game's window to appear, then you may close the game.
  4. Download the latest release of this mod.
  5. Move the PEAKER.dll contained within the .zip to your BepInEx/plugins folder.
  6. Download the latest release of PEAKERRpcInfo.
  7. Move the PEAKERRpcInfo.dll contained within the .zip to your BepInEx/patchers folder.
  8. Enjoy! Running the game once will generate the lammas123.PEAKER.cfg file in BepInEx/configs.

CHANGELOG

0.4.9

  • Updated for v1.62.a
  • The 'Open banned.txt' and 'Open first-class.txt' buttons now use Application.OpenUrl rather than Process.Start, because opening a url is less scary than starting a process. :)
  • Fixed the Testing 'WaitForAncientStatue' config option not being checked, thus always being treated as true.

0.4.8

  • Updated to v1.61.b
  • Fixed the broken Testing 'WaitForAncientStatue' config option being broken and thus breaking respawn statues.
  • The content of the 'local.en-US.cfg' localization file will now always reflect the current version of the mod's defaults, and can not be overwritten (any changes made will be reverted).
    • This is to fix an issue caused by old translations falling out of date not being updated when the mod updated.
  • I've redone the mod's README, as it's been falling out of date since forever and has been in need of a serious upgrade.

0.4.7

  • Updated to v1.60.a
    • Replaced usages of the old 'SteamLobbyHandler.m_currentLobby' field with the new 'SteamLobbyHandler.LobbySteamId' property.
    • Fixed force lighting the campfire not working due to a change.
  • Fixed a formatting issue with localization that caused exceptions and broken game state, namely when the master client of the room left and ownership switched.
  • Made a couple improvements to how the scrollable area for audio sliders is created.
    • Should be more compatible with Profile Cards, meaning they shouldn't need to do any patches if PEAKER's also installed.

0.4.6

  • Fixed 'CheatDetections.OnDisable' throwing an exception if the '_checkScoutsForMods' coroutine was null.
  • Removed the 'RespawnChest.RespawnAllPlayersHere' patch for delaying character respawning while 'PhotonNetwork.NetworkingClient.LoadBalancingPeer.QueuedOutgoingCommands' reported sending out a lot of commands at that moment, which somewhat helped with preventing disconnects when mass respawning players.
    • I saw reports that there was an issue with the respawn statues not working in the new update with PEAKER, and upon looking into it I saw this patch was disabling and potentially interfering with some vanilla functionality (on top of being broken by the new update), so I've decided to just remove it for now and see if it really needs to exist.

0.4.5

  • Added the First Class tab, aka a whitelist/allowlist. This works alongside the existing No Fly List tab that keeps out banned Steam IDs, but can be toggled on to only allow certain Steam IDs/Steam friends to join.
  • Added the 'Open Steam Profile' button to the Scouts Gui.
  • Added the 'Copy Invite' button to the Actions Gui.
  • Added the 'Max Scouts' slider to the Config Gui.
  • Added the 'Cheat Detections' and 'Automatically Kick Atlas and Cherry Users' options to the Config Gui.
  • Fixed scout's audio level percentages being obscurred by the scroll viewport mask, due to the new kick button pushing the content to the left.
  • Added localization support for all of the cheat detections.
  • Fixed an issue with the 'GameOverHandler.BeginAirportLoadRPC' cheat detection that caused a NullReferenceException after it ran.
  • Removed the 'Campfire.SetFireWoodCount' cheat detection, at some point it had its functionality stripped but was never fully removed, and thus never lead to errors.

0.4.4

  • Updated for v1.53.a
    • Fixed breaking naming change for the GameHandler.BeginIslandLoadRPC being renamed to GameHandler.BeginAirportLoadRPC.
    • Updated PEAKER's Kick button to kick players the same way the game now does with PlayerHandler.Kick. (May remove the PEAKER kick button in the future? Still deciding.)
  • Added a button to copy the selected Steam scout's Steam ID to your clipboard.
  • Added an option to the config to automatically kick users of Atlas/Cherry as the host, disabled by default.
  • Added the ability to localize PEAKER to other languages via configs at 'BepInEx/config/lammas123.PEAKER/locale.en-US.cfg', so that anyone may easily localize PEAKER to other languages and distribute their locale config!
    • If there are multiple locale configs here (must follow the naming scheme 'locale.*-*.cfg') you may switch between them in game via the Config tab of the F9 Gui.
    • Not everything is localizable yet, but all of the Gui and the most important on screen elements for PEAKER have been made so. Logs and config descriptions will remain unlocalized.
    • The cheat detections haven't yet been made localizable. I plan to, but I need to go over the cheat detections and ensure they're still functional/necessary since the last time I touched them.
  • Removed a bunch of left over code from the old gui I forgot was sticking around.

0.4.3

  • Fixed the config option 'LateJoinAntiFlingMode' appearing incorrectly in the gui and fixed it applying to the local player, whoops.
  • Removed the attempt to take back master client ownership if it was taken from you, as it is no longer possible for malicious clients to steal it (thanks PEAK devs!). You will still be notified about master client changes if the master client disconnects.
  • Added an option to the Scouts gui for master clients to kick misbehaving scouts via the new Photon event added by the PEAK devs (thank you again!).

0.4.2

  • Added the experimental config option 'LateJoinAntiFlingMode', Off by default. Setting this option to Slow will automatically slow the maximum velocity all players that join late, to try and limit the amount of flinging caused by players bugging out on client's ends.
  • Removed the patch that used to fix issues caused by players using custom cosmetics while others may not have been, as the check was added to the game some time ago, and my check wasn't allowing players to wear the Iron Mouse hair in game.
  • The extra marshmallow spawner will now also spawn Hot Dogs, and any other items the devs add to the Campfire spawn pool.

0.4.1

  • Made the message '{joiningPlayer} tried to join, but {bannedPlayer} is banned! Not letting them in...' unable to be spammed by players constantly joining.

0.4.0

  • Updated to fix the ROOTS update breaking a lot of the mod by slightly changing how it handled max players.
    • More specifically, 'NetworkConnector.MAX_PLAYERS' no longer exists and was replaced the constant 'NetworkUtilities.MAX_PLAYERS', and with it being constant means I can no longer use that for changing max players.
    • Now I instead override SteamMatchmaking.CreateLobby and NetworkingUtilities.HostRoomOptions' MaxPlayers to achieve the same effect.
  • NOTICE! I have tested very little beyond this, I'm just quickly fixing this part of the mod so people can actually use it lmao.

0.3.1

  • Removed the fps counter I used for debugging and forgot to exclude. (Sorry!)

0.3.0

  • Updated for PEAK v1.30.a.
  • Added a ScrollRect to the pause menu's volume sliders, to allow you to drag to scroll and set the volumes of every player in larger lobbies.
  • Replaced all the keybinds with a single, more advanced gui, which can be opened with F9 by default.
  • Removed the Steam rich presence patch that displayed the proper max player count (by spamming underscores and spaces) as the game does this by default now.
  • Added a basic cheat detection for name changes.
  • Added a button to ignore PEAKER's cheat detections for a Photon player in your lobby.
  • Re-added tornadoes to the Testing config, but made them not override the tornadoes in the Mesa.
  • Removed the Fix Pass Out Blindness keybind, as the bug that prompted it's addition was fixed some time ago.
  • Made the Testing config option WaitForAncientStatue focus on distance passed the ancient statue instead of that section's campfire, to comply better with the Caldera's campfire being moved to the start of the Kiln.

0.2.5

  • Updated for the Mesa update, 1.21.a.
  • Your Steam Rich Presense will now show the maximum scouts that can be in your lobby. (Had to spam a bunch of underscores at the end to hide the hardcoded maximum scouts of 4.)
  • Removed the Tornado config option from the Testing config, as they're in the game now.
  • The WaitForAncientStatue Testing config option will now wait until all living scouts are beyond a specific point on the Z axis, instead of within a radius of the campfire, as using the statue after the campfire could lead to scouts running ahead and going out of range.

0.2.4

  • Updated for PEAK v1.8.
    • Fixed campfires appearing lit and marshmallows not spawning.
      • PEAK AntiCheat (as of writing this) still needs to update to fix some issues with campfires.

0.2.3

  • Fixed an error, whoopsies!

0.2.2

  • Updated to be compatible with hiccup's AntiCheat update, regarding the F9 cheat detection logs.
  • Fixed an error caused by having duplicate steam ids in your banned.txt.
  • Added a bit of logging to maybe help find out what's causing the F9 GUI to not open for some.
    • If you're having this issue, start a game and try opening the GUI, then retrieve your BepInEx/LogOutput.txt file and share it with me on Discord. @lammas123
  • If you notice a scout's ragdoll bugging out, causing you to get flung, you can slow them down in the F9 menu until they stop. (Client)
    • I'd like to figure out a better, more automatic way to detect/prevent this, but the cause is still unknown to me.
  • Increased the maximum scouts to 30 in the config, but the default will remain at 20. (Host)
    • 30 appears to be the maximum PEAK's servers will allow, but that does not mean it is stable!
  • Dead characters will have their colliders disabled, to reduce the physics collision lag they cause. (Client)
  • Disabled by default in the Testing config, you can make the ancient statue wait to do anything until all living scouts have reached the top of the current section. (Host)

0.2.1

  • Fixed an error caused by having a config keybind set to None.

0.2.0

  • Updated for patch 1.7.a.
  • MAJOR! Added PEAKAntiCheat as a soft dependency, cheat detecion logs from it will now appear in the F9 Scout Lists GUI.
    • PEAKER's cheat detections will at one point be removed! You'll have to use PEAKAntiCheat for cheat detection and prevention in the future!
  • REQUIRED! I've separated the PEAKERPatcher.dll into its own dependency, PEAKERRpcInfo, which is required for most cheat detections.
  • Added a bunch of cheat detections, along with a config option to enable or disable them, enabled by default.
    • If PEAKAntiCheat is in use, PEAKER's cheat detections will be disabled to prevent excess logging and checking.
  • Fixed an issue where scouts that were banned could rejoin if they left and rejoined before anyone else tried to join, without the host leaving the expedition or closing their game.
  • You can now change the lobby type in game from the settings menu. As the host, your changes will immediately apply to your lobby.
  • Testing a change to see if waiting to respawn scouts until less traffic is going through Photon improves disconnects, when using the revival statue.
  • Fixed a bunch of typos of 'etc' in the README.
  • Added a new Testing category to the config. Don't worry about what's there... ;)

0.1.2

  • Fixed the Thunderstore BepInEx dependency to be correct.
  • Updated for patch 1.6.b.
    • Removed the multiplayer chain and vine fix, as it has been fixed by the developers!
  • Changed the max scouts to 25, incase anyone wants to try slightly larger lobbies, but kept the default at 20.
    • Understand that the lag and the chances of disconnecting will be even greater!

0.1.1

  • Fixed an issue where every scout that joined before you would have the first cosmetics selected when you join, until they changed them.
  • Changed the delay between statue respawns from 1 second to 1 frame.
    • Unsure if it's better or worse, but I was suggested to try it out. I tried it with 1 lobby and it seemed to go pretty well.
  • Actually started using the MyPluginInfo constants internally.

0.1.0

  • Initial (experimental) release, yippee!