Links
Comment on page

File Formats

All inclusive list of REDengine file formats
Created by @manavortex Published April 10 2023 Game version: 1.6.1_DLSS
For an exhaustive list, see the W2RC File Format Table.​

.app (Appearance definition)

This file contains a list of appearances with their associated components. To load them, you require a root entity .ent.
Holds a list of components.

.ent (Entity)

Root entity

The entry point for the game to display an NPC or prop. This kind of entity usually doesn't have components by itself, but only points towards the .app file where they are defined.
From ArchiveXL item additions, this kind of file is usually called a root entity.

Mesh entity / Component entity

For player items, an .ent file can serve as a wrapper, splitting components out of the .app file by putting them in their own file.

Components

Not a file type but an internal data structure and part of .ent or .app files. Components are how the game adds anything to the in-game world, from pag3d data over player interaction prompts to explosion sounds.

.inkatlas (Texture mapping)

​

.mesh (3d object)

A 3d object, holding appearances, materials, and rigging.
A mesh can have several submeshes, which can be displayed or hidden via chunkmasks.
​

.mi / .mt / .remt

A material definition for a shader. You can assign those to CMaterialInstance entries in your mesh and then define their qualities by changing their parameters.
For further detes on materials, see here. For an explanation on .mi files, see here.

Relevant properties:

Different per material — see parameters/[2] for a list of properties
e.g. BaseColor, Metalness, NormalStrength or VectorField, FresnelColor, Albedo
​
​

