Risk of Rain 2 · handler “Risk of Rain 2”
Version 6
Release notes
native splitscreen UI option, goldberg update and ton of other improvements.
- Released
- Size
- 665 KB
- Downloads
- 553
- Check
- Verified
- SHA-256
- 40637fbdd0bc99a587366907263112e2d3728d144c2863d5737e6d10cdce5840
Files 2
| Path | Size |
|---|---|
| handler.js | 7.0 KB |
| RiskofRain2/steam_api64.dll | 1.7 MB |
handler.js
Plain textHub.Handler.Version = 6; // Released at https://hub.splitscreen.me/ on Wed Apr 14 2021 20:11:03 GMT+0000 (UTC).
Hub.Handler.Id = "zBbF958JXyHRwdTcb";
Hub.Maintainer.Name = "Talos91";
Hub.Maintainer.Id = "eeL7HAz8zJovChWw4";
var answers1 = ["No", "Yes"];
Game.AddOption("Will you use the game's native splitscreen?", "If yes only launch two vertical instances, read script notes before using.", "Native", answers1);
Game.DirSymlinkExclusions = ["Risk of Rain 2_Data\\Config", "Risk of Rain 2_Data\\Plugins"];
Game.FileSymlinkExclusions = ["steam_api64.dll", "steam_appid.txt", "xinput1_3.dll", "xinput1_4.dll", "xinput9_1_0.dll"];
Game.FileSymlinkCopyInstead = ["config.cfg", "server_startup.cfg"];
Game.UseNucleusEnvironment = true;
Game.UseGoldberg = true;
Game.GoldbergNoLocalSave = true;
Game.HandlerInterval = 100;
Game.SymlinkExe = false;
Game.SymlinkGame = true;
Game.ExecutableName = "Risk of Rain 2.exe";
Game.SteamID = "632360";
Game.GUID = "Risk of Rain 2";
Game.GameName = "Risk of Rain 2";
Game.MaxPlayers = 4;
Game.MaxPlayersOneMonitor = 4;
Game.LauncherTitle = "";
Game.Hook.ForceFocus = true;
Game.Hook.ForceFocusWindowName = "Risk of Rain";
Game.FakeFocus = true;
Game.ResetWindows = true;
Game.Hook.DInputEnabled = false;
Game.Hook.XInputEnabled = true;
Game.Hook.XInputReroute = false;
Game.XInputPlusDll = ["xinput1_3.dll", "xinput1_4.dll", "xinput9_1_0.dll"];
Game.Hook.CustomDllEnabled = false;
Game.BlockRawInput = false;
//Game.PlayerSteamIDs = [ "76561198134585131","76561198131394153","76561198011792067","76561198043762785"];
Game.UserProfileSavePath = "AppData\\Roaming\\Goldberg SteamEmu Saves\\632360\\remote";
Game.Description =
"To join the same game select multiplayer and select the option copy lobby to clipboard, then in the other instances select join clipboard lobby. If you use keyboards and mice after the instances open press the END key to lock the input for all instances to have their own cursor. Press the END key again to unlock the input. You can also use CTRL+Q to close Nucleus and all its instances. If you want to play with 4 or 3 players in only two instances of the game for better performance select yes in the Nucleus UI option for native splitscreen. Only launch two vertical instances, you need 3 or 4 gamepads. To enable the game's native splitscreen in each instance press the Ctrl+Alt+` or Ctrl+Alt+ñ keys simultaneously to open the console, write test_splitscreen on it and press enter, alt-tab to an instance to use the keyboard, finally just connect the two instance via the clipboard lobby option, you will notice that each instance has a guest player now.";
Game.KeepSymLinkOnExit = false;
Game.PauseBetweenStarts = 35;
Game.SupportsMultipleKeyboardsAndMice = true;
Game.HookSetCursorPos = true;
Game.HookGetCursorPos = true;
Game.HookGetKeyState = false;
Game.HookGetAsyncKeyState = false;
Game.HookGetKeyboardState = false;
Game.HookFilterRawInput = true;
Game.HookFilterMouseMessages = false;
Game.HookUseLegacyInput = false;
Game.HookDontUpdateLegacyInMouseMsg = false;
Game.HookMouseVisibility = false;
Game.SendNormalMouseInput = true;
Game.SendNormalKeyboardInput = true;
Game.SendScrollWheel = true;
Game.ForwardRawKeyboardInput = false;
Game.ForwardRawMouseInput = false;
Game.HookReRegisterRawInput = true;
Game.HookReRegisterRawInputMouse = true;
Game.HookReRegisterRawInputKeyboard = false;
Game.DrawFakeMouseCursor = false;
Game.LockInputAtStart = false;
Game.LockInputToggleKey = 0x23;
Game.Play = function() {
var Args = (Context.Args = " -screen-fullscreen 0 -popupwindow " + " -screen-width " + Context.Width + " -screen-height " + Context.Height);
Context.StartArguments = Args;
var txtPath = Context.GetFolder(Nucleus.Folder.InstancedGameFolder) + "\\Risk of Rain 2_Data\\Config\\config.cfg";
var dict = [
Context.FindLineNumberInTextFile(txtPath, "intro_skip", Nucleus.SearchType.StartsWith) + "|intro_skip 1;",
Context.FindLineNumberInTextFile(txtPath, "splash_skip", Nucleus.SearchType.StartsWith) + "|splash_skip 1;",
Context.FindLineNumberInTextFile(txtPath, "window_mode", Nucleus.SearchType.StartsWith) + "|window_mode Window;"
//Context.FindLineNumberInTextFile(txtPath, "resolution", Nucleus.SearchType.StartsWith) + "|resolution " + Context.Width + "x" + Context.Height + "x60;",
];
Context.ReplaceLinesInTextFile(txtPath, dict);
Context.EditRegKey("HKEY_CURRENT_USER", "SOFTWARE\\Hopoo Games, LLC\\Risk of Rain 2", "Screenmanager Fullscreen mode_h3630240806", 3, Nucleus.RegType.DWord);
Context.EditRegKey("HKEY_CURRENT_USER", "SOFTWARE\\Hopoo Games, LLC\\Risk of Rain 2", "Screenmanager Resolution Height_h2627697771", Context.Height, Nucleus.RegType.DWord);
Context.EditRegKey("HKEY_CURRENT_USER", "SOFTWARE\\Hopoo Games, LLC\\Risk of Rain 2", "Screenmanager Resolution Width_h182942802", Context.Width, Nucleus.RegType.DWord);
Context.EditRegKey("HKEY_CURRENT_USER", "SOFTWARE\\Hopoo Games, LLC\\Risk of Rain 2", "Screenmanager Resolution Use Native_h1405027254", 0, Nucleus.RegType.DWord);
var savePath = (Context.SavePath = Context.GetFolder(Nucleus.Folder.InstancedGameFolder) + "\\steam_api64.dll");
var savePkgOrigin = System.IO.Path.Combine(Game.Folder, "steam_api64.dll");
System.IO.File.Copy(savePkgOrigin, savePath, true);
if (Context.HasKeyboardPlayer !== true) {
Game.SupportsMultipleKeyboardsAndMice = false;
}
var filePath = (Context.filePath = Context.GetFolder(Nucleus.Folder.InstancedGameFolder) + "\\steam_settings");
System.IO.Directory.CreateDirectory(filePath);
var appid = Context.GetFolder(Nucleus.Folder.InstancedGameFolder) + "\\steam_settings\\steam_appid.txt";
var lines = ["632360"];
Context.WriteTextFile(appid, lines);
var nolay = Context.GetFolder(Nucleus.Folder.InstancedGameFolder) + "\\steam_settings\\disable_overlay.txt";
var lines = [""];
Context.WriteTextFile(nolay, lines);
var native = Context.Options["Native"];
if (native == "Yes") {
if (Context.PlayerID == 0) {
var savePath = Context.GetFolder(Nucleus.Folder.InstancedGameFolder) + "\\XinputPlus.ini";
Context.ModifySaveFile(savePath, savePath, Nucleus.SaveType.INI, [
new Nucleus.IniSaveInfo("ControllerNumber", "Controller1", "1"),
new Nucleus.IniSaveInfo("ControllerNumber", "Controller2", "2"),
new Nucleus.IniSaveInfo("ControllerNumber", "Controller3", "0"),
new Nucleus.IniSaveInfo("ControllerNumber", "Controller4", "0")
]);
}
if (Context.PlayerID == 1) {
var savePath = Context.GetFolder(Nucleus.Folder.InstancedGameFolder) + "\\XinputPlus.ini";
Context.ModifySaveFile(savePath, savePath, Nucleus.SaveType.INI, [
new Nucleus.IniSaveInfo("ControllerNumber", "Controller1", "3"),
new Nucleus.IniSaveInfo("ControllerNumber", "Controller2", "4"),
new Nucleus.IniSaveInfo("ControllerNumber", "Controller3", "0"),
new Nucleus.IniSaveInfo("ControllerNumber", "Controller4", "0")
]);
}
}
if (native == "No") {
}
};