Skip to content

Repository files navigation

Adds additional modifiers to the game, as well as Twitch Chat Integration

  • Requires BS Utils, SongCore, and BeatSaberMarkupLanguage

  • Requires CatCore if you plan on using Chat Integration

Standard Usage

  • Modifiers can be found in the GameplayModifiersPlus tab of the Mods section of the Gameplay Setup Panel when selecting songs

  • Most modifiers will disable score submission, and because of this default to off when the game is started

  • Endless Mode

    • Currently does not work with Non-Custom Songs
    • Can be enabled with the other modifiers (Map changing modifiers will only apply to first map)
    • Disables Score Submission
    • Randomly continues with a new song as the end of a song approaches
    • Can adjust song selection for endless mode in the 'Endless' section of the config
    • By default, failing in endless mode will simply move on to the next random song, this can be disabled in the 'Endless' section of the config

Configuration

  • Settings for Chat Integration and other parts of GameplayModifiersPlus can be found in 'UserData/GameplayModifiersPlus.ini' which will be generated after loading the game to the main menu with the mod installed correctly

Chat Integration

  • GameplayModifiersPlus.ini will be generated in the UserData folder after running the game with the plugin installed

CatCore Setup
  • Refer to the Readme for how to set up and install CatCore properly

IMPORTANT COMMANDS FOR USERS - GAMEPLAY COMMANDS ARE DETAILED BELOW CONFIG

  • '!gm help' Links to readme for the mod, lists various commands that give useful information
  • '!gm status' Displays whether chat integration is currently on, as well as who can currently use chat integration commands
  • '!gm charges' Displays the current charge count, the commands that currently have costs, and the amount of commands that can be in one message. If a command is not listed here, that means it has no cost set

UI

UI Image

  • When chat integration is active, there is now a UI display in game, On the left in red are the currently active cooldowns, indicating which commands can not be used at the moment. In the center is a counter of the current charges compared to the max charges, and on the right in yellow is the commands that are currently active.

Basic Chat Config Options (More Below)

OptionAbout
uiOnTopWhether the in game chat integration UI is on the top or bottom
showCooldownOnMessageWhether cooldowns are displayed in chat with the message for command activation
allowModCommandsWhether the channel's moderators are allowed to edit the config from chat, if off only the broadcaster can
commandsPerMessageHow many commands can be stacked in one chat message
globalCommandCooldownHow long in seconds must pass before another chat message with commands will be activated
allowEveryoneIf on, everyone in chat is allowed to use commands for chat integration
allowSubsIf allowEveryone is off and this is on, only subs and moderators will be able to use commands, if this is also off, commands will be limited to moderators
chargesForSuperChargeThe amount of additional charges required to activate a supercharge for a command, charge system is explained below
chargesPerLevelThe amount of charges generated every time a song starts
maxChargesThe max amount of charges that can be accumulated from chargesPerLevel
bitsPerChargeIf greater than 0, any message with bits will add charges based on its multiple of this amount
timeForChargesHow often to add charges during a song, if not 0
chargesOverTimeIf charges over time is active, how many charges to give every occurance of the time period
resetChargesperLevelIf true, charges will be reset after every song
chatintegration360If true, 360 Degree Chat Integration Capabilities will be enabled

Charge System

  • Every Command has a chargeCost that you can specify, and the command will only be activated if the amount of charges exceeds the cost, and will subtract the cost accordingly
  • You can choose to either have charges only be generated automatically per level, to provide a "budget" to limit command usage, or restrict the generation of charges to bits, or both using the options explained above
  • You can also set charges to be generated over time during a song, as outlined above, in addition to or instead of the above options
  • SuperCharges require additional charges on top of the chargeCost to use a command, but extend the duration of the effects to be much, much greater...

Command Chat Config Options

  • Since there are enough commands that listing every single option here would be cumbersome, I will explain the "properties" a command can have and what they do
OptionAbout
chargeCostThe base amount of charges required to use a command
DurationThe base amount of time in seconds the effects of a command last
CooldownHow long in seconds before that command can be used again, cannot be lower than Duration
MinFor random commands, the min value of the random range
MaxFor random commands, the max value of the random range
ChanceFor commands based on chance, the chance (0-1) of something occuring
MultiplierFor multiplier based commands, like faster or slower commands, the multiplier used. I.E. 1.2 = 120%
RandomizeStartFor Map Swap commands, whether to randomize what point the new map starts at
HideNoteArrowsFor relevant commands, whether to hide note arrow indicators
ForceAnyDirectionFor relevant commands, whether to make all effected notes have a cut direction of Any

Current Commands

CommandDescription
DATemporarily activates disappearing arrows for the duration
SmallerMakes the notes much smaller for the duration
LargerMakes the notes much larger for the duration
RandomMakes the note size random within the set range for the duration
InstaFailFor the duration, any mistake will cause instant failure, denoted by red health bar
InvincibleFor the duration, cannot lose any health, denoted by Gold health bar
NjsRandomRandomizes the note jump speed of the notes for the duration
NoArrowsTurns the map into no arrows mode for the duration
FunkyFor the duration, notes are funky
RainbowRandomizes note colors for the duration, currently left colors will be random warm colors, right will be random cool colors
PauseLiterally just pauses the game. Has it's own seperate global command cooldown you can set, pauseGlobalCooldown, instead of a standard cooldown
BombsFor the duration, notes have a chance to be replaced with bombs
PoisonFor the duration, health regen is disabled
OffsetRandomFor the duration, randomizes the note spawn offset
MirrorFor the duration, mirrors the map
ReverseFor the duration, reverses the direction the notes come from
FasterFor the duration, the song speed is altered by the multiplier
SlowerFor the duration, the song speed is altered by the multiplier
TunnelFor the duration, the player enters a tunnel
LeftRotates the level 30 degrees to the left (If 360 Chat Integration Capabilities are enabled)
RightRotates the level 30 degrees to the right (If 360 Chat Integration Capabilities are enabled)
RandomRotationRandomly sporadically rotates the level 30 degrees to the left/right for the duration (If 360 Chat Integration Capabilities are enabled)
RCTTSForce Reality Check Through the Skull to play for the duration
GameTimeStart a random GameSaber game that will fail the player if they lose before the duration is up (Requires Compatible GameSaber version to be installed)
JeremyHide note meshes and telegraph note positions using arcs for the duration

Moderator Commands

Reset Command

  • Moderators can use '!gm reset' to deactivate all non permament commands (Permanent ones being things like noarrows and pause), reset all active cooldowns, and reset charges to the charges per level, or 0 if that value is set to 0

Changing the Config

  • The config can be changed from the file, and will update itself once the game scene changes, without having to restart
  • The config can also be changed from chat by the broadcaster or moderators using the !gm configchange command, the usage of which is below

!gm configchange command property=value

  • Example Usage: !configchange da cooldown=5 would change the cooldown for DA to 5 seconds

!gm configchange property=value

  • To be used for Basic properties not attached to commands
  • Example usage: !gm configchange commandsPerMessage=2 Would change the commands per message to be 2

About

No description, website, or topics provided.

Resources

Stars

26 stars

Watchers

4 watching

Forks

Releases

Packages

Used by

Contributors

Languages