Say No! More

Say No! More

Not enough ratings
Saying No to 99,999 nos!
By Yale Lowe
Modding the game to make the greatest no shout of all time: say no 100000 times in a single blast.
   
Award
Favorite
Favorited
Unfavorite
Saying NO like no man has No'd before
Couple tools you'll need for this.

Check out MelonLoader on github, and install the latest version. The way it works is you extract the .zip in the releases, and then run the .exe. You will select SayNo!More in the list of Steam Games (you may have to manually select, but I didn't). This will add a bunch of folders to the install directory of the game when you browse the local files.

Next, you'll need either VS Code or visual studio. I used VS Code for this because visual studio is yucky. But also VS Code is yucky, but oh well. You need two extensions:

1. C# from Microsoft. Can easily grab that bad boy (actually installs 2 extensions, I believe)
2. OmniSharp -- just search it, there's only one.

Once you've got those bad boys, now you need to make a new project folder and we need to make two files. By the way, I just called my project "SayNoMod". The two files you need to make are:

1. SayNoMod.csproj
2. SayNoMod.cs

In the first file, you need reference some key .dll files from the game files themselves and MelonLoader. This was really annoying for me, and I had to just search around for the files. But check out the following paths and edit the start of them for your system. The endings should be like mine anyways (Windows 11 btw):

<Project Sdk="Microsoft.NET.Sdk"> <PropertyGroup> <TargetFramework>net472</TargetFramework> <OutputType>Library</OutputType> <RootNamespace>SayNoMod</RootNamespace> </PropertyGroup> <ItemGroup> <Reference Include="MelonLoader"> <HintPath>EDITMEHERE...\steamapps\common\SayNo!More\MelonLoader\net35\MelonLoader.dll</HintPath> </Reference> <Reference Include="UnityEngine"> <HintPath>EDITMEHERE...\steamapps\common\SayNo!More\SNM_Data\Managed\UnityEngine.dll</HintPath> </Reference> <Reference Include="Assembly-CSharp"> <HintPath>EDITMEHERE...\steamapps\common\SayNo!More\SNM_Data\Managed\Assembly-CSharp.dll</HintPath> </Reference> <Reference Include="UnityEngine.CoreModule"> <HintPath>EDITMEHERE...\steamapps\common\SayNo!More\SNM_Data\Managed\UnityEngine.CoreModule.dll</HintPath> </Reference> <Reference Include="UnityEngine.InputLegacyModule"> <HintPath>EDITMEHERE...\steamapps\common\SayNo!More\SNM_Data\Managed\UnityEngine.InputLegacyModule.dll</HintPath> </Reference> </ItemGroup> </Project>

Okay, now go to the other file, SayNoMods.cs, and use the following mod code:

using System.Reflection; using MelonLoader; using UnityEngine; [assembly: MelonInfo(typeof(SayNoMod), "SayNoMod", "1.0.0", "NoIWontSayNoThatManyTimes")] [assembly: MelonGame("Thunderful Publishing", "SayNoMore")] public class SayNoMod : MelonMod { public override void OnUpdate() { if (Input.GetKeyDown(KeyCode.F1)) { var playerNo = GameObject.FindObjectOfType<PlayerNo>(); if (playerNo != null) { // Get a reflection handle for the private "SayNo()" method. MethodInfo sayNoMethod = typeof(PlayerNo).GetMethod("SayNo", BindingFlags.Instance | BindingFlags.NonPublic); if (sayNoMethod == null) { LoggerInstance.Msg("Could not find private method SayNo() via reflection."); return; } // Call it 100,000 times. for (int i = 0; i < 100000; i++) { sayNoMethod.Invoke(playerNo, null); } LoggerInstance.Msg("Called PlayerNo.SayNo() 100,000 times via reflection!"); } else { LoggerInstance.Msg("PlayerNo not found!"); } } } }

Now go to the terminal in VS Code and run: `dotnet build`

Hopefully this should be successfull. When it is, open up the folder which it mentions (i.e. SayNoMod succeeded (0.2s) → bin\Debug\net472\SayNoMod.dll) and copy JUST the SayNoMod.dll and place it in the mods folder that MelonLoader created in your base-game files.

And boom, now just launch the game, and MelonLoader should say that the mod is detected and loaded (in the MelonLoader console). Now all you have to do is start up a level (or the language select screen which also lets you say no) and then press F1. Note, you could change this keybind in the mod code, but why bother? As soon as you do, your character will begin saying NO at a faster rate than anyone though possible. Nothing displays on screen though. We're saying no at a speed that can't even be detected by the human eye. Give it like 5 seconds and you'll have all 100K No's said. Ez.

So, I guess this answers the question: "will I say NO 100K times by hand?". NO. NO. NO I WON'T. NO. ABSOLUTELY NOT. NO WAY. NUH UH. NOOO! NOOOOOOO! NOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO