Converted Content Specification

All content of the game is hidden behind multiple formats and a layer of compression (for more information, read FEZ Content Formats), which makes them very hard to access for modders. In order to work around this, FEZRepacker was created to allow an easy conversion between these proprietary formats and more user-friendly ones. Additionally, Repacker is included as part of HAT mod loader, allowing the game to directly access the content without having to convert it back to its own format, giving us a seamless modding experience.

Note

This specification explains a general approach of content conversion and a structure of converted assets. To get more detailed information about the specific asset format, consult the specific format reference.

File bundles

Some asset types are converted to multiple files - for example, Art Objects are converted into a PNG, OBJ and JSON to store texture, model and properties respectively. Additionally, some of the types use common formats like JSON. In order to allow easy identification of asset type through converted file, as well as grouping of files belonging to the same asset, a concept of file bundles was introduced.

Repacker uses multiple extensions in a file name to identify a file. For instance, a file bellao.fezao.png has a primary extension .png which allows common softwares to easily identify it as an image file, and secondary extension of fezao which allows Repacker to identify it as a part of FEZ's Art Object asset. File bundles are a set of multiple files sharing common name and secondary extension. In the process of deconversion, Repacker bundles them together and converts them into a single content object that can be read by the game.

Asset formats

All formats have been chosen to represent their in-game counterparts as accurately as possible. However, there are some differences, which are specified in details in the specifications of given format.

Here's a list of all 13 asset types handled by FEZ and file types Repacker associates them with:

XNB content type name Main purpose Conversion format
Texture2D Sprites and textures PNG images
AnimatedTexture Animated textures GIF animation
ArtObject 3D models of art objects Custom .fezao file bundle
TrileSet Texture and models of level blocks (triles) Custom .fezts file bundle
SpriteFont Bitmap font Custon .fezfont file bundle
Dictionary[String,Dictionary[String,String]] Language texts .fezdata.json JSON file
Level Level data .fezlvl.json JSON file
MapTree World map data .fezmap.json JSON file
NpcMetadata NPC behaviour information .feznpc.json JSON file
Sky Skybox structure .fezsky.json JSON file
TrackedSong Song information .fezsong.json JSON file
Effect Binary XNA effect file container Binary FNA effect file
SoundEffect WAV sound effect container WAV sound file