.streaingsector (world data

This file holds world environment information and -properties. Due to its complexity, information is grouped on its sub-page.

.xbm (Texture)

A regular texture file. Can be exported to .png via WolvenKit, edited, and imported back into the game.
If you stick to the game's naming schema, Wolvenkit will auto-detect the right import settings for you.

Normal maps

Can be either blue or yellow (inverted), both exists. For a guide how to make your own, see here.
Cyberpunk normal maps are swizzled (a technique originally employed in DTX-5).
  • The red channel stores the X axis
  • The green channel stores the Y axis
  • The blue channel is empty, since the Z-data will be calculated from red and blue.

Relevant properties:

IsGamma
Override in-game gamma (lighting)? - Set to "false" for normals - Set to "true" for diffuse/albedo and any parts of the UI
​
​

​

W2RC File Format Table

Extension
Description
Fully Parsed
​actionanimdb​
Animation
​
​acousticdata​
Audio
​
​aiarch​
Pathfinding/AI
​
​animgraph​
Animation graph
​
​anims​
Animation data
​
​app​
Mesh appearance configurations
​
​archetypes​
?
​
​areas​
Terrain related
​
​audio_metadata​
?
​
​audiovehcurveset​
?
​
​behavior​
?
​
​bikecurveset​
?
​
​bk2​
Bink video
​
​bnk​
Bink video
​
​camcurveset​
Camera curve preset
​
​cfoliage​
?
​
​charcustpreset​
Character editor preset
​
​cminimap​
Minimap
​
​community​
Quest related
​
​conversations​
Cutscene related
​
​cooked_mlsetup​
See mlsetup
​
​cooked_anims​
See anims
​
​cookedapp​
See app
​
​credits​
Configuration for credits
​
​cubemap​
6-sided cube texture
​
​curveset​
?
​
​devices​
?
​
​dtex​
?
​
​effect​
?
​
​ent​
Entity
​
​env​
Environment definition
​
​envparam​
?
​
​envprobe​
?
​
​es​
?
​
​facialcustom​
?
​
​facialsetup​
?
​
​fb2tl​
?
​
​fnt​
Font
​
​folbrush​
Foliage brush
​
​foldest​
Destructible foliage element
​
​fp​
?
​
​gamedef​
Game main configuration file
​
​garmentlayerparams​
?
​
​genericanimdb​
?
​
​gidata​
?
​
​gradient​
?
​
​hitrepresentation​
?
​
​hp​
Hair profile
​
​ies​
?
​
​inkanim​
UI animation
​
​inkatlas​
UI texture atlas
​
UI character related
​
​inkfontfamily​
UI font
​
UI
​
​inkgamesettings​
UI settings
​
​inkhud​
UI
​
​inklayers​
UI
​
​inkmenu​
UI
​
​inkshapecollection​
UI
​
​inkstyle​
UI
​
​inktypography​
UI
​
​inkwidget​
UI
​
​interaction​
UI
​
​journal​
Quest info
​
​journaldesc​
Quest info
​
​lane_connections​
?
​
​lane_polygons​
?
​
​lane_spots​
?
​
​lights​
?
​
​lipmap​
?
​
​location​
?
​
​locopaths​
?
​
​loot​
?
​
​mappins​
Pins on map
​
​mesh​
Mesh/model
​
​mi​
Instanced external shaders/materials
​
​mlmask​
Masks for multilayer supershader
​
​mlsetup​
Setup file for multilayer supershader
​
​mltemplate​
Template file for multilayer supershader
​
​morphtarget​
Blend shapes/shape keys
​
​mt​
Base shader
​
navmesh
AI navigation meshes
​
​null_areas​
?
​
​opusinfo​
Audio
​
​opuspak​
Audio
​
​particle​
Particles
​
​phys​
Nvidia PhysX related
​
​physicalscene​
Nvidia PhysX related
​
​physmatlib​
Nvidia PhysX related
​
​poimappins​
Point of Interest Map pin
​
​psrep​
?
​
​quest​
Quest
​
​questphase​
Quest progression
​
regionset
?
​
​remt​
Similar to mt, difference is unclear
​
​reslist​
Resource list
​
​rig​
Rig/skeleton for animation
​
​scene​
Cutscene
​
​scenesversions​
Cutscene versioning
​
​smartobject​
?
​
​smartobjects​
?
​
​sp​
Skin profile
​
?
​
​streamingquerydata​
Terrain
​
​streamingsector​
The world in manageable pieces
​
Terrain
​
​streamingworld​
Links all the sectors
​
​terrainsetup​
Terrain
​
​texarray​
Multiple textures
​
​traffic_collisions​
?
​
​traffic_persistent​
?
​
​voicetags​
?
​
​w2mesh​
Leftover mesh file with RED3 extension
​
​w2mi​
Leftover mi file with RED3 extension
​
​workspot​
?
​
​xbm​
Texture
​
​xcube​
Texture
​

Generic Format

<explanation>

Generic FIle Format Table

Extension
Description
​csv​
Standard CSV file
​wem​
Audio file
​

Archive Format

File Structure

Name
Type/Size
Info
Header
​Header​
Custom Data
​Custom Data​
WolvenKit only. See specification of custom data below.
Files
data
Raw file data
File List
​File List​
Name
Type/Size
Info
Magic
char[4]
Constant: "RDAR"
Version
uint32
Currently 12
IndexPosition
uint64
Offset of beginning of file list
IndexSize
uint32
Size of file list
DebugPosition
uint64
Always 0
DebugSize
uint32
Always 0
Filesize
uint64
Size of file (excluding Filesize)
CustomDataLength
uint32
WolvenKit only

Custom Data (WolvenKit)

The following data only applies for archives created with WolvenKit
Name
Type/Size
Info
Magic
char[4]
Constant: "LXRS"
Version
uint32
Currently 1
Size
int32
Size of uncompressed data
ZSize
int32
Size of compressed data
PathCount
int32
Number of custom paths
PathStrings
zstring[PathCount]
Custom file paths

File List

Name
Type/Size
Info
FileTableOffset
uint32
Always 8
FileTableSize
uint32
​
CRC
uint64
Checksum of ???
FileEntryCount
uint32
Number of files
FileSegmentCount
uint32
Number of file segments
ResourceDependencyCount
uint32
Number of resource dependencies
FileRecords
​File Record[FileEntryCount]
FileSegments
​File Segment[FileSegmentCount]
ResourceDependencies
uint64[ResourceDependencyCount]
​

File Record

Name
Type/Size
Info
NameHash64
uint64
FNV1A64 hash of the filename
Timestamp
int64
Windows filetime of file creation
NumInlineBufferSegments
uint32
Number of inline buffers
SegmentsStart
uint32
Index of the first file segment​
SegmentsEnd
uint32
Index of the last file segment​
ResourceDependenciesStart
uint32
Index of the first resource dependency
ResourceDependenciesEnd
uint32
Index of the last resource dependency
SHA1Hash
uint8[20]
SHA1 hash of the file

File Segment

Name
Type/Size
Info
Offset
uint64
Offset of the data
ZSize
uint32
Size of compressed data
Size
uint32
Size of uncompressed data