diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..81160d3 --- /dev/null +++ b/.gitignore @@ -0,0 +1,6 @@ + +JMD-Umodel-BruteForcer/build/ +JMD-Umodel-BruteForcer/dist/ +JMD-Umodel-BruteForcer/venv/ +JMD-Umodel-BruteForcer/.ropeproject/ +JMD-Umodel-BruteForcer/__pycache__/ \ No newline at end of file diff --git a/JMD-Umodel-BruteForcer/JMD-Umodel-BruteForcer.pyproject b/JMD-Umodel-BruteForcer/JMD-Umodel-BruteForcer.pyproject new file mode 100644 index 0000000..3cf46c6 --- /dev/null +++ b/JMD-Umodel-BruteForcer/JMD-Umodel-BruteForcer.pyproject @@ -0,0 +1,7 @@ +{ + "files": [ + "umodelbruteforcer.py", + "form.ui", + "build.py" + ] +} diff --git a/JMD-Umodel-BruteForcer/JMD-Umodel-BruteForcer.pyproject.user b/JMD-Umodel-BruteForcer/JMD-Umodel-BruteForcer.pyproject.user new file mode 100644 index 0000000..7c669b3 --- /dev/null +++ b/JMD-Umodel-BruteForcer/JMD-Umodel-BruteForcer.pyproject.user @@ -0,0 +1,191 @@ + + + + + + EnvironmentId + {af128402-29ca-48f0-b93a-eba6ccf2738f} + + + ProjectExplorer.Project.ActiveTarget + 0 + + + ProjectExplorer.Project.EditorSettings + + true + false + true + + Cpp + + CppGlobal + + + + QmlJS + + QmlJSGlobal + + + 2 + UTF-8 + false + 4 + false + 80 + true + true + 1 + false + true + false + 0 + true + true + 0 + 8 + true + false + 1 + true + true + true + *.md, *.MD, Makefile + false + true + true + + + + ProjectExplorer.Project.PluginSettings + + + true + false + true + true + true + true + + + 0 + true + + true + true + Builtin.DefaultTidyAndClazy + 12 + true + + + + true + + + + + ProjectExplorer.Project.Target.0 + + Desktop + arm-windows-msvc2019-pe-32bit + arm-windows-msvc2019-pe-32bit + {b9da076e-4cca-41b4-9ee0-1bb4e4ac95ce} + 0 + 0 + 0 + + K:\GitHub\JMD-Umodel-BruteForcer-UI\JMD-Umodel-BruteForcer + + + true + Python.PysideBuildStep + K:\GitHub\JMD-Umodel-BruteForcer-UI\JMD-Umodel-BruteForcer\venv\Scripts\pyside6-project.exe + + + true + build.py + python + ProjectExplorer.ProcessStep + + 2 + Build + Build + ProjectExplorer.BuildSteps.Build + + + 0 + Clean + Clean + ProjectExplorer.BuildSteps.Clean + + 2 + false + + false + + build + Python.PySideBuildConfiguration + + 1 + + + 0 + Deploy + Deploy + ProjectExplorer.BuildSteps.Deploy + + 1 + + false + ProjectExplorer.DefaultDeployConfiguration + + 1 + + true + true + true + + 2 + + false + umodelbruteforcer.py + PythonEditor.RunConfiguration.K:/GitHub/JMD-Umodel-BruteForcer-UI/JMD-Umodel-BruteForcer/umodelbruteforcer.py + K:/GitHub/JMD-Umodel-BruteForcer-UI/JMD-Umodel-BruteForcer/umodelbruteforcer.py + K:\GitHub\JMD-Umodel-BruteForcer-UI\JMD-Umodel-BruteForcer\umodelbruteforcer.py + true + true + K:/GitHub/JMD-Umodel-BruteForcer-UI/JMD-Umodel-BruteForcer + + + true + true + true + + 2 + + false + build.py + PythonEditor.RunConfiguration.K:/GitHub/JMD-Umodel-BruteForcer-UI/JMD-Umodel-BruteForcer/build.py + K:/GitHub/JMD-Umodel-BruteForcer-UI/JMD-Umodel-BruteForcer/build.py + K:\GitHub\JMD-Umodel-BruteForcer-UI\JMD-Umodel-BruteForcer\build.py + true + true + K:/GitHub/JMD-Umodel-BruteForcer-UI/JMD-Umodel-BruteForcer + + 2 + + + + ProjectExplorer.Project.TargetCount + 1 + + + ProjectExplorer.Project.Updater.FileVersion + 22 + + + Version + 22 + + diff --git a/JMD-Umodel-BruteForcer/JMD-Umodel-BruteForcer.spec b/JMD-Umodel-BruteForcer/JMD-Umodel-BruteForcer.spec new file mode 100644 index 0000000..58103cd --- /dev/null +++ b/JMD-Umodel-BruteForcer/JMD-Umodel-BruteForcer.spec @@ -0,0 +1,45 @@ +# -*- mode: python ; coding: utf-8 -*- + + +block_cipher = None + + +a = Analysis( + ['K:\\GitHub\\JMD-Umodel-BruteForcer-UI\\JMD-Umodel-BruteForcer\\umodelbruteforcer.py'], + pathex=[], + binaries=[], + datas=[], + hiddenimports=[], + hookspath=[], + hooksconfig={}, + runtime_hooks=[], + excludes=[], + win_no_prefer_redirects=False, + win_private_assemblies=False, + cipher=block_cipher, + noarchive=False, +) +pyz = PYZ(a.pure, a.zipped_data, cipher=block_cipher) + +exe = EXE( + pyz, + a.scripts, + a.binaries, + a.zipfiles, + a.datas, + [], + name='JMD-Umodel-BruteForcer', + debug=False, + bootloader_ignore_signals=False, + strip=False, + upx=True, + upx_exclude=[], + runtime_tmpdir=None, + console=False, + disable_windowed_traceback=False, + argv_emulation=False, + target_arch=None, + codesign_identity=None, + entitlements_file=None, + icon=['K:\\GitHub\\JMD-Umodel-BruteForcer-UI\\JMD-Umodel-BruteForcer\\images\\umodelbruteforcer.ico'], +) diff --git a/JMD-Umodel-BruteForcer/build.py b/JMD-Umodel-BruteForcer/build.py new file mode 100644 index 0000000..e0399f5 --- /dev/null +++ b/JMD-Umodel-BruteForcer/build.py @@ -0,0 +1,28 @@ +# This Python file uses the following encoding: utf-8 + +import os +import subprocess + +def main(): + project_name = "JMD-Umodel-BruteForcer" + project_root = "K:\\GitHub\\JMD-Umodel-BruteForcer-UI\\JMD-Umodel-BruteForcer" + venv_dir = os.path.join(project_root, "venv\\Scripts") + + dist_dir = os.path.join(project_root, "dist") + icon_path = os.path.join(project_root, "images", "umodelbruteforcer.ico") + script_path = os.path.join(project_root, "umodelbruteforcer.py") + + command = [ + os.path.join(venv_dir, "pyinstaller"), + "--onefile", + "--windowed", + f"--name={project_name}", + f"--distpath={dist_dir}", + f"-i={icon_path}", + script_path + ] + + subprocess.run(command) + +if __name__ == "__main__": + main() diff --git a/JMD-Umodel-BruteForcer/form.ui b/JMD-Umodel-BruteForcer/form.ui new file mode 100644 index 0000000..047b541 --- /dev/null +++ b/JMD-Umodel-BruteForcer/form.ui @@ -0,0 +1,4637 @@ + + + JMDigital + UmodelBruteForcer + + + Qt::NonModal + + + + 0 + 0 + 1400 + 980 + + + + + 0 + 0 + + + + + 1400 + 980 + + + + + 1400 + 980 + + + + + 0 + 0 + + + + + 1400 + 1000 + + + + UmodelBruteForcer + + + + + 30 + 30 + 521 + 24 + + + + + false + + + + e.g C:\Tools\Umodel.exe + + + + + + 10 + 10 + 141 + 16 + + + + + 10 + true + false + + + + Umodel.exe location: + + + + + + 30 + 80 + 521 + 24 + + + + + false + + + + e.g C:\Games\Bulletstorm + + + + + + 10 + 60 + 161 + 16 + + + + + 10 + true + false + + + + Game installation folder: + + + + + + 30 + 580 + 521 + 24 + + + + + false + + + + e.g C:\Extracted\UT2004 + + + + + + 10 + 560 + 121 + 16 + + + + + 10 + true + false + + + + Destination folder: + + + + + + 30 + 210 + 401 + 24 + + + + + false + + + + e.g C:\Games\UT2004\Animations + + + + + + 10 + 190 + 121 + 16 + + + + + 10 + false + + + + Animation folder: + + + + + + 30 + 260 + 401 + 24 + + + + + false + + + + e.g C:\Games\UT2004\Sounds + + + + + + 10 + 240 + 121 + 16 + + + + + 10 + false + + + + Sounds folder: + + + + + + 10 + 290 + 121 + 16 + + + + + 10 + false + + + + StaticMesh folder: + + + + + + 30 + 310 + 401 + 24 + + + + + false + + + + e.g C:\Games\UT2004\StaticMeshes + + + + + + 30 + 360 + 401 + 24 + + + + + false + + + + e.g C:\Games\UT2004\Textures + + + + + + 10 + 340 + 121 + 16 + + + + + 10 + false + + + + Textures folder: + + + + + + 680 + 60 + 111 + 16 + + + + + 11 + false + + + + Master Options: + + + + + + 560 + 30 + 80 + 24 + + + + + false + + + + Browse + + + + + + 560 + 80 + 80 + 24 + + + + + false + + + + Browse + + + + + + 440 + 210 + 80 + 24 + + + + + false + + + + Browse + + + + + + 440 + 260 + 80 + 24 + + + + + false + + + + Browse + + + + + + 440 + 310 + 80 + 24 + + + + + false + + + + Browse + + + + + + 440 + 360 + 80 + 24 + + + + + false + + + + Browse + + + + + + 560 + 580 + 80 + 24 + + + + + false + + + + Browse + + + + + + 690 + 80 + 101 + 22 + + + + + false + + + + No Overwrites + + + + + + 690 + 260 + 141 + 22 + + + + + false + + + + No Mesh Animations + + + + + + 850 + 260 + 121 + 22 + + + + + false + + + + No Skeletal Meshes + + + + + + 1010 + 260 + 111 + 22 + + + + + false + + + + No Static Meshes + + + + + + 1150 + 260 + 121 + 22 + + + + + false + + + + No Vertex Meshes + + + + + + 690 + 290 + 91 + 22 + + + + + false + + + + No Textures + + + + + + 850 + 290 + 121 + 22 + + + + + false + + + + No Morph Targets + + + + + + 1010 + 290 + 101 + 22 + + + + + false + + + + No Lightmaps + + + + + + 690 + 320 + 121 + 22 + + + + + false + + + + ZLib compression + + + + + + 850 + 320 + 121 + 22 + + + + + false + + + + LZX compression + + + + + + 1010 + 320 + 121 + 22 + + + + + false + + + + LZO compression + + + + + + 530 + 210 + 113 + 24 + + + + + false + + + + false + + + 8 + + + Default 'ukx' + + + false + + + + + + 530 + 190 + 121 + 16 + + + + + false + + + + Anims Extension: + + + + + + 530 + 260 + 113 + 24 + + + + + false + + + + false + + + 8 + + + Default 'uax' + + + + + + 530 + 240 + 121 + 16 + + + + + false + + + + Sounds Extension: + + + + + + 530 + 310 + 113 + 24 + + + + + false + + + + false + + + 8 + + + Default 'usx' + + + + + + 530 + 290 + 121 + 16 + + + + + false + + + + StaticMesh Extension: + + + + + + 530 + 340 + 121 + 16 + + + + + false + + + + Textures Extension: + + + + + + 530 + 360 + 113 + 24 + + + + + false + + + + false + + + 8 + + + Default 'utx' + + + + + + 530 + 390 + 121 + 16 + + + + + false + + + + Additional Extension: + + + + + + 530 + 410 + 113 + 24 + + + + + false + + + + false + + + 8 + + + + + + + + + 10 + 390 + 121 + 16 + + + + + 10 + false + + + + Additional folder 1: + + + + + + 30 + 410 + 401 + 24 + + + + + false + + + + e.g C:\Games\UT2004\StaticLow + + + + + + 440 + 410 + 80 + 24 + + + + + false + + + + Browse + + + + + + 440 + 460 + 80 + 24 + + + + + false + + + + Browse + + + + + + 10 + 440 + 121 + 16 + + + + + 10 + false + + + + Additional folder 2: + + + + + + 530 + 460 + 113 + 24 + + + + + false + + + + false + + + 8 + + + + + + + + + 530 + 440 + 121 + 16 + + + + + false + + + + Additional Extension: + + + + + + 30 + 460 + 401 + 24 + + + + + false + + + + e.g C:\Games\UT2004\StaticHigh + + + + + + 530 + 490 + 121 + 16 + + + + + false + + + + Additional Extension: + + + + + + 10 + 490 + 121 + 16 + + + + + 10 + false + + + + Additional folder 3: + + + + + + 440 + 510 + 80 + 24 + + + + + false + + + + Browse + + + + + + 530 + 510 + 113 + 24 + + + + + false + + + + false + + + 8 + + + + + + 30 + 510 + 401 + 24 + + + + + false + + + + e.g C:\Games\UT2004\TexturesLow + + + + + true + + + + 680 + 379 + 700 + 541 + + + + + false + + + + false + + + 2 + + + + UE1 + + + + + 10 + 50 + 121 + 22 + + + + Unreal Engine 1 + + + + + + 10 + 80 + 121 + 22 + + + + Undying + + + + + + 10 + 20 + 111 + 22 + + + + + true + false + + + + SELECT ALL + + + + + + UE2 + + + + + 10 + 80 + 181 + 22 + + + + + false + + + + Unreal Tournament 2003,2004 + + + + + + 10 + 50 + 121 + 22 + + + + + false + + + + Unreal Engine 2 + + + + + + 10 + 110 + 181 + 22 + + + + + false + + + + Unreal Championship + + + + + + 10 + 140 + 181 + 22 + + + + + false + + + + Splinter Cell 1-4 + + + + + + 10 + 170 + 181 + 22 + + + + + false + + + + Splinter Cell: Conviction + + + + + + 10 + 200 + 181 + 22 + + + + + false + + + + Lineage 2 + + + + + + 10 + 230 + 181 + 22 + + + + + false + + + + Land of Chaos Online (LOCO) + + + + + + 10 + 260 + 181 + 22 + + + + + false + + + + Battle Territory Online + + + + + + 10 + 290 + 191 + 22 + + + + + false + + + + Star Wars: Republic Commando + + + + + + 290 + 290 + 191 + 22 + + + + + false + + + + XIII + + + + + + 290 + 260 + 191 + 22 + + + + + false + + + + Tribes: Vengeance + + + + + + 290 + 230 + 191 + 22 + + + + + false + + + + SWAT 4 + + + + + + 290 + 200 + 191 + 22 + + + + + false + + + + Bioshock, Bioshock 2 + + + + + + 290 + 170 + 191 + 22 + + + + + false + + + + Ragnarok Online 2 + + + + + + 290 + 140 + 191 + 22 + + + + + false + + + + Exteel + + + + + + 290 + 50 + 191 + 22 + + + + + false + + + + America's Army 2 + + + + + + 290 + 80 + 191 + 22 + + + + + false + + + + Vanguard: Saga of Heroes + + + + + + 290 + 110 + 191 + 22 + + + + + false + + + + Echo of Soul + + + + + + 10 + 20 + 111 + 22 + + + + + true + false + + + + SELECT ALL + + + + + + UE3 + + + + + 10 + 160 + 150 + 22 + + + + + 7 + false + + + + Mass Effect 2 + + + + + + 10 + 0 + 111 + 22 + + + + + true + false + + + + SELECT ALL + + + + + + 180 + 20 + 150 + 22 + + + + + 7 + false + + + + Turok + + + + + + 10 + 100 + 150 + 22 + + + + + 7 + false + + + + EndWar + + + + + + 10 + 180 + 150 + 22 + + + + + 7 + false + + + + Mass Effect 3 + + + + + + 10 + 120 + 150 + 22 + + + + + 7 + false + + + + Rainbow 6: Vegas 2 + + + + + + 10 + 280 + 150 + 22 + + + + + 7 + false + + + + Injustice: Gods Among Us + + + + + + 180 + 60 + 150 + 22 + + + + + 7 + false + + + + TNA iMPACT! + + + + + + 10 + 80 + 150 + 22 + + + + + 7 + false + + + + Bulletstorm + + + + + + 10 + 260 + 150 + 22 + + + + + 7 + false + + + + Mortal Kombat + + + + + + 10 + 40 + 150 + 22 + + + + + 7 + false + + + + Gears of War: Judgment + + + + + + 10 + 220 + 150 + 22 + + + + + 7 + false + + + + BlackSite: Area 51 + + + + + + 10 + 240 + 150 + 22 + + + + + 7 + false + + + + Mortal Kombat vs. DC Universe + + + + + + 10 + 200 + 150 + 22 + + + + + 7 + false + + + + Mass Effect Legendary Edition + + + + + + 10 + 140 + 150 + 22 + + + + + 7 + false + + + + Mass Effect + + + + + + 10 + 300 + 150 + 22 + + + + + 7 + false + + + + Mortal Kombat X + + + + + + 180 + 40 + 150 + 22 + + + + + 7 + false + + + + Fury + + + + + + 10 + 60 + 150 + 22 + + + + + 7 + false + + + + Gears of War: Ultimate + + + + + + 10 + 20 + 150 + 22 + + + + + 7 + false + + + + Unreal Engine 3 + + + + + + 180 + 80 + 150 + 22 + + + + + 7 + false + + + + WWE All Stars + + + + + + 180 + 300 + 150 + 22 + + + + + 7 + false + + + + Batman: Arkham Origins + + + + + + 180 + 200 + 150 + 22 + + + + + 7 + false + + + + Mirror's Edge + + + + + + 180 + 120 + 150 + 22 + + + + + 7 + false + + + + Army of Two + + + + + + 180 + 240 + 150 + 22 + + + + + 7 + false + + + + Magna Carta 2 + + + + + + 180 + 220 + 150 + 22 + + + + + 7 + false + + + + X-Men Origins: Wolverine + + + + + + 180 + 160 + 150 + 22 + + + + + 7 + false + + + + Huxley + + + + + + 180 + 140 + 150 + 22 + + + + + 7 + false + + + + Destroy All Humans + + + + + + 180 + 100 + 150 + 22 + + + + + 7 + false + + + + Stranglehold + + + + + + 180 + 260 + 150 + 22 + + + + + 7 + false + + + + Batman: Arkham Asylum + + + + + + 180 + 180 + 150 + 22 + + + + + 7 + false + + + + The Last Remnant + + + + + + 180 + 280 + 150 + 22 + + + + + 7 + false + + + + Batman: Arkham City + + + + + + 10 + 440 + 150 + 22 + + + + + 7 + false + + + + Special Force 2 + + + + + + 10 + 340 + 150 + 22 + + + + + 7 + false + + + + Dungeons & Dragons: Daggerdale + + + + + + 10 + 380 + 150 + 22 + + + + + 7 + false + + + + Rise of the Argonauts + + + + + + 10 + 360 + 150 + 22 + + + + + 7 + false + + + + Shadows of the Damned + + + + + + 10 + 400 + 150 + 22 + + + + + 7 + false + + + + Thor: God of Thunder + + + + + + 10 + 320 + 150 + 22 + + + + + 7 + false + + + + Hunted: The Demon's Forge + + + + + + 10 + 420 + 150 + 22 + + + + + 7 + false + + + + Gunslayer Legend + + + + + + 180 + 440 + 150 + 22 + + + + + 7 + false + + + + Borderlands + + + + + + 180 + 340 + 150 + 22 + + + + + 7 + false + + + + Crime Craft + + + + + + 180 + 380 + 150 + 22 + + + + + 7 + false + + + + Frontlines: Fuel of War + + + + + + 180 + 360 + 150 + 22 + + + + + 7 + false + + + + AVA Online + + + + + + 180 + 400 + 150 + 22 + + + + + 7 + false + + + + Homefront + + + + + + 180 + 320 + 150 + 22 + + + + + 7 + false + + + + Batman: Arkham Knight + + + + + + 180 + 420 + 150 + 22 + + + + + 7 + false + + + + 50 Cent: Blood on the Sand + + + + + + 340 + 120 + 161 + 22 + + + + + 7 + false + + + + TERA: The Exiled Realm of Arborea + + + + + + 340 + 180 + 150 + 22 + + + + + 7 + false + + + + All Points Bulletin + + + + + + 340 + 300 + 150 + 22 + + + + + 7 + false + + + + Mortal Online + + + + + + 340 + 360 + 150 + 22 + + + + + 7 + false + + + + Medal of Honor 2010 + + + + + + 340 + 320 + 150 + 22 + + + + + 7 + false + + + + Enslaved: Odyssey to the West + + + + + + 340 + 220 + 150 + 22 + + + + + 7 + false + + + + Transformers: War for Cybertron + + + + + + 340 + 60 + 150 + 22 + + + + + 7 + false + + + + Aliens: Colonial Marines + + + + + + 340 + 240 + 150 + 22 + + + + + 7 + false + + + + Transformers: Dark of the Moon + + + + + + 340 + 440 + 150 + 22 + + + + + 7 + false + + + + Singularity + + + + + + 340 + 40 + 150 + 22 + + + + + 7 + false + + + + Brothers in Arms: Hell's Highway + + + + + + 340 + 100 + 150 + 22 + + + + + 7 + false + + + + Legendary: Pandora's Box + + + + + + 340 + 280 + 150 + 22 + + + + + 7 + false + + + + America's Army 3 + + + + + + 340 + 140 + 150 + 22 + + + + + 7 + false + + + + Blade && Soul + + + + + + 340 + 160 + 150 + 22 + + + + + 7 + false + + + + Alpha Protocol + + + + + + 340 + 340 + 150 + 22 + + + + + 7 + false + + + + Medal of Honor: Airborne + + + + + + 340 + 420 + 150 + 22 + + + + + 7 + false + + + + Undertow + + + + + + 340 + 200 + 150 + 22 + + + + + 7 + false + + + + The Bourne Conspiracy + + + + + + 340 + 400 + 150 + 22 + + + + + 7 + false + + + + Berkanix + + + + + + 340 + 260 + 150 + 22 + + + + + 7 + false + + + + Transformers: Fall of Cybertron + + + + + + 340 + 80 + 150 + 22 + + + + + 7 + false + + + + Dark Void + + + + + + 340 + 380 + 150 + 22 + + + + + 7 + false + + + + Alice: Madness Returns + + + + + + 340 + 20 + 150 + 22 + + + + + 7 + false + + + + Passion Leads Army + + + + + + 510 + 300 + 150 + 22 + + + + + 7 + false + + + + The Bureau: XCOM Declassified + + + + + + 510 + 320 + 150 + 22 + + + + + 7 + false + + + + XCOM 2 + + + + + + 10 + 480 + 150 + 22 + + + + + 7 + false + + + + Dishonored + + + + + + 510 + 400 + 150 + 22 + + + + + 7 + false + + + + Fable: The Journey + + + + + + 510 + 340 + 150 + 22 + + + + + 7 + false + + + + Remember Me + + + + + + 510 + 440 + 150 + 22 + + + + + 7 + false + + + + Lost Planet 3 + + + + + + 510 + 460 + 150 + 22 + + + + + 7 + false + + + + Yaiba: Ninja Gaiden Z + + + + + + 510 + 380 + 150 + 22 + + + + + 7 + false + + + + Bioshock Infinite + + + + + + 10 + 460 + 150 + 22 + + + + + 7 + false + + + + Tribes: Ascend + + + + + + 340 + 460 + 150 + 22 + + + + + 7 + false + + + + Tao Yuan + + + + + + 510 + 420 + 150 + 22 + + + + + 7 + false + + + + Fable Anniversary + + + + + + 180 + 460 + 150 + 22 + + + + + 7 + false + + + + Borderlands 2 + + + + + + 510 + 360 + 150 + 22 + + + + + 7 + false + + + + Life is Strange + + + + + + 510 + 260 + 150 + 22 + + + + + 7 + false + + + + Thief + + + + + + 510 + 280 + 150 + 22 + + + + + 7 + false + + + + DmC: Devil May Cry + + + + + + 510 + 100 + 150 + 22 + + + + + 7 + false + + + + Gigantic + + + + + + 510 + 240 + 150 + 22 + + + + + 7 + false + + + + Murdered: Soul Suspect + + + + + + 510 + 200 + 150 + 22 + + + + + 7 + false + + + + SMITE + + + + + + 510 + 160 + 150 + 22 + + + + + 7 + false + + + + Dungeon Defenders + + + + + + 510 + 180 + 150 + 22 + + + + + 7 + false + + + + Seal of Vajra + + + + + + 510 + 40 + 150 + 22 + + + + + 7 + false + + + + Metro Conflict + + + + + + 510 + 80 + 150 + 22 + + + + + 7 + false + + + + Rocket League + + + + + + 510 + 140 + 150 + 22 + + + + + 7 + false + + + + Devil's Third + + + + + + 510 + 220 + 150 + 22 + + + + + 7 + false + + + + Guilty Gear Xrd + + + + + + 510 + 120 + 150 + 22 + + + + + 7 + false + + + + The Vanishing of Ethan Carter + + + + + + 510 + 20 + 150 + 22 + + + + + 7 + false + + + + GRAV + + + + + + 510 + 60 + 150 + 22 + + + + + 7 + false + + + + Dust 514 + + + + + + UE4 + + + + + 10 + 10 + 111 + 22 + + + + + true + false + + + + SELECT ALL + + + + + + 290 + 100 + 191 + 22 + + + + + false + + + + Heroes of Incredible Tales + + + + + + 10 + 70 + 181 + 22 + + + + + false + + + + Gears of War 4 + + + + + + 290 + 310 + 191 + 22 + + + + + false + + + + Fable Legends + + + + + + 290 + 70 + 191 + 22 + + + + + false + + + + Unreal Tournament 4 + + + + + + 10 + 130 + 181 + 22 + + + + + false + + + + Ark: Survival Evolved + + + + + + 10 + 100 + 181 + 22 + + + + + false + + + + Days Gone + + + + + + 290 + 130 + 191 + 22 + + + + + false + + + + New Gundam Breaker + + + + + + 10 + 280 + 191 + 22 + + + + + false + + + + Paragon + + + + + + 290 + 190 + 191 + 22 + + + + + false + + + + Ascendant One + + + + + + 10 + 250 + 181 + 22 + + + + + false + + + + Dauntless + + + + + + 290 + 280 + 191 + 22 + + + + + false + + + + Star Wars Jedi: Fallen Order + + + + + + 290 + 220 + 191 + 22 + + + + + false + + + + Borderlands 3 + + + + + + 10 + 160 + 181 + 22 + + + + + false + + + + Tekken 7 + + + + + + 290 + 160 + 191 + 22 + + + + + false + + + + Life is Strange 2 + + + + + + 290 + 250 + 191 + 22 + + + + + false + + + + Kingdom Hearts 3 + + + + + + 10 + 190 + 181 + 22 + + + + + false + + + + Lawbreakers + + + + + + 10 + 220 + 181 + 22 + + + + + false + + + + State of Decay 2 + + + + + + 290 + 40 + 181 + 22 + + + + + false + + + + Unreal engine 4.25 Plus + + + + + + 10 + 310 + 191 + 22 + + + + + false + + + + Sea of Thieves + + + + + + 10 + 40 + 181 + 22 + + + + + false + + + + Unreal engine 4.0-4.27 + + + + + + + + 680 + 350 + 111 + 16 + + + + + 11 + false + + + + Game overrides: + + + + + + 10 + 920 + 631 + 51 + + + + + 23 + false + + + + Process + + + + + + 677 + 340 + 710 + 20 + + + + + false + + + + Qt::Horizontal + + + + + + 650 + 70 + 20 + 901 + + + + + false + + + + Qt::Vertical + + + + + + 10 + 615 + 631 + 289 + + + + + false + + + + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><meta charset="utf-8" /><style type="text/css"> +p, li { white-space: pre-wrap; } +hr { height: 1px; border-width: 0; } +li.unchecked::marker { content: "\2610"; } +li.checked::marker { content: "\2612"; } +</style></head><body style=" font-family:'Segoe UI'; font-size:9pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt; font-weight:700;">WARNING:</span></p> +<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">Each of the checkbox options adds an additional pass to the brute forcing utility.</span></p> +<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">For example, If you choose 5 options with 1 game override, and have the Animations, Sounds, StaticMesh and Textures folders populated, then the tool will run Umodel 625 times for 1 file per folder. 2 games will double this amount, and so on.</span></p> +<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">This is known as Permutations. In this specific case, there are 4 objects and each object can be combined with any of the 5 options. </span></p> +<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">The situation is akin to having 4 slots where each slot can be filled with one of 5 possible choices.</span></p> +<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">The principle here is that of the multiplication rule, which states that if you have </span><span style=" font-size:8pt; font-style:italic;">n</span><span style=" font-size:8pt;"> choices for one task and </span><span style=" font-size:8pt; font-style:italic;">m</span><span style=" font-size:8pt;"> choices for another task, then there are </span><span style=" font-size:8pt; font-style:italic;">n X m</span><span style=" font-size:8pt;"> choices for both tasks together.</span></p> +<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">For this specific scenario, there are 5 choices for the first object, 5 choices for the second object, 5 choices for the third object, and 5 choices for the fourth object.</span></p> +<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">Therefore, the total number of possible combinations can be calculated as: 5x5x5x5=</span><span style=" font-size:8pt; font-weight:700;">625 (PER FILE!)</span></p></body></html> + + + + + + 800 + 80 + 71 + 22 + + + + + false + + + + Sounds + + + + + + 690 + 230 + 111 + 22 + + + + + true + false + + + + SELECT ALL + + + + + + 680 + 190 + 710 + 20 + + + + + false + + + + Qt::Horizontal + + + + + + 680 + 210 + 151 + 16 + + + + + 11 + false + + + + Permutation Options: + + + + + + 860 + 60 + 181 + 16 + + + + + true + false + + + + (these will be applied to every run) + + + + + + 860 + 210 + 121 + 16 + + + + + true + false + + + + (please read warning) + + + + + + 800 + 350 + 121 + 16 + + + + + true + false + + + + (please read warning) + + + + + + 680 + 927 + 150 + 16 + + + + + false + + + + Additional game override: + + + + + + 679 + 947 + 710 + 24 + + + + + false + + + + false + + + e.g 'sg1' | Enter the text with no hyphen or quotes + + + + + + 1140 + 927 + 251 + 16 + + + + + 8 + true + false + + + + (ADVANCED: this is for modified versions of Umodel) + + + + + + 10 + 902 + 631 + 20 + + + + + false + + + + Qt::Horizontal + + + + + + 1150 + 110 + 141 + 22 + + + + + false + + + + Uncook (UE3/4/5 only) + + + + + + 30 + 130 + 401 + 24 + + + + + false + + + + e.g C:\Games\Bulletstorm\StormGame\CookedPC + + + + + + 10 + 110 + 201 + 16 + + + + + 10 + true + false + + + + 'Cooked' folder: (UE 3/4/5 only) + + + + + + 440 + 130 + 80 + 24 + + + + + false + + + + Browse + + + + + + 10 + 538 + 631 + 20 + + + + + false + + + + Qt::Horizontal + + + + + + 10 + 154 + 631 + 20 + + + + + false + + + + Qt::Horizontal + + + + + + 10 + 168 + 631 + 16 + + + + + 8 + true + true + false + + + + The options below are mostly used for Unreal Engine 1 & 2 games. If you have a "Cooked" folder, you can skip them. + + + + + + 1240 + 9 + 150 + 48 + + + + + 23 + false + + + + JMDigital + + + true + + + + + + 680 + 50 + 710 + 20 + + + + + false + + + + Qt::Horizontal + + + + + + 530 + 130 + 113 + 24 + + + + + false + + + + false + + + 8 + + + Default 'upk' + + + false + + + + + + 530 + 110 + 121 + 16 + + + + + false + + + + Cooked Extension: + + + + + + 670 + 10 + 720 + 46 + + + + + false + + + + true + + + QFrame::NoFrame + + + QFrame::Plain + + + 0 + + + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><meta charset="utf-8" /><style type="text/css"> +p, li { white-space: pre-wrap; } +hr { height: 1px; border-width: 0; } +li.unchecked::marker { content: "\2610"; } +li.checked::marker { content: "\2612"; } +</style></head><body style=" font-family:'Segoe UI'; font-size:9pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:7pt; font-style:italic;">Umodel is © Gildor </span><a href="https://www.gildor.org/en/projects/umodel"><span style=" font-size:7pt; font-style:italic; text-decoration: underline; color:#007af4;">Umodel Homepage</span></a></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:7pt; font-style:italic;">JMD's Umodel Brute Forcer UI is © JMDigital</span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:7pt; font-style:italic;">Not affiliated with Epic Games Inc.</span></p></body></html> + + + true + + + + + + 900 + 80 + 71 + 22 + + + + + false + + + + 3rd Party + + + + + + 1020 + 80 + 91 + 22 + + + + + false + + + + UnrealScript + + + + + + 690 + 170 + 91 + 22 + + + + + false + + + + glTF meshes + + + + + + 1020 + 110 + 91 + 22 + + + + + false + + + + PNG textures + + + + + + 690 + 140 + 91 + 22 + + + + + false + + + + Playstation 3 + + + + + + 800 + 140 + 91 + 22 + + + + + false + + + + Playstation 4 + + + + + + 900 + 140 + 111 + 22 + + + + + false + + + + Nintendo Switch + + + + + + 1020 + 140 + 121 + 22 + + + + + false + + + + iOS (iPhone/iPad) + + + + + + 1150 + 140 + 71 + 22 + + + + + false + + + + Android + + + + + + 690 + 110 + 101 + 22 + + + + + false + + + + Group names + + + + + + 900 + 110 + 101 + 22 + + + + + false + + + + DDS textures + + + + + + 800 + 110 + 91 + 22 + + + + + false + + + + All LODs + + + + + + 1150 + 80 + 161 + 22 + + + + + false + + + + Disable TGA compression + + + + + + 800 + 170 + 271 + 22 + + + + + false + + + + md5mesh/md5anim format for skeletal meshes + + + textBrowserCpyrght + umodelExeLineEdit + umodelExeLabel + gameLineEdit + gameLabel + destFolderLineEdit + destFolderLabel + gameAnimLineEdit + gameAnimLabel + gameSoundLineEdit + gameSoundLabel + gameSmeshLabel + gameSmeshLineEdit + gameTexLineEdit + gameTexLabel + optionsMasterLabel + umodelExePushButton + gamePushButton + gameAnimPushButton + gameSoundPushButton + gameSmeshPushButton + gameTexPushButton + destFolderPushButton + optionsNoOvCheckBox + optionsNoAnCheckBox + optionsNoMeCheckBox + optionsNoStMeCheckBox + optionsNoVeMeCheckBox + optionsNoTxCheckBox + optionsNoMpCheckBox + optionsNoLiCheckBox + optionsZlibCheckBox + optionsLzxCheckBox + optionsLzoCheckBox + gameAnimExtLineEdit + gameAnimExtLabel + gameSoundExtLineEdit + gameSoundExtLabel + gameSmeshExtLineEdit + gameSmeshExtLabel + gameTexExtLabel + gameTexExtLineEdit + gameAdd1ExtLabel + gameAdd1ExtLineEdit + gameAdd1Label + gameAdd1LineEdit + gameAdd1PushButton + gameAdd2PushButton + gameAdd2Label + gameAdd2ExtLineEdit + gameAdd2ExtLabel + gameAdd2LineEdit + gameAdd3ExtLabel + gameAdd3Label + gameAdd3PushButton + gameAdd3ExtLineEdit + gameAdd3LineEdit + tabWidget + optionsGamesLabel + ProcessButton + line + line_2 + textBrowserWarning + optionsSndsCheckBox + optionsSelectAllCheckBox + line_3 + optionsPermLabel + optionsMasterLabelNote + optionsPermLabelNote + optionsGamesLabelNote + optionsGamesAddiLabel + optionsGamesAddiLineEdit + optionsGamesAddiLabelNote + line_4 + optionsUnckCheckBox + gameCookedLineEdit + gameLabel_2 + gameCookedPushButton + line_5 + line_6 + label + JMDigitalLogo + line_7 + gameCookedExtLineEdit + gameAnimExtLabel_2 + options3rdPartyCheckBox + optionsUScriptCheckBox + optionsGltfCheckBox + optionsPngCheckBox + optionsPs3CheckBox + optionsPs4CheckBox + optionsNswCheckBox + optionsIosCheckBox + optionsAndroidCheckBox + optionsGrpsCheckBox + optionsDdsCheckBox + optionsLodsCheckBox + optionsDisTgaCompCheckBox + optionsMd5CheckBox + + + + diff --git a/JMD-Umodel-BruteForcer/images/umodelbruteforcer.ico b/JMD-Umodel-BruteForcer/images/umodelbruteforcer.ico new file mode 100644 index 0000000..5cc8790 Binary files /dev/null and b/JMD-Umodel-BruteForcer/images/umodelbruteforcer.ico differ diff --git a/JMD-Umodel-BruteForcer/ui_form.py b/JMD-Umodel-BruteForcer/ui_form.py new file mode 100644 index 0000000..78ad5be --- /dev/null +++ b/JMD-Umodel-BruteForcer/ui_form.py @@ -0,0 +1,1434 @@ +# -*- coding: utf-8 -*- + +################################################################################ +## Form generated from reading UI file 'form.ui' +## +## Created by: Qt User Interface Compiler version 6.5.2 +## +## WARNING! All changes made in this file will be lost when recompiling UI file! +################################################################################ + +from PySide6.QtCore import (QCoreApplication, QDate, QDateTime, QLocale, + QMetaObject, QObject, QPoint, QRect, + QSize, QTime, QUrl, Qt) +from PySide6.QtGui import (QBrush, QColor, QConicalGradient, QCursor, + QFont, QFontDatabase, QGradient, QIcon, + QImage, QKeySequence, QLinearGradient, QPainter, + QPalette, QPixmap, QRadialGradient, QTransform) +from PySide6.QtWidgets import (QApplication, QCheckBox, QFrame, QLabel, + QLineEdit, QPushButton, QSizePolicy, QTabWidget, + QTextBrowser, QWidget) + +class Ui_UmodelBruteForcer(object): + def setupUi(self, UmodelBruteForcer): + if not UmodelBruteForcer.objectName(): + UmodelBruteForcer.setObjectName(u"UmodelBruteForcer") + UmodelBruteForcer.setWindowModality(Qt.NonModal) + UmodelBruteForcer.resize(1400, 980) + sizePolicy = QSizePolicy(QSizePolicy.Preferred, QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(UmodelBruteForcer.sizePolicy().hasHeightForWidth()) + UmodelBruteForcer.setSizePolicy(sizePolicy) + UmodelBruteForcer.setMinimumSize(QSize(1400, 980)) + UmodelBruteForcer.setMaximumSize(QSize(1400, 980)) + UmodelBruteForcer.setSizeIncrement(QSize(0, 0)) + UmodelBruteForcer.setBaseSize(QSize(1400, 1000)) + self.umodelExeLineEdit = QLineEdit(UmodelBruteForcer) + self.umodelExeLineEdit.setObjectName(u"umodelExeLineEdit") + self.umodelExeLineEdit.setGeometry(QRect(30, 30, 521, 24)) + font = QFont() + font.setKerning(False) + self.umodelExeLineEdit.setFont(font) + self.umodelExeLabel = QLabel(UmodelBruteForcer) + self.umodelExeLabel.setObjectName(u"umodelExeLabel") + self.umodelExeLabel.setGeometry(QRect(10, 10, 141, 16)) + font1 = QFont() + font1.setPointSize(10) + font1.setBold(True) + font1.setKerning(False) + self.umodelExeLabel.setFont(font1) + self.gameLineEdit = QLineEdit(UmodelBruteForcer) + self.gameLineEdit.setObjectName(u"gameLineEdit") + self.gameLineEdit.setGeometry(QRect(30, 80, 521, 24)) + self.gameLineEdit.setFont(font) + self.gameLabel = QLabel(UmodelBruteForcer) + self.gameLabel.setObjectName(u"gameLabel") + self.gameLabel.setGeometry(QRect(10, 60, 161, 16)) + self.gameLabel.setFont(font1) + self.destFolderLineEdit = QLineEdit(UmodelBruteForcer) + self.destFolderLineEdit.setObjectName(u"destFolderLineEdit") + self.destFolderLineEdit.setGeometry(QRect(30, 580, 521, 24)) + self.destFolderLineEdit.setFont(font) + self.destFolderLabel = QLabel(UmodelBruteForcer) + self.destFolderLabel.setObjectName(u"destFolderLabel") + self.destFolderLabel.setGeometry(QRect(10, 560, 121, 16)) + self.destFolderLabel.setFont(font1) + self.gameAnimLineEdit = QLineEdit(UmodelBruteForcer) + self.gameAnimLineEdit.setObjectName(u"gameAnimLineEdit") + self.gameAnimLineEdit.setGeometry(QRect(30, 210, 401, 24)) + self.gameAnimLineEdit.setFont(font) + self.gameAnimLabel = QLabel(UmodelBruteForcer) + self.gameAnimLabel.setObjectName(u"gameAnimLabel") + self.gameAnimLabel.setGeometry(QRect(10, 190, 121, 16)) + font2 = QFont() + font2.setPointSize(10) + font2.setKerning(False) + self.gameAnimLabel.setFont(font2) + self.gameSoundLineEdit = QLineEdit(UmodelBruteForcer) + self.gameSoundLineEdit.setObjectName(u"gameSoundLineEdit") + self.gameSoundLineEdit.setGeometry(QRect(30, 260, 401, 24)) + self.gameSoundLineEdit.setFont(font) + self.gameSoundLabel = QLabel(UmodelBruteForcer) + self.gameSoundLabel.setObjectName(u"gameSoundLabel") + self.gameSoundLabel.setGeometry(QRect(10, 240, 121, 16)) + self.gameSoundLabel.setFont(font2) + self.gameSmeshLabel = QLabel(UmodelBruteForcer) + self.gameSmeshLabel.setObjectName(u"gameSmeshLabel") + self.gameSmeshLabel.setGeometry(QRect(10, 290, 121, 16)) + self.gameSmeshLabel.setFont(font2) + self.gameSmeshLineEdit = QLineEdit(UmodelBruteForcer) + self.gameSmeshLineEdit.setObjectName(u"gameSmeshLineEdit") + self.gameSmeshLineEdit.setGeometry(QRect(30, 310, 401, 24)) + self.gameSmeshLineEdit.setFont(font) + self.gameTexLineEdit = QLineEdit(UmodelBruteForcer) + self.gameTexLineEdit.setObjectName(u"gameTexLineEdit") + self.gameTexLineEdit.setGeometry(QRect(30, 360, 401, 24)) + self.gameTexLineEdit.setFont(font) + self.gameTexLabel = QLabel(UmodelBruteForcer) + self.gameTexLabel.setObjectName(u"gameTexLabel") + self.gameTexLabel.setGeometry(QRect(10, 340, 121, 16)) + self.gameTexLabel.setFont(font2) + self.optionsMasterLabel = QLabel(UmodelBruteForcer) + self.optionsMasterLabel.setObjectName(u"optionsMasterLabel") + self.optionsMasterLabel.setGeometry(QRect(680, 60, 111, 16)) + font3 = QFont() + font3.setPointSize(11) + font3.setKerning(False) + self.optionsMasterLabel.setFont(font3) + self.umodelExePushButton = QPushButton(UmodelBruteForcer) + self.umodelExePushButton.setObjectName(u"umodelExePushButton") + self.umodelExePushButton.setGeometry(QRect(560, 30, 80, 24)) + self.umodelExePushButton.setFont(font) + self.gamePushButton = QPushButton(UmodelBruteForcer) + self.gamePushButton.setObjectName(u"gamePushButton") + self.gamePushButton.setGeometry(QRect(560, 80, 80, 24)) + self.gamePushButton.setFont(font) + self.gameAnimPushButton = QPushButton(UmodelBruteForcer) + self.gameAnimPushButton.setObjectName(u"gameAnimPushButton") + self.gameAnimPushButton.setGeometry(QRect(440, 210, 80, 24)) + self.gameAnimPushButton.setFont(font) + self.gameSoundPushButton = QPushButton(UmodelBruteForcer) + self.gameSoundPushButton.setObjectName(u"gameSoundPushButton") + self.gameSoundPushButton.setGeometry(QRect(440, 260, 80, 24)) + self.gameSoundPushButton.setFont(font) + self.gameSmeshPushButton = QPushButton(UmodelBruteForcer) + self.gameSmeshPushButton.setObjectName(u"gameSmeshPushButton") + self.gameSmeshPushButton.setGeometry(QRect(440, 310, 80, 24)) + self.gameSmeshPushButton.setFont(font) + self.gameTexPushButton = QPushButton(UmodelBruteForcer) + self.gameTexPushButton.setObjectName(u"gameTexPushButton") + self.gameTexPushButton.setGeometry(QRect(440, 360, 80, 24)) + self.gameTexPushButton.setFont(font) + self.destFolderPushButton = QPushButton(UmodelBruteForcer) + self.destFolderPushButton.setObjectName(u"destFolderPushButton") + self.destFolderPushButton.setGeometry(QRect(560, 580, 80, 24)) + self.destFolderPushButton.setFont(font) + self.optionsNoOvCheckBox = QCheckBox(UmodelBruteForcer) + self.optionsNoOvCheckBox.setObjectName(u"optionsNoOvCheckBox") + self.optionsNoOvCheckBox.setGeometry(QRect(690, 80, 101, 22)) + self.optionsNoOvCheckBox.setFont(font) + self.optionsNoAnCheckBox = QCheckBox(UmodelBruteForcer) + self.optionsNoAnCheckBox.setObjectName(u"optionsNoAnCheckBox") + self.optionsNoAnCheckBox.setGeometry(QRect(690, 260, 141, 22)) + self.optionsNoAnCheckBox.setFont(font) + self.optionsNoMeCheckBox = QCheckBox(UmodelBruteForcer) + self.optionsNoMeCheckBox.setObjectName(u"optionsNoMeCheckBox") + self.optionsNoMeCheckBox.setGeometry(QRect(850, 260, 121, 22)) + self.optionsNoMeCheckBox.setFont(font) + self.optionsNoStMeCheckBox = QCheckBox(UmodelBruteForcer) + self.optionsNoStMeCheckBox.setObjectName(u"optionsNoStMeCheckBox") + self.optionsNoStMeCheckBox.setGeometry(QRect(1010, 260, 111, 22)) + self.optionsNoStMeCheckBox.setFont(font) + self.optionsNoVeMeCheckBox = QCheckBox(UmodelBruteForcer) + self.optionsNoVeMeCheckBox.setObjectName(u"optionsNoVeMeCheckBox") + self.optionsNoVeMeCheckBox.setGeometry(QRect(1150, 260, 121, 22)) + self.optionsNoVeMeCheckBox.setFont(font) + self.optionsNoTxCheckBox = QCheckBox(UmodelBruteForcer) + self.optionsNoTxCheckBox.setObjectName(u"optionsNoTxCheckBox") + self.optionsNoTxCheckBox.setGeometry(QRect(690, 290, 91, 22)) + self.optionsNoTxCheckBox.setFont(font) + self.optionsNoMpCheckBox = QCheckBox(UmodelBruteForcer) + self.optionsNoMpCheckBox.setObjectName(u"optionsNoMpCheckBox") + self.optionsNoMpCheckBox.setGeometry(QRect(850, 290, 121, 22)) + self.optionsNoMpCheckBox.setFont(font) + self.optionsNoLiCheckBox = QCheckBox(UmodelBruteForcer) + self.optionsNoLiCheckBox.setObjectName(u"optionsNoLiCheckBox") + self.optionsNoLiCheckBox.setGeometry(QRect(1010, 290, 101, 22)) + self.optionsNoLiCheckBox.setFont(font) + self.optionsZlibCheckBox = QCheckBox(UmodelBruteForcer) + self.optionsZlibCheckBox.setObjectName(u"optionsZlibCheckBox") + self.optionsZlibCheckBox.setGeometry(QRect(690, 320, 121, 22)) + self.optionsZlibCheckBox.setFont(font) + self.optionsLzxCheckBox = QCheckBox(UmodelBruteForcer) + self.optionsLzxCheckBox.setObjectName(u"optionsLzxCheckBox") + self.optionsLzxCheckBox.setGeometry(QRect(850, 320, 121, 22)) + self.optionsLzxCheckBox.setFont(font) + self.optionsLzoCheckBox = QCheckBox(UmodelBruteForcer) + self.optionsLzoCheckBox.setObjectName(u"optionsLzoCheckBox") + self.optionsLzoCheckBox.setGeometry(QRect(1010, 320, 121, 22)) + self.optionsLzoCheckBox.setFont(font) + self.gameAnimExtLineEdit = QLineEdit(UmodelBruteForcer) + self.gameAnimExtLineEdit.setObjectName(u"gameAnimExtLineEdit") + self.gameAnimExtLineEdit.setGeometry(QRect(530, 210, 113, 24)) + self.gameAnimExtLineEdit.setFont(font) + self.gameAnimExtLineEdit.setAcceptDrops(False) + self.gameAnimExtLineEdit.setMaxLength(8) + self.gameAnimExtLineEdit.setClearButtonEnabled(False) + self.gameAnimExtLabel = QLabel(UmodelBruteForcer) + self.gameAnimExtLabel.setObjectName(u"gameAnimExtLabel") + self.gameAnimExtLabel.setGeometry(QRect(530, 190, 121, 16)) + self.gameAnimExtLabel.setFont(font) + self.gameSoundExtLineEdit = QLineEdit(UmodelBruteForcer) + self.gameSoundExtLineEdit.setObjectName(u"gameSoundExtLineEdit") + self.gameSoundExtLineEdit.setGeometry(QRect(530, 260, 113, 24)) + self.gameSoundExtLineEdit.setFont(font) + self.gameSoundExtLineEdit.setAcceptDrops(False) + self.gameSoundExtLineEdit.setMaxLength(8) + self.gameSoundExtLabel = QLabel(UmodelBruteForcer) + self.gameSoundExtLabel.setObjectName(u"gameSoundExtLabel") + self.gameSoundExtLabel.setGeometry(QRect(530, 240, 121, 16)) + self.gameSoundExtLabel.setFont(font) + self.gameSmeshExtLineEdit = QLineEdit(UmodelBruteForcer) + self.gameSmeshExtLineEdit.setObjectName(u"gameSmeshExtLineEdit") + self.gameSmeshExtLineEdit.setGeometry(QRect(530, 310, 113, 24)) + self.gameSmeshExtLineEdit.setFont(font) + self.gameSmeshExtLineEdit.setAcceptDrops(False) + self.gameSmeshExtLineEdit.setMaxLength(8) + self.gameSmeshExtLabel = QLabel(UmodelBruteForcer) + self.gameSmeshExtLabel.setObjectName(u"gameSmeshExtLabel") + self.gameSmeshExtLabel.setGeometry(QRect(530, 290, 121, 16)) + self.gameSmeshExtLabel.setFont(font) + self.gameTexExtLabel = QLabel(UmodelBruteForcer) + self.gameTexExtLabel.setObjectName(u"gameTexExtLabel") + self.gameTexExtLabel.setGeometry(QRect(530, 340, 121, 16)) + self.gameTexExtLabel.setFont(font) + self.gameTexExtLineEdit = QLineEdit(UmodelBruteForcer) + self.gameTexExtLineEdit.setObjectName(u"gameTexExtLineEdit") + self.gameTexExtLineEdit.setGeometry(QRect(530, 360, 113, 24)) + self.gameTexExtLineEdit.setFont(font) + self.gameTexExtLineEdit.setAcceptDrops(False) + self.gameTexExtLineEdit.setMaxLength(8) + self.gameAdd1ExtLabel = QLabel(UmodelBruteForcer) + self.gameAdd1ExtLabel.setObjectName(u"gameAdd1ExtLabel") + self.gameAdd1ExtLabel.setGeometry(QRect(530, 390, 121, 16)) + self.gameAdd1ExtLabel.setFont(font) + self.gameAdd1ExtLineEdit = QLineEdit(UmodelBruteForcer) + self.gameAdd1ExtLineEdit.setObjectName(u"gameAdd1ExtLineEdit") + self.gameAdd1ExtLineEdit.setGeometry(QRect(530, 410, 113, 24)) + self.gameAdd1ExtLineEdit.setFont(font) + self.gameAdd1ExtLineEdit.setAcceptDrops(False) + self.gameAdd1ExtLineEdit.setMaxLength(8) + self.gameAdd1Label = QLabel(UmodelBruteForcer) + self.gameAdd1Label.setObjectName(u"gameAdd1Label") + self.gameAdd1Label.setGeometry(QRect(10, 390, 121, 16)) + self.gameAdd1Label.setFont(font2) + self.gameAdd1LineEdit = QLineEdit(UmodelBruteForcer) + self.gameAdd1LineEdit.setObjectName(u"gameAdd1LineEdit") + self.gameAdd1LineEdit.setGeometry(QRect(30, 410, 401, 24)) + self.gameAdd1LineEdit.setFont(font) + self.gameAdd1PushButton = QPushButton(UmodelBruteForcer) + self.gameAdd1PushButton.setObjectName(u"gameAdd1PushButton") + self.gameAdd1PushButton.setGeometry(QRect(440, 410, 80, 24)) + self.gameAdd1PushButton.setFont(font) + self.gameAdd2PushButton = QPushButton(UmodelBruteForcer) + self.gameAdd2PushButton.setObjectName(u"gameAdd2PushButton") + self.gameAdd2PushButton.setGeometry(QRect(440, 460, 80, 24)) + self.gameAdd2PushButton.setFont(font) + self.gameAdd2Label = QLabel(UmodelBruteForcer) + self.gameAdd2Label.setObjectName(u"gameAdd2Label") + self.gameAdd2Label.setGeometry(QRect(10, 440, 121, 16)) + self.gameAdd2Label.setFont(font2) + self.gameAdd2ExtLineEdit = QLineEdit(UmodelBruteForcer) + self.gameAdd2ExtLineEdit.setObjectName(u"gameAdd2ExtLineEdit") + self.gameAdd2ExtLineEdit.setGeometry(QRect(530, 460, 113, 24)) + self.gameAdd2ExtLineEdit.setFont(font) + self.gameAdd2ExtLineEdit.setAcceptDrops(False) + self.gameAdd2ExtLineEdit.setMaxLength(8) + self.gameAdd2ExtLabel = QLabel(UmodelBruteForcer) + self.gameAdd2ExtLabel.setObjectName(u"gameAdd2ExtLabel") + self.gameAdd2ExtLabel.setGeometry(QRect(530, 440, 121, 16)) + self.gameAdd2ExtLabel.setFont(font) + self.gameAdd2LineEdit = QLineEdit(UmodelBruteForcer) + self.gameAdd2LineEdit.setObjectName(u"gameAdd2LineEdit") + self.gameAdd2LineEdit.setGeometry(QRect(30, 460, 401, 24)) + self.gameAdd2LineEdit.setFont(font) + self.gameAdd3ExtLabel = QLabel(UmodelBruteForcer) + self.gameAdd3ExtLabel.setObjectName(u"gameAdd3ExtLabel") + self.gameAdd3ExtLabel.setGeometry(QRect(530, 490, 121, 16)) + self.gameAdd3ExtLabel.setFont(font) + self.gameAdd3Label = QLabel(UmodelBruteForcer) + self.gameAdd3Label.setObjectName(u"gameAdd3Label") + self.gameAdd3Label.setGeometry(QRect(10, 490, 121, 16)) + self.gameAdd3Label.setFont(font2) + self.gameAdd3PushButton = QPushButton(UmodelBruteForcer) + self.gameAdd3PushButton.setObjectName(u"gameAdd3PushButton") + self.gameAdd3PushButton.setGeometry(QRect(440, 510, 80, 24)) + self.gameAdd3PushButton.setFont(font) + self.gameAdd3ExtLineEdit = QLineEdit(UmodelBruteForcer) + self.gameAdd3ExtLineEdit.setObjectName(u"gameAdd3ExtLineEdit") + self.gameAdd3ExtLineEdit.setGeometry(QRect(530, 510, 113, 24)) + self.gameAdd3ExtLineEdit.setFont(font) + self.gameAdd3ExtLineEdit.setAcceptDrops(False) + self.gameAdd3ExtLineEdit.setMaxLength(8) + self.gameAdd3LineEdit = QLineEdit(UmodelBruteForcer) + self.gameAdd3LineEdit.setObjectName(u"gameAdd3LineEdit") + self.gameAdd3LineEdit.setGeometry(QRect(30, 510, 401, 24)) + self.gameAdd3LineEdit.setFont(font) + self.tabWidget = QTabWidget(UmodelBruteForcer) + self.tabWidget.setObjectName(u"tabWidget") + self.tabWidget.setEnabled(True) + self.tabWidget.setGeometry(QRect(680, 379, 700, 541)) + self.tabWidget.setFont(font) + self.tabWidget.setAutoFillBackground(False) + self.ue1Tab = QWidget() + self.ue1Tab.setObjectName(u"ue1Tab") + self.gamesTabUe1CheckBoxUe1 = QCheckBox(self.ue1Tab) + self.gamesTabUe1CheckBoxUe1.setObjectName(u"gamesTabUe1CheckBoxUe1") + self.gamesTabUe1CheckBoxUe1.setGeometry(QRect(10, 50, 121, 22)) + self.gamesTabUe1CheckBoxUndying = QCheckBox(self.ue1Tab) + self.gamesTabUe1CheckBoxUndying.setObjectName(u"gamesTabUe1CheckBoxUndying") + self.gamesTabUe1CheckBoxUndying.setGeometry(QRect(10, 80, 121, 22)) + self.gamesTabUe1CheckBoxSelectAll = QCheckBox(self.ue1Tab) + self.gamesTabUe1CheckBoxSelectAll.setObjectName(u"gamesTabUe1CheckBoxSelectAll") + self.gamesTabUe1CheckBoxSelectAll.setGeometry(QRect(10, 20, 111, 22)) + font4 = QFont() + font4.setBold(True) + font4.setKerning(False) + self.gamesTabUe1CheckBoxSelectAll.setFont(font4) + self.tabWidget.addTab(self.ue1Tab, "") + self.ue2Tab = QWidget() + self.ue2Tab.setObjectName(u"ue2Tab") + self.gamesTabUe2CheckBoxUt2 = QCheckBox(self.ue2Tab) + self.gamesTabUe2CheckBoxUt2.setObjectName(u"gamesTabUe2CheckBoxUt2") + self.gamesTabUe2CheckBoxUt2.setGeometry(QRect(10, 80, 181, 22)) + self.gamesTabUe2CheckBoxUt2.setFont(font) + self.gamesTabUe2CheckBoxUe2 = QCheckBox(self.ue2Tab) + self.gamesTabUe2CheckBoxUe2.setObjectName(u"gamesTabUe2CheckBoxUe2") + self.gamesTabUe2CheckBoxUe2.setGeometry(QRect(10, 50, 121, 22)) + self.gamesTabUe2CheckBoxUe2.setFont(font) + self.gamesTabUe2CheckBoxUc1 = QCheckBox(self.ue2Tab) + self.gamesTabUe2CheckBoxUc1.setObjectName(u"gamesTabUe2CheckBoxUc1") + self.gamesTabUe2CheckBoxUc1.setGeometry(QRect(10, 110, 181, 22)) + self.gamesTabUe2CheckBoxUc1.setFont(font) + self.gamesTabUe2CheckBoxScell = QCheckBox(self.ue2Tab) + self.gamesTabUe2CheckBoxScell.setObjectName(u"gamesTabUe2CheckBoxScell") + self.gamesTabUe2CheckBoxScell.setGeometry(QRect(10, 140, 181, 22)) + self.gamesTabUe2CheckBoxScell.setFont(font) + self.gamesTabUe2CheckBoxScconv = QCheckBox(self.ue2Tab) + self.gamesTabUe2CheckBoxScconv.setObjectName(u"gamesTabUe2CheckBoxScconv") + self.gamesTabUe2CheckBoxScconv.setGeometry(QRect(10, 170, 181, 22)) + self.gamesTabUe2CheckBoxScconv.setFont(font) + self.gamesTabUe2CheckBoxL2 = QCheckBox(self.ue2Tab) + self.gamesTabUe2CheckBoxL2.setObjectName(u"gamesTabUe2CheckBoxL2") + self.gamesTabUe2CheckBoxL2.setGeometry(QRect(10, 200, 181, 22)) + self.gamesTabUe2CheckBoxL2.setFont(font) + self.gamesTabUe2CheckBoxLoco = QCheckBox(self.ue2Tab) + self.gamesTabUe2CheckBoxLoco.setObjectName(u"gamesTabUe2CheckBoxLoco") + self.gamesTabUe2CheckBoxLoco.setGeometry(QRect(10, 230, 181, 22)) + self.gamesTabUe2CheckBoxLoco.setFont(font) + self.gamesTabUe2CheckBoxBterr = QCheckBox(self.ue2Tab) + self.gamesTabUe2CheckBoxBterr.setObjectName(u"gamesTabUe2CheckBoxBterr") + self.gamesTabUe2CheckBoxBterr.setGeometry(QRect(10, 260, 181, 22)) + self.gamesTabUe2CheckBoxBterr.setFont(font) + self.gamesTabUe2CheckBoxSwrc = QCheckBox(self.ue2Tab) + self.gamesTabUe2CheckBoxSwrc.setObjectName(u"gamesTabUe2CheckBoxSwrc") + self.gamesTabUe2CheckBoxSwrc.setGeometry(QRect(10, 290, 191, 22)) + self.gamesTabUe2CheckBoxSwrc.setFont(font) + self.gamesTabUe2CheckBoxXiii = QCheckBox(self.ue2Tab) + self.gamesTabUe2CheckBoxXiii.setObjectName(u"gamesTabUe2CheckBoxXiii") + self.gamesTabUe2CheckBoxXiii.setGeometry(QRect(290, 290, 191, 22)) + self.gamesTabUe2CheckBoxXiii.setFont(font) + self.gamesTabUe2CheckBoxT3 = QCheckBox(self.ue2Tab) + self.gamesTabUe2CheckBoxT3.setObjectName(u"gamesTabUe2CheckBoxT3") + self.gamesTabUe2CheckBoxT3.setGeometry(QRect(290, 260, 191, 22)) + self.gamesTabUe2CheckBoxT3.setFont(font) + self.gamesTabUe2CheckBoxSwat4 = QCheckBox(self.ue2Tab) + self.gamesTabUe2CheckBoxSwat4.setObjectName(u"gamesTabUe2CheckBoxSwat4") + self.gamesTabUe2CheckBoxSwat4.setGeometry(QRect(290, 230, 191, 22)) + self.gamesTabUe2CheckBoxSwat4.setFont(font) + self.gamesTabUe2CheckBoxBio = QCheckBox(self.ue2Tab) + self.gamesTabUe2CheckBoxBio.setObjectName(u"gamesTabUe2CheckBoxBio") + self.gamesTabUe2CheckBoxBio.setGeometry(QRect(290, 200, 191, 22)) + self.gamesTabUe2CheckBoxBio.setFont(font) + self.gamesTabUe2CheckBoxRag2 = QCheckBox(self.ue2Tab) + self.gamesTabUe2CheckBoxRag2.setObjectName(u"gamesTabUe2CheckBoxRag2") + self.gamesTabUe2CheckBoxRag2.setGeometry(QRect(290, 170, 191, 22)) + self.gamesTabUe2CheckBoxRag2.setFont(font) + self.gamesTabUe2CheckBoxExt1 = QCheckBox(self.ue2Tab) + self.gamesTabUe2CheckBoxExt1.setObjectName(u"gamesTabUe2CheckBoxExt1") + self.gamesTabUe2CheckBoxExt1.setGeometry(QRect(290, 140, 191, 22)) + self.gamesTabUe2CheckBoxExt1.setFont(font) + self.gamesTabUe2CheckBoxAa2 = QCheckBox(self.ue2Tab) + self.gamesTabUe2CheckBoxAa2.setObjectName(u"gamesTabUe2CheckBoxAa2") + self.gamesTabUe2CheckBoxAa2.setGeometry(QRect(290, 50, 191, 22)) + self.gamesTabUe2CheckBoxAa2.setFont(font) + self.gamesTabUe2CheckBoxVang = QCheckBox(self.ue2Tab) + self.gamesTabUe2CheckBoxVang.setObjectName(u"gamesTabUe2CheckBoxVang") + self.gamesTabUe2CheckBoxVang.setGeometry(QRect(290, 80, 191, 22)) + self.gamesTabUe2CheckBoxVang.setFont(font) + self.gamesTabUe2CheckBoxEos = QCheckBox(self.ue2Tab) + self.gamesTabUe2CheckBoxEos.setObjectName(u"gamesTabUe2CheckBoxEos") + self.gamesTabUe2CheckBoxEos.setGeometry(QRect(290, 110, 191, 22)) + self.gamesTabUe2CheckBoxEos.setFont(font) + self.gamesTabUe2CheckBoxSelectAll = QCheckBox(self.ue2Tab) + self.gamesTabUe2CheckBoxSelectAll.setObjectName(u"gamesTabUe2CheckBoxSelectAll") + self.gamesTabUe2CheckBoxSelectAll.setGeometry(QRect(10, 20, 111, 22)) + self.gamesTabUe2CheckBoxSelectAll.setFont(font4) + self.tabWidget.addTab(self.ue2Tab, "") + self.ue3Tab = QWidget() + self.ue3Tab.setObjectName(u"ue3Tab") + self.gamesTabUe3CheckBoxMass2 = QCheckBox(self.ue3Tab) + self.gamesTabUe3CheckBoxMass2.setObjectName(u"gamesTabUe3CheckBoxMass2") + self.gamesTabUe3CheckBoxMass2.setGeometry(QRect(10, 160, 150, 22)) + font5 = QFont() + font5.setPointSize(7) + font5.setKerning(False) + self.gamesTabUe3CheckBoxMass2.setFont(font5) + self.gamesTabUe3CheckBoxSelectAll = QCheckBox(self.ue3Tab) + self.gamesTabUe3CheckBoxSelectAll.setObjectName(u"gamesTabUe3CheckBoxSelectAll") + self.gamesTabUe3CheckBoxSelectAll.setGeometry(QRect(10, 0, 111, 22)) + self.gamesTabUe3CheckBoxSelectAll.setFont(font4) + self.gamesTabUe3CheckBoxTurok = QCheckBox(self.ue3Tab) + self.gamesTabUe3CheckBoxTurok.setObjectName(u"gamesTabUe3CheckBoxTurok") + self.gamesTabUe3CheckBoxTurok.setGeometry(QRect(180, 20, 150, 22)) + self.gamesTabUe3CheckBoxTurok.setFont(font5) + self.gamesTabUe3CheckBoxEndwar = QCheckBox(self.ue3Tab) + self.gamesTabUe3CheckBoxEndwar.setObjectName(u"gamesTabUe3CheckBoxEndwar") + self.gamesTabUe3CheckBoxEndwar.setGeometry(QRect(10, 100, 150, 22)) + self.gamesTabUe3CheckBoxEndwar.setFont(font5) + self.gamesTabUe3CheckBoxMass3 = QCheckBox(self.ue3Tab) + self.gamesTabUe3CheckBoxMass3.setObjectName(u"gamesTabUe3CheckBoxMass3") + self.gamesTabUe3CheckBoxMass3.setGeometry(QRect(10, 180, 150, 22)) + self.gamesTabUe3CheckBoxMass3.setFont(font5) + self.gamesTabUe3CheckBoxR6v2 = QCheckBox(self.ue3Tab) + self.gamesTabUe3CheckBoxR6v2.setObjectName(u"gamesTabUe3CheckBoxR6v2") + self.gamesTabUe3CheckBoxR6v2.setGeometry(QRect(10, 120, 150, 22)) + self.gamesTabUe3CheckBoxR6v2.setFont(font5) + self.gamesTabUe3CheckBoxMki = QCheckBox(self.ue3Tab) + self.gamesTabUe3CheckBoxMki.setObjectName(u"gamesTabUe3CheckBoxMki") + self.gamesTabUe3CheckBoxMki.setGeometry(QRect(10, 280, 150, 22)) + self.gamesTabUe3CheckBoxMki.setFont(font5) + self.gamesTabUe3CheckBoxTna = QCheckBox(self.ue3Tab) + self.gamesTabUe3CheckBoxTna.setObjectName(u"gamesTabUe3CheckBoxTna") + self.gamesTabUe3CheckBoxTna.setGeometry(QRect(180, 60, 150, 22)) + self.gamesTabUe3CheckBoxTna.setFont(font5) + self.gamesTabUe3CheckBoxBs = QCheckBox(self.ue3Tab) + self.gamesTabUe3CheckBoxBs.setObjectName(u"gamesTabUe3CheckBoxBs") + self.gamesTabUe3CheckBoxBs.setGeometry(QRect(10, 80, 150, 22)) + self.gamesTabUe3CheckBoxBs.setFont(font5) + self.gamesTabUe3CheckBoxMk = QCheckBox(self.ue3Tab) + self.gamesTabUe3CheckBoxMk.setObjectName(u"gamesTabUe3CheckBoxMk") + self.gamesTabUe3CheckBoxMk.setGeometry(QRect(10, 260, 150, 22)) + self.gamesTabUe3CheckBoxMk.setFont(font5) + self.gamesTabUe3CheckBoxGowj = QCheckBox(self.ue3Tab) + self.gamesTabUe3CheckBoxGowj.setObjectName(u"gamesTabUe3CheckBoxGowj") + self.gamesTabUe3CheckBoxGowj.setGeometry(QRect(10, 40, 150, 22)) + self.gamesTabUe3CheckBoxGowj.setFont(font5) + self.gamesTabUe3CheckBoxA51 = QCheckBox(self.ue3Tab) + self.gamesTabUe3CheckBoxA51.setObjectName(u"gamesTabUe3CheckBoxA51") + self.gamesTabUe3CheckBoxA51.setGeometry(QRect(10, 220, 150, 22)) + self.gamesTabUe3CheckBoxA51.setFont(font5) + self.gamesTabUe3CheckBoxMkvdc = QCheckBox(self.ue3Tab) + self.gamesTabUe3CheckBoxMkvdc.setObjectName(u"gamesTabUe3CheckBoxMkvdc") + self.gamesTabUe3CheckBoxMkvdc.setGeometry(QRect(10, 240, 150, 22)) + self.gamesTabUe3CheckBoxMkvdc.setFont(font5) + self.gamesTabUe3CheckBoxMassl = QCheckBox(self.ue3Tab) + self.gamesTabUe3CheckBoxMassl.setObjectName(u"gamesTabUe3CheckBoxMassl") + self.gamesTabUe3CheckBoxMassl.setGeometry(QRect(10, 200, 150, 22)) + self.gamesTabUe3CheckBoxMassl.setFont(font5) + self.gamesTabUe3CheckBoxMass = QCheckBox(self.ue3Tab) + self.gamesTabUe3CheckBoxMass.setObjectName(u"gamesTabUe3CheckBoxMass") + self.gamesTabUe3CheckBoxMass.setGeometry(QRect(10, 140, 150, 22)) + self.gamesTabUe3CheckBoxMass.setFont(font5) + self.gamesTabUe3CheckBoxMkx = QCheckBox(self.ue3Tab) + self.gamesTabUe3CheckBoxMkx.setObjectName(u"gamesTabUe3CheckBoxMkx") + self.gamesTabUe3CheckBoxMkx.setGeometry(QRect(10, 300, 150, 22)) + self.gamesTabUe3CheckBoxMkx.setFont(font5) + self.gamesTabUe3CheckBoxFury = QCheckBox(self.ue3Tab) + self.gamesTabUe3CheckBoxFury.setObjectName(u"gamesTabUe3CheckBoxFury") + self.gamesTabUe3CheckBoxFury.setGeometry(QRect(180, 40, 150, 22)) + self.gamesTabUe3CheckBoxFury.setFont(font5) + self.gamesTabUe3CheckBoxGowu = QCheckBox(self.ue3Tab) + self.gamesTabUe3CheckBoxGowu.setObjectName(u"gamesTabUe3CheckBoxGowu") + self.gamesTabUe3CheckBoxGowu.setGeometry(QRect(10, 60, 150, 22)) + self.gamesTabUe3CheckBoxGowu.setFont(font5) + self.gamesTabUe3CheckBoxUe3 = QCheckBox(self.ue3Tab) + self.gamesTabUe3CheckBoxUe3.setObjectName(u"gamesTabUe3CheckBoxUe3") + self.gamesTabUe3CheckBoxUe3.setGeometry(QRect(10, 20, 150, 22)) + self.gamesTabUe3CheckBoxUe3.setFont(font5) + self.gamesTabUe3CheckBoxTnaw = QCheckBox(self.ue3Tab) + self.gamesTabUe3CheckBoxTnaw.setObjectName(u"gamesTabUe3CheckBoxTnaw") + self.gamesTabUe3CheckBoxTnaw.setGeometry(QRect(180, 80, 150, 22)) + self.gamesTabUe3CheckBoxTnaw.setFont(font5) + self.gamesTabUe3CheckBoxBatman3 = QCheckBox(self.ue3Tab) + self.gamesTabUe3CheckBoxBatman3.setObjectName(u"gamesTabUe3CheckBoxBatman3") + self.gamesTabUe3CheckBoxBatman3.setGeometry(QRect(180, 300, 150, 22)) + self.gamesTabUe3CheckBoxBatman3.setFont(font5) + self.gamesTabUe3CheckBoxMedge = QCheckBox(self.ue3Tab) + self.gamesTabUe3CheckBoxMedge.setObjectName(u"gamesTabUe3CheckBoxMedge") + self.gamesTabUe3CheckBoxMedge.setGeometry(QRect(180, 200, 150, 22)) + self.gamesTabUe3CheckBoxMedge.setFont(font5) + self.gamesTabUe3CheckBoxAo2 = QCheckBox(self.ue3Tab) + self.gamesTabUe3CheckBoxAo2.setObjectName(u"gamesTabUe3CheckBoxAo2") + self.gamesTabUe3CheckBoxAo2.setGeometry(QRect(180, 120, 150, 22)) + self.gamesTabUe3CheckBoxAo2.setFont(font5) + self.gamesTabUe3CheckBoxMcarta = QCheckBox(self.ue3Tab) + self.gamesTabUe3CheckBoxMcarta.setObjectName(u"gamesTabUe3CheckBoxMcarta") + self.gamesTabUe3CheckBoxMcarta.setGeometry(QRect(180, 240, 150, 22)) + self.gamesTabUe3CheckBoxMcarta.setFont(font5) + self.gamesTabUe3CheckBoxXmen = QCheckBox(self.ue3Tab) + self.gamesTabUe3CheckBoxXmen.setObjectName(u"gamesTabUe3CheckBoxXmen") + self.gamesTabUe3CheckBoxXmen.setGeometry(QRect(180, 220, 150, 22)) + self.gamesTabUe3CheckBoxXmen.setFont(font5) + self.gamesTabUe3CheckBoxHuxley = QCheckBox(self.ue3Tab) + self.gamesTabUe3CheckBoxHuxley.setObjectName(u"gamesTabUe3CheckBoxHuxley") + self.gamesTabUe3CheckBoxHuxley.setGeometry(QRect(180, 160, 150, 22)) + self.gamesTabUe3CheckBoxHuxley.setFont(font5) + self.gamesTabUe3CheckBoxDoh = QCheckBox(self.ue3Tab) + self.gamesTabUe3CheckBoxDoh.setObjectName(u"gamesTabUe3CheckBoxDoh") + self.gamesTabUe3CheckBoxDoh.setGeometry(QRect(180, 140, 150, 22)) + self.gamesTabUe3CheckBoxDoh.setFont(font5) + self.gamesTabUe3CheckBoxStrang = QCheckBox(self.ue3Tab) + self.gamesTabUe3CheckBoxStrang.setObjectName(u"gamesTabUe3CheckBoxStrang") + self.gamesTabUe3CheckBoxStrang.setGeometry(QRect(180, 100, 150, 22)) + self.gamesTabUe3CheckBoxStrang.setFont(font5) + self.gamesTabUe3CheckBoxBatman = QCheckBox(self.ue3Tab) + self.gamesTabUe3CheckBoxBatman.setObjectName(u"gamesTabUe3CheckBoxBatman") + self.gamesTabUe3CheckBoxBatman.setGeometry(QRect(180, 260, 150, 22)) + self.gamesTabUe3CheckBoxBatman.setFont(font5) + self.gamesTabUe3CheckBoxTlr = QCheckBox(self.ue3Tab) + self.gamesTabUe3CheckBoxTlr.setObjectName(u"gamesTabUe3CheckBoxTlr") + self.gamesTabUe3CheckBoxTlr.setGeometry(QRect(180, 180, 150, 22)) + self.gamesTabUe3CheckBoxTlr.setFont(font5) + self.gamesTabUe3CheckBoxBatman2 = QCheckBox(self.ue3Tab) + self.gamesTabUe3CheckBoxBatman2.setObjectName(u"gamesTabUe3CheckBoxBatman2") + self.gamesTabUe3CheckBoxBatman2.setGeometry(QRect(180, 280, 150, 22)) + self.gamesTabUe3CheckBoxBatman2.setFont(font5) + self.gamesTabUe3CheckBoxSf2 = QCheckBox(self.ue3Tab) + self.gamesTabUe3CheckBoxSf2.setObjectName(u"gamesTabUe3CheckBoxSf2") + self.gamesTabUe3CheckBoxSf2.setGeometry(QRect(10, 440, 150, 22)) + self.gamesTabUe3CheckBoxSf2.setFont(font5) + self.gamesTabUe3CheckBoxDnd = QCheckBox(self.ue3Tab) + self.gamesTabUe3CheckBoxDnd.setObjectName(u"gamesTabUe3CheckBoxDnd") + self.gamesTabUe3CheckBoxDnd.setGeometry(QRect(10, 340, 150, 22)) + self.gamesTabUe3CheckBoxDnd.setFont(font5) + self.gamesTabUe3CheckBoxArgo = QCheckBox(self.ue3Tab) + self.gamesTabUe3CheckBoxArgo.setObjectName(u"gamesTabUe3CheckBoxArgo") + self.gamesTabUe3CheckBoxArgo.setGeometry(QRect(10, 380, 150, 22)) + self.gamesTabUe3CheckBoxArgo.setFont(font5) + self.gamesTabUe3CheckBoxShad = QCheckBox(self.ue3Tab) + self.gamesTabUe3CheckBoxShad.setObjectName(u"gamesTabUe3CheckBoxShad") + self.gamesTabUe3CheckBoxShad.setGeometry(QRect(10, 360, 150, 22)) + self.gamesTabUe3CheckBoxShad.setFont(font5) + self.gamesTabUe3CheckBoxArgo2 = QCheckBox(self.ue3Tab) + self.gamesTabUe3CheckBoxArgo2.setObjectName(u"gamesTabUe3CheckBoxArgo2") + self.gamesTabUe3CheckBoxArgo2.setGeometry(QRect(10, 400, 150, 22)) + self.gamesTabUe3CheckBoxArgo2.setFont(font5) + self.gamesTabUe3CheckBoxHunt = QCheckBox(self.ue3Tab) + self.gamesTabUe3CheckBoxHunt.setObjectName(u"gamesTabUe3CheckBoxHunt") + self.gamesTabUe3CheckBoxHunt.setGeometry(QRect(10, 320, 150, 22)) + self.gamesTabUe3CheckBoxHunt.setFont(font5) + self.gamesTabUe3CheckBoxGunsl = QCheckBox(self.ue3Tab) + self.gamesTabUe3CheckBoxGunsl.setObjectName(u"gamesTabUe3CheckBoxGunsl") + self.gamesTabUe3CheckBoxGunsl.setGeometry(QRect(10, 420, 150, 22)) + self.gamesTabUe3CheckBoxGunsl.setFont(font5) + self.gamesTabUe3CheckBoxBorder = QCheckBox(self.ue3Tab) + self.gamesTabUe3CheckBoxBorder.setObjectName(u"gamesTabUe3CheckBoxBorder") + self.gamesTabUe3CheckBoxBorder.setGeometry(QRect(180, 440, 150, 22)) + self.gamesTabUe3CheckBoxBorder.setFont(font5) + self.gamesTabUe3CheckBoxCrime = QCheckBox(self.ue3Tab) + self.gamesTabUe3CheckBoxCrime.setObjectName(u"gamesTabUe3CheckBoxCrime") + self.gamesTabUe3CheckBoxCrime.setGeometry(QRect(180, 340, 150, 22)) + self.gamesTabUe3CheckBoxCrime.setFont(font5) + self.gamesTabUe3CheckBoxFrontl = QCheckBox(self.ue3Tab) + self.gamesTabUe3CheckBoxFrontl.setObjectName(u"gamesTabUe3CheckBoxFrontl") + self.gamesTabUe3CheckBoxFrontl.setGeometry(QRect(180, 380, 150, 22)) + self.gamesTabUe3CheckBoxFrontl.setFont(font5) + self.gamesTabUe3CheckBoxAva = QCheckBox(self.ue3Tab) + self.gamesTabUe3CheckBoxAva.setObjectName(u"gamesTabUe3CheckBoxAva") + self.gamesTabUe3CheckBoxAva.setGeometry(QRect(180, 360, 150, 22)) + self.gamesTabUe3CheckBoxAva.setFont(font5) + self.gamesTabUe3CheckBoxFronth = QCheckBox(self.ue3Tab) + self.gamesTabUe3CheckBoxFronth.setObjectName(u"gamesTabUe3CheckBoxFronth") + self.gamesTabUe3CheckBoxFronth.setGeometry(QRect(180, 400, 150, 22)) + self.gamesTabUe3CheckBoxFronth.setFont(font5) + self.gamesTabUe3CheckBoxBatman4 = QCheckBox(self.ue3Tab) + self.gamesTabUe3CheckBoxBatman4.setObjectName(u"gamesTabUe3CheckBoxBatman4") + self.gamesTabUe3CheckBoxBatman4.setGeometry(QRect(180, 320, 150, 22)) + self.gamesTabUe3CheckBoxBatman4.setFont(font5) + self.gamesTabUe3CheckBox50cent = QCheckBox(self.ue3Tab) + self.gamesTabUe3CheckBox50cent.setObjectName(u"gamesTabUe3CheckBox50cent") + self.gamesTabUe3CheckBox50cent.setGeometry(QRect(180, 420, 150, 22)) + self.gamesTabUe3CheckBox50cent.setFont(font5) + self.gamesTabUe3CheckBoxTera = QCheckBox(self.ue3Tab) + self.gamesTabUe3CheckBoxTera.setObjectName(u"gamesTabUe3CheckBoxTera") + self.gamesTabUe3CheckBoxTera.setGeometry(QRect(340, 120, 161, 22)) + self.gamesTabUe3CheckBoxTera.setFont(font5) + self.gamesTabUe3CheckBoxApb = QCheckBox(self.ue3Tab) + self.gamesTabUe3CheckBoxApb.setObjectName(u"gamesTabUe3CheckBoxApb") + self.gamesTabUe3CheckBoxApb.setGeometry(QRect(340, 180, 150, 22)) + self.gamesTabUe3CheckBoxApb.setFont(font5) + self.gamesTabUe3CheckBoxMo = QCheckBox(self.ue3Tab) + self.gamesTabUe3CheckBoxMo.setObjectName(u"gamesTabUe3CheckBoxMo") + self.gamesTabUe3CheckBoxMo.setGeometry(QRect(340, 300, 150, 22)) + self.gamesTabUe3CheckBoxMo.setFont(font5) + self.gamesTabUe3CheckBoxMoh2010 = QCheckBox(self.ue3Tab) + self.gamesTabUe3CheckBoxMoh2010.setObjectName(u"gamesTabUe3CheckBoxMoh2010") + self.gamesTabUe3CheckBoxMoh2010.setGeometry(QRect(340, 360, 150, 22)) + self.gamesTabUe3CheckBoxMoh2010.setFont(font5) + self.gamesTabUe3CheckBoxEns = QCheckBox(self.ue3Tab) + self.gamesTabUe3CheckBoxEns.setObjectName(u"gamesTabUe3CheckBoxEns") + self.gamesTabUe3CheckBoxEns.setGeometry(QRect(340, 320, 150, 22)) + self.gamesTabUe3CheckBoxEns.setFont(font5) + self.gamesTabUe3CheckBoxTrans1 = QCheckBox(self.ue3Tab) + self.gamesTabUe3CheckBoxTrans1.setObjectName(u"gamesTabUe3CheckBoxTrans1") + self.gamesTabUe3CheckBoxTrans1.setGeometry(QRect(340, 220, 150, 22)) + self.gamesTabUe3CheckBoxTrans1.setFont(font5) + self.gamesTabUe3CheckBoxAcm = QCheckBox(self.ue3Tab) + self.gamesTabUe3CheckBoxAcm.setObjectName(u"gamesTabUe3CheckBoxAcm") + self.gamesTabUe3CheckBoxAcm.setGeometry(QRect(340, 60, 150, 22)) + self.gamesTabUe3CheckBoxAcm.setFont(font5) + self.gamesTabUe3CheckBoxTrans2 = QCheckBox(self.ue3Tab) + self.gamesTabUe3CheckBoxTrans2.setObjectName(u"gamesTabUe3CheckBoxTrans2") + self.gamesTabUe3CheckBoxTrans2.setGeometry(QRect(340, 240, 150, 22)) + self.gamesTabUe3CheckBoxTrans2.setFont(font5) + self.gamesTabUe3CheckBoxSing = QCheckBox(self.ue3Tab) + self.gamesTabUe3CheckBoxSing.setObjectName(u"gamesTabUe3CheckBoxSing") + self.gamesTabUe3CheckBoxSing.setGeometry(QRect(340, 440, 150, 22)) + self.gamesTabUe3CheckBoxSing.setFont(font5) + self.gamesTabUe3CheckBoxBorder3 = QCheckBox(self.ue3Tab) + self.gamesTabUe3CheckBoxBorder3.setObjectName(u"gamesTabUe3CheckBoxBorder3") + self.gamesTabUe3CheckBoxBorder3.setGeometry(QRect(340, 40, 150, 22)) + self.gamesTabUe3CheckBoxBorder3.setFont(font5) + self.gamesTabUe3CheckBoxLeg = QCheckBox(self.ue3Tab) + self.gamesTabUe3CheckBoxLeg.setObjectName(u"gamesTabUe3CheckBoxLeg") + self.gamesTabUe3CheckBoxLeg.setGeometry(QRect(340, 100, 150, 22)) + self.gamesTabUe3CheckBoxLeg.setFont(font5) + self.gamesTabUe3CheckBoxAa3 = QCheckBox(self.ue3Tab) + self.gamesTabUe3CheckBoxAa3.setObjectName(u"gamesTabUe3CheckBoxAa3") + self.gamesTabUe3CheckBoxAa3.setGeometry(QRect(340, 280, 150, 22)) + self.gamesTabUe3CheckBoxAa3.setFont(font5) + self.gamesTabUe3CheckBoxBns = QCheckBox(self.ue3Tab) + self.gamesTabUe3CheckBoxBns.setObjectName(u"gamesTabUe3CheckBoxBns") + self.gamesTabUe3CheckBoxBns.setGeometry(QRect(340, 140, 150, 22)) + self.gamesTabUe3CheckBoxBns.setFont(font5) + self.gamesTabUe3CheckBoxAlpha = QCheckBox(self.ue3Tab) + self.gamesTabUe3CheckBoxAlpha.setObjectName(u"gamesTabUe3CheckBoxAlpha") + self.gamesTabUe3CheckBoxAlpha.setGeometry(QRect(340, 160, 150, 22)) + self.gamesTabUe3CheckBoxAlpha.setFont(font5) + self.gamesTabUe3CheckBoxMoha = QCheckBox(self.ue3Tab) + self.gamesTabUe3CheckBoxMoha.setObjectName(u"gamesTabUe3CheckBoxMoha") + self.gamesTabUe3CheckBoxMoha.setGeometry(QRect(340, 340, 150, 22)) + self.gamesTabUe3CheckBoxMoha.setFont(font5) + self.gamesTabUe3CheckBoxUndertow = QCheckBox(self.ue3Tab) + self.gamesTabUe3CheckBoxUndertow.setObjectName(u"gamesTabUe3CheckBoxUndertow") + self.gamesTabUe3CheckBoxUndertow.setGeometry(QRect(340, 420, 150, 22)) + self.gamesTabUe3CheckBoxUndertow.setFont(font5) + self.gamesTabUe3CheckBoxTrans = QCheckBox(self.ue3Tab) + self.gamesTabUe3CheckBoxTrans.setObjectName(u"gamesTabUe3CheckBoxTrans") + self.gamesTabUe3CheckBoxTrans.setGeometry(QRect(340, 200, 150, 22)) + self.gamesTabUe3CheckBoxTrans.setFont(font5) + self.gamesTabUe3CheckBoxBerk = QCheckBox(self.ue3Tab) + self.gamesTabUe3CheckBoxBerk.setObjectName(u"gamesTabUe3CheckBoxBerk") + self.gamesTabUe3CheckBoxBerk.setGeometry(QRect(340, 400, 150, 22)) + self.gamesTabUe3CheckBoxBerk.setFont(font5) + self.gamesTabUe3CheckBoxTrans3 = QCheckBox(self.ue3Tab) + self.gamesTabUe3CheckBoxTrans3.setObjectName(u"gamesTabUe3CheckBoxTrans3") + self.gamesTabUe3CheckBoxTrans3.setGeometry(QRect(340, 260, 150, 22)) + self.gamesTabUe3CheckBoxTrans3.setFont(font5) + self.gamesTabUe3CheckBoxDarkv = QCheckBox(self.ue3Tab) + self.gamesTabUe3CheckBoxDarkv.setObjectName(u"gamesTabUe3CheckBoxDarkv") + self.gamesTabUe3CheckBoxDarkv.setGeometry(QRect(340, 80, 150, 22)) + self.gamesTabUe3CheckBoxDarkv.setFont(font5) + self.gamesTabUe3CheckBoxAlice = QCheckBox(self.ue3Tab) + self.gamesTabUe3CheckBoxAlice.setObjectName(u"gamesTabUe3CheckBoxAlice") + self.gamesTabUe3CheckBoxAlice.setGeometry(QRect(340, 380, 150, 22)) + self.gamesTabUe3CheckBoxAlice.setFont(font5) + self.gamesTabUe3CheckBoxPla = QCheckBox(self.ue3Tab) + self.gamesTabUe3CheckBoxPla.setObjectName(u"gamesTabUe3CheckBoxPla") + self.gamesTabUe3CheckBoxPla.setGeometry(QRect(340, 20, 150, 22)) + self.gamesTabUe3CheckBoxPla.setFont(font5) + self.gamesTabUe3CheckBoxXcom = QCheckBox(self.ue3Tab) + self.gamesTabUe3CheckBoxXcom.setObjectName(u"gamesTabUe3CheckBoxXcom") + self.gamesTabUe3CheckBoxXcom.setGeometry(QRect(510, 300, 150, 22)) + self.gamesTabUe3CheckBoxXcom.setFont(font5) + self.gamesTabUe3CheckBoxXcom2 = QCheckBox(self.ue3Tab) + self.gamesTabUe3CheckBoxXcom2.setObjectName(u"gamesTabUe3CheckBoxXcom2") + self.gamesTabUe3CheckBoxXcom2.setGeometry(QRect(510, 320, 150, 22)) + self.gamesTabUe3CheckBoxXcom2.setFont(font5) + self.gamesTabUe3CheckBoxDis = QCheckBox(self.ue3Tab) + self.gamesTabUe3CheckBoxDis.setObjectName(u"gamesTabUe3CheckBoxDis") + self.gamesTabUe3CheckBoxDis.setGeometry(QRect(10, 480, 150, 22)) + self.gamesTabUe3CheckBoxDis.setFont(font5) + self.gamesTabUe3CheckBoxFablej = QCheckBox(self.ue3Tab) + self.gamesTabUe3CheckBoxFablej.setObjectName(u"gamesTabUe3CheckBoxFablej") + self.gamesTabUe3CheckBoxFablej.setGeometry(QRect(510, 400, 150, 22)) + self.gamesTabUe3CheckBoxFablej.setFont(font5) + self.gamesTabUe3CheckBoxRem = QCheckBox(self.ue3Tab) + self.gamesTabUe3CheckBoxRem.setObjectName(u"gamesTabUe3CheckBoxRem") + self.gamesTabUe3CheckBoxRem.setGeometry(QRect(510, 340, 150, 22)) + self.gamesTabUe3CheckBoxRem.setFont(font5) + self.gamesTabUe3CheckBoxLp3 = QCheckBox(self.ue3Tab) + self.gamesTabUe3CheckBoxLp3.setObjectName(u"gamesTabUe3CheckBoxLp3") + self.gamesTabUe3CheckBoxLp3.setGeometry(QRect(510, 440, 150, 22)) + self.gamesTabUe3CheckBoxLp3.setFont(font5) + self.gamesTabUe3CheckBoxLp3y = QCheckBox(self.ue3Tab) + self.gamesTabUe3CheckBoxLp3y.setObjectName(u"gamesTabUe3CheckBoxLp3y") + self.gamesTabUe3CheckBoxLp3y.setGeometry(QRect(510, 460, 150, 22)) + self.gamesTabUe3CheckBoxLp3y.setFont(font5) + self.gamesTabUe3CheckBoxBio3 = QCheckBox(self.ue3Tab) + self.gamesTabUe3CheckBoxBio3.setObjectName(u"gamesTabUe3CheckBoxBio3") + self.gamesTabUe3CheckBoxBio3.setGeometry(QRect(510, 380, 150, 22)) + self.gamesTabUe3CheckBoxBio3.setFont(font5) + self.gamesTabUe3CheckBoxT4 = QCheckBox(self.ue3Tab) + self.gamesTabUe3CheckBoxT4.setObjectName(u"gamesTabUe3CheckBoxT4") + self.gamesTabUe3CheckBoxT4.setGeometry(QRect(10, 460, 150, 22)) + self.gamesTabUe3CheckBoxT4.setFont(font5) + self.gamesTabUe3CheckBoxTaoyuan = QCheckBox(self.ue3Tab) + self.gamesTabUe3CheckBoxTaoyuan.setObjectName(u"gamesTabUe3CheckBoxTaoyuan") + self.gamesTabUe3CheckBoxTaoyuan.setGeometry(QRect(340, 460, 150, 22)) + self.gamesTabUe3CheckBoxTaoyuan.setFont(font5) + self.gamesTabUe3CheckBoxFable = QCheckBox(self.ue3Tab) + self.gamesTabUe3CheckBoxFable.setObjectName(u"gamesTabUe3CheckBoxFable") + self.gamesTabUe3CheckBoxFable.setGeometry(QRect(510, 420, 150, 22)) + self.gamesTabUe3CheckBoxFable.setFont(font5) + self.gamesTabUe3CheckBoxBorder2 = QCheckBox(self.ue3Tab) + self.gamesTabUe3CheckBoxBorder2.setObjectName(u"gamesTabUe3CheckBoxBorder2") + self.gamesTabUe3CheckBoxBorder2.setGeometry(QRect(180, 460, 150, 22)) + self.gamesTabUe3CheckBoxBorder2.setFont(font5) + self.gamesTabUe3CheckBoxRem2 = QCheckBox(self.ue3Tab) + self.gamesTabUe3CheckBoxRem2.setObjectName(u"gamesTabUe3CheckBoxRem2") + self.gamesTabUe3CheckBoxRem2.setGeometry(QRect(510, 360, 150, 22)) + self.gamesTabUe3CheckBoxRem2.setFont(font5) + self.gamesTabUe3CheckBoxThief4 = QCheckBox(self.ue3Tab) + self.gamesTabUe3CheckBoxThief4.setObjectName(u"gamesTabUe3CheckBoxThief4") + self.gamesTabUe3CheckBoxThief4.setGeometry(QRect(510, 260, 150, 22)) + self.gamesTabUe3CheckBoxThief4.setFont(font5) + self.gamesTabUe3CheckBoxDmc = QCheckBox(self.ue3Tab) + self.gamesTabUe3CheckBoxDmc.setObjectName(u"gamesTabUe3CheckBoxDmc") + self.gamesTabUe3CheckBoxDmc.setGeometry(QRect(510, 280, 150, 22)) + self.gamesTabUe3CheckBoxDmc.setFont(font5) + self.gamesTabUe3CheckBoxGigantic = QCheckBox(self.ue3Tab) + self.gamesTabUe3CheckBoxGigantic.setObjectName(u"gamesTabUe3CheckBoxGigantic") + self.gamesTabUe3CheckBoxGigantic.setGeometry(QRect(510, 100, 150, 22)) + self.gamesTabUe3CheckBoxGigantic.setFont(font5) + self.gamesTabUe3CheckBoxMurd = QCheckBox(self.ue3Tab) + self.gamesTabUe3CheckBoxMurd.setObjectName(u"gamesTabUe3CheckBoxMurd") + self.gamesTabUe3CheckBoxMurd.setGeometry(QRect(510, 240, 150, 22)) + self.gamesTabUe3CheckBoxMurd.setFont(font5) + self.gamesTabUe3CheckBoxSmite = QCheckBox(self.ue3Tab) + self.gamesTabUe3CheckBoxSmite.setObjectName(u"gamesTabUe3CheckBoxSmite") + self.gamesTabUe3CheckBoxSmite.setGeometry(QRect(510, 200, 150, 22)) + self.gamesTabUe3CheckBoxSmite.setFont(font5) + self.gamesTabUe3CheckBoxDundef = QCheckBox(self.ue3Tab) + self.gamesTabUe3CheckBoxDundef.setObjectName(u"gamesTabUe3CheckBoxDundef") + self.gamesTabUe3CheckBoxDundef.setGeometry(QRect(510, 160, 150, 22)) + self.gamesTabUe3CheckBoxDundef.setFont(font5) + self.gamesTabUe3CheckBoxSov = QCheckBox(self.ue3Tab) + self.gamesTabUe3CheckBoxSov.setObjectName(u"gamesTabUe3CheckBoxSov") + self.gamesTabUe3CheckBoxSov.setGeometry(QRect(510, 180, 150, 22)) + self.gamesTabUe3CheckBoxSov.setFont(font5) + self.gamesTabUe3CheckBoxMetroconf = QCheckBox(self.ue3Tab) + self.gamesTabUe3CheckBoxMetroconf.setObjectName(u"gamesTabUe3CheckBoxMetroconf") + self.gamesTabUe3CheckBoxMetroconf.setGeometry(QRect(510, 40, 150, 22)) + self.gamesTabUe3CheckBoxMetroconf.setFont(font5) + self.gamesTabUe3CheckBoxRocketleague = QCheckBox(self.ue3Tab) + self.gamesTabUe3CheckBoxRocketleague.setObjectName(u"gamesTabUe3CheckBoxRocketleague") + self.gamesTabUe3CheckBoxRocketleague.setGeometry(QRect(510, 80, 150, 22)) + self.gamesTabUe3CheckBoxRocketleague.setFont(font5) + self.gamesTabUe3CheckBoxDev3rd = QCheckBox(self.ue3Tab) + self.gamesTabUe3CheckBoxDev3rd.setObjectName(u"gamesTabUe3CheckBoxDev3rd") + self.gamesTabUe3CheckBoxDev3rd.setGeometry(QRect(510, 140, 150, 22)) + self.gamesTabUe3CheckBoxDev3rd.setFont(font5) + self.gamesTabUe3CheckBoxGuilty = QCheckBox(self.ue3Tab) + self.gamesTabUe3CheckBoxGuilty.setObjectName(u"gamesTabUe3CheckBoxGuilty") + self.gamesTabUe3CheckBoxGuilty.setGeometry(QRect(510, 220, 150, 22)) + self.gamesTabUe3CheckBoxGuilty.setFont(font5) + self.gamesTabUe3CheckBoxVec = QCheckBox(self.ue3Tab) + self.gamesTabUe3CheckBoxVec.setObjectName(u"gamesTabUe3CheckBoxVec") + self.gamesTabUe3CheckBoxVec.setGeometry(QRect(510, 120, 150, 22)) + self.gamesTabUe3CheckBoxVec.setFont(font5) + self.gamesTabUe3CheckBoxGrav = QCheckBox(self.ue3Tab) + self.gamesTabUe3CheckBoxGrav.setObjectName(u"gamesTabUe3CheckBoxGrav") + self.gamesTabUe3CheckBoxGrav.setGeometry(QRect(510, 20, 150, 22)) + self.gamesTabUe3CheckBoxGrav.setFont(font5) + self.gamesTabUe3CheckBoxDust514 = QCheckBox(self.ue3Tab) + self.gamesTabUe3CheckBoxDust514.setObjectName(u"gamesTabUe3CheckBoxDust514") + self.gamesTabUe3CheckBoxDust514.setGeometry(QRect(510, 60, 150, 22)) + self.gamesTabUe3CheckBoxDust514.setFont(font5) + self.tabWidget.addTab(self.ue3Tab, "") + self.ue4Tab = QWidget() + self.ue4Tab.setObjectName(u"ue4Tab") + self.gamesTabUe4CheckBoxSelectAll = QCheckBox(self.ue4Tab) + self.gamesTabUe4CheckBoxSelectAll.setObjectName(u"gamesTabUe4CheckBoxSelectAll") + self.gamesTabUe4CheckBoxSelectAll.setGeometry(QRect(10, 10, 111, 22)) + self.gamesTabUe4CheckBoxSelectAll.setFont(font4) + self.gamesTabUe4CheckBoxHit = QCheckBox(self.ue4Tab) + self.gamesTabUe4CheckBoxHit.setObjectName(u"gamesTabUe4CheckBoxHit") + self.gamesTabUe4CheckBoxHit.setGeometry(QRect(290, 100, 191, 22)) + self.gamesTabUe4CheckBoxHit.setFont(font) + self.gamesTabUe4CheckBoxGears4 = QCheckBox(self.ue4Tab) + self.gamesTabUe4CheckBoxGears4.setObjectName(u"gamesTabUe4CheckBoxGears4") + self.gamesTabUe4CheckBoxGears4.setGeometry(QRect(10, 70, 181, 22)) + self.gamesTabUe4CheckBoxGears4.setFont(font) + self.gamesTabUe4CheckBoxFablel = QCheckBox(self.ue4Tab) + self.gamesTabUe4CheckBoxFablel.setObjectName(u"gamesTabUe4CheckBoxFablel") + self.gamesTabUe4CheckBoxFablel.setGeometry(QRect(290, 310, 191, 22)) + self.gamesTabUe4CheckBoxFablel.setFont(font) + self.gamesTabUe4CheckBoxUt4 = QCheckBox(self.ue4Tab) + self.gamesTabUe4CheckBoxUt4.setObjectName(u"gamesTabUe4CheckBoxUt4") + self.gamesTabUe4CheckBoxUt4.setGeometry(QRect(290, 70, 191, 22)) + self.gamesTabUe4CheckBoxUt4.setFont(font) + self.gamesTabUe4CheckBoxArk = QCheckBox(self.ue4Tab) + self.gamesTabUe4CheckBoxArk.setObjectName(u"gamesTabUe4CheckBoxArk") + self.gamesTabUe4CheckBoxArk.setGeometry(QRect(10, 130, 181, 22)) + self.gamesTabUe4CheckBoxArk.setFont(font) + self.gamesTabUe4CheckBoxDaysgone = QCheckBox(self.ue4Tab) + self.gamesTabUe4CheckBoxDaysgone.setObjectName(u"gamesTabUe4CheckBoxDaysgone") + self.gamesTabUe4CheckBoxDaysgone.setGeometry(QRect(10, 100, 181, 22)) + self.gamesTabUe4CheckBoxDaysgone.setFont(font) + self.gamesTabUe4CheckBoxNgb = QCheckBox(self.ue4Tab) + self.gamesTabUe4CheckBoxNgb.setObjectName(u"gamesTabUe4CheckBoxNgb") + self.gamesTabUe4CheckBoxNgb.setGeometry(QRect(290, 130, 191, 22)) + self.gamesTabUe4CheckBoxNgb.setFont(font) + self.gamesTabUe4CheckBoxParagon = QCheckBox(self.ue4Tab) + self.gamesTabUe4CheckBoxParagon.setObjectName(u"gamesTabUe4CheckBoxParagon") + self.gamesTabUe4CheckBoxParagon.setGeometry(QRect(10, 280, 191, 22)) + self.gamesTabUe4CheckBoxParagon.setFont(font) + self.gamesTabUe4CheckBoxAscl = QCheckBox(self.ue4Tab) + self.gamesTabUe4CheckBoxAscl.setObjectName(u"gamesTabUe4CheckBoxAscl") + self.gamesTabUe4CheckBoxAscl.setGeometry(QRect(290, 190, 191, 22)) + self.gamesTabUe4CheckBoxAscl.setFont(font) + self.gamesTabUe4CheckBoxDauntless = QCheckBox(self.ue4Tab) + self.gamesTabUe4CheckBoxDauntless.setObjectName(u"gamesTabUe4CheckBoxDauntless") + self.gamesTabUe4CheckBoxDauntless.setGeometry(QRect(10, 250, 181, 22)) + self.gamesTabUe4CheckBoxDauntless.setFont(font) + self.gamesTabUe4CheckBoxJedi = QCheckBox(self.ue4Tab) + self.gamesTabUe4CheckBoxJedi.setObjectName(u"gamesTabUe4CheckBoxJedi") + self.gamesTabUe4CheckBoxJedi.setGeometry(QRect(290, 280, 191, 22)) + self.gamesTabUe4CheckBoxJedi.setFont(font) + self.gamesTabUe4CheckBoxBorder3 = QCheckBox(self.ue4Tab) + self.gamesTabUe4CheckBoxBorder3.setObjectName(u"gamesTabUe4CheckBoxBorder3") + self.gamesTabUe4CheckBoxBorder3.setGeometry(QRect(290, 220, 191, 22)) + self.gamesTabUe4CheckBoxBorder3.setFont(font) + self.gamesTabUe4CheckBoxTekken7 = QCheckBox(self.ue4Tab) + self.gamesTabUe4CheckBoxTekken7.setObjectName(u"gamesTabUe4CheckBoxTekken7") + self.gamesTabUe4CheckBoxTekken7.setGeometry(QRect(10, 160, 181, 22)) + self.gamesTabUe4CheckBoxTekken7.setFont(font) + self.gamesTabUe4CheckBoxLis2 = QCheckBox(self.ue4Tab) + self.gamesTabUe4CheckBoxLis2.setObjectName(u"gamesTabUe4CheckBoxLis2") + self.gamesTabUe4CheckBoxLis2.setGeometry(QRect(290, 160, 191, 22)) + self.gamesTabUe4CheckBoxLis2.setFont(font) + self.gamesTabUe4CheckBoxKh3 = QCheckBox(self.ue4Tab) + self.gamesTabUe4CheckBoxKh3.setObjectName(u"gamesTabUe4CheckBoxKh3") + self.gamesTabUe4CheckBoxKh3.setGeometry(QRect(290, 250, 191, 22)) + self.gamesTabUe4CheckBoxKh3.setFont(font) + self.gamesTabUe4CheckBoxLawbr = QCheckBox(self.ue4Tab) + self.gamesTabUe4CheckBoxLawbr.setObjectName(u"gamesTabUe4CheckBoxLawbr") + self.gamesTabUe4CheckBoxLawbr.setGeometry(QRect(10, 190, 181, 22)) + self.gamesTabUe4CheckBoxLawbr.setFont(font) + self.gamesTabUe4CheckBoxSod2 = QCheckBox(self.ue4Tab) + self.gamesTabUe4CheckBoxSod2.setObjectName(u"gamesTabUe4CheckBoxSod2") + self.gamesTabUe4CheckBoxSod2.setGeometry(QRect(10, 220, 181, 22)) + self.gamesTabUe4CheckBoxSod2.setFont(font) + self.gamesTabUe4CheckBoxUe4p = QCheckBox(self.ue4Tab) + self.gamesTabUe4CheckBoxUe4p.setObjectName(u"gamesTabUe4CheckBoxUe4p") + self.gamesTabUe4CheckBoxUe4p.setGeometry(QRect(290, 40, 181, 22)) + self.gamesTabUe4CheckBoxUe4p.setFont(font) + self.gamesTabUe4CheckBoxSot = QCheckBox(self.ue4Tab) + self.gamesTabUe4CheckBoxSot.setObjectName(u"gamesTabUe4CheckBoxSot") + self.gamesTabUe4CheckBoxSot.setGeometry(QRect(10, 310, 191, 22)) + self.gamesTabUe4CheckBoxSot.setFont(font) + self.gamesTabUe4CheckBoxUe4027 = QCheckBox(self.ue4Tab) + self.gamesTabUe4CheckBoxUe4027.setObjectName(u"gamesTabUe4CheckBoxUe4027") + self.gamesTabUe4CheckBoxUe4027.setGeometry(QRect(10, 40, 181, 22)) + self.gamesTabUe4CheckBoxUe4027.setFont(font) + self.tabWidget.addTab(self.ue4Tab, "") + self.optionsGamesLabel = QLabel(UmodelBruteForcer) + self.optionsGamesLabel.setObjectName(u"optionsGamesLabel") + self.optionsGamesLabel.setGeometry(QRect(680, 350, 111, 16)) + self.optionsGamesLabel.setFont(font3) + self.ProcessButton = QPushButton(UmodelBruteForcer) + self.ProcessButton.setObjectName(u"ProcessButton") + self.ProcessButton.setGeometry(QRect(10, 920, 631, 51)) + font6 = QFont() + font6.setPointSize(23) + font6.setKerning(False) + self.ProcessButton.setFont(font6) + self.line = QFrame(UmodelBruteForcer) + self.line.setObjectName(u"line") + self.line.setGeometry(QRect(677, 340, 710, 20)) + self.line.setFont(font) + self.line.setFrameShape(QFrame.HLine) + self.line.setFrameShadow(QFrame.Sunken) + self.line_2 = QFrame(UmodelBruteForcer) + self.line_2.setObjectName(u"line_2") + self.line_2.setGeometry(QRect(650, 70, 20, 901)) + self.line_2.setFont(font) + self.line_2.setFrameShape(QFrame.VLine) + self.line_2.setFrameShadow(QFrame.Sunken) + self.textBrowserWarning = QTextBrowser(UmodelBruteForcer) + self.textBrowserWarning.setObjectName(u"textBrowserWarning") + self.textBrowserWarning.setGeometry(QRect(10, 615, 631, 289)) + self.textBrowserWarning.setFont(font) + self.optionsSndsCheckBox = QCheckBox(UmodelBruteForcer) + self.optionsSndsCheckBox.setObjectName(u"optionsSndsCheckBox") + self.optionsSndsCheckBox.setGeometry(QRect(800, 80, 71, 22)) + self.optionsSndsCheckBox.setFont(font) + self.optionsSelectAllCheckBox = QCheckBox(UmodelBruteForcer) + self.optionsSelectAllCheckBox.setObjectName(u"optionsSelectAllCheckBox") + self.optionsSelectAllCheckBox.setGeometry(QRect(690, 230, 111, 22)) + self.optionsSelectAllCheckBox.setFont(font4) + self.line_3 = QFrame(UmodelBruteForcer) + self.line_3.setObjectName(u"line_3") + self.line_3.setGeometry(QRect(680, 190, 710, 20)) + self.line_3.setFont(font) + self.line_3.setFrameShape(QFrame.HLine) + self.line_3.setFrameShadow(QFrame.Sunken) + self.optionsPermLabel = QLabel(UmodelBruteForcer) + self.optionsPermLabel.setObjectName(u"optionsPermLabel") + self.optionsPermLabel.setGeometry(QRect(680, 210, 151, 16)) + self.optionsPermLabel.setFont(font3) + self.optionsMasterLabelNote = QLabel(UmodelBruteForcer) + self.optionsMasterLabelNote.setObjectName(u"optionsMasterLabelNote") + self.optionsMasterLabelNote.setGeometry(QRect(860, 60, 181, 16)) + font7 = QFont() + font7.setItalic(True) + font7.setKerning(False) + self.optionsMasterLabelNote.setFont(font7) + self.optionsPermLabelNote = QLabel(UmodelBruteForcer) + self.optionsPermLabelNote.setObjectName(u"optionsPermLabelNote") + self.optionsPermLabelNote.setGeometry(QRect(860, 210, 121, 16)) + self.optionsPermLabelNote.setFont(font7) + self.optionsGamesLabelNote = QLabel(UmodelBruteForcer) + self.optionsGamesLabelNote.setObjectName(u"optionsGamesLabelNote") + self.optionsGamesLabelNote.setGeometry(QRect(800, 350, 121, 16)) + self.optionsGamesLabelNote.setFont(font7) + self.optionsGamesAddiLabel = QLabel(UmodelBruteForcer) + self.optionsGamesAddiLabel.setObjectName(u"optionsGamesAddiLabel") + self.optionsGamesAddiLabel.setGeometry(QRect(680, 927, 150, 16)) + self.optionsGamesAddiLabel.setFont(font) + self.optionsGamesAddiLineEdit = QLineEdit(UmodelBruteForcer) + self.optionsGamesAddiLineEdit.setObjectName(u"optionsGamesAddiLineEdit") + self.optionsGamesAddiLineEdit.setGeometry(QRect(679, 947, 710, 24)) + self.optionsGamesAddiLineEdit.setFont(font) + self.optionsGamesAddiLineEdit.setAcceptDrops(False) + self.optionsGamesAddiLabelNote = QLabel(UmodelBruteForcer) + self.optionsGamesAddiLabelNote.setObjectName(u"optionsGamesAddiLabelNote") + self.optionsGamesAddiLabelNote.setGeometry(QRect(1140, 927, 251, 16)) + font8 = QFont() + font8.setPointSize(8) + font8.setItalic(True) + font8.setKerning(False) + self.optionsGamesAddiLabelNote.setFont(font8) + self.line_4 = QFrame(UmodelBruteForcer) + self.line_4.setObjectName(u"line_4") + self.line_4.setGeometry(QRect(10, 902, 631, 20)) + self.line_4.setFont(font) + self.line_4.setFrameShape(QFrame.HLine) + self.line_4.setFrameShadow(QFrame.Sunken) + self.optionsUnckCheckBox = QCheckBox(UmodelBruteForcer) + self.optionsUnckCheckBox.setObjectName(u"optionsUnckCheckBox") + self.optionsUnckCheckBox.setGeometry(QRect(1150, 110, 141, 22)) + self.optionsUnckCheckBox.setFont(font) + self.gameCookedLineEdit = QLineEdit(UmodelBruteForcer) + self.gameCookedLineEdit.setObjectName(u"gameCookedLineEdit") + self.gameCookedLineEdit.setGeometry(QRect(30, 130, 401, 24)) + self.gameCookedLineEdit.setFont(font) + self.gameLabel_2 = QLabel(UmodelBruteForcer) + self.gameLabel_2.setObjectName(u"gameLabel_2") + self.gameLabel_2.setGeometry(QRect(10, 110, 201, 16)) + self.gameLabel_2.setFont(font1) + self.gameCookedPushButton = QPushButton(UmodelBruteForcer) + self.gameCookedPushButton.setObjectName(u"gameCookedPushButton") + self.gameCookedPushButton.setGeometry(QRect(440, 130, 80, 24)) + self.gameCookedPushButton.setFont(font) + self.line_5 = QFrame(UmodelBruteForcer) + self.line_5.setObjectName(u"line_5") + self.line_5.setGeometry(QRect(10, 538, 631, 20)) + self.line_5.setFont(font) + self.line_5.setFrameShape(QFrame.HLine) + self.line_5.setFrameShadow(QFrame.Sunken) + self.line_6 = QFrame(UmodelBruteForcer) + self.line_6.setObjectName(u"line_6") + self.line_6.setGeometry(QRect(10, 154, 631, 20)) + self.line_6.setFont(font) + self.line_6.setFrameShape(QFrame.HLine) + self.line_6.setFrameShadow(QFrame.Sunken) + self.label = QLabel(UmodelBruteForcer) + self.label.setObjectName(u"label") + self.label.setGeometry(QRect(10, 168, 631, 16)) + font9 = QFont() + font9.setPointSize(8) + font9.setBold(True) + font9.setItalic(True) + font9.setKerning(False) + self.label.setFont(font9) + self.JMDigitalLogo = QPushButton(UmodelBruteForcer) + self.JMDigitalLogo.setObjectName(u"JMDigitalLogo") + self.JMDigitalLogo.setGeometry(QRect(1240, 9, 150, 48)) + self.JMDigitalLogo.setFont(font6) + self.JMDigitalLogo.setFlat(True) + self.line_7 = QFrame(UmodelBruteForcer) + self.line_7.setObjectName(u"line_7") + self.line_7.setGeometry(QRect(680, 50, 710, 20)) + self.line_7.setFont(font) + self.line_7.setFrameShape(QFrame.HLine) + self.line_7.setFrameShadow(QFrame.Sunken) + self.gameCookedExtLineEdit = QLineEdit(UmodelBruteForcer) + self.gameCookedExtLineEdit.setObjectName(u"gameCookedExtLineEdit") + self.gameCookedExtLineEdit.setGeometry(QRect(530, 130, 113, 24)) + self.gameCookedExtLineEdit.setFont(font) + self.gameCookedExtLineEdit.setAcceptDrops(False) + self.gameCookedExtLineEdit.setMaxLength(8) + self.gameCookedExtLineEdit.setClearButtonEnabled(False) + self.gameAnimExtLabel_2 = QLabel(UmodelBruteForcer) + self.gameAnimExtLabel_2.setObjectName(u"gameAnimExtLabel_2") + self.gameAnimExtLabel_2.setGeometry(QRect(530, 110, 121, 16)) + self.gameAnimExtLabel_2.setFont(font) + self.textBrowserCpyrght = QTextBrowser(UmodelBruteForcer) + self.textBrowserCpyrght.setObjectName(u"textBrowserCpyrght") + self.textBrowserCpyrght.setGeometry(QRect(670, 10, 720, 46)) + self.textBrowserCpyrght.setFont(font) + self.textBrowserCpyrght.setAutoFillBackground(True) + self.textBrowserCpyrght.setFrameShape(QFrame.NoFrame) + self.textBrowserCpyrght.setFrameShadow(QFrame.Plain) + self.textBrowserCpyrght.setLineWidth(0) + self.textBrowserCpyrght.setOpenExternalLinks(True) + self.options3rdPartyCheckBox = QCheckBox(UmodelBruteForcer) + self.options3rdPartyCheckBox.setObjectName(u"options3rdPartyCheckBox") + self.options3rdPartyCheckBox.setGeometry(QRect(900, 80, 71, 22)) + self.options3rdPartyCheckBox.setFont(font) + self.optionsUScriptCheckBox = QCheckBox(UmodelBruteForcer) + self.optionsUScriptCheckBox.setObjectName(u"optionsUScriptCheckBox") + self.optionsUScriptCheckBox.setGeometry(QRect(1020, 80, 91, 22)) + self.optionsUScriptCheckBox.setFont(font) + self.optionsGltfCheckBox = QCheckBox(UmodelBruteForcer) + self.optionsGltfCheckBox.setObjectName(u"optionsGltfCheckBox") + self.optionsGltfCheckBox.setGeometry(QRect(690, 170, 91, 22)) + self.optionsGltfCheckBox.setFont(font) + self.optionsPngCheckBox = QCheckBox(UmodelBruteForcer) + self.optionsPngCheckBox.setObjectName(u"optionsPngCheckBox") + self.optionsPngCheckBox.setGeometry(QRect(1020, 110, 91, 22)) + self.optionsPngCheckBox.setFont(font) + self.optionsPs3CheckBox = QCheckBox(UmodelBruteForcer) + self.optionsPs3CheckBox.setObjectName(u"optionsPs3CheckBox") + self.optionsPs3CheckBox.setGeometry(QRect(690, 140, 91, 22)) + self.optionsPs3CheckBox.setFont(font) + self.optionsPs4CheckBox = QCheckBox(UmodelBruteForcer) + self.optionsPs4CheckBox.setObjectName(u"optionsPs4CheckBox") + self.optionsPs4CheckBox.setGeometry(QRect(800, 140, 91, 22)) + self.optionsPs4CheckBox.setFont(font) + self.optionsNswCheckBox = QCheckBox(UmodelBruteForcer) + self.optionsNswCheckBox.setObjectName(u"optionsNswCheckBox") + self.optionsNswCheckBox.setGeometry(QRect(900, 140, 111, 22)) + self.optionsNswCheckBox.setFont(font) + self.optionsIosCheckBox = QCheckBox(UmodelBruteForcer) + self.optionsIosCheckBox.setObjectName(u"optionsIosCheckBox") + self.optionsIosCheckBox.setGeometry(QRect(1020, 140, 121, 22)) + self.optionsIosCheckBox.setFont(font) + self.optionsAndroidCheckBox = QCheckBox(UmodelBruteForcer) + self.optionsAndroidCheckBox.setObjectName(u"optionsAndroidCheckBox") + self.optionsAndroidCheckBox.setGeometry(QRect(1150, 140, 71, 22)) + self.optionsAndroidCheckBox.setFont(font) + self.optionsGrpsCheckBox = QCheckBox(UmodelBruteForcer) + self.optionsGrpsCheckBox.setObjectName(u"optionsGrpsCheckBox") + self.optionsGrpsCheckBox.setGeometry(QRect(690, 110, 101, 22)) + self.optionsGrpsCheckBox.setFont(font) + self.optionsDdsCheckBox = QCheckBox(UmodelBruteForcer) + self.optionsDdsCheckBox.setObjectName(u"optionsDdsCheckBox") + self.optionsDdsCheckBox.setGeometry(QRect(900, 110, 101, 22)) + self.optionsDdsCheckBox.setFont(font) + self.optionsLodsCheckBox = QCheckBox(UmodelBruteForcer) + self.optionsLodsCheckBox.setObjectName(u"optionsLodsCheckBox") + self.optionsLodsCheckBox.setGeometry(QRect(800, 110, 91, 22)) + self.optionsLodsCheckBox.setFont(font) + self.optionsDisTgaCompCheckBox = QCheckBox(UmodelBruteForcer) + self.optionsDisTgaCompCheckBox.setObjectName(u"optionsDisTgaCompCheckBox") + self.optionsDisTgaCompCheckBox.setGeometry(QRect(1150, 80, 161, 22)) + self.optionsDisTgaCompCheckBox.setFont(font) + self.optionsMd5CheckBox = QCheckBox(UmodelBruteForcer) + self.optionsMd5CheckBox.setObjectName(u"optionsMd5CheckBox") + self.optionsMd5CheckBox.setGeometry(QRect(800, 170, 271, 22)) + self.optionsMd5CheckBox.setFont(font) + self.textBrowserCpyrght.raise_() + self.umodelExeLineEdit.raise_() + self.umodelExeLabel.raise_() + self.gameLineEdit.raise_() + self.gameLabel.raise_() + self.destFolderLineEdit.raise_() + self.destFolderLabel.raise_() + self.gameAnimLineEdit.raise_() + self.gameAnimLabel.raise_() + self.gameSoundLineEdit.raise_() + self.gameSoundLabel.raise_() + self.gameSmeshLabel.raise_() + self.gameSmeshLineEdit.raise_() + self.gameTexLineEdit.raise_() + self.gameTexLabel.raise_() + self.optionsMasterLabel.raise_() + self.umodelExePushButton.raise_() + self.gamePushButton.raise_() + self.gameAnimPushButton.raise_() + self.gameSoundPushButton.raise_() + self.gameSmeshPushButton.raise_() + self.gameTexPushButton.raise_() + self.destFolderPushButton.raise_() + self.optionsNoOvCheckBox.raise_() + self.optionsNoAnCheckBox.raise_() + self.optionsNoMeCheckBox.raise_() + self.optionsNoStMeCheckBox.raise_() + self.optionsNoVeMeCheckBox.raise_() + self.optionsNoTxCheckBox.raise_() + self.optionsNoMpCheckBox.raise_() + self.optionsNoLiCheckBox.raise_() + self.optionsZlibCheckBox.raise_() + self.optionsLzxCheckBox.raise_() + self.optionsLzoCheckBox.raise_() + self.gameAnimExtLineEdit.raise_() + self.gameAnimExtLabel.raise_() + self.gameSoundExtLineEdit.raise_() + self.gameSoundExtLabel.raise_() + self.gameSmeshExtLineEdit.raise_() + self.gameSmeshExtLabel.raise_() + self.gameTexExtLabel.raise_() + self.gameTexExtLineEdit.raise_() + self.gameAdd1ExtLabel.raise_() + self.gameAdd1ExtLineEdit.raise_() + self.gameAdd1Label.raise_() + self.gameAdd1LineEdit.raise_() + self.gameAdd1PushButton.raise_() + self.gameAdd2PushButton.raise_() + self.gameAdd2Label.raise_() + self.gameAdd2ExtLineEdit.raise_() + self.gameAdd2ExtLabel.raise_() + self.gameAdd2LineEdit.raise_() + self.gameAdd3ExtLabel.raise_() + self.gameAdd3Label.raise_() + self.gameAdd3PushButton.raise_() + self.gameAdd3ExtLineEdit.raise_() + self.gameAdd3LineEdit.raise_() + self.tabWidget.raise_() + self.optionsGamesLabel.raise_() + self.ProcessButton.raise_() + self.line.raise_() + self.line_2.raise_() + self.textBrowserWarning.raise_() + self.optionsSndsCheckBox.raise_() + self.optionsSelectAllCheckBox.raise_() + self.line_3.raise_() + self.optionsPermLabel.raise_() + self.optionsMasterLabelNote.raise_() + self.optionsPermLabelNote.raise_() + self.optionsGamesLabelNote.raise_() + self.optionsGamesAddiLabel.raise_() + self.optionsGamesAddiLineEdit.raise_() + self.optionsGamesAddiLabelNote.raise_() + self.line_4.raise_() + self.optionsUnckCheckBox.raise_() + self.gameCookedLineEdit.raise_() + self.gameLabel_2.raise_() + self.gameCookedPushButton.raise_() + self.line_5.raise_() + self.line_6.raise_() + self.label.raise_() + self.JMDigitalLogo.raise_() + self.line_7.raise_() + self.gameCookedExtLineEdit.raise_() + self.gameAnimExtLabel_2.raise_() + self.options3rdPartyCheckBox.raise_() + self.optionsUScriptCheckBox.raise_() + self.optionsGltfCheckBox.raise_() + self.optionsPngCheckBox.raise_() + self.optionsPs3CheckBox.raise_() + self.optionsPs4CheckBox.raise_() + self.optionsNswCheckBox.raise_() + self.optionsIosCheckBox.raise_() + self.optionsAndroidCheckBox.raise_() + self.optionsGrpsCheckBox.raise_() + self.optionsDdsCheckBox.raise_() + self.optionsLodsCheckBox.raise_() + self.optionsDisTgaCompCheckBox.raise_() + self.optionsMd5CheckBox.raise_() + + self.retranslateUi(UmodelBruteForcer) + + self.tabWidget.setCurrentIndex(2) + + + QMetaObject.connectSlotsByName(UmodelBruteForcer) + # setupUi + + def retranslateUi(self, UmodelBruteForcer): + UmodelBruteForcer.setWindowTitle(QCoreApplication.translate("UmodelBruteForcer", u"UmodelBruteForcer", None)) + self.umodelExeLineEdit.setPlaceholderText(QCoreApplication.translate("UmodelBruteForcer", u"e.g C:\\Tools\\Umodel.exe", None)) + self.umodelExeLabel.setText(QCoreApplication.translate("UmodelBruteForcer", u"Umodel.exe location:", None)) + self.gameLineEdit.setPlaceholderText(QCoreApplication.translate("UmodelBruteForcer", u"e.g C:\\Games\\Bulletstorm", None)) + self.gameLabel.setText(QCoreApplication.translate("UmodelBruteForcer", u"Game installation folder:", None)) + self.destFolderLineEdit.setPlaceholderText(QCoreApplication.translate("UmodelBruteForcer", u"e.g C:\\Extracted\\UT2004", None)) + self.destFolderLabel.setText(QCoreApplication.translate("UmodelBruteForcer", u"Destination folder:", None)) + self.gameAnimLineEdit.setPlaceholderText(QCoreApplication.translate("UmodelBruteForcer", u"e.g C:\\Games\\UT2004\\Animations", None)) + self.gameAnimLabel.setText(QCoreApplication.translate("UmodelBruteForcer", u"Animation folder:", None)) + self.gameSoundLineEdit.setPlaceholderText(QCoreApplication.translate("UmodelBruteForcer", u"e.g C:\\Games\\UT2004\\Sounds", None)) + self.gameSoundLabel.setText(QCoreApplication.translate("UmodelBruteForcer", u"Sounds folder:", None)) + self.gameSmeshLabel.setText(QCoreApplication.translate("UmodelBruteForcer", u"StaticMesh folder:", None)) + self.gameSmeshLineEdit.setPlaceholderText(QCoreApplication.translate("UmodelBruteForcer", u"e.g C:\\Games\\UT2004\\StaticMeshes", None)) + self.gameTexLineEdit.setPlaceholderText(QCoreApplication.translate("UmodelBruteForcer", u"e.g C:\\Games\\UT2004\\Textures", None)) + self.gameTexLabel.setText(QCoreApplication.translate("UmodelBruteForcer", u"Textures folder:", None)) + self.optionsMasterLabel.setText(QCoreApplication.translate("UmodelBruteForcer", u"Master Options:", None)) + self.umodelExePushButton.setText(QCoreApplication.translate("UmodelBruteForcer", u"Browse", None)) + self.gamePushButton.setText(QCoreApplication.translate("UmodelBruteForcer", u"Browse", None)) + self.gameAnimPushButton.setText(QCoreApplication.translate("UmodelBruteForcer", u"Browse", None)) + self.gameSoundPushButton.setText(QCoreApplication.translate("UmodelBruteForcer", u"Browse", None)) + self.gameSmeshPushButton.setText(QCoreApplication.translate("UmodelBruteForcer", u"Browse", None)) + self.gameTexPushButton.setText(QCoreApplication.translate("UmodelBruteForcer", u"Browse", None)) + self.destFolderPushButton.setText(QCoreApplication.translate("UmodelBruteForcer", u"Browse", None)) + self.optionsNoOvCheckBox.setText(QCoreApplication.translate("UmodelBruteForcer", u"No Overwrites", None)) + self.optionsNoAnCheckBox.setText(QCoreApplication.translate("UmodelBruteForcer", u"No Mesh Animations", None)) + self.optionsNoMeCheckBox.setText(QCoreApplication.translate("UmodelBruteForcer", u"No Skeletal Meshes", None)) + self.optionsNoStMeCheckBox.setText(QCoreApplication.translate("UmodelBruteForcer", u"No Static Meshes", None)) + self.optionsNoVeMeCheckBox.setText(QCoreApplication.translate("UmodelBruteForcer", u"No Vertex Meshes", None)) + self.optionsNoTxCheckBox.setText(QCoreApplication.translate("UmodelBruteForcer", u"No Textures", None)) + self.optionsNoMpCheckBox.setText(QCoreApplication.translate("UmodelBruteForcer", u"No Morph Targets", None)) + self.optionsNoLiCheckBox.setText(QCoreApplication.translate("UmodelBruteForcer", u"No Lightmaps", None)) + self.optionsZlibCheckBox.setText(QCoreApplication.translate("UmodelBruteForcer", u"ZLib compression", None)) + self.optionsLzxCheckBox.setText(QCoreApplication.translate("UmodelBruteForcer", u"LZX compression", None)) + self.optionsLzoCheckBox.setText(QCoreApplication.translate("UmodelBruteForcer", u"LZO compression", None)) + self.gameAnimExtLineEdit.setPlaceholderText(QCoreApplication.translate("UmodelBruteForcer", u"Default 'ukx'", None)) + self.gameAnimExtLabel.setText(QCoreApplication.translate("UmodelBruteForcer", u"Anims Extension:", None)) + self.gameSoundExtLineEdit.setPlaceholderText(QCoreApplication.translate("UmodelBruteForcer", u"Default 'uax'", None)) + self.gameSoundExtLabel.setText(QCoreApplication.translate("UmodelBruteForcer", u"Sounds Extension:", None)) + self.gameSmeshExtLineEdit.setPlaceholderText(QCoreApplication.translate("UmodelBruteForcer", u"Default 'usx'", None)) + self.gameSmeshExtLabel.setText(QCoreApplication.translate("UmodelBruteForcer", u"StaticMesh Extension:", None)) + self.gameTexExtLabel.setText(QCoreApplication.translate("UmodelBruteForcer", u"Textures Extension:", None)) + self.gameTexExtLineEdit.setPlaceholderText(QCoreApplication.translate("UmodelBruteForcer", u"Default 'utx'", None)) + self.gameAdd1ExtLabel.setText(QCoreApplication.translate("UmodelBruteForcer", u"Additional Extension:", None)) + self.gameAdd1ExtLineEdit.setPlaceholderText("") + self.gameAdd1Label.setText(QCoreApplication.translate("UmodelBruteForcer", u"Additional folder 1:", None)) + self.gameAdd1LineEdit.setPlaceholderText(QCoreApplication.translate("UmodelBruteForcer", u"e.g C:\\Games\\UT2004\\StaticLow", None)) + self.gameAdd1PushButton.setText(QCoreApplication.translate("UmodelBruteForcer", u"Browse", None)) + self.gameAdd2PushButton.setText(QCoreApplication.translate("UmodelBruteForcer", u"Browse", None)) + self.gameAdd2Label.setText(QCoreApplication.translate("UmodelBruteForcer", u"Additional folder 2:", None)) + self.gameAdd2ExtLineEdit.setPlaceholderText("") + self.gameAdd2ExtLabel.setText(QCoreApplication.translate("UmodelBruteForcer", u"Additional Extension:", None)) + self.gameAdd2LineEdit.setPlaceholderText(QCoreApplication.translate("UmodelBruteForcer", u"e.g C:\\Games\\UT2004\\StaticHigh", None)) + self.gameAdd3ExtLabel.setText(QCoreApplication.translate("UmodelBruteForcer", u"Additional Extension:", None)) + self.gameAdd3Label.setText(QCoreApplication.translate("UmodelBruteForcer", u"Additional folder 3:", None)) + self.gameAdd3PushButton.setText(QCoreApplication.translate("UmodelBruteForcer", u"Browse", None)) + self.gameAdd3LineEdit.setPlaceholderText(QCoreApplication.translate("UmodelBruteForcer", u"e.g C:\\Games\\UT2004\\TexturesLow", None)) + self.gamesTabUe1CheckBoxUe1.setText(QCoreApplication.translate("UmodelBruteForcer", u"Unreal Engine 1", None)) + self.gamesTabUe1CheckBoxUndying.setText(QCoreApplication.translate("UmodelBruteForcer", u"Undying", None)) + self.gamesTabUe1CheckBoxSelectAll.setText(QCoreApplication.translate("UmodelBruteForcer", u"SELECT ALL", None)) + self.tabWidget.setTabText(self.tabWidget.indexOf(self.ue1Tab), QCoreApplication.translate("UmodelBruteForcer", u"UE1", None)) + self.gamesTabUe2CheckBoxUt2.setText(QCoreApplication.translate("UmodelBruteForcer", u"Unreal Tournament 2003,2004", None)) + self.gamesTabUe2CheckBoxUe2.setText(QCoreApplication.translate("UmodelBruteForcer", u"Unreal Engine 2", None)) + self.gamesTabUe2CheckBoxUc1.setText(QCoreApplication.translate("UmodelBruteForcer", u"Unreal Championship", None)) + self.gamesTabUe2CheckBoxScell.setText(QCoreApplication.translate("UmodelBruteForcer", u"Splinter Cell 1-4", None)) + self.gamesTabUe2CheckBoxScconv.setText(QCoreApplication.translate("UmodelBruteForcer", u"Splinter Cell: Conviction", None)) + self.gamesTabUe2CheckBoxL2.setText(QCoreApplication.translate("UmodelBruteForcer", u"Lineage 2", None)) + self.gamesTabUe2CheckBoxLoco.setText(QCoreApplication.translate("UmodelBruteForcer", u"Land of Chaos Online (LOCO)", None)) + self.gamesTabUe2CheckBoxBterr.setText(QCoreApplication.translate("UmodelBruteForcer", u"Battle Territory Online", None)) + self.gamesTabUe2CheckBoxSwrc.setText(QCoreApplication.translate("UmodelBruteForcer", u"Star Wars: Republic Commando", None)) + self.gamesTabUe2CheckBoxXiii.setText(QCoreApplication.translate("UmodelBruteForcer", u"XIII", None)) + self.gamesTabUe2CheckBoxT3.setText(QCoreApplication.translate("UmodelBruteForcer", u"Tribes: Vengeance", None)) + self.gamesTabUe2CheckBoxSwat4.setText(QCoreApplication.translate("UmodelBruteForcer", u"SWAT 4", None)) + self.gamesTabUe2CheckBoxBio.setText(QCoreApplication.translate("UmodelBruteForcer", u"Bioshock, Bioshock 2", None)) + self.gamesTabUe2CheckBoxRag2.setText(QCoreApplication.translate("UmodelBruteForcer", u"Ragnarok Online 2", None)) + self.gamesTabUe2CheckBoxExt1.setText(QCoreApplication.translate("UmodelBruteForcer", u"Exteel", None)) + self.gamesTabUe2CheckBoxAa2.setText(QCoreApplication.translate("UmodelBruteForcer", u"America's Army 2", None)) + self.gamesTabUe2CheckBoxVang.setText(QCoreApplication.translate("UmodelBruteForcer", u"Vanguard: Saga of Heroes", None)) + self.gamesTabUe2CheckBoxEos.setText(QCoreApplication.translate("UmodelBruteForcer", u"Echo of Soul", None)) + self.gamesTabUe2CheckBoxSelectAll.setText(QCoreApplication.translate("UmodelBruteForcer", u"SELECT ALL", None)) + self.tabWidget.setTabText(self.tabWidget.indexOf(self.ue2Tab), QCoreApplication.translate("UmodelBruteForcer", u"UE2", None)) + self.gamesTabUe3CheckBoxMass2.setText(QCoreApplication.translate("UmodelBruteForcer", u"Mass Effect 2", None)) + self.gamesTabUe3CheckBoxSelectAll.setText(QCoreApplication.translate("UmodelBruteForcer", u"SELECT ALL", None)) + self.gamesTabUe3CheckBoxTurok.setText(QCoreApplication.translate("UmodelBruteForcer", u"Turok", None)) + self.gamesTabUe3CheckBoxEndwar.setText(QCoreApplication.translate("UmodelBruteForcer", u"EndWar", None)) + self.gamesTabUe3CheckBoxMass3.setText(QCoreApplication.translate("UmodelBruteForcer", u"Mass Effect 3", None)) + self.gamesTabUe3CheckBoxR6v2.setText(QCoreApplication.translate("UmodelBruteForcer", u"Rainbow 6: Vegas 2", None)) + self.gamesTabUe3CheckBoxMki.setText(QCoreApplication.translate("UmodelBruteForcer", u"Injustice: Gods Among Us", None)) + self.gamesTabUe3CheckBoxTna.setText(QCoreApplication.translate("UmodelBruteForcer", u"TNA iMPACT!", None)) + self.gamesTabUe3CheckBoxBs.setText(QCoreApplication.translate("UmodelBruteForcer", u"Bulletstorm", None)) + self.gamesTabUe3CheckBoxMk.setText(QCoreApplication.translate("UmodelBruteForcer", u"Mortal Kombat", None)) + self.gamesTabUe3CheckBoxGowj.setText(QCoreApplication.translate("UmodelBruteForcer", u"Gears of War: Judgment", None)) + self.gamesTabUe3CheckBoxA51.setText(QCoreApplication.translate("UmodelBruteForcer", u"BlackSite: Area 51", None)) + self.gamesTabUe3CheckBoxMkvdc.setText(QCoreApplication.translate("UmodelBruteForcer", u"Mortal Kombat vs. DC Universe", None)) + self.gamesTabUe3CheckBoxMassl.setText(QCoreApplication.translate("UmodelBruteForcer", u"Mass Effect Legendary Edition", None)) + self.gamesTabUe3CheckBoxMass.setText(QCoreApplication.translate("UmodelBruteForcer", u"Mass Effect", None)) + self.gamesTabUe3CheckBoxMkx.setText(QCoreApplication.translate("UmodelBruteForcer", u"Mortal Kombat X", None)) + self.gamesTabUe3CheckBoxFury.setText(QCoreApplication.translate("UmodelBruteForcer", u"Fury", None)) + self.gamesTabUe3CheckBoxGowu.setText(QCoreApplication.translate("UmodelBruteForcer", u"Gears of War: Ultimate", None)) + self.gamesTabUe3CheckBoxUe3.setText(QCoreApplication.translate("UmodelBruteForcer", u"Unreal Engine 3", None)) + self.gamesTabUe3CheckBoxTnaw.setText(QCoreApplication.translate("UmodelBruteForcer", u"WWE All Stars", None)) + self.gamesTabUe3CheckBoxBatman3.setText(QCoreApplication.translate("UmodelBruteForcer", u"Batman: Arkham Origins", None)) + self.gamesTabUe3CheckBoxMedge.setText(QCoreApplication.translate("UmodelBruteForcer", u"Mirror's Edge", None)) + self.gamesTabUe3CheckBoxAo2.setText(QCoreApplication.translate("UmodelBruteForcer", u"Army of Two", None)) + self.gamesTabUe3CheckBoxMcarta.setText(QCoreApplication.translate("UmodelBruteForcer", u"Magna Carta 2", None)) + self.gamesTabUe3CheckBoxXmen.setText(QCoreApplication.translate("UmodelBruteForcer", u"X-Men Origins: Wolverine", None)) + self.gamesTabUe3CheckBoxHuxley.setText(QCoreApplication.translate("UmodelBruteForcer", u"Huxley", None)) + self.gamesTabUe3CheckBoxDoh.setText(QCoreApplication.translate("UmodelBruteForcer", u"Destroy All Humans", None)) + self.gamesTabUe3CheckBoxStrang.setText(QCoreApplication.translate("UmodelBruteForcer", u"Stranglehold", None)) + self.gamesTabUe3CheckBoxBatman.setText(QCoreApplication.translate("UmodelBruteForcer", u"Batman: Arkham Asylum", None)) + self.gamesTabUe3CheckBoxTlr.setText(QCoreApplication.translate("UmodelBruteForcer", u"The Last Remnant", None)) + self.gamesTabUe3CheckBoxBatman2.setText(QCoreApplication.translate("UmodelBruteForcer", u"Batman: Arkham City", None)) + self.gamesTabUe3CheckBoxSf2.setText(QCoreApplication.translate("UmodelBruteForcer", u"Special Force 2", None)) + self.gamesTabUe3CheckBoxDnd.setText(QCoreApplication.translate("UmodelBruteForcer", u"Dungeons & Dragons: Daggerdale", None)) + self.gamesTabUe3CheckBoxArgo.setText(QCoreApplication.translate("UmodelBruteForcer", u"Rise of the Argonauts", None)) + self.gamesTabUe3CheckBoxShad.setText(QCoreApplication.translate("UmodelBruteForcer", u"Shadows of the Damned", None)) + self.gamesTabUe3CheckBoxArgo2.setText(QCoreApplication.translate("UmodelBruteForcer", u"Thor: God of Thunder", None)) + self.gamesTabUe3CheckBoxHunt.setText(QCoreApplication.translate("UmodelBruteForcer", u"Hunted: The Demon's Forge", None)) + self.gamesTabUe3CheckBoxGunsl.setText(QCoreApplication.translate("UmodelBruteForcer", u"Gunslayer Legend", None)) + self.gamesTabUe3CheckBoxBorder.setText(QCoreApplication.translate("UmodelBruteForcer", u"Borderlands", None)) + self.gamesTabUe3CheckBoxCrime.setText(QCoreApplication.translate("UmodelBruteForcer", u"Crime Craft", None)) + self.gamesTabUe3CheckBoxFrontl.setText(QCoreApplication.translate("UmodelBruteForcer", u"Frontlines: Fuel of War", None)) + self.gamesTabUe3CheckBoxAva.setText(QCoreApplication.translate("UmodelBruteForcer", u"AVA Online", None)) + self.gamesTabUe3CheckBoxFronth.setText(QCoreApplication.translate("UmodelBruteForcer", u"Homefront", None)) + self.gamesTabUe3CheckBoxBatman4.setText(QCoreApplication.translate("UmodelBruteForcer", u"Batman: Arkham Knight", None)) + self.gamesTabUe3CheckBox50cent.setText(QCoreApplication.translate("UmodelBruteForcer", u"50 Cent: Blood on the Sand", None)) + self.gamesTabUe3CheckBoxTera.setText(QCoreApplication.translate("UmodelBruteForcer", u"TERA: The Exiled Realm of Arborea", None)) + self.gamesTabUe3CheckBoxApb.setText(QCoreApplication.translate("UmodelBruteForcer", u"All Points Bulletin", None)) + self.gamesTabUe3CheckBoxMo.setText(QCoreApplication.translate("UmodelBruteForcer", u"Mortal Online", None)) + self.gamesTabUe3CheckBoxMoh2010.setText(QCoreApplication.translate("UmodelBruteForcer", u"Medal of Honor 2010", None)) + self.gamesTabUe3CheckBoxEns.setText(QCoreApplication.translate("UmodelBruteForcer", u"Enslaved: Odyssey to the West", None)) + self.gamesTabUe3CheckBoxTrans1.setText(QCoreApplication.translate("UmodelBruteForcer", u"Transformers: War for Cybertron", None)) + self.gamesTabUe3CheckBoxAcm.setText(QCoreApplication.translate("UmodelBruteForcer", u"Aliens: Colonial Marines", None)) + self.gamesTabUe3CheckBoxTrans2.setText(QCoreApplication.translate("UmodelBruteForcer", u"Transformers: Dark of the Moon", None)) + self.gamesTabUe3CheckBoxSing.setText(QCoreApplication.translate("UmodelBruteForcer", u"Singularity", None)) + self.gamesTabUe3CheckBoxBorder3.setText(QCoreApplication.translate("UmodelBruteForcer", u"Brothers in Arms: Hell's Highway", None)) + self.gamesTabUe3CheckBoxLeg.setText(QCoreApplication.translate("UmodelBruteForcer", u"Legendary: Pandora's Box", None)) + self.gamesTabUe3CheckBoxAa3.setText(QCoreApplication.translate("UmodelBruteForcer", u"America's Army 3", None)) + self.gamesTabUe3CheckBoxBns.setText(QCoreApplication.translate("UmodelBruteForcer", u"Blade && Soul", None)) + self.gamesTabUe3CheckBoxAlpha.setText(QCoreApplication.translate("UmodelBruteForcer", u"Alpha Protocol", None)) + self.gamesTabUe3CheckBoxMoha.setText(QCoreApplication.translate("UmodelBruteForcer", u"Medal of Honor: Airborne", None)) + self.gamesTabUe3CheckBoxUndertow.setText(QCoreApplication.translate("UmodelBruteForcer", u"Undertow", None)) + self.gamesTabUe3CheckBoxTrans.setText(QCoreApplication.translate("UmodelBruteForcer", u"The Bourne Conspiracy", None)) + self.gamesTabUe3CheckBoxBerk.setText(QCoreApplication.translate("UmodelBruteForcer", u"Berkanix", None)) + self.gamesTabUe3CheckBoxTrans3.setText(QCoreApplication.translate("UmodelBruteForcer", u"Transformers: Fall of Cybertron", None)) + self.gamesTabUe3CheckBoxDarkv.setText(QCoreApplication.translate("UmodelBruteForcer", u"Dark Void", None)) + self.gamesTabUe3CheckBoxAlice.setText(QCoreApplication.translate("UmodelBruteForcer", u"Alice: Madness Returns", None)) + self.gamesTabUe3CheckBoxPla.setText(QCoreApplication.translate("UmodelBruteForcer", u"Passion Leads Army", None)) + self.gamesTabUe3CheckBoxXcom.setText(QCoreApplication.translate("UmodelBruteForcer", u"The Bureau: XCOM Declassified", None)) + self.gamesTabUe3CheckBoxXcom2.setText(QCoreApplication.translate("UmodelBruteForcer", u"XCOM 2", None)) + self.gamesTabUe3CheckBoxDis.setText(QCoreApplication.translate("UmodelBruteForcer", u"Dishonored", None)) + self.gamesTabUe3CheckBoxFablej.setText(QCoreApplication.translate("UmodelBruteForcer", u"Fable: The Journey", None)) + self.gamesTabUe3CheckBoxRem.setText(QCoreApplication.translate("UmodelBruteForcer", u"Remember Me", None)) + self.gamesTabUe3CheckBoxLp3.setText(QCoreApplication.translate("UmodelBruteForcer", u"Lost Planet 3", None)) + self.gamesTabUe3CheckBoxLp3y.setText(QCoreApplication.translate("UmodelBruteForcer", u"Yaiba: Ninja Gaiden Z", None)) + self.gamesTabUe3CheckBoxBio3.setText(QCoreApplication.translate("UmodelBruteForcer", u"Bioshock Infinite", None)) + self.gamesTabUe3CheckBoxT4.setText(QCoreApplication.translate("UmodelBruteForcer", u"Tribes: Ascend", None)) + self.gamesTabUe3CheckBoxTaoyuan.setText(QCoreApplication.translate("UmodelBruteForcer", u"Tao Yuan", None)) + self.gamesTabUe3CheckBoxFable.setText(QCoreApplication.translate("UmodelBruteForcer", u"Fable Anniversary", None)) + self.gamesTabUe3CheckBoxBorder2.setText(QCoreApplication.translate("UmodelBruteForcer", u"Borderlands 2", None)) + self.gamesTabUe3CheckBoxRem2.setText(QCoreApplication.translate("UmodelBruteForcer", u"Life is Strange", None)) + self.gamesTabUe3CheckBoxThief4.setText(QCoreApplication.translate("UmodelBruteForcer", u"Thief", None)) + self.gamesTabUe3CheckBoxDmc.setText(QCoreApplication.translate("UmodelBruteForcer", u"DmC: Devil May Cry", None)) + self.gamesTabUe3CheckBoxGigantic.setText(QCoreApplication.translate("UmodelBruteForcer", u"Gigantic", None)) + self.gamesTabUe3CheckBoxMurd.setText(QCoreApplication.translate("UmodelBruteForcer", u"Murdered: Soul Suspect", None)) + self.gamesTabUe3CheckBoxSmite.setText(QCoreApplication.translate("UmodelBruteForcer", u"SMITE", None)) + self.gamesTabUe3CheckBoxDundef.setText(QCoreApplication.translate("UmodelBruteForcer", u"Dungeon Defenders", None)) + self.gamesTabUe3CheckBoxSov.setText(QCoreApplication.translate("UmodelBruteForcer", u"Seal of Vajra", None)) + self.gamesTabUe3CheckBoxMetroconf.setText(QCoreApplication.translate("UmodelBruteForcer", u"Metro Conflict", None)) + self.gamesTabUe3CheckBoxRocketleague.setText(QCoreApplication.translate("UmodelBruteForcer", u"Rocket League", None)) + self.gamesTabUe3CheckBoxDev3rd.setText(QCoreApplication.translate("UmodelBruteForcer", u"Devil's Third", None)) + self.gamesTabUe3CheckBoxGuilty.setText(QCoreApplication.translate("UmodelBruteForcer", u"Guilty Gear Xrd", None)) + self.gamesTabUe3CheckBoxVec.setText(QCoreApplication.translate("UmodelBruteForcer", u"The Vanishing of Ethan Carter", None)) + self.gamesTabUe3CheckBoxGrav.setText(QCoreApplication.translate("UmodelBruteForcer", u"GRAV", None)) + self.gamesTabUe3CheckBoxDust514.setText(QCoreApplication.translate("UmodelBruteForcer", u"Dust 514", None)) + self.tabWidget.setTabText(self.tabWidget.indexOf(self.ue3Tab), QCoreApplication.translate("UmodelBruteForcer", u"UE3", None)) + self.gamesTabUe4CheckBoxSelectAll.setText(QCoreApplication.translate("UmodelBruteForcer", u"SELECT ALL", None)) + self.gamesTabUe4CheckBoxHit.setText(QCoreApplication.translate("UmodelBruteForcer", u"Heroes of Incredible Tales", None)) + self.gamesTabUe4CheckBoxGears4.setText(QCoreApplication.translate("UmodelBruteForcer", u"Gears of War 4", None)) + self.gamesTabUe4CheckBoxFablel.setText(QCoreApplication.translate("UmodelBruteForcer", u"Fable Legends", None)) + self.gamesTabUe4CheckBoxUt4.setText(QCoreApplication.translate("UmodelBruteForcer", u"Unreal Tournament 4", None)) + self.gamesTabUe4CheckBoxArk.setText(QCoreApplication.translate("UmodelBruteForcer", u"Ark: Survival Evolved", None)) + self.gamesTabUe4CheckBoxDaysgone.setText(QCoreApplication.translate("UmodelBruteForcer", u"Days Gone", None)) + self.gamesTabUe4CheckBoxNgb.setText(QCoreApplication.translate("UmodelBruteForcer", u"New Gundam Breaker", None)) + self.gamesTabUe4CheckBoxParagon.setText(QCoreApplication.translate("UmodelBruteForcer", u"Paragon", None)) + self.gamesTabUe4CheckBoxAscl.setText(QCoreApplication.translate("UmodelBruteForcer", u"Ascendant One", None)) + self.gamesTabUe4CheckBoxDauntless.setText(QCoreApplication.translate("UmodelBruteForcer", u"Dauntless", None)) + self.gamesTabUe4CheckBoxJedi.setText(QCoreApplication.translate("UmodelBruteForcer", u"Star Wars Jedi: Fallen Order", None)) + self.gamesTabUe4CheckBoxBorder3.setText(QCoreApplication.translate("UmodelBruteForcer", u"Borderlands 3", None)) + self.gamesTabUe4CheckBoxTekken7.setText(QCoreApplication.translate("UmodelBruteForcer", u"Tekken 7", None)) + self.gamesTabUe4CheckBoxLis2.setText(QCoreApplication.translate("UmodelBruteForcer", u"Life is Strange 2", None)) + self.gamesTabUe4CheckBoxKh3.setText(QCoreApplication.translate("UmodelBruteForcer", u"Kingdom Hearts 3", None)) + self.gamesTabUe4CheckBoxLawbr.setText(QCoreApplication.translate("UmodelBruteForcer", u"Lawbreakers", None)) + self.gamesTabUe4CheckBoxSod2.setText(QCoreApplication.translate("UmodelBruteForcer", u"State of Decay 2", None)) + self.gamesTabUe4CheckBoxUe4p.setText(QCoreApplication.translate("UmodelBruteForcer", u"Unreal engine 4.25 Plus", None)) + self.gamesTabUe4CheckBoxSot.setText(QCoreApplication.translate("UmodelBruteForcer", u"Sea of Thieves", None)) + self.gamesTabUe4CheckBoxUe4027.setText(QCoreApplication.translate("UmodelBruteForcer", u"Unreal engine 4.0-4.27", None)) + self.tabWidget.setTabText(self.tabWidget.indexOf(self.ue4Tab), QCoreApplication.translate("UmodelBruteForcer", u"UE4", None)) + self.optionsGamesLabel.setText(QCoreApplication.translate("UmodelBruteForcer", u"Game overrides:", None)) + self.ProcessButton.setText(QCoreApplication.translate("UmodelBruteForcer", u"Process", None)) + self.textBrowserWarning.setHtml(QCoreApplication.translate("UmodelBruteForcer", u"\n" +"\n" +"

