Mega Man Arena · handler “MegaMan Arena”
Version 2
Release notes
nickname edit fix and UI option.
- Released
- Size
- 1.6 KB
- Downloads
- 45
- Check
- Verified
- SHA-256
- 50cb500f028c68d452f0ff900910d6239fd7e9999c7fe85b4050b7c056353917
Files 1
| Path | Size |
|---|---|
| handler.js | 5.8 KB |
handler.js
Plain textHub.Handler.Version = 2; // Released at https://hub.splitscreen.me/ on Mon May 05 2025 06:46:07 GMT+0000 (Coordinated Universal Time).
Hub.Handler.Id = "Ju7wDz5zEcaD6oKK3";
Hub.Maintainer.Name = "Talos91";
Hub.Maintainer.Id = "eeL7HAz8zJovChWw4";
var answers1 = ["1", "2", "4", "3"];
Game.AddOption(
"Select the number of xinput controllers per instance (max 4):",
"If you select 2 just launch 2 instances for example, read the handler notes first, set gamepads to xinput only in the game options if you get double input.",
"Gamepads",
answers1
);
Game.ExecutableContext = ["data.win"];
Game.FileSymlinkExclusions = ["xinput1_3.dll"];
Game.FileSymlinkCopyInstead = ["options.ini"];
Game.UseNucleusEnvironment = true;
Game.HandlerInterval = 100;
Game.SymlinkExe = false;
Game.SymlinkGame = true;
Game.SymlinkFolders = true;
Game.ExecutableName = "MegaManArena.exe";
Game.GUID = "Mega Man Arena";
Game.GameName = "Mega Man Arena";
Game.MaxPlayers = 4;
Game.MaxPlayersOneMonitor = 4;
Game.HideTaskbar = false;
Game.Hook.ForceFocus = false;
Game.Hook.ForceFocusWindowName = "Mega Man Arena";
Game.FakeFocus = true;
Game.FakeFocusInterval = 5000;
Game.SendFakeFocusMsg = true;
Game.HookFocus = false;
Game.RefreshWindowAfterStart = false;
Game.ResetWindows = true;
Game.SetWindowHook = true;
Game.Hook.DInputEnabled = false;
Game.Hook.XInputEnabled = true;
Game.SupportsKeyboard = true;
Game.Hook.CustomDllEnabled = false;
Game.XInputPlusDll = ["xinput1_3.dll"];
Game.UserProfileSavePath = "AppData\\Local\\MegaManArena";
Game.Description =
'IMPORTANT: Set your main game to windowed before running this. Host an online game in one instance and in the others in "Mode:" choose direct ip, select join, write 127.0.0.1 and press enter in your keyboard to join, click on or alt-tab to an instance to use the keyboard, if you can not connect more than 2 players exit the room in one instance, join with the instance that could not connect then join again with the instance that exited. If the game windows resize or stretch on their own after you finish a match or when you get the p2p warning (select do not show again) use the Nucleus Co-op shortcut CTRL+T twice to fix them. The game already has 4 players local multiplayer but with this handler each player gets his own screen and you can play splitscreen+online.';
Game.PauseBetweenStarts = 25;
Game.Play = function() {
var VideoConfig = Context.EnvironmentPlayer + Context.UserProfileSavePath + "\\mmaonlineprofile.ini";
Context.ModifySaveFile(VideoConfig, VideoConfig, Nucleus.SaveType.INI, [new Nucleus.IniSaveInfo("Profile", "Name", '"' + Context.ToUpperCase(Player.Nickname) + '"')]);
var gamepads = Context.Options["Gamepads"];
if (gamepads == "2") {
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", " "),
new Nucleus.IniSaveInfo("ControllerNumber", "Controller4", " ")
]);
}
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", " "),
new Nucleus.IniSaveInfo("ControllerNumber", "Controller4", " ")
]);
}
}
if (gamepads == "3") {
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", "3"),
new Nucleus.IniSaveInfo("ControllerNumber", "Controller4", " ")
]);
}
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", "4"),
new Nucleus.IniSaveInfo("ControllerNumber", "Controller2", " "),
new Nucleus.IniSaveInfo("ControllerNumber", "Controller3", " "),
new Nucleus.IniSaveInfo("ControllerNumber", "Controller4", " ")
]);
}
}
if (gamepads == "4") {
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", "3"),
new Nucleus.IniSaveInfo("ControllerNumber", "Controller4", "4")
]);
}
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", "1"),
new Nucleus.IniSaveInfo("ControllerNumber", "Controller2", "2"),
new Nucleus.IniSaveInfo("ControllerNumber", "Controller3", "3"),
new Nucleus.IniSaveInfo("ControllerNumber", "Controller4", "4")
]);
}
}
};