- Search modify compare extract insert replace armour spells microtransactions in any way.
- Many known mods (.aoc .otc .epk .pet .atlas .env ...) or create yours.
- Batch process files. Create automods (.txt files with basic filters and commands) to apply all your mods in sequence (see two examples below).
- Restrict and exclude filters to modify only some files.
- Resize textures. Textures (.DDS) are decompressed when extracted, ready to feed a DDS optimizer (DDSOpt, ...) to improve both performance and quality.
- Automatic backup. Defragment. Works on all PoE versions, does not depend on Grinding Gear Games updates : file search and file mods rely on Python.re regular expressions
- Any OS. Install Python 3. Open the command line and run
pip3 install brotli
. Click__init__.py
to launch app.
Automod example : Templar Tabula Rasa one-click model change for a microtransaction.
Create a .txt file with the following commands, put it in the automods folder and it will show up in the program.
name "Change TabulaRasa model"
restriction "BodyArmours.*TabulaRasa/BodyTabulaRasaStrInt.sm$"
replacewith "BodyArmours/Microtransactions/DeicideArmour/DeicideArmourStrInt.sm$"
Another automod : improved Advanced PoeSmoother, does not depend on GGG updates.
- Narrow down the search results to your spell thanks to the include/exclude filters.
- Select the "Mods By Extension" automod.
- Check the .aoc harder, .epk and .pet checkboxes
- Check "Use your restrict/exclude filter as well"
- Click Modify
- Select the "Mods by extension" automod
- Check almost everything (See pic above)
- Click Modify
- Click "Defragment" and then "Defragment now"
- Copy the defragmented Content.ggpk.defrag over your game Content.ggpk
- Close the app or click the Scan button
- In Path of Exile's production_Config.ini put texture_quality=10
- Create a new file in the mods folder named trl_0.py
def execute(filename, backupfiledata, modifyggpk):
filedata, encoding, bom = modifyggpk.stringcleanup(backupfiledata, "UTF-16-LE")
filedatamod="0"
return filedatamod, encoding, bom
filedata
is the content of one matching file as a string.
filedatamod
is the content of the file written back to the Content.ggpk.
This mod is replacing the content of the whole file with a 0.
- Create a new file in the automods folder named trails.txt
name ".trl modification test"
restriction "\.trl$"
execute "trl_0"
- Create a new file in the mods folder named aoc_nosound.py
import re
def execute(filename, backupfiledata, modifyggpk):
filedata, encoding, bom = modifyggpk.stringcleanup(backupfiledata, "UTF-16-LE")
# -- modify filedata string here --
filedatamod=re.sub(r'SoundEvents[\t\r\n ]*\{.*?\}[\t\r ]*(\n|$)', r'SoundEvents\r\n{\r\n}\r\n', filedatamod, flags=re.DOTALL)
# ...
# -- give back filedatamod string --
return filedatamod, encoding, bom
This mod clears everything between the SoundEvents brackets, if any. See Python.re documentation.
- Create a new file in the automods folder named removesounds.txt
name "remove sounds from aoc"
restriction "\.aoc$"
execute "aoc_nosound"
Each .txt file put in the automods folder will be shown in the application. All commands are executed in sequence.
- name "xyz" will show the xyz automod in the app
- title "first checkbox" will create a checkbox to apply (or not) everything following, up to the next title (0 or more)
- one or more of these filters :
- restriction "Python.re regular expression" files matching these filters will be modified
- exclude "Python.re regexp" files matching these filters will not be modified
- one of these commands :
- execute "mod_filename_noext" executes mod_filename_noext.py that should exist in the mods folder
- replacewith "Python.re regexp" replaces files with another one from the game, there should be only one match to this replacewith regexp.
- replacewithasset "filename.ext" replaces files with the file filename.ext in the assets folder.
- restore "Python.re regexp" restores the original files matching Python.re regexp
- extract "Python.re regexp" extracts original matching files to the extracted folder
- insert "Python.re regexp" inserts matching files of the extracted folder in the game
Repeat (3. 4.) if needed. Checkboxes (2.) are optional.
You can check your regular expressions in the app's restrict/exclude filter fields, thanks to the Search button. All of these regexp ignore case : Python.re's flags=re.IGNORECASE
is set. Folder separator has to be /
.