


Drag BWChaos.dll into your mods folder, that's basically it.
To configure BW Chaos, use BoneMenu or MelonPreferences.cfg, but note that BoneMenu is missing some options that are present in MelonPreferences
This mod supports two methods of audience interaction, via Discord and Twitch.
To enable this, set enableRemoteVoting to true in MelonPreferences
Generate a Twitch OAuth2 token by going to this Twitch Chat OAuth Generator
Paste it into the token field in MelonPreferences
Put your channel name in the channel field in MelonPreferences
It's recommended that you set showCandidatesOnScreen to true so that your viewer can see what they're voting for
Go to the Discord developer portal
Create a new application, give it whatever name you want, it do not matter.
Open the application, go into the Bot tab, and create new bot user
Copy its token and paste it into the token field in MelonPreferences
Go back into the General Information tab and copy the Application ID
Paste it into this "template", replacing <APPLICATION_ID> with your application ID: https://discord.com/oauth2/authorize?client_id=<APPLICATION_ID>&scope=bot&permissions=1024
Open that link and select the server you want to add the bot to, and add it
The hard part's over. Now open your Discord app
Go into the settings page
Enter the Advanced tab, it's the last one in the App Settings category, 6th from the bottom.
Enable developer mode
Go to the channel you want people to vote in, make a new one if you want, because that channel will likely be flooded.
Right click the channel in the channel list, and click "Copy ID"
Paste the channel ID into the MelonPreferences field channel
This version, unlike the Legacy version, has sensible defaults, meaning the game's main campaign is playable from first install.
There are "crazier" effects, like the legendary 'Change Steam name for 2m', but that is behind a MelonPreferences entry
Here is a brief overview of the configurable values in MelonPreferences:
token: The authentication code for the bot
channel: The name of the Twitch channel or Discord channel for the bot to listen to, assuming enableRemoteVoting is true
randomEffectOnNoVotes: Determines if the mod will run effects when there were no votes.
useGravityEffects: Enables or disables effects that change the game's gravity value. Effects that change gravity are likely to crash the game on campaign levels.
useLaggyEffects: Enables or disabled the more processing intensive effects, intended for people that can stomach low framerates, because there wasn't a year spent on optimizing it.
useSteamProfileEffects: Determines if effects changing your Steam profile will run, like "Change Steam name for 5m"
syncEffectsViaEntanglement: Determines whether the Entanglement module is enabled or disabled.
When enabled, if you're the host, any effects that you run will attempt to be ran on the other clients.
If you're a client, then any effect the host runs will attempt to be ran. If you have that effect disabled, it will inform you what was going to run.
ignoreRepeatVotesFromSameUser: Determines whether spamming is an effective method of bumping up vote counts.
proportionalVoting: Determines if proportional voting is enabled or not. If yes, an effect with 60% of votes has a 60% chance of winning, otherwise the top voted effect wins.
enableRemoteVoting: Enables taking votes from Discord/Twitch.
showCandidatesOnScreen: Shows the candidate effects on screen, with the numbers that need to be voted for each one.
sendCandidatesInChannel: Only available to Discord remote voting. It will send a list of the effects that users can vote for into the specified channel.
forceEnabledEffects: A list of effects that will be in the effect pool, regardless of whether or not they adhere to the other preferences.
forceDisabledEffects: A list of effects that will never be in the effect pool, regardless of whether or not they adhere to the other preferences.
The mod is open source, so if you see an effect and want to know what it does, just go to the GitHub repository.
Odds are it's in either the Misc or Player folders.
If there's a serious, game-breaking issue, please, TELL ME! Ping me in the BONEWORKS fan server! Preferably in the #mod-general channel, my username and tag are extraes#2048!
If you somehow find a way to break the Twitch bot or Discord bot, or hack them in some way, please tell me so I can troll people before I fix it.
Errors appearing in the console on a scene transition (changing level)
This is harmless. It just means that an effect failed to "properly" stop. The error actually appearing means that the effect was forcefully stopped by MelonLoader before anything bad could happen. Thanks MelonLoader! (I'd die on the spot if I got a nullref in unmanaged code)
This shows up as something along the lines of "Exception in coroutine of type BWChaos.EffectHandler+<Timer>" and usually contains the term "System.NullReferenceException"
Even though I know why this happens, it is very tedious to hunt down every instance by myself, so if you told me which effect caused it, I would be grateful.
You can find this information by either giving me your log file or telling me the first few lines of the error, where it says "[ERROR]" and the first few "at BWChaos.Effects..."
If you give me a screenshot of your log file, I will place a pipe bomb in your mailbox, or a comedically timed lit stick of dynamite.
BWChaos does not work for some people on certain configurations of the Steam version, specifically the "ChaosModStartupException" error
The timer is too jerky!
'Garble some textures' and 'Swap textures at random' lag the game when they start!
Well the game should've loaded on startup, but I guess the textures got nulled, so that didn't pan out. It's unfortunate how the world works sometimes, isn't it? Blame IL2.
Garble some textures has a chance to make the scene dark/a random color!
Yeah that's cause it randomizes the color of 20% of the materials in the game, and since it's 2021, it doesn't discriminate, so something it changes corresponds to the lighting of the scene. Are you telling me to discriminate? That's messed up, man. Shame on you.
'Video Textures' lags my game when it's active!
I didn't have that issue but someone with a 1060 6G did, so it's 100% a skill GPU bound issue. It's a nice effect that I think is funny as fuck, but it does tax the GPU more than I'd like, so I had to mark it as LAGGY, no matter how much I would've loved to see it get used more. I guess get a new GPU or force disable it.
Also you should probably not spam it if you have less than 6G of VRAM, to be honest.
The texture effects keep ballooning my VRAM usage! (Hi WNP!)
That's cause they set the texture of each mesh renderer they encounter, meaning they create a new Material for each object they hit. This is probably a memory leak, but it's a memory leak that's fixable by reloading the scene.
Originally these effects loaded their textures and set the textures of each material they encounter, but that made them persist between scenes, and one of my goals with this mod is to make no changes that are not reversible via a scene change, so they create new materials which are deleted on scene change/reload.
Vine boom sound effects keeps going after it ends! And it's inconsistent in what it does do!
It was a bitch to even do what it currently does, so count your blessings.
No, but for real, it doesn't look for inactive gameobjects, which I may change in the future.
Does Get Fucking Doxxed show my real IP?
No, run it again and find out. It generates a random, yet valid, IP every time it's ran, with 4 segments each containing a number between 0 and 255. And then it does spinnies cause I thought it was funny. And then Vine boom sound effect, also, because I thought it was funny.
The music effects are too loud/overwhelming!
They obey your music mixer volume setting, so decrease that and the music will go adios.
An effect doesn't work on the Oculus version of the game!
Please tell me what effect it is! Give me a log, or send me the first few lines of the error, where it says "[ERROR]" and the first few "at BWChaos.Effects..."
I try to make the mod compatible between the Steam and Oculus versions, but I'm not Rich Uncle Pennybags, so I can't buy the game multiple times for the niche of people that use an Oculus copy, but if you help me test, then we can all sing Kumbaya.
Code modders: occasional help and ideas (shoutouts to trev for rewriting my original code, creating a better groundwork to base Chaos off of)
Sychke: Testing the Twitch bot and providing much needed testing and feedback.
Alfie: Making the mod's icon, over 4 months go, in July. Sorry it took me this long!
ZCubed & Lakatrazz: Making Entanglement so I don't have to make my own way of sending data over the wire.
GS: IDK if he wants to be credited but he helped me test earlier versions of the mod, on both codebases Legacy and Rewrite, as well as helping me test Entanglement syncing.
Chap: Making ModThatIsNotMod, actually nah screw that guy for making his namespace so damn long.
MelonLoader Team: Making a great framework for mod development, including persistent data/preferences, coroutine running, IL2CPP type injection, automatic harmony instance creation and patching, and of course, being the first universal Unity modloader that could mods in IL2CPP games. Oh and, including a zip file library that I could yoink use.
Samboy: I haven't directly interacted with them but Tomlet is great and I'm using it for a personal project and I don't think I'll return to JSON, and CPP2IL, while not perfect, is magic for what it's already capable of.
If you want to add another effect, by all means feel free to do so. Make a Pull Request on the GitHub repo and add a new effect.
If you want to change the UI, you can make a PR for that too, since the Unity project I use for building the UI is in the git repo too.
If you want to add a new image, instruction, or video, do that through the Unity project too. (Or just send it in the BW server's meme channel and ping me to add it, and I may do it)
I don't have a code of coduct or anything, so feel free to evade taxes and stuff after making a PR.