diff --git a/README.md b/README.md
index 14db470..824bcf0 100644
--- a/README.md
+++ b/README.md
@@ -73,6 +73,10 @@ You can rename `modorganizer-basic_games-xxx` to whatever you want (e.g., `basic
| Test Drive Unlimited | [uwx](https://github.com/uwx) | [game_tdu.py](games/game_tdu.py) | |
| The Witcher: Enhanced Edition - [GOG](https://www.gog.com/game/the_witcher) / [STEAM](https://store.steampowered.com/app/20900/The_Witcher_Enhanced_Edition_Directors_Cut/) | [erri120](https://github.com/erri120) | [game_witcher1.py](games/game_witcher1.py) |
- save game parsing (no preview)
|
| The Witcher 3: Wild Hunt — [GOG](https://www.gog.com/game/the_witcher_3_wild_hunt) / [STEAM](https://store.steampowered.com/app/292030/The_Witcher_3_Wild_Hunt/) | [Holt59](https://github.com/holt59/) | [game_witcher3.py](games/game_witcher3.py) | |
+| Tony Hawk's Pro Skater 3 | [uwx](https://github.com/uwx) | [game_thps3.py](games/game_thps3.py) | |
+| Tony Hawk's Pro Skater 4 | [uwx](https://github.com/uwx) | [game_thps4.py](games/game_thps4.py) | |
+| Tony Hawk's Underground | [uwx](https://github.com/uwx) | [game_thug.py](games/game_thug.py) | |
+| Tony Hawk's Underground 2 | [uwx](https://github.com/uwx) | [game_thug2.py](games/game_thug2.py) | |
| Trackmania United Forever — [STEAM](https://store.steampowered.com/app/7200/Trackmania_United_Forever/) | [uwx](https://github.com/uwx) | [game_tmuf.py](games/game_tmuf.py) | |
| Yu-Gi-Oh! Master Duel — [STEAM](https://store.steampowered.com/app/1449850/) | [The Conceptionist](https://github.com/the-conceptionist) & [uwx](https://github.com/uwx) | [game_masterduel.py](games/game_masterduel.py) | |
| Zeus and Poseidon — [GOG](https://www.gog.com/game/zeus_poseidon) / [STEAM](https://store.steampowered.com/app/566050/Zeus__Poseidon/) | [Holt59](https://github.com/holt59/) | [game_zeusandpoiseidon.py](games/game_zeusandpoiseidon.py) | |
diff --git a/games/game_thps3.py b/games/game_thps3.py
new file mode 100644
index 0000000..80ab9ad
--- /dev/null
+++ b/games/game_thps3.py
@@ -0,0 +1,38 @@
+# -*- encoding: utf-8 -*-
+
+import mobase
+from PyQt6.QtCore import QFileInfo
+
+from ..basic_game import BasicGame
+
+
+class THPS3Game(BasicGame):
+
+ Name = "Tony Hawk's Pro Skater 3 Support Plugin"
+ Author = "uwx"
+ Version = "1.0.0"
+
+ GameName = "Tony Hawk's Pro Skater 3"
+ GameShortName = "thps3"
+ GameBinary = "Skate3.exe"
+ GameDataPath = "Data"
+
+ def executables(self):
+ return [
+ mobase.ExecutableInfo(
+ "Tony Hawk's Pro Skater 3",
+ QFileInfo(self.gameDirectory().absoluteFilePath(self.binaryName())),
+ ),
+ mobase.ExecutableInfo(
+ "Tony Hawk's Pro Skater 3 Setup",
+ QFileInfo(self.gameDirectory().absoluteFilePath("THPS3Setup.exe")),
+ ),
+ mobase.ExecutableInfo(
+ "Tony Hawk's Pro Skater 3 (PARTYMOD)",
+ QFileInfo(self.gameDirectory().absoluteFilePath("THPS3.exe")),
+ ),
+ mobase.ExecutableInfo(
+ "PARTYMOD Configurator",
+ QFileInfo(self.gameDirectory().absoluteFilePath("partyconfig.exe")),
+ ),
+ ]
diff --git a/games/game_thps4.py b/games/game_thps4.py
new file mode 100644
index 0000000..f53f025
--- /dev/null
+++ b/games/game_thps4.py
@@ -0,0 +1,40 @@
+# -*- encoding: utf-8 -*-
+
+import mobase
+from PyQt6.QtCore import QDir, QFileInfo
+
+from ..basic_game import BasicGame
+
+
+class THPS4Game(BasicGame):
+
+ Name = "Tony Hawk's Pro Skater 4 Support Plugin"
+ Author = "uwx"
+ Version = "1.0.0"
+
+ GameName = "Tony Hawk's Pro Skater 4"
+ GameShortName = "thps4"
+ GameBinary = "Skate4.exe"
+ GameDataPath = "Data"
+
+ def executables(self):
+ return [
+ mobase.ExecutableInfo(
+ "Tony Hawk's Pro Skater 4",
+ QFileInfo(self.gameDirectory().absoluteFilePath(self.binaryName())),
+ ),
+ mobase.ExecutableInfo(
+ "Tony Hawk's Pro Skater 4 Setup",
+ QFileInfo(self.gameDirectory().absoluteFilePath("../Start.exe")),
+ ).withWorkingDirectory(
+ QDir(QDir.cleanPath(self.gameDirectory().absoluteFilePath("..")))
+ ),
+ mobase.ExecutableInfo(
+ "Tony Hawk's Pro Skater 4 (PARTYMOD)",
+ QFileInfo(self.gameDirectory().absoluteFilePath("THPS4.exe")),
+ ),
+ mobase.ExecutableInfo(
+ "PARTYMOD Configurator",
+ QFileInfo(self.gameDirectory().absoluteFilePath("partyconfig.exe")),
+ ),
+ ]
diff --git a/games/game_thug.py b/games/game_thug.py
new file mode 100644
index 0000000..cd8e1eb
--- /dev/null
+++ b/games/game_thug.py
@@ -0,0 +1,36 @@
+# -*- encoding: utf-8 -*-
+
+import mobase
+from PyQt6.QtCore import QDir, QFileInfo
+
+from ..basic_game import BasicGame
+
+
+class THPS4Game(BasicGame):
+
+ Name = "Tony Hawk's Underground Support Plugin"
+ Author = "uwx"
+ Version = "1.0.0"
+
+ GameName = "Tony Hawk's Underground"
+ GameShortName = "thug"
+ GameBinary = "THUG.exe"
+ GameDataPath = "Data"
+
+ def executables(self):
+ return [
+ mobase.ExecutableInfo(
+ "Tony Hawk's Underground",
+ QFileInfo(self.gameDirectory().absoluteFilePath(self.binaryName())),
+ ),
+ mobase.ExecutableInfo(
+ "Tony Hawk's Underground Launcher",
+ QFileInfo(self.gameDirectory().absoluteFilePath("../Launcher.exe")),
+ ).withWorkingDirectory(
+ QDir(QDir.cleanPath(self.gameDirectory().absoluteFilePath("..")))
+ ),
+ mobase.ExecutableInfo(
+ "Tony Hawk's Underground (ClownJob'd)",
+ QFileInfo(self.gameDirectory().absoluteFilePath("THUGONE.exe")),
+ ),
+ ]
diff --git a/games/game_thug2.py b/games/game_thug2.py
new file mode 100644
index 0000000..1836722
--- /dev/null
+++ b/games/game_thug2.py
@@ -0,0 +1,54 @@
+# -*- encoding: utf-8 -*-
+
+import os
+
+import mobase
+from PyQt6.QtCore import QDir, QFileInfo
+
+from ..basic_game import BasicGame
+
+
+class THPS4Game(BasicGame):
+
+ Name = "Tony Hawk's Underground 2 Support Plugin"
+ Author = "uwx"
+ Version = "1.0.0"
+
+ GameName = "Tony Hawk's Underground 2"
+ GameShortName = "thug2"
+ GameBinary = "THUG2.exe"
+ GameDataPath = "Data"
+
+ def executables(self):
+ return [
+ mobase.ExecutableInfo(
+ "Tony Hawk's Underground 2",
+ QFileInfo(self.gameDirectory().absoluteFilePath(self.binaryName())),
+ ),
+ mobase.ExecutableInfo(
+ "Tony Hawk's Underground 2 Launcher",
+ QFileInfo(self.gameDirectory().absoluteFilePath("../Launcher.exe")),
+ ).withWorkingDirectory(
+ QDir(QDir.cleanPath(self.gameDirectory().absoluteFilePath("..")))
+ ),
+ mobase.ExecutableInfo(
+ "Tony Hawk's Underground 2 (ClownJob'd)",
+ QFileInfo(self.gameDirectory().absoluteFilePath("THUGTWO.exe")),
+ ),
+ mobase.ExecutableInfo(
+ "THUG Pro Launcher",
+ QFileInfo(
+ QDir(os.getenv("LOCALAPPDATA")).absoluteFilePath(
+ "THUG Pro/THUGProLauncher.exe"
+ )
+ ),
+ ),
+ mobase.ExecutableInfo(
+ "THUG Pro",
+ QFileInfo(
+ QDir(os.getenv("LOCALAPPDATA")).absoluteFilePath(
+ "THUG Pro/THUGPro.exe"
+ )
+ ),
+ ),
+ ]