Payday 2 · handler “PAYDAY2”
Version 14
Release notes
added handler notes.
- Released
- Size
- 496 KB
- Downloads
- 61
- Check
- Verified
- SHA-256
- 5517ddcb3eb1094dd4d2f848ffd076c0c0fbb89da036a7b48f09941c4aecae5f
Files 8
| Path | Size |
|---|---|
| handler.js | 9.3 KB |
| Payday2/dinput8.dll | 332 KB |
| Payday2/steam_settings/achievements.json | 358 KB |
| Payday2/steam_settings/custom_broadcasts.txt | 61 B |
| Payday2/steam_settings/default_items.json | 73 KB |
| Payday2/steam_settings/DLC.txt | 5.5 KB |
| Payday2/steam_settings/http/accounts.starbreeze.com/iam/oauth/token | 473 B |
| Payday2/steam_settings/items.json | 5.6 MB |
handler.js
Plain textHub.Handler.Version = 14; // Released at https://hub.splitscreen.me/ on Mon Aug 05 2024 21:22:49 GMT+0000 (Coordinated Universal Time).
Hub.Handler.Id = "o8ixYAJ9Q382LJfLB";
Hub.Maintainer.Name = "Talos91";
Hub.Maintainer.Id = "eeL7HAz8zJovChWw4";
var answers1 = ["No", "Yes"];
Game.AddOption(
"Disable multiple keyboards/mice?",
"Disables the multiple keyboards/mice Proto Input hooks so you can play with only one kb/mouse with the instance focused, ONLY use if the mkbs support is not working correctly for you or crashing the game.",
"Hooks",
answers1
);
Game.KillMutex = ["Overkill Engine Game"];
Game.DirSymlinkExclusions = ["steam_settings"];
Game.DirExclusions = ["steam_settings", "settings"];
Game.FileSymlinkExclusions = [
//"steam_api.dll",
"steam_appid.txt",
"local_save.txt",
"winmm.dll",
"dinput8.dll",
"xinput1_3.dll"
];
Game.KillMutexType = "Event";
Game.UseNucleusEnvironment = true;
Game.NeedsSteamEmulation = false;
Game.UseGoldberg = true;
Game.GoldbergNoLocalSave = true;
Game.GoldbergIgnoreSteamAppId = true;
Game.UseSteamless = true;
Game.SteamlessArgs = "--quiet --keepbind";
Game.SteamlessTiming = 4000;
Game.HandlerInterval = 100;
Game.SymlinkExe = false;
Game.SymlinkGame = true;
Game.SymlinkFolders = true;
Game.ExecutableName = "payday2_win32_release.exe";
Game.SteamID = "218620";
Game.GUID = "PAYDAY 2";
Game.GameName = "PAYDAY 2";
Game.MaxPlayers = 4;
Game.MaxPlayersOneMonitor = 4;
Game.LauncherTitle = "";
Game.StartArguments = "-skip_intro -steamMM";
Game.HideTaskbar = false;
Game.Hook.ForceFocus = true;
Game.Hook.ForceFocusWindowName = "PAYDAY 2";
Game.SendFakeFocusMsg = true;
Game.Hook.DInputEnabled = false;
Game.Hook.XInputEnabled = true;
Game.Hook.XInputReroute = false;
Game.XInputPlusDll = ["xinput1_3.dll"];
Game.Hook.CustomDllEnabled = false;
Game.UserProfileSavePath = "AppData\\Roaming\\Goldberg SteamEmu Saves\\218620\\remote";
Game.UserProfileConfigPath = "AppData\\Local\\PAYDAY 2";
Game.UserProfileSavePathNoCopy = true;
Game.UserProfileConfigPathNoCopy = false;
Game.Description =
"Steam version only. To connect the instances select Crime net, select a mission and host a game then the others can just select quick play to join (reduce the minimum level required). If you use keyboards/mice press the END key once to lock the input for all instances to have their own cursor and keyboard, you need to left click each mouse to make the emulated cursors appear after locking the input. Press the END key again to unlock the input when you finish playing.";
Game.PauseBetweenContextAndLaunch = 5;
Game.PauseBetweenStarts = 20;
//USS deprecated options:
Game.HookSetCursorPos = false;
Game.HookGetCursorPos = false;
Game.HookGetKeyState = false;
Game.HookGetAsyncKeyState = false;
Game.HookGetKeyboardState = false;
Game.HookFilterRawInput = false;
Game.HookFilterMouseMessages = false;
Game.HookUseLegacyInput = false;
Game.HookDontUpdateLegacyInMouseMsg = false;
Game.HookMouseVisibility = false;
Game.InjectHookXinput = false;
Game.SendNormalMouseInput = false;
Game.SendNormalKeyboardInput = false;
Game.SendScrollWheel = false;
Game.ForwardRawKeyboardInput = false;
Game.ForwardRawMouseInput = false;
Game.HookReRegisterRawInput = false;
Game.HookReRegisterRawInputMouse = false;
Game.HookReRegisterRawInputKeyboard = false;
Game.DrawFakeMouseCursor = false;
//ProtoInput:
Game.SupportsMultipleKeyboardsAndMice = true;
Game.ProtoInput.InjectStartup = true;
Game.ProtoInput.InjectRuntime_RemoteLoadMethod = false;
Game.ProtoInput.InjectRuntime_EasyHookMethod = false;
Game.ProtoInput.InjectRuntime_EasyHookStealthMethod = false;
Game.LockInputAtStart = false;
Game.LockInputSuspendsExplorer = true;
Game.ProtoInput.FreezeExternalInputWhenInputNotLocked = true;
Game.LockInputToggleKey = 0x23;
Game.ProtoInput.RenameHandlesHook = false;
Game.ProtoInput.RenameHandles = [];
Game.ProtoInput.RenameNamedPipes = [];
Game.ProtoInput.RegisterRawInputHook = true;
Game.ProtoInput.GetRawInputDataHook = true;
Game.ProtoInput.MessageFilterHook = true;
Game.ProtoInput.GetCursorPosHook = true;
Game.ProtoInput.SetCursorPosHook = true;
Game.ProtoInput.GetKeyStateHook = true;
Game.ProtoInput.GetAsyncKeyStateHook = true;
Game.ProtoInput.GetKeyboardStateHook = true;
Game.ProtoInput.CursorVisibilityHook = true;
Game.ProtoInput.ClipCursorHook = true;
Game.ProtoInput.FocusHooks = true;
Game.ProtoInput.DrawFakeCursor = false;
Game.ProtoInput.ClipCursorHookCreatesFakeClip = true;
Game.ProtoInput.EnableToggleFakeCursorVisibilityShortcut = false;
Game.ProtoInput.DontShowCursorWhenImageUpdated = false;
Game.ProtoInput.RawInputFilter = true;
Game.ProtoInput.MouseMoveFilter = false;
Game.ProtoInput.MouseActivateFilter = true;
Game.ProtoInput.WindowActivateFilter = true;
Game.ProtoInput.WindowActvateAppFilter = true;
Game.ProtoInput.MouseWheelFilter = true;
Game.ProtoInput.MouseButtonFilter = true;
Game.ProtoInput.KeyboardButtonFilter = true;
Game.ProtoInput.SendMouseWheelMessages = true;
Game.ProtoInput.SendMouseButtonMessages = true;
Game.ProtoInput.SendMouseMovementMessages = true;
Game.ProtoInput.SendKeyboardButtonMessages = true;
Game.ProtoInput.XinputHook = false;
Game.ProtoInput.UseOpenXinput = false;
Game.ProtoInput.MultipleProtoControllers = false;
Game.ProtoInput.EnableFocusMessageLoop = false;
//Game.ProtoInput.FocusLoopIntervalMilliseconds = 5;
//Game.ProtoInput.FocusLoop_WM_ACTIVATE = true;
//Game.ProtoInput.FocusLoop_WM_ACTIVATEAPP = true;
//Game.ProtoInput.FocusLoop_WM_NCACTIVATE = true;
//Game.ProtoInput.FocusLoop_WM_SETFOCUS = true;
//Game.ProtoInput.FocusLoop_WM_MOUSEACTIVATE = true;
Game.ProtoInput.BlockedMessages = [0x0008]; // Blocks WM_KILLFOCUS.
Game.Play = function() {
//var path = "%USERPROFILE%\\AppData\\Local\\PAYDAY 2\\renderer_settings.xml";
var path = Context.EnvironmentPlayer + Context.UserProfileConfigPath + "\\renderer_settings.xml";
Context.ChangeXmlAttributeValue(path, "//d3d_device", "resolution", Context.Width + " " + Context.Height);
Context.ChangeXmlAttributeValue(path, "//d3d_device", "windowed", "true");
Context.ChangeXmlAttributeValue(path, "//d3d_device", "aspect_ratio", Context.AspectRatioDecimal);
Context.CopyFolder(Context.ScriptFolder + "\\steam_settings", Context.GetFolder(Nucleus.Folder.InstancedGameFolder) + "\\steam_settings");
//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 = ["218620"];
Context.WriteTextFile(appid, lines);
var groups = Context.GetFolder(Nucleus.Folder.InstancedGameFolder) + "\\steam_settings\\subscribed_groups.txt";
var lines = [
"103582791433980119",
"103582791438562929",
"103582791441335905",
//"103582791435633447",
//"103582791441335905",
"103582791460014708"
];
Context.WriteTextFile(groups, lines);
var interfaces = Context.GetFolder(Nucleus.Folder.InstancedGameFolder) + "\\steam_interfaces.txt";
var lines = [
"SteamClient017",
"SteamGameServer012",
"SteamGameServerStats001",
"SteamUser018",
"SteamFriends015",
"SteamUtils007",
"SteamMatchMaking009",
"SteamMatchMakingServers002",
"STEAMUSERSTATS_INTERFACE_VERSION011",
"STEAMAPPS_INTERFACE_VERSION007",
"SteamNetworking005",
"STEAMREMOTESTORAGE_INTERFACE_VERSION013",
"STEAMSCREENSHOTS_INTERFACE_VERSION002",
"STEAMHTTP_INTERFACE_VERSION002",
"STEAMUNIFIEDMESSAGES_INTERFACE_VERSION001",
"STEAMUGC_INTERFACE_VERSION007",
"STEAMAPPLIST_INTERFACE_VERSION001",
"STEAMMUSIC_INTERFACE_VERSION001",
"STEAMMUSICREMOTE_INTERFACE_VERSION001",
"STEAMHTMLSURFACE_INTERFACE_VERSION_003",
"STEAMINVENTORY_INTERFACE_V001",
"SteamController003",
"STEAMVIDEO_INTERFACE_V001"
];
Context.WriteTextFile(interfaces, lines);
var hooks = Context.Options["Hooks"];
if (hooks == "Yes") {
Game.ProtoInput.InjectStartup = false;
Game.ProtoInput.RegisterRawInputHook = false;
Game.ProtoInput.MessageFilterHook = false;
if (Context.HasKeyboardPlayer == true) {
//Game.FakeFocus = true;
//Game.FakeFocusInterval = 50000;
} else {
Game.FakeFocus = true;
Game.FakeFocusInterval = 8000;
Game.SetForegroundWindowElsewhere = true;
}
}
if (hooks == "No") {
var savePath = (Context.SavePath = Context.GetFolder(Nucleus.Folder.InstancedGameFolder) + "\\dinput8.dll");
var savePkgOrigin = System.IO.Path.Combine(Game.Folder, "dinput8.dll");
System.IO.File.Copy(savePkgOrigin, savePath, true);
}
Game.ProtoInput.OnInputLocked = function() {
for (var i = 0; i < PlayerList.Count; i++) {
var player = PlayerList[i];
ProtoInput.StartFocusMessageLoop(player.ProtoInputInstanceHandle, 0, true, true, true, false, false);
System.Threading.Thread.Sleep(1000);
ProtoInput.StopFocusMessageLoop(player.ProtoInputInstanceHandle);
}
};
Game.ProtoInput.OnInputUnlocked = function() {
for (var i = 0; i < PlayerList.Count; i++) {
var player = PlayerList[i];
ProtoInput.StartFocusMessageLoop(player.ProtoInputInstanceHandle, 8000, true, true, true, false, false);
}
};
};