From 070104d9a85d546997e78d93228a9e6282c20d9e Mon Sep 17 00:00:00 2001 From: Gabriel Date: Sun, 17 May 2026 15:05:19 +0200 Subject: [PATCH 1/2] Add pillars of eternity plugin --- games/game_pillarsofeternity.py | 64 +++++++++++++++++++++++++++++++++ 1 file changed, 64 insertions(+) create mode 100644 games/game_pillarsofeternity.py diff --git a/games/game_pillarsofeternity.py b/games/game_pillarsofeternity.py new file mode 100644 index 0000000..5a26800 --- /dev/null +++ b/games/game_pillarsofeternity.py @@ -0,0 +1,64 @@ +import mobase + +from ..basic_features import BasicModDataChecker, GlobPatterns +from ..basic_game import BasicGame + + +class PillarsOfEternityGame(BasicGame): + Name = "Pillars of Eternity Support Plugin" + Author = "TheForgotten69" + Version = "1.0.0" + + GameName = "Pillars of Eternity" + GameShortName = "pillarsofeternity" + GameNexusName = "pillarsofeternity" + GameNexusId = 3005 + GameSteamId = [291650] + GameGogId = 1207658930 + GameBinary = "PillarsOfEternity.exe" + GameDataPath = "" + GameSaveExtension = "savegame" + GameSavesDirectory = r"%USERPROFILE%/Saved Games/Pillars of Eternity" + + def init(self, organizer: mobase.IOrganizer) -> bool: + super().init(organizer) + self._register_feature( + BasicModDataChecker( + GlobPatterns( + valid=[ + "BepInEx", + "PillarsOfEternity_Data", + ], + delete=[ + "*.md", + "icon.png", + "manifest.json", + "fomod", + ], + move={ + "*.dll": "BepInEx/plugins/", + "assetbundles": "PillarsOfEternity_Data/", + # Asset bundle folders (st_ar_*, st_en_*, st_fx_*, etc.) + "st_*": "PillarsOfEternity_Data/assetbundles/", + "data": "PillarsOfEternity_Data/", + "data_expansion1": "PillarsOfEternity_Data/", + "data_expansion2": "PillarsOfEternity_Data/", + "data_expansion3": "PillarsOfEternity_Data/", + "conversations": "PillarsOfEternity_Data/data/", + "portraits": "PillarsOfEternity_Data/data/art/gui/", + # Portrait sub-folders packaged without a portraits/ wrapper + "companions": "PillarsOfEternity_Data/data/art/gui/portraits/", + "npcs": "PillarsOfEternity_Data/data/art/gui/portraits/", + "player": "PillarsOfEternity_Data/data/art/gui/portraits/", + "art": "PillarsOfEternity_Data/data/", + "quests": "PillarsOfEternity_Data/data/", + "spaces": "PillarsOfEternity_Data/data/", + "items": "PillarsOfEternity_Data/data/", + "characters": "PillarsOfEternity_Data/data/", + "abilities": "PillarsOfEternity_Data/data/", + "globaldata": "PillarsOfEternity_Data/data/", + }, + ) + ) + ) + return True From 09970adafe2caace2bd093426a560a35b47f00ad Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Sun, 17 May 2026 20:32:06 +0000 Subject: [PATCH 2/2] [pre-commit.ci] Auto fixes from pre-commit.com hooks. --- games/game_pillarsofeternity.py | 32 ++++++++++++++++---------------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/games/game_pillarsofeternity.py b/games/game_pillarsofeternity.py index 5a26800..481ad92 100644 --- a/games/game_pillarsofeternity.py +++ b/games/game_pillarsofeternity.py @@ -36,27 +36,27 @@ def init(self, organizer: mobase.IOrganizer) -> bool: "fomod", ], move={ - "*.dll": "BepInEx/plugins/", - "assetbundles": "PillarsOfEternity_Data/", + "*.dll": "BepInEx/plugins/", + "assetbundles": "PillarsOfEternity_Data/", # Asset bundle folders (st_ar_*, st_en_*, st_fx_*, etc.) - "st_*": "PillarsOfEternity_Data/assetbundles/", - "data": "PillarsOfEternity_Data/", + "st_*": "PillarsOfEternity_Data/assetbundles/", + "data": "PillarsOfEternity_Data/", "data_expansion1": "PillarsOfEternity_Data/", "data_expansion2": "PillarsOfEternity_Data/", "data_expansion3": "PillarsOfEternity_Data/", - "conversations": "PillarsOfEternity_Data/data/", - "portraits": "PillarsOfEternity_Data/data/art/gui/", + "conversations": "PillarsOfEternity_Data/data/", + "portraits": "PillarsOfEternity_Data/data/art/gui/", # Portrait sub-folders packaged without a portraits/ wrapper - "companions": "PillarsOfEternity_Data/data/art/gui/portraits/", - "npcs": "PillarsOfEternity_Data/data/art/gui/portraits/", - "player": "PillarsOfEternity_Data/data/art/gui/portraits/", - "art": "PillarsOfEternity_Data/data/", - "quests": "PillarsOfEternity_Data/data/", - "spaces": "PillarsOfEternity_Data/data/", - "items": "PillarsOfEternity_Data/data/", - "characters": "PillarsOfEternity_Data/data/", - "abilities": "PillarsOfEternity_Data/data/", - "globaldata": "PillarsOfEternity_Data/data/", + "companions": "PillarsOfEternity_Data/data/art/gui/portraits/", + "npcs": "PillarsOfEternity_Data/data/art/gui/portraits/", + "player": "PillarsOfEternity_Data/data/art/gui/portraits/", + "art": "PillarsOfEternity_Data/data/", + "quests": "PillarsOfEternity_Data/data/", + "spaces": "PillarsOfEternity_Data/data/", + "items": "PillarsOfEternity_Data/data/", + "characters": "PillarsOfEternity_Data/data/", + "abilities": "PillarsOfEternity_Data/data/", + "globaldata": "PillarsOfEternity_Data/data/", }, ) )