WARNING:

\n" +"

Each of the checkbox options adds an additional pass to the brute forcing utility.

\n" +"

For example, If you choose 5 options with 1 game override, and have the Animations, Sounds, StaticMesh and Textures folders populated, then the tool will run Umodel 625 times for 1 file per folder. 2 games will double this amount, and so on.

\n" +"

This is known as Permutations. In this specific case, there are 4 objects and each object can be combined with any of the 5 options.

\n" +"

The situation is akin to having 4 slots where each slot can be filled with one of 5 possible choices.

\n" +"

The principle here is that of the multiplication rule, which states that if you have n choices for one task and m choices for another task, then there are n X m choices for both tasks together.

\n" +"

For this specific scenario, there are 5 choices for the first object, 5 choices for the second object, 5 choices for the third object, and 5 choices for the fourth object.

\n" +"

Therefore, the total number of possible combinations can be calculated as: 5x5x5x5=625 (PER FILE!)

", None)) + self.optionsSndsCheckBox.setText(QCoreApplication.translate("UmodelBruteForcer", u"Sounds", None)) + self.optionsSelectAllCheckBox.setText(QCoreApplication.translate("UmodelBruteForcer", u"SELECT ALL", None)) + self.optionsPermLabel.setText(QCoreApplication.translate("UmodelBruteForcer", u"Permutation Options:", None)) + self.optionsMasterLabelNote.setText(QCoreApplication.translate("UmodelBruteForcer", u"(these will be applied to every run)", None)) + self.optionsPermLabelNote.setText(QCoreApplication.translate("UmodelBruteForcer", u"(please read warning)", None)) + self.optionsGamesLabelNote.setText(QCoreApplication.translate("UmodelBruteForcer", u"(please read warning)", None)) + self.optionsGamesAddiLabel.setText(QCoreApplication.translate("UmodelBruteForcer", u"Additional game override:", None)) + self.optionsGamesAddiLineEdit.setPlaceholderText(QCoreApplication.translate("UmodelBruteForcer", u"e.g 'sg1' | Enter the text with no hyphen or quotes", None)) + self.optionsGamesAddiLabelNote.setText(QCoreApplication.translate("UmodelBruteForcer", u"(ADVANCED: this is for modified versions of Umodel)", None)) + self.optionsUnckCheckBox.setText(QCoreApplication.translate("UmodelBruteForcer", u"Uncook (UE3/4/5 only)", None)) + self.gameCookedLineEdit.setPlaceholderText(QCoreApplication.translate("UmodelBruteForcer", u"e.g C:\\Games\\Bulletstorm\\StormGame\\CookedPC", None)) + self.gameLabel_2.setText(QCoreApplication.translate("UmodelBruteForcer", u"'Cooked' folder: (UE 3/4/5 only)", None)) + self.gameCookedPushButton.setText(QCoreApplication.translate("UmodelBruteForcer", u"Browse", None)) + self.label.setText(QCoreApplication.translate("UmodelBruteForcer", u"The options below are mostly used for Unreal Engine 1 & 2 games. If you have a \"Cooked\" folder, you can skip them.", None)) + self.JMDigitalLogo.setText(QCoreApplication.translate("UmodelBruteForcer", u"JMDigital", None)) + self.gameCookedExtLineEdit.setPlaceholderText(QCoreApplication.translate("UmodelBruteForcer", u"Default 'upk'", None)) + self.gameAnimExtLabel_2.setText(QCoreApplication.translate("UmodelBruteForcer", u"Cooked Extension:", None)) + self.textBrowserCpyrght.setHtml(QCoreApplication.translate("UmodelBruteForcer", u"\n" +"\n" +"

Umodel is \u00a9 Gildor Umodel Homepage

\n" +"

JMD's Umodel Brute Forcer UI is \u00a9 JMDigital

\n" +"

Not affiliated with Epic Games Inc.

", None)) + self.options3rdPartyCheckBox.setText(QCoreApplication.translate("UmodelBruteForcer", u"3rd Party", None)) + self.optionsUScriptCheckBox.setText(QCoreApplication.translate("UmodelBruteForcer", u"UnrealScript", None)) + self.optionsGltfCheckBox.setText(QCoreApplication.translate("UmodelBruteForcer", u"glTF meshes", None)) + self.optionsPngCheckBox.setText(QCoreApplication.translate("UmodelBruteForcer", u"PNG textures", None)) + self.optionsPs3CheckBox.setText(QCoreApplication.translate("UmodelBruteForcer", u"Playstation 3", None)) + self.optionsPs4CheckBox.setText(QCoreApplication.translate("UmodelBruteForcer", u"Playstation 4", None)) + self.optionsNswCheckBox.setText(QCoreApplication.translate("UmodelBruteForcer", u"Nintendo Switch", None)) + self.optionsIosCheckBox.setText(QCoreApplication.translate("UmodelBruteForcer", u"iOS (iPhone/iPad)", None)) + self.optionsAndroidCheckBox.setText(QCoreApplication.translate("UmodelBruteForcer", u"Android", None)) + self.optionsGrpsCheckBox.setText(QCoreApplication.translate("UmodelBruteForcer", u"Group names", None)) + self.optionsDdsCheckBox.setText(QCoreApplication.translate("UmodelBruteForcer", u"DDS textures", None)) + self.optionsLodsCheckBox.setText(QCoreApplication.translate("UmodelBruteForcer", u"All LODs", None)) + self.optionsDisTgaCompCheckBox.setText(QCoreApplication.translate("UmodelBruteForcer", u"Disable TGA compression", None)) + self.optionsMd5CheckBox.setText(QCoreApplication.translate("UmodelBruteForcer", u"md5mesh/md5anim format for skeletal meshes", None)) + # retranslateUi + diff --git a/JMD-Umodel-BruteForcer/umodelbruteforcer.py b/JMD-Umodel-BruteForcer/umodelbruteforcer.py new file mode 100644 index 0000000..eba911b --- /dev/null +++ b/JMD-Umodel-BruteForcer/umodelbruteforcer.py @@ -0,0 +1,601 @@ +import os +import sys +import webbrowser +import subprocess +from glob import glob +from itertools import chain, combinations +from PySide6.QtWidgets import QApplication, QWidget, QFileDialog +from ui_form import Ui_UmodelBruteForcer + +class UmodelBruteForcer(QWidget): + def __init__(self, parent=None): + super().__init__(parent) + self.ui = Ui_UmodelBruteForcer() + self.ui.setupUi(self) + + # Connect the button for browsing .exe file + self.ui.umodelExePushButton.clicked.connect(lambda: self.browse_file('exe', self.ui.umodelExeLineEdit)) + + # Define folder buttons and their descriptions + folder_buttons = { + 'gamePushButton': ("game's installation folder", self.ui.gameLineEdit), + 'gameCookedPushButton': ("game's Cooked folder", self.ui.gameCookedLineEdit), + 'gameAnimPushButton': ("game's Animations folder", self.ui.gameAnimLineEdit), + 'gameSoundPushButton': ("game's Sounds folder", self.ui.gameSoundLineEdit), + 'gameSmeshPushButton': ("game's StaticMeshes folder", self.ui.gameSmeshLineEdit), + 'gameTexPushButton': ("game's Textures folder", self.ui.gameTexLineEdit), + 'gameAdd1PushButton': ("first additional folder", self.ui.gameAdd1LineEdit), + 'gameAdd2PushButton': ("second additional folder", self.ui.gameAdd2LineEdit), + 'gameAdd3PushButton': ("third additional folder", self.ui.gameAdd3LineEdit), + 'destFolderPushButton': ("Destination folder", self.ui.destFolderLineEdit) + } + + # Connect folder buttons + for button_name, (description, line_edit) in folder_buttons.items(): + button = getattr(self.ui, button_name) + button.clicked.connect(lambda desc=description, le=line_edit: self.browse_folder(desc, le)) + + # Connect to executing the command + self.ui.ProcessButton.clicked.connect(self.execute_command) + + # Connect to open URL + self.ui.JMDigitalLogo.clicked.connect(lambda: webbrowser.open('https://jmd.vc')) + + # Connect the "Select All" checkboxes + self.ui.gamesTabUe1CheckBoxSelectAll.toggled.connect(lambda state: self.select_all_checkboxes('gamesTabUe1CheckBoxSelectAll', state)) + self.ui.gamesTabUe2CheckBoxSelectAll.toggled.connect(lambda state: self.select_all_checkboxes('gamesTabUe2CheckBoxSelectAll', state)) + self.ui.gamesTabUe3CheckBoxSelectAll.toggled.connect(lambda state: self.select_all_checkboxes('gamesTabUe3CheckBoxSelectAll', state)) + self.ui.gamesTabUe4CheckBoxSelectAll.toggled.connect(lambda state: self.select_all_checkboxes('gamesTabUe4CheckBoxSelectAll', state)) + self.ui.optionsSelectAllCheckBox.toggled.connect(self.select_all_options_checkboxes) + + # Define game switches for each engine version (checkboxes and switches combined) + self.game_switches = { + 'gamesTabUe1CheckBoxSelectAll': [ + 'gamesTabUe1CheckBoxUe1', + 'gamesTabUe1CheckBoxUndying', + ], + 'gamesTabUe2CheckBoxSelectAll': [ + 'gamesTabUe2CheckBoxUt2', + 'gamesTabUe2CheckBoxUe2', + 'gamesTabUe2CheckBoxUc1', + 'gamesTabUe2CheckBoxScell', + 'gamesTabUe2CheckBoxScconv', + 'gamesTabUe2CheckBoxL2', + 'gamesTabUe2CheckBoxLoco', + 'gamesTabUe2CheckBoxBterr', + 'gamesTabUe2CheckBoxSwrc', + 'gamesTabUe2CheckBoxXiii', + 'gamesTabUe2CheckBoxT3', + 'gamesTabUe2CheckBoxSwat4', + 'gamesTabUe2CheckBoxBio', + 'gamesTabUe2CheckBoxRag2', + 'gamesTabUe2CheckBoxExt1', + 'gamesTabUe2CheckBoxAa2', + 'gamesTabUe2CheckBoxVang', + 'gamesTabUe2CheckBoxEos', + ], + 'gamesTabUe3CheckBoxSelectAll': [ + 'gamesTabUe3CheckBoxMass2', + 'gamesTabUe3CheckBoxTurok', + 'gamesTabUe3CheckBoxEndwar', + 'gamesTabUe3CheckBoxMass3', + 'gamesTabUe3CheckBoxR6v2', + 'gamesTabUe3CheckBoxMki', + 'gamesTabUe3CheckBoxTna', + 'gamesTabUe3CheckBoxBs', + 'gamesTabUe3CheckBoxMk', + 'gamesTabUe3CheckBoxGowj', + 'gamesTabUe3CheckBoxA51', + 'gamesTabUe3CheckBoxMkvdc', + 'gamesTabUe3CheckBoxMassl', + 'gamesTabUe3CheckBoxMass', + 'gamesTabUe3CheckBoxMkx', + 'gamesTabUe3CheckBoxFury', + 'gamesTabUe3CheckBoxGowu', + 'gamesTabUe3CheckBoxUe3', + 'gamesTabUe3CheckBoxTnaw', + 'gamesTabUe3CheckBoxBatman3', + 'gamesTabUe3CheckBoxMedge', + 'gamesTabUe3CheckBoxAo2', + 'gamesTabUe3CheckBoxMcarta', + 'gamesTabUe3CheckBoxXmen', + 'gamesTabUe3CheckBoxHuxley', + 'gamesTabUe3CheckBoxDoh', + 'gamesTabUe3CheckBoxStrang', + 'gamesTabUe3CheckBoxBatman', + 'gamesTabUe3CheckBoxTlr', + 'gamesTabUe3CheckBoxBatman2', + 'gamesTabUe3CheckBoxSf2', + 'gamesTabUe3CheckBoxDnd', + 'gamesTabUe3CheckBoxArgo', + 'gamesTabUe3CheckBoxShad', + 'gamesTabUe3CheckBoxArgo2', + 'gamesTabUe3CheckBoxHunt', + 'gamesTabUe3CheckBoxGunsl', + 'gamesTabUe3CheckBoxBorder', + 'gamesTabUe3CheckBoxCrime', + 'gamesTabUe3CheckBoxFrontl', + 'gamesTabUe3CheckBoxAva', + 'gamesTabUe3CheckBoxFronth', + 'gamesTabUe3CheckBoxBatman4', + 'gamesTabUe3CheckBox50cent', + 'gamesTabUe3CheckBoxTera', + 'gamesTabUe3CheckBoxApb', + 'gamesTabUe3CheckBoxMo', + 'gamesTabUe3CheckBoxMoh2010', + 'gamesTabUe3CheckBoxEns', + 'gamesTabUe3CheckBoxTrans1', + 'gamesTabUe3CheckBoxAcm', + 'gamesTabUe3CheckBoxTrans2', + 'gamesTabUe3CheckBoxSing', + 'gamesTabUe3CheckBoxBorder3', + 'gamesTabUe3CheckBoxLeg', + 'gamesTabUe3CheckBoxAa3', + 'gamesTabUe3CheckBoxBns', + 'gamesTabUe3CheckBoxAlpha', + 'gamesTabUe3CheckBoxMoha', + 'gamesTabUe3CheckBoxUndertow', + 'gamesTabUe3CheckBoxTrans', + 'gamesTabUe3CheckBoxBerk', + 'gamesTabUe3CheckBoxTrans3', + 'gamesTabUe3CheckBoxDarkv', + 'gamesTabUe3CheckBoxAlice', + 'gamesTabUe3CheckBoxPla', + 'gamesTabUe3CheckBoxXcom', + 'gamesTabUe3CheckBoxXcom2', + 'gamesTabUe3CheckBoxDis', + 'gamesTabUe3CheckBoxFablej', + 'gamesTabUe3CheckBoxRem', + 'gamesTabUe3CheckBoxLp3', + 'gamesTabUe3CheckBoxLp3y', + 'gamesTabUe3CheckBoxBio3', + 'gamesTabUe3CheckBoxT4', + 'gamesTabUe3CheckBoxTaoyuan', + 'gamesTabUe3CheckBoxFable', + 'gamesTabUe3CheckBoxBorder2', + 'gamesTabUe3CheckBoxRem2', + 'gamesTabUe3CheckBoxThief4', + 'gamesTabUe3CheckBoxDmc', + 'gamesTabUe3CheckBoxGigantic', + 'gamesTabUe3CheckBoxMurd', + 'gamesTabUe3CheckBoxSmite', + 'gamesTabUe3CheckBoxDundef', + 'gamesTabUe3CheckBoxSov', + 'gamesTabUe3CheckBoxMetroconf', + 'gamesTabUe3CheckBoxRocketleague', + 'gamesTabUe3CheckBoxDev3rd', + 'gamesTabUe3CheckBoxGuilty', + 'gamesTabUe3CheckBoxVec', + 'gamesTabUe3CheckBoxGrav', + 'gamesTabUe3CheckBoxDust514', + ], + 'gamesTabUe4CheckBoxSelectAll': [ + 'gamesTabUe4CheckBoxUe4p', + 'gamesTabUe4CheckBoxGears4', + 'gamesTabUe4CheckBoxDaysgone', + 'gamesTabUe4CheckBoxArk', + 'gamesTabUe4CheckBoxTekken7', + 'gamesTabUe4CheckBoxLawbr', + 'gamesTabUe4CheckBoxSod2', + 'gamesTabUe4CheckBoxDauntless', + 'gamesTabUe4CheckBoxParagon', + 'gamesTabUe4CheckBoxUt4', + 'gamesTabUe4CheckBoxHit', + 'gamesTabUe4CheckBoxNgb', + 'gamesTabUe4CheckBoxLis2', + 'gamesTabUe4CheckBoxAscl', + 'gamesTabUe4CheckBoxBorder3', + 'gamesTabUe4CheckBoxKh3', + 'gamesTabUe4CheckBoxJedi', + 'gamesTabUe4CheckBoxFablel', + 'gamesTabUe4CheckBoxSot', + ], + } + + def select_all_options_checkboxes(self, state): + # Define the names of the checkboxes to be affected by the "Select All" option + options_checkboxes = [ + 'optionsNoMeCheckBox', 'optionsNoAnCheckBox', 'optionsNoStMeCheckBox', + 'optionsNoVeMeCheckBox', 'optionsNoTxCheckBox', 'optionsNoMpCheckBox', + 'optionsNoLiCheckBox', 'optionsZlibCheckBox', 'optionsLzxCheckBox', 'optionsLzoCheckBox' + ] + + # Check or uncheck the checkboxes based on the state of the "Select All" checkbox + for checkbox_name in options_checkboxes: + checkbox_object = getattr(self.ui, checkbox_name) + checkbox_object.setChecked(state) + + def select_all_checkboxes(self, select_all_key, state): + # Retrieve the relevant checkboxes + checkboxes = self.game_switches.get(select_all_key, []) + + # Check or uncheck the checkboxes based on the state of the "Select All" checkbox + for checkbox_name in checkboxes: + checkbox_object = getattr(self.ui, checkbox_name) + checkbox_object.setChecked(state) + + def browse_file(self, file_type, line_edit): + file_path, _ = QFileDialog.getOpenFileName(self, 'Select File', filter=f"{file_type} files (*.{file_type})") + line_edit.setText(file_path) + + def browse_folder(self, description, line_edit): + folder_path = QFileDialog.getExistingDirectory(self, f'Select Folder for {description}') + line_edit.setText(folder_path) + + def build_command(self, game_switch, file_to_process, folder_name, dest_folder): + # Get the path to umodel.exe + umodel_exe_path = self.ui.umodelExeLineEdit.text() + game_path = self.ui.gameLineEdit.text() # Retrieve from gameLineEdit + + # Usage: umodel [command] [options] [ []] + # umodel [command] [options] + # umodel @ + # + # name of package to load - this could be a file name + # with or without extension, or wildcard + # name of object to load + # class of object to load (useful, when trying to load + # object with ambiguous name) + # path to the game (see -path option) + # + # Commands: + # -view (default) visualize object; when no specified + # will load whole package + # -list list contents of package + # -export export specified object or whole package + # -save save specified packages + # + # Help information: + # -help display this help page + # -version display umodel version information + # -taglist list of tags to override game autodetection (for -game=nnn option) + # -gamelist list of supported games + # + # Developer commands: + # -log=file write log to the specified file + # -dump dump object information to console + # -pkginfo load package and display its information + # -testexport perform fake export + # + # Options: + # -path=PATH path to game installation directory; if not specified, + # program will search for packages in current directory + # -game=tag override game autodetection (see -taglist for variants) + # -pkgver=nnn override package version (advanced option!) + # -pkg=package load extra package (in addition to ) + # -obj=object specify object(s) to load + # -gui force startup UI to appear + # -aes=key provide AES decryption key for encrypted pak files, + # key is ASCII or hex string (hex format is 0xAABBCCDD), + # multiple options could be provided for multi-key games + # -aes=@file.txt read AES decryption key(s) from a text file + # + # Compatibility options: + # -nomesh disable loading of SkeletalMesh classes in a case of + # unsupported data format + # -noanim disable loading of MeshAnimation classes + # -nostat disable loading of StaticMesh class + # -novert disable loading of VertMesh class + # -notex disable loading of Material classes + # -nomorph disable loading of MorphTarget class + # -nolightmap disable loading of Lightmap textures + # -sounds allow export of sounds + # -3rdparty allow 3rd party asset export (ScaleForm, FaceFX) + # -lzo|lzx|zlib force compression method for UE3 fully-compressed packages + # + # Platform selection: + # -ps3 Playstation 3 + # -ps4 Playstation 4 + # -nsw Nintendo Switch + # -ios iOS (iPhone/iPad) + # -android Android + # + # Viewer options: + # -meshes view meshes only + # -materials view materials only (excluding textures) + # -anim= specify AnimSet to automatically attach to mesh + # + # Export options: + # -out=PATH export everything into PATH instead of the current directory + # -all used with -dump, will dump all objects instead of specified one + # -uncook use original package name as a base export directory (UE3) + # -groups use group names instead of class names for directories (UE1-3) + # -uc create unreal script when possible + # -psk use ActorX format for meshes (default) + # -md5 use md5mesh/md5anim format for skeletal mesh + # -gltf use glTF 2.0 format for mesh + # -lods export all available mesh LOD levels + # -dds export textures in DDS format whenever possible + # -png export textures in PNG format instead of TGA + # -notgacomp disable TGA compression + # -nooverwrite prevent existing files from being overwritten (better + # performance) + # + # Supported resources for export: + # SkeletalMesh exported as ActorX psk file, MD5Mesh or glTF + # MeshAnimation exported as ActorX psa file or MD5Anim + # VertMesh exported as Unreal 3d file + # StaticMesh exported as psk file with no skeleton (pskx) or glTF + # Texture exported in tga or dds format + # Sounds file extension depends on object contents + # ScaleForm gfx + # FaceFX fxa + # Sound exported "as is" + + # Define master switches + master_switches = [ + '-nooverwrite' if self.ui.optionsNoOvCheckBox.isChecked() else '', + '-sounds' if self.ui.optionsSndsCheckBox.isChecked() else '', + '-3rdparty' if self.ui.options3rdPartyCheckBox.isChecked() else '', + '-uc' if self.ui.optionsUScriptCheckBox.isChecked() else '', + '-gltf' if self.ui.optionsGltfCheckBox.isChecked() else '', + '-png' if self.ui.optionsPngCheckBox.isChecked() else '', + '-groups' if self.ui.optionsGrpsCheckBox.isChecked() else '', + '-lods' if self.ui.optionsLodsCheckBox.isChecked() else '', + '-dds' if self.ui.optionsDdsCheckBox.isChecked() else '', + '-ps3' if self.ui.optionsPs3CheckBox.isChecked() else '', + '-ps4' if self.ui.optionsPs4CheckBox.isChecked() else '', + '-nsw' if self.ui.optionsNswCheckBox.isChecked() else '', + '-ios' if self.ui.optionsIosCheckBox.isChecked() else '', + '-android' if self.ui.optionsAndroidCheckBox.isChecked() else '', + '-notgacomp' if self.ui.optionsDisTgaCompCheckBox.isChecked() else '', + '-md5' if self.ui.optionsMd5CheckBox.isChecked() else '', + '-uncook' if self.ui.optionsUnckCheckBox.isChecked() else '' + ] + + # Define combinable switches + combinable_switches = [ + '-nomesh' if self.ui.optionsNoMeCheckBox.isChecked() else '', + '-noanim' if self.ui.optionsNoAnCheckBox.isChecked() else '', + '-nostat' if self.ui.optionsNoStMeCheckBox.isChecked() else '', + '-novert' if self.ui.optionsNoVeMeCheckBox.isChecked() else '', + '-notex' if self.ui.optionsNoTxCheckBox.isChecked() else '', + '-nomorph' if self.ui.optionsNoMpCheckBox.isChecked() else '', + '-nolightmap' if self.ui.optionsNoLiCheckBox.isChecked() else '' + ] + + # Define exclusive switches + exclusive_switches = [ + '-zlib' if self.ui.optionsZlibCheckBox.isChecked() else '', + '-lzx' if self.ui.optionsLzxCheckBox.isChecked() else '', + '-lzo' if self.ui.optionsLzoCheckBox.isChecked() else '' + ] + + # Filter out empty strings + master_switches = [switch for switch in master_switches if switch] + combinable_switches = [switch for switch in combinable_switches if switch] + exclusive_switches = [switch for switch in exclusive_switches if switch] + + # Create a set to store unique commands + unique_commands = set() + + # Generate all combinations of selected combinable switches + all_combinations = chain.from_iterable(combinations(combinable_switches, r) for r in range(len(combinable_switches) + 1)) + + # Extract the last part of the folder name + folder_name_last_part = os.path.basename(folder_name) + + # Create commands for each combination + for combination in all_combinations: + # Skip the combination where all combinable switches are used together + if len(combination) == len(combinable_switches): + continue + + for exclusive_switch in exclusive_switches + [None]: # Include None to allow no exclusive switch + umodel_options = " ".join(master_switches + list(combination)) + if exclusive_switch: + umodel_options += f" {exclusive_switch}" + + # Construct the command string + command = f'"{umodel_exe_path}" -export {umodel_options} {game_switch} -path="{game_path}" "{file_to_process}" -out="{dest_folder}/{folder_name_last_part}"' + + # Add the command to the set of unique commands + unique_commands.add(command) + + # Convert the set of unique commands to a list and sort by length from longest to shortest + sorted_commands = sorted(unique_commands, key=lambda x: -len(x)) + + return sorted_commands + + def execute_command(self): + log_file_path = os.path.join(os.path.dirname(__file__), 'commands.bat') + + # Define game switches + game_switches = { + #UE1 + 'gamesTabUe1CheckBoxUe1': '-game=ue1', + 'gamesTabUe1CheckBoxUndying': '-game=undying', + + #UE2 + 'gamesTabUe2CheckBoxUt2': '-game=ut2', + 'gamesTabUe2CheckBoxUe2': '-game=ue2', + 'gamesTabUe2CheckBoxUc1': '-game=uc1', + 'gamesTabUe2CheckBoxScell': '-game=scell', + 'gamesTabUe2CheckBoxScconv': '-game=scconv', + 'gamesTabUe2CheckBoxL2': '-game=l2', + 'gamesTabUe2CheckBoxLoco': '-game=loco', + 'gamesTabUe2CheckBoxBterr': '-game=bterr', + 'gamesTabUe2CheckBoxSwrc': '-game=swrc', + 'gamesTabUe2CheckBoxXiii': '-game=xiii', + 'gamesTabUe2CheckBoxT3': '-game=t3', + 'gamesTabUe2CheckBoxSwat4': '-game=swat4', + 'gamesTabUe2CheckBoxBio': '-game=bio', + 'gamesTabUe2CheckBoxRag2': '-game=rag2', + 'gamesTabUe2CheckBoxExt1': '-game=extl', + 'gamesTabUe2CheckBoxAa2': '-game=aa2', + 'gamesTabUe2CheckBoxVang': '-game=vang', + 'gamesTabUe2CheckBoxEos': '-game=eos', + + #UE3 + 'gamesTabUe3CheckBoxMass2': '-game=mass2', + 'gamesTabUe3CheckBoxTurok': '-game=turok', + 'gamesTabUe3CheckBoxEndwar': '-game=endwar', + 'gamesTabUe3CheckBoxMass3': '-game=mass3', + 'gamesTabUe3CheckBoxR6v2': '-game=r6v2', + 'gamesTabUe3CheckBoxMki': '-game=mk', + 'gamesTabUe3CheckBoxTna': '-game=tna', + 'gamesTabUe3CheckBoxBs': '-game=bs', + 'gamesTabUe3CheckBoxMk': '-game=mk', + 'gamesTabUe3CheckBoxGowj': '-game=gowj', + 'gamesTabUe3CheckBoxA51': '-game=a51', + 'gamesTabUe3CheckBoxMkvdc': '-game=mk', + 'gamesTabUe3CheckBoxMassl': '-game=massl', + 'gamesTabUe3CheckBoxMass': '-game=mass', + 'gamesTabUe3CheckBoxMkx': '-game=mk', + 'gamesTabUe3CheckBoxFury': '-game=fury', + 'gamesTabUe3CheckBoxGowu': '-game=gowu', + 'gamesTabUe3CheckBoxUe3': '-game=ue3', + 'gamesTabUe3CheckBoxTnaw': '-game=tna', + 'gamesTabUe3CheckBoxBatman3': '-game=batman3', + 'gamesTabUe3CheckBoxMedge': '-game=medge', + 'gamesTabUe3CheckBoxAo2': '-game=ao2', + 'gamesTabUe3CheckBoxMcarta': '-game=mcarta', + 'gamesTabUe3CheckBoxXmen': '-game=xmen', + 'gamesTabUe3CheckBoxHuxley': '-game=huxley', + 'gamesTabUe3CheckBoxDoh': '-game=doh', + 'gamesTabUe3CheckBoxStrang': '-game=strang', + 'gamesTabUe3CheckBoxBatman': '-game=batman', + 'gamesTabUe3CheckBoxTlr': '-game=tlr', + 'gamesTabUe3CheckBoxBatman2': '-game=batman2', + 'gamesTabUe3CheckBoxSf2': '-game=sf2', + 'gamesTabUe3CheckBoxDnd': '-game=dnd', + 'gamesTabUe3CheckBoxArgo': '-game=argo', + 'gamesTabUe3CheckBoxShad': '-game=shad', + 'gamesTabUe3CheckBoxArgo2': '-game=argo', + 'gamesTabUe3CheckBoxHunt': '-game=hunt', + 'gamesTabUe3CheckBoxGunsl': '-game=gunsl', + 'gamesTabUe3CheckBoxBorder': '-game=border', + 'gamesTabUe3CheckBoxCrime': '-game=crime', + 'gamesTabUe3CheckBoxFrontl': '-game=frontl', + 'gamesTabUe3CheckBoxAva': '-game=ava', + 'gamesTabUe3CheckBoxFronth': '-game=frontl', + 'gamesTabUe3CheckBoxBatman4': '-game=batman4', + 'gamesTabUe3CheckBox50cent': '-game=50cent', + 'gamesTabUe3CheckBoxTera': '-game=tera', + 'gamesTabUe3CheckBoxApb': '-game=apb', + 'gamesTabUe3CheckBoxMo': '-game=mo', + 'gamesTabUe3CheckBoxMoh2010': '-game=moh2010', + 'gamesTabUe3CheckBoxEns': '-game=ens', + 'gamesTabUe3CheckBoxTrans1': '-game=trans', + 'gamesTabUe3CheckBoxAcm': '-game=acm', + 'gamesTabUe3CheckBoxTrans2': '-game=trans', + 'gamesTabUe3CheckBoxSing': '-game=sing', + 'gamesTabUe3CheckBoxBorder3': '-game=border', + 'gamesTabUe3CheckBoxLeg': '-game=leg', + 'gamesTabUe3CheckBoxAa3': '-game=aa3', + 'gamesTabUe3CheckBoxBns': '-game=bns', + 'gamesTabUe3CheckBoxAlpha': '-game=alpha', + 'gamesTabUe3CheckBoxMoha': '-game=moha', + 'gamesTabUe3CheckBoxUndertow': '-game=undertow', + 'gamesTabUe3CheckBoxTrans': '-game=trans', + 'gamesTabUe3CheckBoxBerk': '-game=berk', + 'gamesTabUe3CheckBoxTrans3': '-game=trans', + 'gamesTabUe3CheckBoxDarkv': '-game=darkv', + 'gamesTabUe3CheckBoxAlice': '-game=alice', + 'gamesTabUe3CheckBoxPla': '-game=pla', + 'gamesTabUe3CheckBoxXcom': '-game=xcom', + 'gamesTabUe3CheckBoxXcom2': '-game=xcom2', + 'gamesTabUe3CheckBoxDis': '-game=dis', + 'gamesTabUe3CheckBoxFablej': '-game=fable', + 'gamesTabUe3CheckBoxRem': '-game=rem', + 'gamesTabUe3CheckBoxLp3': '-game=lp3', + 'gamesTabUe3CheckBoxLp3y': '-game=lp3', + 'gamesTabUe3CheckBoxBio3': '-game=bio3', + 'gamesTabUe3CheckBoxT4': '-game=t4', + 'gamesTabUe3CheckBoxTaoyuan': '-game=taoyuan', + 'gamesTabUe3CheckBoxFable': '-game=fable', + 'gamesTabUe3CheckBoxBorder2': '-game=border', + 'gamesTabUe3CheckBoxRem2': '-game=rem', + 'gamesTabUe3CheckBoxThief4': '-game=thief4', + 'gamesTabUe3CheckBoxDmc': '-game=dmc', + 'gamesTabUe3CheckBoxGigantic': '-game=gigantic', + 'gamesTabUe3CheckBoxMurd': '-game=murd', + 'gamesTabUe3CheckBoxSmite': '-game=smite', + 'gamesTabUe3CheckBoxDundef': '-game=dundef', + 'gamesTabUe3CheckBoxSov': '-game=sov', + 'gamesTabUe3CheckBoxMetroconf': '-game=metroconf', + 'gamesTabUe3CheckBoxRocketleague': '-game=rocketleague', + 'gamesTabUe3CheckBoxDev3rd': '-game=dev3rd', + 'gamesTabUe3CheckBoxGuilty': '-game=guilty', + 'gamesTabUe3CheckBoxVec': '-game=vec', + 'gamesTabUe3CheckBoxGrav': '-game=grav', + 'gamesTabUe3CheckBoxDust514': '-game=dust514', + + #UE4 + 'gamesTabUe4CheckBoxUe4p': '-game=ue4.25+', + 'gamesTabUe4CheckBoxGears4': '-game=gears4', + 'gamesTabUe4CheckBoxDaysgone': '-game=daysgone', + 'gamesTabUe4CheckBoxArk': '-game=ark', + 'gamesTabUe4CheckBoxTekken7': '-game=tekken7', + 'gamesTabUe4CheckBoxLawbr': '-game=lawbr', + 'gamesTabUe4CheckBoxSod2': '-game=sod2', + 'gamesTabUe4CheckBoxDauntless': '-game=dauntless', + 'gamesTabUe4CheckBoxParagon': '-game=paragon', + 'gamesTabUe4CheckBoxUt4': '-game=ut4', + 'gamesTabUe4CheckBoxHit': '-game=hit', + 'gamesTabUe4CheckBoxNgb': '-game=ngb', + 'gamesTabUe4CheckBoxLis2': '-game=lis2', + 'gamesTabUe4CheckBoxAscl': '-game=asc1', + 'gamesTabUe4CheckBoxBorder3': '-game=border3', + 'gamesTabUe4CheckBoxKh3': '-game=kh3', + 'gamesTabUe4CheckBoxJedi': '-game=jedi', + 'gamesTabUe4CheckBoxFablel': '-game=fablel', + 'gamesTabUe4CheckBoxSot': '-game=sot' + } + + # Define default extensions + default_extensions = { + 'gameCookedLineEdit': 'upk', + 'gameAnimLineEdit': 'ukx', + 'gameSmeshLineEdit': 'usx', + 'gameSoundLineEdit': 'uax', + 'gameTexLineEdit': 'utx', + } + + # Define folder processing information + folders_to_process = { + self.ui.gameCookedLineEdit.text(): self.ui.gameCookedExtLineEdit.text() if self.ui.gameCookedExtLineEdit.text() else default_extensions['gameCookedLineEdit'], + self.ui.gameAnimLineEdit.text(): self.ui.gameAnimExtLineEdit.text() if self.ui.gameAnimExtLineEdit.text() else default_extensions['gameAnimLineEdit'], + self.ui.gameSmeshLineEdit.text(): self.ui.gameSmeshExtLineEdit.text() if self.ui.gameSmeshExtLineEdit.text() else default_extensions['gameSmeshLineEdit'], + self.ui.gameSoundLineEdit.text(): self.ui.gameSoundExtLineEdit.text() if self.ui.gameSoundExtLineEdit.text() else default_extensions['gameSoundLineEdit'], + self.ui.gameTexLineEdit.text(): self.ui.gameTexExtLineEdit.text() if self.ui.gameTexExtLineEdit.text() else default_extensions['gameTexLineEdit'], + self.ui.gameAdd1LineEdit.text(): self.ui.gameAdd1ExtLineEdit.text(), + self.ui.gameAdd2LineEdit.text(): self.ui.gameAdd2ExtLineEdit.text(), + self.ui.gameAdd3LineEdit.text(): self.ui.gameAdd3ExtLineEdit.text(), + } + + # Identify selected game switches and store them in a set (unique values only) + selected_game_switches = set([switch for checkbox_name, switch in game_switches.items() if getattr(self.ui, checkbox_name).isChecked()]) + + # Iterate through selected game switches + for game_switch in selected_game_switches: + # Open the log file in append mode + with open(log_file_path, 'a') as log_file: + # Destination folder + dest_folder = self.ui.destFolderLineEdit.text() + + # Iterate through folders and process files + for folder_path, extensions in folders_to_process.items(): + # Skip if no folder or extension provided + if not folder_path or not extensions: + continue + + # Get the folder name (e.g., "Animations", "Sounds") + folder_name = folder_path.split('\\')[-1] + + # Process files with the specified extensions + for ext in extensions.split(','): + file_paths = glob(f"{folder_path}\\*.{ext.strip()}") + for file_path in file_paths: + commands = self.build_command(game_switch, file_path, folder_name, dest_folder) + for command in commands: + # Write the command to the log file + log_file.write(command + '\n') + + subprocess.run(command, shell=True) + +if __name__ == "__main__": + app = QApplication(sys.argv) + widget = UmodelBruteForcer() + widget.show() + sys.exit(app.exec()) diff --git a/README.md b/README.md index e426df5..bccc904 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,42 @@ -# JMD-Umodel-BruteForcer-UI - A GUI application for brute forcing Umodel exports +# JMD Umodel BruteForcer + +## Overview +The JMD Umodel BruteForcer is a GUI application designed to automate the generation and execution of various command-line options for the Unreal Model Viewer (UModel). + +It allows users to brute-force different combinations of switches to extract data from Unreal Engine game files efficiently. + +Generally, this is recommended for "unsupported" games that may be supportable by attempting different game overrides and export options. + +It also acts as a GUI for running UModel in a batch scenario without needing to use combinations of options to brute force. + +## Features +1. **Dynamic Command Generation:** Generates different combinations of switches for UModel based on user-selected options. +2. **Real-time Checkbox Update:** Select All checkboxes for game switches and options with real-time GUI updates. +3. **Exclusive and Combinable Switches:** Supports exclusive and combinable switches for flexible command building. +4. **Output Sorting:** Sorts the commands by length, with the shortest commands coming last. +5. **Duplicate Command Handling:** Ensures no duplicate commands are built. +6. **Default File Extensions:** Sets default file extensions for specific folders if populated. +7. **Batch Output:** Additionally outputs the built commands to a Windows Batch file (`commands.bat`) for later use. + +## WARNING: +Each of the checkbox options adds an additional pass to the brute forcing utility. + +For example, If you choose 5 Permutation options with 1 game override, and have the Animations, Sounds, StaticMesh and Textures folders populated, then the tool will run Umodel 625 times for 1 file per folder. 2 games chosen will double this amount, and so on. + +This is known as Permutations. In this specific case, there are 4 folders and each folder can be combined with any of the 5 options. + +The situation is akin to having 4 slots where each slot can be filled with one of 5 possible choices. + +The principle here is that of the multiplication rule, which states that if you have *n* choices for one task and *m* choices for another task, then there are *n* X *m* choices for both tasks together. + +For this specific scenario, there are 5 choices for the first folder, 5 choices for the second folder, 5 choices for the third folder, and 5 choices for the fourth folder, for **each file** in those folders. + +Therefore, the total number of possible combinations can be calculated as: 5x5x5x5=**625 (PER FILE!)** + +If each folder has 10 files in it matching the extensions searched, that would create **25,000** commands. (6,250 + 6,250 + 6,250 + 6,250) + +## Contributing +Please feel free to open an issue or submit a pull request for any bugs, enhancements, or feature requests. + +## Acknowledgments +Special thanks to Gildor and the Umodel community who made this project possible. \ No newline at end of file