=================================================================
Multi-Patch Tool Changelog
Author: DryreL (https://www.nexusmods.com/profile/DryreL)
Game: Gears of War 3 Jacinto Build v1.1.1
NexusMods Page: https://www.nexusmods.com/gearsofwar3/mods/27
=================================================================

v0.3.4
- NEW (experimental): Online Campaign co-op through Steam (new installer question and step 34). JacintoNet (Steamworks SDK  version 1.65), a wsock32.dll that the game loads at start, runs Steam as Spacewar (480) and carries the game traffic to Steam friends over Steam P2P, so no port forwarding or VPN is needed. The host presses F8 in game (or uses the Steam overlay) to invite; the friend accepts and his game joins automatically. Both players need the option and the same tool version (checked). It is the first installer question (default: yes). Tested between two PCs: invite from the main menu (party) and from a running Campaign, play, checkpoints, leaving and rejoining. The Steam status shows where you are (e.g. "Gears 3 Jacinto - Act IV, Chapter 2: Crater", or Main Menu); players in a friend's game show the host's chapter. Joining checks the tool version and the GearGame.u package (a different game build is refused with a message in JacintoNet.log; different installer options such as Keyboard & Mouse / Gamepad are only noted). Reinstalling replaces an older JacintoNet build instead of keeping it as a backup.
 Known: a friend invited from the main menu (party) sees the world grey (textures stay at their lowest resolution) after the host starts the Campaign; start the Campaign first, then invite.
- Answering N to the Steam co-op question now asks 'Switch the Campaign to full offline mode?' (default: no). Yes turns the Campaign listen server off (?nolist): the game opens no network port and nobody can join (no LAN co-op, no Steam invites); split-screen still works. No keeps the listen server, so LAN co-op (open <IP>:7777) still works without Steam (step 30).
- Removed the 'Campaign offline-only' installer question (step 30). The Campaign always keeps its listen server now (needed for co-op); step 30 only removes an old offline-only patch. The 'Connection Lost' error it worked around on Linux / Proton came from the privileged default port 1000, and the installer sets port 7777 for everybody.
- Act 1 Chapter 2 (Abandon Ship): the slow-motion moment in the deck fight never ended. The game slowed to 90 %, then to 80 %, and stayed at 80 % speed (until the main menu) because the 'back to normal speed' command was not connected. It now returns to normal speed after the 90 % part. 
- Act 2 Chapter 1 (Wreckage): removed the placeholder scene that played when either Brumak died (the camera pulled back from the Brumak and a white "BRUMAK DEATH STUB" text box appeared in the middle of the screen). This build has no Brumak death cinematics; the game now goes straight on (first Brumak: the drop-down cinematic, final Brumak: chapter end). Step 31, one link per map in SP_Wreckage_Cine_BrumakDeathA/B.gear; restored by the normal revert.
- Act 4 Chapter 2 (Crater) cable car: walking out of the cable car teleported you back inside again and again (only sprinting through the fence and pressing E at once got you out). The cable car locks everyone who steps on it to itself (the game's moving-platform "clamped base", in Launch.log: "Forcing ... back on clamped base [InterpActor_BusTram_1]") and nothing in the map ever switched that lock off. The lock is now off while you walk around and through the car, on from the button press until the spin ends, and on again for the ride down the cable (three existing Toggle actions also switch the cable car; SP_Char_GondolaRide.gear in _files, step 15, the map is replaced only when it is the known original; restored by the normal revert). Reproduced in game with the log before the fix. Tested in game after the elevator jump: walking in and out before the button, the spin, then leaving the car and going on, no teleport back (the ride down the cable not tested yet).
- Act 5 (Coast): removed a developer brightness hack ('gamma 3', 'IT IS TOO DARK') that ran at every Coast start and made the picture washed out for the rest of the session (default gamma 2.2). New step 36, one link per map; restored by the normal revert.
- Keyboard & Mouse icons: co-op weapon trade and the co-op interaction menu showed the wrong keys. "Accept trade" (and the chainsaw duel prompt) showed T, but the action is on F (melee); the co-op interaction menu (trade weapons, share ammo, trade with an AI squadmate) still showed the gamepad letters A / B / X / Y. They now show Space / F / E / Q, the keys the actions are bound to by default (white letters with a soft shadow). The two blue E key icons are centred. (Warfare_HUD.upk in _files, Keyboard & Mouse choice.) The keys already worked; only the icons were wrong.
- Fixed the pause menu opening Options behind a pop-up. Clicking with the mouse on a pop-up of the pause menu (e.g. "Return to main menu?") also clicked the pause menu item under the cursor, hidden behind the pop-up: every click opened one more Options screen (one Esc each to close them), and Options screens left open after "Leave" kept the keyboard and gamepad in the main menu, so the menu looked frozen. The pause menu now ignores Options / Change Difficulty while a pop-up or another screen covers it (UIScene_Pause in GearGame.u, same-size edits, new step 35). Not tested in game yet.
- Removed the 'Failed to find object Class OnlineSubsystemLive.IpNetDriverLive' warning at every map load: the engine INIs pointed to a Live net driver that does not exist in this exe, so the game always fell back to IpDrv.TcpNetDriver. The installer now sets NetworkDevice=IpDrv.TcpNetDriver directly (same networking).
- Online / LAN Campaign co-op: a player who joins the host's Campaign now plays on the host's difficulty (before, the joining player kept the difficulty saved in his own profile, usually Normal, because he never sees the difficulty screen). Same rule as split-screen Player 2: everybody except the host plays on the host's difficulty. The step 32 block in GearPC.ServerSetDifficulty was rewritten (same size) so it no longer depends on the order of the player list. Tested in game (the joining client got the host's difficulty).
- Tested: Campaign co-op over the network works in this build (two PCs on the same network, host with 'Campaign offline-only' answered N, client console: open <host IP>:7777). Seen working: joining a running chapter, movement / doors / cover, checkpoint save and reload with the client, reviving each other.
- Added the Russian (RUS) community translation to the language list (option 7, Custom Language Code is now 8): https://www.nexusmods.com/gearsofwar3/mods/33. Like the other community translations, install the language pack from NexusMods first; the tool then sets Language=RUS and shows the download link when the pack is not installed.
- HD Textures Pack compatibility (needs pack v1.3): the 4K textures looked exactly like the original ones because the Texture Streaming step (23) kept the stock size caps (1024, specular 512), and answering Yes to the old "Unlock the 4K texture size caps" question could crash the game after the prologue ('Assertion failed: Offset != INDEX_NONE'). The question is gone. The caps are now raised automatically, and only for the texture groups the installed pack phases made safe: Phase 1 -> Character / Weapon / Vehicle, Phase 1 + Phase 2 -> World too (the pack v1.3 installer writes GearGame\Content\HD_TexturePack_Phase<N>.version). Every other group gets its stock value back, also when an older ini backup still held raised caps. HD Textures Pack v1.2 and older are no longer unlocked (they leave stock textures without the fix and crash); the installer tells you to update the pack.
- Texture Streaming step: the VRAM profile matching the detected graphics card is pre-selected (press ENTER). Choosing more VRAM than the card has now shows a warning and asks for confirmation (default: the detected profile): a texture pool bigger than the card causes stutter and late textures, and with the HD Textures Pack the game can run out of video memory. Without detection the default stays 6 GB.
- Uninstall applies the same rule after restoring the backups, so removing the Multipatch Tool never leaves a raised cap behind for a pack that is no longer installed.
- The HD Textures Pack v1.3 no longer ships the GFx menu packages, Warfare_HUD.upk or the WarfareFonts packages, so the two tools never replace each other's files and the install order no longer matters for stability. The pack's own installer sets the safe caps to 4096; run this installer again after installing or updating the pack if you want the caps of your VRAM profile instead.
- New main menu option 5, Changelog: shows changelog.txt page by page inside the tool (read from the file every time; ENTER = next page, Q = back). Uninstall is now 6, Exit 7. Returning from Game Settings, the Keybind Editor or the Changelog clears the screen, so the main menu is at the top again; the version in the title is highlighted.
- Main menu option 3 is now Game Settings (was Graphics Settings). Besides VSync, the run camera shake and the post-process effects it now holds the options the installer used to ask every time: player name, game language, resolution, display mode (fullscreen / windowed), FOV (and which cameras use it), mouse sensitivity, subtitle size (Big = WarfareFonts2x, the default; Normal = WarfareFonts; Default = the game's original font) and a new Subtitles On / Off switch (Off forces subtitles off; On leaves it to the in-game option). R resets every setting to the defaults; S saves and applies at once to the inis, sera.ini, the font package and the launchers, no reinstall needed; the installer applies the saved choices again (first install: native resolution, fullscreen, English, automatic FOV 80 / 65 on ultrawide, big subtitles, VSync off). In the menu VSync sits under Resolution and the run camera shake (On / Off) is listed with the post-process effects. The installer no longer asks these questions. Settings are kept in graphics.json next to the backups (the menu shows the path).
- Keyboard & Mouse, Stats & Awards: the page keys G and R (the LB / RB key icons) did nothing. The two screens that name the shoulder buttons in the script, Player Stats (UIScene_PersonalStats) and the post-game stats (UIScene_PostGameStats), now react to G / R in GearGame.u (4 same-size edits, only in those two screens; the gamepad names in GearPC.UpdateControllerConfig are left alone), and [GFxUI.KeyMap] in GearInput.ini gets G=GAMEPAD_L1 and R=GAMEPAD_R1 for the tab keys at the top of Stats & Awards (re-applied on every install). Tested in game: G / R work. The Installation Verification no longer warns about the missing Enter / Escape lines in [GFxUI.KeyMap] (the game drops them when it rewrites GearInput.ini and the keys work without them: FullKeyboard=1 is what is checked now).
- Stats & Awards, Xbox LIVE screens (all control choices, step 36, GearGame.u, same-size edits): (1) Player Stats: Space / Enter on "VIEW GAMER CARD" froze the game (Not Responding). The call stack of the frozen game showed an endless loop inside the screen's own ActionScript (GFxKeyboardState -> GASKeyCtorFunction::OnKeyDown -> GASActionBuffer::Execute), not UnrealScript. Cause: the only menu item is sent to the screen as unselectable (CanViewGamerCard() is false without an Xbox LIVE id, and the item is drawn greyed out), and the list's "find the next selectable item" loop never ends when nothing can be selected. CanViewGamerCard now returns true and ViewGamercard() skips its body (a jump to the end), so the item can be selected and does nothing (no Xbox LIVE call). Not tested in game yet. (2) Leaderboards tab: choosing a leaderboard showed "READING LEADERBOARDS..." for ever and blocked all input of the screen (the stats read waits for Xbox LIVE, nothing answers on PC). The category selection now shows the game's own sign-in message box (OK closes it) instead of starting the read (UIScene_WarJournal.Callback_OnLeaderboardCategorySelected: the "signed in?" test is always true). The message text is the stock Xbox LIVE one ("To view leaderboards, sign in to Xbox LIVE."). Not tested in game yet. (3) Post-game stats: the Leaderboards page, selecting a player and the Beast leaderboard started the same endless Xbox LIVE read (the input-blocking spinning COG). The game's own "signed in to LIVE?" test (UIScene_PostGameStats.CheckAndPromptForLivePermissions, used by all of them) now always fails, so the sign-in message appears and the Beast page shows "leaderboards unavailable"; the scoreboard, ribbons and medals pages are unchanged.
- Game Settings now keeps every launcher's startup parameters (window mode, VSync, resolution, language) in step: Gears3_Start_Game.bat, Binaries\Win64\StartCampaign.bat, Gears3_Start_Game_Debug.bat and, when they exist, Gears3_Start_Game.sh and Gears3_Start_Game_Debug.sh (also on Windows, for a package shared with Linux users; no .sh file is created on Windows). The debug launchers already read the parameters from the start launcher when they run; their own fallback line is now kept equal too, and the installer's debug launcher step sets it as well.
- Main menu: Verify Installation is now option 2, "Installation Verification" (Keybind Editor 3, Game Settings 4, Credits 5, Changelog 6, Uninstall 7, Exit 8). Before the first installation it asks you to run the installation first. Three new entries below Exit: N = open the NexusMods page (https://www.nexusmods.com/gearsofwar3/mods/27) in the browser, S = Start the Game, SD = Start the Game (Debug); they run Gears3_Start_Game / Gears3_Start_Game_Debug (.bat, .sh on Linux) from the game folder, and say "run the installation first" when that launcher does not exist yet. The Verify Installation entry (was option 6, Uninstall 7, Exit 8) is described next:
- New main menu option 6, Verify Installation (Uninstall is now 7, Exit 8): a read-only audit of what the patch did to the game folder, in the new '_files\verify' folder (Gears3_Multipatch_Verify.ps1; Gears3_Multipatch_Verify.bat on Windows or Gears3_Multipatch_Verify.sh on Linux / SteamOS (needs pwsh, like the tool) start it without the tool). It lists every file that changed against its backup (and every backed up file that did not), checks the tool's own files (GearGame.u variant, maps, packages, DLLs) against the installed copies, and checks the ini settings, texture size caps (the Offset != INDEX_NONE crash guard), launchers and the localization lines against your saved Game Settings. Result levels OK / INFO / WARN / FAIL, a VerifyReport_<date>.txt is saved next to the script. It cannot see inside the byte patches of maps; for those it shows whether the file changed.
- Languages that come with their own fonts (Russian, Korean, Japanese, Chinese, any custom language code) are no longer touched by the subtitle font option: the tool does not copy or restore WarfareFonts / WarfareFonts2x and does not write the SubtitleFontName line for them. Only English, Spanish, Italian and Turkish (the glyphs the tool's fonts cover) use the Subtitle size option. If the tool's font was installed before you chose such a language, run Uninstall once, or install the language pack again afterwards.
- Game Settings (main menu option 4): new setting 'Fullscreen refresh rate'. The game builds its list of fullscreen display modes from MinAllowableRefreshRate / MaxAllowableRefreshRate in [WinDrv.WindowsClient] (both 0 = every mode, the game picks); the new setting lists the Hz your display offers at the chosen resolution and writes the chosen value there (0 = game default, nothing changes). With VSync the frame rate follows the refresh rate: a 100 Hz display that ends up in a 60 Hz mode shows 60 fps, and any frame that takes longer than one refresh makes it drop to half (60 -> 30). In windowed mode the frame rate always follows the Windows desktop refresh rate (Settings > Display > Advanced display); the game cannot change that.

v0.3.3
- Split-screen co-op: the second controller was not added when the first controller pressed Start on the title screen; it only worked when the second controller pressed Start first (then back out and start again with the first one). The main menu only creates a player for a connected controller that is signed in, and the PC version only signs in user 0. Every connected controller now gets a player as soon as the main menu opens or a controller is plugged in (UIScene_FrontEnd.UpdatePlayersAndControllers in GearGame.u, same-size edit, new step 33). The game supports 2 local players; with 3 or more controllers connected it shows its 'two players only' message. Tested in game: Player 2 appears in the main menu when the first controller presses Start.
- Split-screen co-op: when the second controller pressed Start on the title screen it became Player 1. Its profile is the one the PC version cannot read or save, so Player 1's difficulty went back to Normal and campaign progress (chapters, Insane unlock) was not saved. The first controller (the one with the saved profile) now always stays Player 1, whichever controller presses Start (step 33). Tested in game. As on Xbox, the main menu is controlled by Player 1 only; the second controller joins automatically and picks its own line on the difficulty screen.
- Split-screen co-op: Player 2's Campaign difficulty always went back to Normal (only Player 1's choice was kept). Player 2's difficulty is read from Player 2's profile at every map load, and that profile is never saved when the Campaign starts, so the choice on the difficulty screen was lost. In split-screen, Player 2 now copies Player 1's difficulty (GearPC.ServerSetDifficulty in GearGame.u, same-size edit, new step 32). The game's own Arcade rule for this picked the wrong player (the last one created), so it is not used as-is. Player 2 now always plays on Player 1's difficulty: pick Hardcore with Player 1 and both players are on Hardcore. Player 2's own pick on the difficulty screen is ignored. Restored by the normal revert / reinstall. Tested in game (Player 1 Casual, Player 2 Hardcore picked: both players and the squad play on Casual).
- Fixed the Gamepad controls choice installing an outdated GearGame.u. Since the first Keyboard & Mouse install the tool kept a GearGame.u.bak and copied it back when Gamepad was chosen, overwriting the up-to-date GearGame.u from the _files folder, so gamepad players (including everyone playing split-screen co-op with two controllers) lost the script fixes added after that backup was made. The Gamepad choice now keeps the fresh GearGame.u and the stale GearGame.u.bak is deleted (step 6). Reinstall to apply.

v0.3.2
- Act 4 Chapter 2 "Crater" Tower 2 elevator: fixed Marcus and Jace (and the player) falling through the lift and down the shaft when the lift starts (the bug reported by many users, see v0.3.1 "Known"). Measured in game: the car push leaves the two pushers on the east part of the deck, where they end up inside the deck collision, standing on the slab volume under it, so the lift pushes them instead of carrying them and leaves them behind; every attempt to keep them on the deck still failed in game. The lift ride is now skipped: when the lift checkpoint finishes (and also when that checkpoint is loaded, so saves stuck at the lift work again) the game runs its own developer jump to the next section (jump_09_tower2_cable): the squad is moved to the top of the tower at the cable cutting area and the chapter continues from there. The ride and the Gunker fight on the lift are skipped, and the "Push the car" objective is not shown as completed (SP_Char_Tower_2_elevator_S.gear and SP_Char_P.gear, step 15; restored by the normal revert / reinstall). Tested in game: after the push the squad arrives at the top and the chapter continues.
- More missing text lines (same step 9 as the point of interest names): the Active Reload tutorial button labels (GearGame TUTORIALS TUT_ACTIVERELOAD_BUTTON1 / BUTTON2, shown as a raw "?INT?...?" key after failed active reloads) and the three lobby description texts the UI asks for in section GearUISceneFELobby_Party (GameType_Desc, MapSelectType_Desc, WeapSwap_Desc; they existed under UIScene_FrontEnd only). They are added to GearGame.<language> of every installed language; the original files are backed up and restored by the normal revert / reinstall. A full scan of the script sources, the UI ini files and the maps found no other keys that are missing from the English texts. Map objective tags that look like Kismet placeholders (LEVELNAME_OBJ_n, Add_OBJ_n, Complete_OBJ_n, Blimp_OBJ_1) have no text in any language and are left alone.
- Fixed raw text like "?INT?level_poi.POIS.CHAR_POI_T?" in the UI (point of interest names, Q key / look-at prompts, also shown over cutscenes). The maps ask level_poi.<language> [POIS] for names that no language of this build has: CHAR_POI_T (Tower) and CHAR_POI_TE (Tower Entrance) in the Act 1 Char (cable car / tower) chapter, Pipe_POI_1..3 (Pipe) in the Imulsion level, RUSTLUNG_POI_BUTTON / _SILVERBACK in the Rust Lung multiplayer map. Step 9 (missing objective lines) now adds them to every installed language as English text; the original files are backed up and restored by the normal revert / reinstall.
- Hint for the start-up crash 'Fatal error! __DW_D3D9_DwTriovizCreatePixelShader' (reported with and without the tool, Linux / Proton). The game compiles its 3D-TV (Trioviz) shaders when it starts and needs D3DCOMPILER_43.dll and d3dx9_43.dll (DirectX June 2010 runtime, not shipped with the game). Windows: the installer warns when the two DLLs are missing and points to the DirectX End-User Runtime. Linux / SteamOS: Gears3_Start_Game.sh (and the debug script) print the fix when the game exits with an error: protontricks <AppID> d3dcompiler_43 d3dx9_43 (or winetricks). The cause is the missing DLLs; not yet confirmed on the reporter's system.
- Fixed the crash when the HD Textures Pack v1.2 is installed together with the Multi Patch Tool ('Assertion failed: Offset != INDEX_NONE' at the start of a chapter). With the pack detected, the Texture Streaming step raised the texture group size caps (MaxLODSize 4096, LODBias 0), but the pack does not replace every package, so stock textures without their top mip levels were asked for sizes they do not have. The caps now stay at the stock values by default; with the pack installed the installer asks 'Unlock the 4K texture size caps?' (default: No, experimental). Reinstall to apply: the clean ini backups are restored first.
- Fixed the VSync option having no effect: the Texture Streaming step (step 23) runs after the Display step and wrote UseVsync=False into GearEngine.ini / DefaultEngine.ini / BaseEngine.ini / Documents GearEngine.ini, overwriting your choice. It now writes the VSync choice you made.
- New main menu option 3, Graphics Settings (Credits is now 4, Uninstall 5, Exit 6). It collects the display options that used to be installer questions: VSync, the camera shake while running (roadie run) and, new, individual switches for the post-process effects Motion Blur, Depth of Field, Bloom, Lens Flares, Light Shafts, Distortion, Radial Blur, Subsurface Scattering and Separate Translucency (A disables all, E enables all). S saves and applies at once to GearEngine.ini / DefaultEngine.ini / BaseEngine.ini, the Documents GearEngine.ini, the GearPawn / DefaultPawn inis and the launchers (-VSYNC / -NOVSYNC), so no reinstall is needed; turning a setting back on restores the original game value. The choices are saved in _files\graphics.json and re-applied by the installer (VSync off, run camera shake removed and all effects on until you change them). The VSync and camera shake questions are gone from the installer.

v0.3.1
- Act 5 Episode 6 Final Boss (Tempest): after dying and restoring a checkpoint the boss stayed in the flying state forever (it never landed, so the Hammer of Dawn phase never came). Reproduced in game with the debug log: the checkpoint saves the fight logic but not the Tempest's own mouth health (it is set by a Kismet action only at fight start), so the respawned boss had 0 mouth health, every mouth hit hit a 'Divide by zero' in UpdateMouthEffects and the 'took mouth damage' event (which makes it land) never fired. Now every hop (START_MOUTH_HEALTH) also runs the mouth health reset, so after a reload the mouth becomes vulnerable again after the first hop (up to ~15-20 s of hovering); verified in game: checkpoint reload -> 'MOUTH HEALTH DEPLEATED' / 'HOVER INTERRUPTED' fire and the boss lands. Part of step 12 (SP_Rooftop_01b_S.gear, one same-size link edit in TEMPEST_FLIGHT_BEHAVIOR; restored by the normal revert / reinstall). IMPORTANT: a checkpoint saved before this fix still contains the old logic - after installing, restart the chapter (or reach the fight start again) so the checkpoint is re-saved. Stages 2 / 3 after reload were not tested separately.
- Act 4 Chapter 2 "Crater" Tower 2 elevator: players and squadmates fell through the middle of the lift deck after the Gunker (the creature that breaks through the floor) died. When it died the game hid the crate bottom and the invisible floor plate in the middle of the deck and switched the plate's collision off ("floor goes poof"), leaving a hole. That step is now skipped, so the middle stays solid. The plate also only blocked bullets (BlockNonZeroExtent = False), so characters walked through it; it now blocks characters too (SP_Char_Tower_2_elevator_S.gear, step 15; restored by the normal revert / reinstall). Tested in game from the lift-start checkpoint: no fall after the Gunker dies and walking onto the middle of the deck is safe. The earlier step 15 change (the swap at the top of the lift) is kept, but it was not the cause of these falls.
- Act 4 Chapter 2 "Crater" Tower 2 elevator: Marcus and Jace fell through the lift floor during the ride (the reports of "falling a few seconds after the lift starts" and "respawning on the lift and falling again"). The lift's matinee dropped the deck 320 units in half a second when the Gunker lands (20 s) and 384 units in one second at 25 s, faster than characters fall, so they lost the deck and ended up under it and then down the shaft. The deck now holds its height from 20 s until the Gunker is dead and then climbs to the top as before; the Gunker, the squad stumble, the camera shake and the dialogue are unchanged (SP_Char_Tower_2_elevator_S.gear, step 15; restored by the normal revert / reinstall).
- Known (NOT fixed yet): Marcus and Jace, the two who push the counterweight car, can still be left behind when the lift starts and fall down the shaft. The smoothing above does not fix this; still under investigation.
- Fixed the installer stopping at step 27 (Mercy Dom's COG Tags) with "Get-FileHash is not recognized" on systems where the Microsoft.PowerShell.Utility module cannot be loaded. The tool now falls back to its own SHA256 function when Get-FileHash is missing (also used by the map checks of the Mercy tags and the Corpser restoration).
- New startup check: the tool warns when PowerShell is older than 5.1 or when a command it needs cannot be found (a PowerShell module that failed to load), and tells the user what to check (Windows Update for old versions, the PSModulePath variable otherwise). It only warns, the installer keeps going. If you report an installer error, please include the output of $PSVersionTable.

v0.3.0
- Fixed the Players/Friends menu (E key, pre-game lobby and pause menu) not opening on Keyboard & Mouse. The UI scenes only react to the gamepad button name XboxTypeS_X, while a keyboard press arrives as 'E', so the key shown on screen did nothing. The Keyboard & Mouse GearGame.u patch (installer step 6, which already maps Back -> Escape and Start -> Enter) now also maps X -> E in the 10 UI input handlers that use it (Players/Friends, Kick Player, Refresh, Defaults, Delete Save, Change Chapter, Difficulty ...). Reinstall with Keyboard & Mouse to apply; the Gamepad choice restores the original GearGame.u as before. Not tested in-game yet.
- [ALL CREDIT: LukeBoya] Act 2 Chapter 4 (Mother Corpser): the whole boss encounter is now a restored, retail-style fight instead of a patched one. It replaces every earlier Corpser fix of this tool (map patch, stand-in characters patch and the GearGame.u AI patches). The restoration was contributed by another developer and is still an interim version.
  - Egg chamber and waves: hatchling / teen waves, a pressure wave of babies after each shot eye, three ceiling-collapse intermissions with dust and roars, the Mother-intro fade.
  - Four eyes, four pillars: the eyes are counted properly (no more fight ending after the first eye, no more soft-lock where she ran around forever after the fourth eye), each of the four pillars collapses on its own with new breakup effects, then the timed escape (25 s countdown, camera hint to the gate, fail fade if you are crushed), objective "Escape the Mother's lair" and the outro / hand-off to the next chapter.
  - Fixed the Torque Bow and eye-hit handling on the Mother (GearPawn.DoDamageEffects, GetHitBoneIndex and ShouldTakeDamage in GearGame.u; Mother only).
  - Fixed duplicate pillars in the outro cinematic and the black, unlit stand-in characters at the cave entrance.
  - Installs 4 maps (SP_Badlands_13_S, SP_Badlands_Cine_Corpser_Outro, SP_Badlands_Cine_EggRoom, SP_Badlands2_P) and 4 new packages (CorpserRestor_Audio, _BattleAudio, _InterwaveFX, _PillarChunks, in GearGame\Content). They are installed together or not at all; the original files are backed up and Uninstall restores them and removes the new packages. The maps are only replaced when they are the original Jacinto v1.1.1 files (or an earlier build of our fix); anything else is skipped with a warning.
  - A checkpoint saved while the boss room was loaded holds the old level logic and crashes the game when loaded with the restored fight. Only when the restoration is installed for the first time, such a checkpoint (GearsCheckpoint*.sav) is set aside in _files\CheckpointStash; normal re-installs and installs without such a save never touch your checkpoints. Pick Act 2 Chapter 4 again afterwards. Uninstall removes saves made with the restored fight and puts the old checkpoint back.
  - Known gaps of this interim restoration: temporary Torque Bow pickup in place of the Boomshot, the four glowing eyes are missing in the Mother entrance cinematic, the rear gate is open there.
- The packaged GearGame.u now contains the three Mother eye-hit script exports (the file is 29 bytes larger). Nothing else in it changed.

v0.2.9
- HUD Scaling is now an installer option instead of an automatic patch (Display step, after the FOV questions). Press ENTER (default: Yes) to install it: the HUD (objective text at the top left, weapon / ammo box, crosshair, squad icons ...) scales with the resolution and looks bigger on 1080p / 1440p / 4K. Answer N to keep the original pixel size: the higher your screen resolution, the smaller the HUD elements become. The choice only controls the GearGame.exe HUD hook (step 8); reinstalling restores the original exe first, so you can switch at any time.
- FOV option: the FOV you enter now applies to the default gameplay camera only (GameplayCam_Default: walking / exploring). Before, every camera mode was overwritten with the same value, which removed the original per-mode FOV (aiming 50, cover 95, roadie run 105, vehicles, ...) so aiming no longer zoomed and sprinting lost its speed effect. A new question lets you choose: [1] default camera only (default, recommended) or [2] every camera mode (the old behavior). Reinstall to apply.
- New: Keybind Editor (main menu option 2; Uninstall is now option 4, Exit is 5). Lists the keyboard & mouse actions (move, cover / roll, crouch, fire, aim, melee, reload, zoom, pick up, point of interest, squad commands, weapon slots, grenade, pistol, previous / next weapon, scoreboard), lets you rebind each one by typing the new key (letters, digits, F1-F12, Space, Shift, Ctrl, Tab, mouse buttons Mouse4 / Mouse5, mouse wheel ...), swaps the keys automatically when the new key is already used by another action, and writes the change to GearInput.ini, DefaultInput.ini and the Documents GearInput.ini (backed up first). Extra keys of an action (thumb mouse button for Reload, middle mouse for Zoom) stay; Pause / Escape stay reserved. Your choices are saved in _files\keybinds.json and re-applied automatically when you run the installer again; 'R' in the editor resets everything to the game defaults.
- The tool no longer has to be inside the game folder. Reported by several users: "The Multi Patch Tool is in the wrong location" even though the files were next to Binaries / Engine / GearGame (the files were not inside a folder named exactly Gears3_Multipatch_Tool). The .bat / .sh no longer check the location; when the tool cannot find the game around it (run from an archive, Desktop, Documents, any folder), the script opens a Windows folder picker (Linux: asks for the path) to select the Gears of War 3 folder, and keeps asking until a folder with Binaries\Win64\GearGame.exe is chosen. You can pick the game folder, its parent, or Binaries\Win64 by mistake.
- A package extracted file by file (no _files folder, all data files in one folder next to the tool script) now works too; the data files are read from _files when it exists, otherwise from the tool folder itself. If the data files are really missing the installer still stops with the download message.
- When the tool runs from outside the game folder, the installation backups are stored in the game folder (Gears3_Multipatch_Tool\_files\Backups) instead of the temporary / download folder, so a later Uninstall / reinstall from the normal tool folder can still restore them.
- Fixed the FOV setting looking too high on normal (16:9 / 16:10) screens: the tool forced AspectRatioAxisConstraint=AspectRatio_MaintainYFOV (vertical FOV) in GearEngine.ini / DefaultEngine.ini / BaseEngine.ini, so any value (e.g. 80) showed a much wider horizontal view than the original game, whose default is AspectRatio_MaintainXFOV (horizontal FOV). The game default MaintainXFOV is now kept for screens narrower than 2:1; MaintainYFOV is used only on ultrawide (2:1 and wider), where the 65 FOV recommendation still applies. Reinstall to apply (the clean ini backups are restored first).
- Faster game start: every launch tried to connect to Epic's internal performance database (production-db, Provider=sqloledb) and waited for the timeout (~18 s) before loading continued. bUseTaskPerfTracking and bUseTaskPerfMemDatabase are now set to FALSE in GearEngine.ini / DefaultEngine.ini / BaseEngine.ini and the Documents GearEngine.ini (Display step). A tester measured the main menu loading in ~10.7 s instead of ~28.5 s, and the DevDataBase lines are gone from the log.
- Linux / SteamOS: Gears3_Multipatch_Tool.sh no longer stops with 'PowerShell for Linux (pwsh) was not found' when PowerShell is installed but not on PATH. It also looks in the usual install locations and for the Flatpak (com.microsoft.powershell) package, and the error message lists install commands for Flatpak, Arch / SteamOS, Ubuntu / Debian and Fedora. If pwsh is really not installed it still has to be installed first.
- Fixed the 'Could not find a part of the path ... _files\Backups\...' critical error (Copy-Item $File $bak) when the game or the tool lives in a long folder path. The backup mirrors the full game path under _files\Backups, which doubled the path length and passed the Windows 260 character limit (e.g. SP_Mercy_Cine_FoundPump.gear). Backup and restore now use the \?\ long-path prefix when a path is 240+ characters. Existing backups keep the same layout and are restored as before.
- Added Keyboard UI icons (it is only applied when 'Keyboard & Mouse' option selected) (Credit: HJ).

v0.2.8
- Fixed the Space key in the main menu: it was mapped to START (GFxUI.KeyMap), so it opened the settings menu instead of selecting the highlighted button. Space now works as Accept; Tab stays START.
- Added Gears3_Multipatch_Tool.sh, the Linux / SteamOS version of Gears3_Multipatch_Tool.bat (package check, Remote / Local script choice, runs the tool with pwsh).

v0.2.7
- Fixed the Mother Corpser outro cinematic never starting after the 4th eye (she ran around forever, soft-lock). The Kismet event that reports the eyes (MaxTriggerCount 5) is also fired by the game script at every cringe, so the 5 allowed triggers were used up after the 3rd eye: the 4th eye / 'all eyes dead' never reached the level logic. Cringes no longer fire that event, and when the last eye is gone the Corpser AI fires 'all eyes dead' itself. Also silenced the 'only two left / only one left' chatter, which was hard-wired to specific eyes and played at the wrong time.
- Act 2 Chapter 4 Mother Corpser: after the outro cinematic the game stayed on LOADING (no ground, characters invisible on the elevator). The cinematic waits for SP_Badlands_14 and SP_Badlands_14_S, but only 14_S was ever requested; the level-streaming action of the outro now loads SP_Badlands_14, 14_BG and 14_Audio as well. Note: the game restores the level logic (Kismet) from the checkpoint save, so map-logic changes only show up in a fight started from a fresh checkpoint (start the chapter again).
- Fixed a crash (Assertion failed: BulkDataOffsetInFile == Ar.Tell(), 'Bad offset for ShadowMapTexture2D SP_Badlands_13_S...') when approaching the Mother Corpser boss fight. The patched SP_Badlands_13_S.gear shifted the file contents but left the lightmap / shadow-map bulk data offsets of the exports behind the grown pillar-trigger exports pointing 112 bytes too early (156 stale offsets), so streaming the boss room crashed the game. The map is regenerated with correct offsets and is replaced again by the installer (the earlier patched file is recognised and updated; just reinstall).
- Act 2 Chapter 4 Mother Corpser: after a shot eye she now walks straight to the right pillar instead of charging at a random spot (the charge ignored the pillar and aimed at whoever shot the eye) and then crossing the whole arena for ~12 s with no animation. The walk stops 300 units from the pillar point (was 250); the pillar collapse is still fired by script, one pillar per shot eye. The 10 s cringe is unchanged.
- Act 2 Chapter 4 Mother Corpser: after the fourth eye she ran around in a rage forever and the outro never started. The game script only fires the Kismet 'all eyes dead' output when she is already dead at that moment, which never happened for the last eye (logs show all four eye events arriving but no 'all eyes dead'); the Kismet event was also limited to 5 triggers while the script fires it for every cringe as well. The limit is removed and the fourth eye now starts the outro itself: the eye counter (SeqAct_Switch_3) starts the 10 s 'outro via eyes' delay, which opens the level load, and the level load goes straight to the alive check (3 same-size link edits in SP_Badlands_13_S.gear, regenerated; the installer replaces the earlier patched map automatically).
- Act 2 Chapter 4 Mother Corpser: fixed the wobble in front of a pillar. The AI aims 120 units above the hide point, which was out of her reach height, so she never counted as arrived and jittered on the spot for several seconds until the path code gave up. The four hide points are lowered so the aim point is at floor height (SP_Badlands_13_S.gear).
- Added a VSync option (Display step, default off). Sets UseVsync in the [SystemSettings] section of GearEngine.ini / DefaultEngine.ini / BaseEngine.ini and the Documents GearEngine.ini.
- Linux / SteamOS (Proton): the game could not get past 'loading profile' or showed a connection error because the default [URL] Port=1000 is a privileged port that cannot be opened there. The installer now changes it to Port=7777 in the engine ini files (same fix users did by hand).
- Launchers now follow the OS: Windows gets the .bat files, Linux / SteamOS (pwsh) gets Gears3_Start_Game.sh and Gears3_Start_Game_Debug.sh (run through wine, or prints the Proton launch options for Steam). No Linux files are created on Windows and no .bat files on Linux. The post-install menu launches the right one.
- The installer now warns when a data file of the NexusMods package (_files folder) is missing or outdated (e.g. the Badlands Mother Corpser map), and stresses that updating only the script (the Remote option) is not enough for this version: the complete package must be downloaded again from NexusMods.

v0.2.6
- Fixed the Act 2 Chapter 1 (Wreckage) Final Brumak Boss Fight: the chapter never ended after killing it (no death cutscene / outro, Anya gone) when you had died and reloaded a checkpoint during the fight. The end-of-chapter transition needs a 'prepare next map' signal that was sent once before the Brumak checkpoint; a checkpoint reload restores the streamed levels but not that pending prepare, so the final commit waited forever. COMMIT_NextLevel now starts the map preparation itself and goes straight on to Chapter Complete / map change, and the early prepare call is disabled (3 same-size link edits in SP_Wreckage_P.gear and SP_Wreckage_01_S_CombatD.gear, new step 31). The next map is now prepared after the Brumak dies, so expect a short pause after the death cutscene. Restored by the normal revert / reinstall.
- Fixed the Act 3 Mercy mausoleum cinematic: Added Dom's COG tags / Maria necklace (Dom: "Maria... Baby, I'm sorry I couldn't bring you home"). The Found_Pump matinee (SP_Mercy_Cine_FoundPump.gear) animates a necklace actor (Cine_Props01 Tags skeletal mesh, Necklace_Take animations) that was missing from the map, so the tags never appeared. A matching actor is now added and bound to the matinee, and it is attached to Dom's hand like his knife, since the necklace animations only swing the chain (new step 27). Also fixed Marcus never receiving Dom's knife in the same cinematic: Marcus's knife was hidden at the start and never shown; it now appears when Dom's knife disappears (the hand-over) and is attached to Marcus's hand with the same bone/offset as Dom's knife. The map is replaced as a whole file and only when the installed one is the original (SHA256 check); restored by the normal revert / reinstall.
- Fixed the Act 2 Chapter 4 Mother Corpser, boss room (1): (a) The fight ended (outro) after the first eye was shot: three of the eye events and the dialogue chain after the left eye were wired to the outro timer. They are disconnected, so the outro plays only after all four eyes are destroyed (or the pillars collapse). (b) After one eye was shot the game soft-locked: the Corpser could not find her 'run target' hide points (the map only had plain TargetPoints because the class was lost in this build), so she never ran into the pillars, never cringed and her eyes stayed closed. The four TargetPoints standing at the pillars are re-typed to GearCorpserRunTargetPoint. The map is replaced as a whole file and only when the installed one is the original (SHA256 check).
- Fixed the Act 2 Chapter 4 Mother Corpser, boss room (1): four black, unlit characters stood in a T-pose at the cave entrance. They were the hidden outro cinematic stand-ins (Dom / Cole / Baird / Marcus, stacked at one spot): the outro level's 'Loaded and Visible' event was wired to the UnHide input instead of Hide. Fixed with a one-value edit in SP_Badlands_Cine_Corpser_Outro.gear.
- Fixed the Act 2 Chapter 4 Mother Corpser, boss room (2): she now runs to the four pillar hide points only (the two centre TargetPoints are left alone), and the cringe after a shot eye ends after 10 seconds so her eyes re-open (the original Kismet 'stop cringing' action is missing from this map, so she froze forever). GearGame.u: one function-map key renamed.
- Fixed the Act 2 Chapter 4 Mother Corpser, boss room (3): the solid stalagmite bases stop her short of the pillars, so the pillar collapse (touch triggers) never fired and she looped the hide command forever. The four pillar trigger cylinders are enlarged (449 -> 600), the four run points are moved out of the solid pillar bases onto the open floor in front of each pillar and she now counts as arrived within 700 units (was 256) of a pillar hide point.
- Fixed the Act 2 Chapter 4 Mother Corpser, boss room (4): Pillar collapse rewritten. The physical touch of the pillar triggers never fired from her body (her touch comes from leg-tip actors), so the collapse never started and she looped the hide command. Now, when she arrives at a hide point, the game script fires that pillar's Kismet collapse event directly (HideLocation.TriggerEventClass(SeqEvent_Touch)), the used point is retired so the next shot eye sends her to the next pillar, and after the 10 s cringe she returns to normal attacks (the original Kismet 'stop cringing' action is missing from this build). The four touch events now use the run points as their originator. Same-size bytecode rewrite of the Hide / NoHide states in GearGame.u plus the boss map. After four pillars (or all four eyes) the outro starts.
- Fixed the Act 2 Chapter 4 Mother Corpser, boss room (5): The Kismet pillar chain only logged and the script-fired touch event did nothing visible, and her walk to the point jittered side to side for ~10 s (move command never ends once she is on the point). She now CHARGES at the pillar run point (the charge call the original Hide state had commented out), falls back to walking with a 250 unit stop distance, the four touch events fire once per pillar (MaxTriggerCount 1) and the used run point is retired so the next shot eye goes to the next pillar.
- Fixed the Insane difficulty never unlocking after finishing the campaign (on Hardcore or any other difficulty). Insane is unlocked once all 30 chapters have been completed on the same difficulty, but the last Act 5 level before the finale (Tower, SP_Tower_P.gear) reported "chapter 29 complete" - the same number as the Azura level - instead of 30. Chapter 30 was therefore never saved in the profile and the game never counted the campaign as finished. The value is now 30 (new step 24). NOTE: chapters already played are not retroactively marked; replay the Act 5 Tower chapter (chapter 30) once after installing, on the difficulty you finished with (all other chapters on that difficulty must already be completed), then the Insane unlock is granted when the chapter ends.
- Removed the remaining on-screen warning texts (e.g. "WARNING: DOOR DOES NOT HAVE ALIGNTOOBJ SET PROPERLY"). The earlier debug text removal only covered Pawn.MessagePlayer / Actor.DebugMessagePlayer; these warnings are sent by scripts directly through PlayerController.ClientMessage (Engine.u), which draws them in the lower left. ClientMessage now returns immediately, so no script can print text on the screen through it (new step 25). Chat is not affected.
- Added a "Quit Game" button to the main menu. It replaces the last row ("Xbox LIVE Marketplace"), which only showed a "sign in to Xbox LIVE" error on PC. Selecting it opens a confirmation dialog (Yes / No); Yes closes the game, No returns to the menu. Texts are added for English, Spanish, Italian and Turkish (other languages show the English text). The two UnrealScript functions that drive it (UIScene_FrontEnd.OpenMarketplaceBlade and OnSeasonPassConfirm in GearGame.u) are rewritten in place with the same size; the row label is changed in GearUI.ini / DefaultUI.ini (new step 26). Restored by the normal revert / reinstall.
- Added a Credits screen (main menu option 3, Exit is now 4) with the Jacinto build credits (Helios, Extinct, Casper, Shauny) and the Multi Patch Tool contributors, and a Jacinto build line in the header.
- Fixed the "Connection Lost" error when launching the Campaign from the main menu (reported on Linux / Wine / Proton; launching a map from the dev console worked). The Campaign URL always ended with "?listen", so every Campaign start opened a network listen socket (TcpNetDriver, port 1000) even though the Campaign is played offline. Where that socket cannot be opened (e.g. privileged ports on Linux) the level load failed with "Your connection to the host has been lost". The Campaign URL no longer asks for a listen server (GearMenuGame.BuildCampaignURL in GearGame.u, same-size edit "?listen" -> "?nolist"), so the Campaign never touches the network. No Campaign path checks the internet / link status. Horde, Versus and party lobby URLs are unchanged (new step 30). It is an installer question (default: yes, press ENTER) and is recommended for everyone. WARNING: Campaign online / LAN co-op is untested in this build and will most likely not work with it enabled; answer N to keep the original behavior. Restored by the normal revert / reinstall.
- Fixed the 'Cannot find path .../Binaries/System.Windows.Forms.dll' critical error on Linux (PowerShell for Linux / pwsh): Updated the Display and Resolution step. Native Display (the default) used System.Windows.Forms, which only exists on Windows; it now falls back to xrandr and then to 1920x1080 if the native size cannot be read (choose another resolution in that case). Also fixed Uninstall / reinstall not restoring any backups on Linux: backups are stored under the absolute path there, but the restore only understood Windows drive-letter paths.
- New last install step: Gears3_Start_Game_Debug.bat is created automatically (game with -log -forcelogflush, keeps a timestamped copy of Launch.log in DebugLogs), and the post-install menu can launch it ([2] Launch Game with Debug Log).

v0.2.5
- Fixed the Act 1 Chapter 3 "Homecoming" soft-lock at the razor wire fence (characters say "Can't do that yet" and the chapter cannot continue). The fence interaction was enabled by a remote event that is lost when the fight ends before the fence area is reached (SP_Hanover_CoopDoor_Razor is streamed in hidden). The fence interaction now starts enabled.
- Fixed the Act 4 "Bon Voyage" loader weight plates not opening their doors while the loader stands on them (players had to get out, step on the plate, and re-enter the loader). The plate trigger compared the touching actor with the driver pawn, which does not register while driving; it now reacts to the loader itself (SP_OldShipyard_05_S.gear).
- Fixed the Act 4 "Bon Voyage" last stage staying empty (no enemies, no cinematic, nothing triggers). After the Kantus intro the level used a checkpoint input that only teleports the squad and never reaches the event that spawns the Armored Kantus; it now uses the normal checkpoint input (SP_OldShipyard_P.gear).
- Fixed Act 4 Chapter 2 "Crater" Tower 2 elevator, squadmates and the player falling through the floor forever at the top of the elevator. When the lift arrived, the moving platform was hidden and its level unloaded while a static copy took over; anyone not standing on the copy fell. The moving platform now stays solid (SP_Char_Tower_2_S.gear, SP_Char_Tower_2_elevator_S.gear).
- Fixed the Act 5 Episode 1 (Coast) follow-up guards opening fire the instant they spawn even when the squad advanced quietly. The post-patrol guards (EnemyAlertedPostPatrol) and the "Alpha" guard spawners (SeqAct_AIFactory_6 / _7) acquired an enemy immediately on spawn (bAutoAcquireEnemy / bAutoNotifyEnemy), unlike the stealth patrol guards; those flags are now disabled (SP_Coast_01_S.gear).
- Fixed the Act 5 Episode 1 (Coast) stealth not working. the guard patrol spotted the AI squadmates within seconds and raised the alarm. The sight and hearing radius during the first patrol was lowered from 1900 to 900 so guards only notice someone who gets close (SP_Coast_01_S.gear).
- Fixed the Act 5, Episode 6 - Final Boss (Tempest) Stage 2 soft-lock: after the first Hammer of Dawn hit the boss kept flying between positions forever and never landed. The 3-hop landing fallback now also applies in Stage 2 (SP_Rooftop_01b_S.gear, TEMPEST_MOVE_CONTROLS).
- Removed the on-screen Unreal Engine debug text ("... has not done anything interesting ... but I'm not allowed to delete him!"). The log line is kept.
- Removed ALL developer debug text printed on the game screen (e.g. "GearAI_Theron_16 Pawn.Location ... Not in my combatzone, and failed to move to it. CLEARING COMBAT ZONE LIST!"). Pawn.MessagePlayer and Actor.DebugMessagePlayer (Engine.u) no longer print to any player; the log lines are kept.
- The multiplayer "Experience" (Personal Progression) UI panel no longer opens on the main menu after leaving the campaign.
- The FOV prompt now suggests a lower value for ultrawide resolutions.
- Added an option to disable the camera shake while running (roadie run). It is disabled by default (press ENTER); answer N to keep the original shake. It sets RoadieRunShakyCamDampeningFactor to 0 in GearPawn.ini / DefaultPawn.ini / GearPawnMP.ini / DefaultPawnMP.ini.
- Fixed the "Objective Failed" screen not scaling on wide / high resolution windows (it stayed 1:1 in the middle of the screen even with the Widescreen UI Fix). MissionFailed.swf and GameOverOptions.swf are laid out by a Scaleform StagePanel that reset the scale mode to "noScale" right after our fix; its default is now "showAll", so the title and menu scale with the screen (UI_PauseMenu.upk). The ESC pause menu is untouched.
- Texture Streaming step (now step 23) is now fully compatible with the HD Textures Pack (https://www.nexusmods.com/gearsofwar3/mods/28): besides the VRAM based streaming profile it sets the gameplay texture groups (World / Character / Weapon / Vehicle, diffuse, normal and specular) in the [SystemSettings] of the engine INI files to MaxLODSize = your VRAM profile (the stock 1024 / 512 cap showed every 4K HD texture at 1024 or lower), LODBias = 0 and MipFilter = Linear (trilinear filtering; the stock Point filter snaps between mip levels and makes distant surfaces shimmer). The size caps are only raised when HD Textures Pack v1.2 or newer is installed (it ships full mip chains and writes GearGame\Content\HD_TexturePack.version). Without it the stock caps stay, because stock textures have their top mip levels cooked out of the packages and a higher cap crashes the game ("Assertion failed: Offset != INDEX_NONE"); MipFilter=Linear is applied either way.
- Fixed the in-game HUD (objective text on the top left, weapon / ammo box on the top right, crosshair, squad icons, etc.) not scaling with the resolution. The HUD is drawn in fixed pixel sizes designed for 720p, so at 1080p / 1440p / 4K it became smaller and smaller (about 67% / 50% / 33% of its intended size). A small hook in GearGame.exe (step 8) now draws the HUD on a virtual 720p-high canvas and scales it up by (screen height / 720) for every element. It adapts automatically to the resolution (no setting needed); at 720p and below nothing changes. Part of the existing Engine Binary Patches step, restored by the normal revert / reinstall.

v0.2.4
- Added mouse sensitivity option.
- Added New fonts (WarfareFonts / WarfareFonts2x) with Turkish and Ukrainian characters (Credit: pasha12071991).
- Added Subtitle font choice: WarfareFonts2x (large), WarfareFonts (standard) or do nothing.
- Added Traditional Chinese (CHT) community language: https://www.nexusmods.com/gearsofwar3/mods/31
- Fixed FOV being doubled (~160) after install: FOV is no longer written to the engine INIs (BaseEngine/DefaultEngine/GearEngine); it is only set in the camera INIs.
- bUseBackgroundLevelStreaming=True is now always enforced in [Engine.Engine] as well as [TextureStreaming].
- Fixed reinstall not restoring clean backups first (backup detection looked for the wrong location).
- Fixed Language= replacement not matching INI files with CRLF line endings.

v0.2.3
- The issue of the game being stuck at 45 FPS has been fixed.
- Unlocked Listen Server and Network Driver Lock ([IpDrv.TcpNetDriver]).
- Disabled Frame Rate Flattening  ([Engine.Engine] & [Engine.GameEngine]).
- Optimized Visual & Rendering Settings ([SystemSettings]).
- The MaxDeltaTime value under [Engine.GameEngine] has been set to 0.05, the standard value for Unreal Engine.

v0.2.2
- Disabled MSAA resolve overhead (bAllowD3D9MSAA=False, MaxMultiSamples=1).
Might solve 45 FPS lock issue for some users.
- Set bSmoothFrameRate = False, MaxSmoothedFrameRate = 300, and UseVsync = False across all VRAM profiles to keep framerates fully uncapped at high FPS.

v0.2.1
- Added UTF-8 Encoding + BOM support.
- Fixed remote option error.

v0.2.0
- Fixed Act 3 to Act 4 Transition ("Objective Failed" Bug) (thanks to @LukeBoya)
Seamless Campaign Progression: Fully integrated a byte-level, non-destructive semantic fix for the end of Act 3 (Mercy Outro). Fixes the reproducible "Objective Failed" screen without replacing map packages or breaking other mods.
Full Revert Support: Includes a safe uninstall/revert mechanism that restores only the modified boolean property (00 -> 01).

- Fixed Combat-Zone Debug Spam Text
Script correctly copies the GearGame.u file, but then reads, modifies, and rewrites the file as a text string (using iso-8859-1 conversion) to apply keyboard (ESC/Enter) patches. Because this process corrupts a binary file, the debug spam patch won't work in-game. The solution is to revert this patching process to a safer byte-string (binary) replacement method.

- Improved anti-aliasing (compatible with HD Texture Pack)
Eliminated Distance Grain & Specular Moiré (MipFilter=Linear): Fixed the harsh black-and-white noisy grain and dancing pixels on distant objects/ornate stone carvings by switching texture groups from legacy Xbox 360 point sampling (Point) to true Trilinear Filtering (Linear).
Full 4K Texture Support (MaxLODSize=4096): Removed the 1024 texture resolution cap on World, Character, Weapon, and Vehicle groups, allowing HD textures to render at full 4K quality.
16x Anisotropic Filtering & 4x MSAA: Combined hardware anti-aliasing and 16x Anisotropy to eliminate crawling lines and texture staircasing when walking or looking at surfaces at oblique angles.
Screen-Door Dither Removed (bEnableMipLevelFading=False): Disabled the noisy dot-mesh mipmap fading transition effect during camera movement.
Crash-Safe Streaming: Resolved the fatal Assertion failed: Offset != INDEX_NONE crash by properly handling inlined UPK textures.

- Expanded Multi-Language Missing Objectives
Complete Localization Support: Added missing map objective lines for all supported languages: English (INT), Turkish (TUR), Spanish (ESM/ESN), Italian (ITA), French (FRA), German (DEU), Russian (RUS), Portuguese (POR/PTB), and Polish (POL).
Automatically detects language folders and injects missing objectives in the native selected language with a fallback to INT.

- Optional Subtitle HD (WarfareFonts2x)
Added an interactive installation prompt with helpful hardware recommendations:
Recommended for Desktop/PC players on 1080p/1440p/4K monitors.
Not recommended for Handheld PC devices (Steam Deck, ROG Ally, Legion Go) due to smaller screen size readability.
Default (ENTER): Installs Subtitle HD. Choosing No automatically restores/preserves the original default font.

- Performance & Quality of Life Fixes
Blazing Fast Binary Patching: Replaced interpreted PowerShell nested loops with an in-memory C# binary patcher, reducing GearGame.u patch time from minutes down to milliseconds.
Cleaned UI Scaling Output: Fixed a bug where ActionScript UI scaling patches (UI_*.upk) logged duplicate messages. Each package is now patched and logged cleanly once.
UTF-8 with BOM Support: Fixed encoding issues in PowerShell 5.1/7 across all Windows localization environments.

v0.1.9
- Added Texture Streaming Optimization (HD Textures Pack compatible - https://www.nexusmods.com/gearsofwar3/mods/28)
- Added automatic GPU info finder (VRAM etc...).
- Remote option improved (It no longer runs directly in memory; it's downloaded first.).

v0.1.8
- "FIXES 1.0 by @refresh50" changes included (special thanks to @refresh50!)
- Remote [GitHub Gist] option added (So you don't need to download it again for the latest version.)
WARNING: Remote patching may trigger a warning in Windows Defender (false positive). Allow it with your antivirus or use the local version.
- New "_files" folder added. This is mandatory for all patches to be applied.
- A "Backup" folder is created after the patch is applied.
- The issue reported by some users regarding "Title Screen Bypass" and "Checkpoint Fix" not working has been fixed.
- Seamless Hex Replacement
- The text "Starting Gears of War 3..." has been added to the Gears3_Start_Game.bat file.
- The uninstall mechanism has been rewritten. (Backup files are now stored in _files/Backups)
- An error that occurred after selecting the uninstall option has been fixed.
- A Fresh Install option has been added. (If an installation has already been done and you want to overwrite it, first restore to the original state using a backup, then install the patch.)
- The patching process sequence has been rearranged.
- The patch output is now configured to report if any operations were skipped (previously it always said success).
- Even if you haven't entered any numbers, you can proceed by pressing the "Enter" key.
- The question "Keyboard or Gamepad?" is answered with Keyboard selected by default. (It used to be Gamepad)
To install, copy the folder inside "Gears3_Multipatch_Tool_v0.1.8.zip" to the game's installation directory, i.e., next to GearGame, Binaries, etc., and run the batch file from inside.
[I strongly recommend that all users who have downloaded previous versions download and re-patch this new version.]

v0.1.7
- Fixed the issue of the F10 key not working on the Title Screen for some users.
- The missing "=" was added to the launch command added to Gears3_Start_Game.bat after language selection.
- Error indicator added.

v0.1.6
- The freezing/stuttering issue in step 6 of the patch has been resolved.

v0.1.5
- Fit-to-Screen feature added for some UI screens (Scoreboards, Multiplayer, Death Screen, Horde, etc...).
- Fixed the issue where the "ESC/Enter Fix" and "Loading Profile Bypass" patches were not working for some users.
- Language selection option added.

v0.1.4
- Loading Profile Bypass
- Customizable Field of View (FOV)
- Multi-Language Missing Objective Fixes (TUR, ESM, ITA, etc.)
- Bink/XAudio2 Crash Resolved
- Opening Intro Logos Restored
- Brightness Screen Fix
- Debug Text & Spam Removed

v0.1.3
- UI Menu Navigation Fix (Video Settings, Credits, War Journal)
- Inverted Analog Stick Fix
- ActionScript PC Translation
- High-Resolution Subtitle Compatibility

v0.1.2
- Ultrawide & Resolution UI Scaling Fix improved (D3DERR_INVALIDCALL Crashfix).

v0.1.1
- Title/Logo Screen - Dedicated F10 hotkey added (servertravel shortcut).

v0.1.0
- Initial release.
(Ultrawide & Resolution UI Scaling Fix, Customizable Player Name, Campaign Checkpoint & Load Game Fix, Clean Installation & Uninstallation)