Repository navigation
00 mods_guide
The 00-Mods/ folder is PKCore's highest-priority override system. It is a single location where you can drop texture and sound replacements without touching any base mod files. Multiple mod packages can coexist side by side, each in their own named subfolder.
<Game Root>/PKCore/00-Mods/
This folder sits next to Textures/ and Sound/, not inside them:
PKCore/
├── Textures/ ← Base texture overrides (low priority)
├── Sound/ ← Base sound overrides (low priority)
└── 00-Mods/ ← Mod packages (HIGHEST priority)
├── MyTextureMod/
├── MySoundMod/
└── MyCombinedMod/
All overrides in 00-Mods/ beat everything else:
| Priority | Source | Path |
|---|---|---|
| 1 (Lowest) | Original game files | StreamingAssets/ |
| 2 | Base texture overrides | PKCore/Textures/ |
| 3 | Base sound overrides | PKCore/Sound/ |
| 4 (Highest) | Mod packages | PKCore/00-Mods/<ModName>/ |
When multiple mods provide the same file, the alphabetically last mod folder wins. You can exploit this by prefixing your personal folder with zz_ to ensure it always takes top priority.
Each mod lives in its own named subfolder. Inside that subfolder, assets are organised by type:
PKCore/00-Mods/
└── MyMod/
├── Textures/ ← Custom textures (PNG, DDS, JPG, TGA)
│ ├── texture.png ← Generic (both games)
│ ├── GSD1/
│ │ └── s1_only_texture.png ← Suikoden 1 only
│ └── GSD2/
│ └── s2_only_texture.png ← Suikoden 2 only
└── Sound/ ← Custom sounds (ACB/AWB)
├── BGM2/
│ └── BATTLE1.acb
└── SEHD1/
└── SE1.acb
Note: The
Textures/subfolder usesGSD1/andGSD2/game-specific isolation just like the basePKCore/Textures/folder. TheSound/subfolder mirrors the originalStreamingAssets/Sound/directory structure.
| Format | Extension | Notes |
|---|---|---|
| PNG | .png |
Recommended for transparency |
| DDS | .dds |
Best performance (BC1/BC3/BC7) |
| JPEG |
.jpg, .jpeg
|
No transparency |
| TGA | .tga |
Uncompressed |
If both texture.dds and texture.png exist for the same name, DDS wins.
Match the texture's internal Unity name exactly (case-insensitive):
-
Full name (most reliable):
sactx-0-128x128-Uncompressed-ail_field_00_atlas-0bfc7460.png -
Simplified name (fallback — strips
sactx-prefix and hash automatically):ail_field_00_atlas.png
Enable LogReplaceableTextures = true in config to discover exact texture names at runtime.
Place textures in a GSD1/ or GSD2/ subfolder inside your mod's Textures/ folder to restrict them to one game:
MyMod/Textures/
├── shared_ui.png ← Loads in both games
├── GSD1/
│ └── hero_portrait.png ← Suikoden 1 only
└── GSD2/
└── hero_portrait.png ← Suikoden 2 only
PKCore/00-Mods/
└── BetterPortraits/
└── Textures/
├── GSD1/
│ ├── portrait_tir_00.png
│ └── portrait_gremio_00.png
└── GSD2/
├── portrait_riou_00.png
└── portrait_nanami_00.png
| Format | Notes |
|---|---|
| ACB | CriWare audio cue bank — required |
| AWB | CriWare audio wave bank — required alongside ACB for streaming audio |
Mirror the original StreamingAssets/Sound/ structure exactly inside your mod's Sound/ folder:
MyMod/Sound/
├── BGM2/
│ ├── BATTLE1.acb
│ └── BATTLE1.awb
└── SEHD1/
└── SE1.acb
To find the correct subfolder names, browse <Game Root>/<GameName>_Data/StreamingAssets/Sound/ in Explorer.
PKCore/00-Mods/
└── CustomBGM/
└── Sound/
└── BGM2/
├── BATTLE1.acb
└── BATTLE1.awb
When the game loads BGM2/BATTLE1.acb, PKCore automatically redirects to the mod's version.
A single mod folder can contain both Textures/ and Sound/ subfolders:
PKCore/00-Mods/
└── TotalConversionMod/
├── Textures/
│ ├── GSD1/
│ │ └── ...
│ └── GSD2/
│ └── ...
└── Sound/
├── BGM2/
│ └── ...
└── SEHD1/
└── ...
All mod subfolders inside 00-Mods/ are loaded simultaneously. If two mods supply the same file, the alphabetically last folder by name wins:
PKCore/00-Mods/
├── AAA_BaseModPack/ ← Loaded first (lower priority)
│ └── Textures/
│ └── window_main.png
└── ZZZ_MyPersonalTweaks/ ← Loaded last (WINS)
└── Textures/
└── window_main.png ← This version is used
Tip: Name your personal override folder with a zz_ prefix to always have it win.
- Create a folder under
PKCore/00-Mods/, e.g.MyMod/ - Create
MyMod/Textures/(and optionallyGSD1//GSD2/subfolders) - Drop your
.png/.ddsfiles in with the correct names - Launch the game — no cache clearing needed (manifest auto-rebuilds)
- Create a folder under
PKCore/00-Mods/, e.g.MySoundMod/ - Create
MySoundMod/Sound/<SubfolderMatchingGame>/ - Drop your
.acb(and.awbif needed) files in - Launch the game — sound redirection is active immediately
| Symptom | Likely Cause | Fix |
|---|---|---|
| Texture not replacing | Wrong filename or folder | Enable LogReplaceableTextures = true and check log |
| Texture loads in wrong game | Missing GSD1//GSD2/ subfolder |
Move file into appropriate game subfolder |
| Sound not replacing | Path mismatch vs StreamingAssets/Sound | Compare your mod path against StreamingAssets/Sound/ layout |
| Wrong mod winning | Alphabetical order | Rename your folder to start with zz_
|
| Stale textures after adding files | Manifest cache | Delete PKCore/Cache/texture_manifest.xml and restart |
- Custom Textures Guide — Full texture system documentation
- Caching Mechanism — How the texture manifest cache works
- Configuration Guide — All config options