Skip to main content

Texture Packs

This information should help you along the process of creating and distributing a texture pack properly.


Do not change the resolution of the sky, clouds, or eye textures. Other textures should let you change the size. Using extremely large textures will use more VRAM and will load slower.

The PNG file should have an alpha channel. Some textures use their alpha channels for transparency, or for indicating which parts should have environment mapping applied. It may be useful to look at how the original texture uses the alpha channel first, especially for particle effects.

To make this easier to set up, you can copy the default textures from assets, and then modify those.

For example, you can copy the common folder from data/decompiler_out/jak1/textures to texture_replacements. If you're using the OpenGOAL Launcher and want to replace textures for your active version, you want to use the folder at <your-install-directory>/active/jak1/data/texture_replacements. Then you can modify the png files in texture_replacements/common.

Rebuilding the game with modified textures

Run the decompiler/extractor again to rebuild with modified textures.

If it worked, you will see:

Replacing jak-project/texture_replacements/common/jng-precursor-metal-plain-01-lores.png

as part of the output.


If you want your texture pack to be installable via the Launcher, there are some simple rules you should follow when bundling it up.

  1. Ensure it is a .zip file with a top level texture_replacements folder. This folder should contain all of your texture replacements in the same layout they would be while creating the pack. For example:

  1. If you want your texture pack to have a nice thumbnail in the launcher, you should add a top level cover.png image as shown above.

  2. Lastly, if you want your texture pack to have associated metadata (such as a description and author name) you should add a top level metdata.json file that abides by the following format -

    • If you aren't familiar with JSON schema, here is an example (which may become out of date in terms of newly supported fields)
"name": "Snowy Legacy",
"version": "1.0.0",
"author": "InnocentMiau",
"releaseDate": "2022-09-08",
"supportedGames": ["jak1"],
"description": "Snowy texture pack and snowy weather everywhere.",
"tags": ["overhaul", "themed"]