Skip to content
Beta: this is a preview of the new SplitScreen.Me. Data may be reset before launch.

The Showdown Effect · handler “TShowdownE”

Version 1

Release notes

First Release

Released
Size
2.1 KB
Downloads
9
Check
Verified
SHA-256
0728d312d4b78ffe0fbda2518f6e0935068d462c2397b33bda8d8706ad0b27b3
Download v1 (.nc)All versions

Files 1

PathSize
handler.js5.6 KB

handler.js

Plain text
Hub.Handler.Version = 1; // Released at https://hub.splitscreen.me/ on Sun Jun 13 2021 04:54:32 GMT+0000 (UTC).
Hub.Handler.Id = "G2H3AJ6sfrZfFghmu";
Hub.Maintainer.Name = "Talos91";
Hub.Maintainer.Id = "eeL7HAz8zJovChWw4";

Game.ExecutableContext = ["cg.dll"];
Game.DirSymlinkExclusions = ["binaries\\steam_settings"];
Game.FileSymlinkExclusions = ["steam_api.dll", "steam_appid.txt", "steam_interfaces.txt", "stats.txt", "start.bat"];
Game.UseNucleusEnvironment = true;
Game.NeedsSteamEmulation = false;
Game.UseGoldberg = true;
Game.HandlerInterval = 100;
Game.SymlinkExe = false;
Game.SymlinkGame = true;
Game.SymlinkFolders = true;
Game.ExecutableName = "showdown.exe";
Game.SteamID = "204080";
Game.GUID = "The Showdown Effect";
Game.GameName = "The Showdown Effect";
Game.MaxPlayers = 8;
Game.MaxPlayersOneMonitor = 8;
Game.BinariesFolder = "binaries";
Game.LauncherTitle = "";
Game.LauncherExe = "binaries\\start.bat";
Game.LauncherExeIgnoreFileCheck = true;
Game.HideTaskbar = false;
Game.Hook.ForceFocus = false;
Game.Hook.ForceFocusWindowName = "The Showdown Effect";
Game.HookFocus = true;
Game.RefreshWindowAfterStart = false;
Game.ResetWindows = true;
Game.Hook.DInputEnabled = false;
Game.Hook.XInputEnabled = false;
Game.Hook.XInputReroute = false;
Game.Hook.CustomDllEnabled = false;
Game.UserProfileSavePath = "AppData\\Roaming\\Goldberg SteamEmu Saves\\204080";
Game.UserProfileConfigPath = "AppData\\Roaming\\Arrowhead\\TheShowdownEffect";
Game.Description =
  "Multiple keyboards and mice only as the game lacks native gamepad support. After all the instances have launched, resized and positioned correctly, press the END key to lock the input for all instances to have their own cursor, make sure all instances are unfocused by alt-tabbing to a third window before locking the input. Press the END key again to unlock the input whe you finish playing. You can also use CTRL+Q to close Nucleus and all its instances. Create a public custom match in one instance and join in the others. So the instances launch and resize correctly make sure you run your main game at least once first and change some graphic settings.";
Game.KeepSymLinkOnExit = false;
Game.PauseBetweenStarts = 30;

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 = true;
Game.LockInputAtStart = false;
Game.LockInputToggleKey = 0x23;

Game.Play = function() {
  var Bat = Context.GetFolder(Nucleus.Folder.InstancedGameFolder) + "\\binaries\\start.bat";
  var lines = ["cd ..\\contents", 'start ..\\binaries\\showdown.exe -bundle-dir "." -ini settings -window-title "The Showdown Effect"'];
  Context.WriteTextFile(Bat, lines);

  if (System.IO.File.Exists(Context.EnvironmentPlayer + Context.UserProfileConfigPath + "\\user_settings.config")) {
    var txtPath = Context.EnvironmentPlayer + Context.UserProfileConfigPath + "\\user_settings.config";
    var dict = [
      Context.FindLineNumberInTextFile(txtPath, "aspect_ratio =", Nucleus.SearchType.StartsWith) + "|aspect_ratio = -1",
      Context.FindLineNumberInTextFile(txtPath, "fullscreen =", Nucleus.SearchType.StartsWith) + "|fullscreen = false",
      Context.FindLineNumberInTextFile(txtPath, "popup_window =", Nucleus.SearchType.StartsWith) + "|popup_window = true"
    ];
    Context.ReplaceLinesInTextFile(txtPath, dict);
  } else {
  }

  var filePath = (Context.filePath = Context.GetFolder(Nucleus.Folder.InstancedGameFolder) + "\\binaries\\steam_settings");
  System.IO.Directory.CreateDirectory(filePath);

  var stats = Context.GetFolder(Nucleus.Folder.InstancedGameFolder) + "\\binaries\\steam_settings\\stats.txt";
  var lines = [
    "lifetime_experience=int=0",
    "experience=int=0",
    "im_not_a_part_of_this_system_progress=int=0",
    "rounds_fired=int=0",
    "rounds_hit=int=0",
    "machinegun_hits=int=0",
    "showdown_kills=int=0",
    "showdown_deaths=int=0",
    "showdown_wins=int=0",
    "showdown_losses=int=0",
    "showdown_playtime=int=0",
    "kills_pistol=int=0",
    "gunslinger_progress=int=0",
    "hobo_progress=int=0",
    "are_you_crazy_progress=int=0",
    "commando_progress=int=0",
    "soldier_progress=int=0",
    "holy_diver_progress=int=0",
    "showdown_total_score=int=0",
    "showdown_times_last_man_standing=int=0",
    "showdown_played_matches=int=0",
    "showdown_rating=int=0"
  ];
  Context.WriteTextFile(stats, lines);

  var interfaces = Context.GetFolder(Nucleus.Folder.InstancedGameFolder) + "\\binaries\\steam_interfaces.txt";
  var lines = [
    "SteamClient012",
    "SteamGameServer011",
    "SteamGameServerStats001",
    "SteamUser016",
    "SteamFriends013",
    "SteamUtils005",
    "SteamMatchMaking009",
    "SteamMatchMakingServers002",
    "STEAMUSERSTATS_INTERFACE_VERSION011",
    "STEAMAPPS_INTERFACE_VERSION005",
    "SteamNetworking005",
    "STEAMREMOTESTORAGE_INTERFACE_VERSION008",
    "STEAMSCREENSHOTS_INTERFACE_VERSION001",
    "STEAMHTTP_INTERFACE_VERSION001"
  ];
  Context.WriteTextFile(interfaces, lines);
};