Open main menu

UESPWiki β

Oblivion Mod:Python File Format Interface

< Mod / Oblivion: Oblivion Mod


Python File Format Interface
(PyFFI)
Author PyFFI team
Current Version 2.1.10
Links
Download https://github.com/amorilia/pyffi/downloads
Project Website http://pyffi.sourceforge.net/

IntroEdit

First, make sure to download the latest version. After installing PyFFI, when you right-click there is now an "Optimize with PyFFI" option. A number modders have recommended avoiding the creature and character folder, and also files with EGM files (i.e., certain helmets and head meshes.) Bad meshes, generated by PyFFI or by hand, can cause problems, that is why it is important to check meshes after running PyFFI. The process (when done thoroughly) may be very time-consuming, but it has been sped up a bit with the Python 2.6. Why do this? ...for increased FPS and more stability!!!!! The later versions of PyFFI heed the skip list in the optimization INI and skip EGMs by default. The INIs are located in Program Files/PyFFI/Toaster by default. Remember to set the path to your Python folder (usually first level on your local disk) in the default INI.


There are two ways to use PyFFI to optimize. The first method is to right-click on a folder and choose "Optimize with PyFFI," which that modifies the original files. The second method is to move or extract the files to be optimized to the PyFFI "in" folder. The "Run PyFFI" method automatically creates a backup by virtue of placing the optimized files in the "out" folder, preserving the contents of the "in" folder. UPDATE: Now, it is fairly safe to use the right-click method. However, it is safer to optimize mods individually as opposed to right-clicking and optimizing your entire installed Meshes folder.

Notes: 1) The latest versions of PyFFI make the automated to obsolete. They can even hinder PyFFI's functionality because of the size limitation criterion. The skip list and the automatic skipping of .egm files make those extra tools unnecessary. 2) Use the "jobs" setting in the default INI to make PyFFI take advantage of multiple cores. (Whether or not this setting works is yet to be confirmed.)


"Optimize with PyFFI" Steps

  1. Right-click on the folder that needs to be optimized.
  2. Choose 'Optimize with PyFFI'.

"Run PyFFI" Steps

  1. Drop folders with meshes to be PyFFI-optimized in the "in" folder.
Notes: PyFFI preserves the file structure of the "in" folder, so you can PyFFI multiple mods and folders at once.
  1. Right-click on the optimize INI and choose "Run PyFFI"
  2. Wait until PyFFI finishes, then get the PyFFI-optimized meshes from the "out" folder.

A look at PyFFI/utilities/toasterEdit


in
out
default.ini
oblivion_optimize.ini

The Vanilla meshes with leading spaces (to watch out for when you repack your BSA)Edit


meshes\dungeons\caves\exterior\ centrancechighlandsm01.nif
meshes\dungeons\caves\exterior\ centrancegoldcoastsm01.nif
meshes\dungeons\caves\exterior\ centrancegreatforestsm02.nif
meshes\dungeons\caves\exterior\ centrancemtnsnowlg01.nif
meshes\dungeons\caves\exterior\ centrancemtnsnowlg02.nif
meshes\dungeons\caves\exterior\ centrancemtnsnowlg03.nif
meshes\dungeons\caves\exterior\ centrancemtnsnowsm01.nif
meshes\dungeons\caves\exterior\ centrancemtnsnowsm02.nif
meshes\dungeons\caves\exterior\ centrancemtnsnowsm03.nif
meshes\dungeons\caves\exterior\ centrancerockmosssm01.nif
meshes\dungeons\caves\exterior\ centrancerockybeachsm01.nif
meshes\dungeons\caves\exterior\ centrancewestwsm01.nif
meshes\dungeons\caves\exterior\ centrancewestwsm02.nif

Files that PyFFI cannot handleEdit

Add the part in quotes to your skip list (without the quotes).

\meshes\architecture\statue\nightmotherstatuebase.nif - "nightmotherstatuebase"

Optimization with PyFFI for _FAR NIF filesEdit

This is now part of the main optimization step in PyFFI's included oblivion_optimize.bat file since a 2011 update. You don't need to do anything special for _far.nif optimization

Optimize and Repack the Original Meshes BSAEdit

  1. Make sure you have a backup of the original BSA.
  2. Use OBMM's BSA browser utility to extract all of the BSA's contents to the PyFFI "in" folder. (path above)
  3. Right-click on the optimize INI, and choose "Run PyFFI".
  4. Launch OBMM's BSA creator utility.
  5. Add the "in" folder first (because the files need to start with "Meshes" or "DLOD" or "Trees", not the super or subfolders.)
  6. Add the "out" folder, overwriting the unoptimized files fromt the "in" folder.# Click create, browsing to the original BSA to be replaced (which ensure naming accuracy.)
  7. Use the 'Reset BSA timestamps' function in OBMM, or (as a safer option) use a file redator to set the modified date back to 2006.
Note: SetFileDate, linked on Programs & Utilities, also works on Windows 64-bit.
  1. If you have problems with the leading spaces disappearing, download and install the following: PyFFI-Optimized Vanilla Meshes Patch.esp (not needed if using the UOP 3.4.0 or later)
Note: If the leading spaces have been removed through this process and the game is not "told" about the renamed meshes, the game will crash. This patch points to the relevant records to the renamed meshes.
Note: You can use the following command to copy files while preserving leading spaces on the effected Windows OSs. "/e" means assume working with folders, "/y" means auto-overwrite(won't ask).
xcopy /e /y "Path\to\source\directory" "Path\to\destination\directory"
    • The first key step is to repack the BSA without moving or copying the optimized files; otherwise, the leading spaces would be truncated.
    • The other key step, which applies even when using the other optimization method, is to repack the contents of the folder containing the folders of the Meshes BSA, instead of the folder itself or the contents of the Meshes folder.