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