unbundle -p "PATH TO ARCHIVE" -o "OUTPUT PATH" -w *.mesh
-w
Use optional search pattern (e.g. *.ink), if both regex and pattern is defined, pattern will be prioritized.-r
Use optional regex pattern-hash
: Extract single file with a given hash. If a path is supplied, all hashes will be extracted💡 Theunbundle
command also takes folder paths as input (will recursively extract all .archives in a folder), or a list of paths (e.g.unbundle -p "C:\MODDING\archives\basegame_4_gamedata.archive" "C:\MODDING\archives\basegame_1_engine.archive"
💡 You can filter the files to extract from an archive with the-w
(Wildcard) or the-r
(Regex) filters:unbundle -p "PATH TO ARCHIVE" -w *.mesh
e.g. will only extract files with the extension .mesh.
uncook --uext png -p "PATH TO ARCHIVE" -o "OUTPUT PATH" -or "RAW FOLDER OUTPUT PATH"
-w
Use optional search pattern (e.g. *.ink), if both regex and pattern is defined, pattern will be prioritized.-r
Use optional regex pattern-hash
: Extract single file with a given hash. If a path is supplied, all hashes will be extracted--flip
Use boolean option (e.g. 'true' or 'false') : Flip textures vertically (can help with legibility if there's text)--forcebuffers
: Force uncooking to buffers for given extension. e.g. mesh💡 There are a number of files that support uncooking: .mesh, .csv, .xbm, .mlmask and many more.
💡 The in-game textures have .dds fileformat, but wolvenkit.cli supports conversions to the most common image formats (png, jpg, tga). E.g. to convert the game textures to png use:uncook -p "PATH TO ARCHIVE" --uext png
💡 The same options apply here as well: To uncook only textures useuncook -p "PATH TO ARCHIVE" -w *.xbm
and it will only uncook files with the extension .xbm.
import -p "INPUT PATH" -o "OUTPUT PATH" --keep
⚠️ Until a next update will support fully custom textures, the dds need to be more or less exactly like the vanilla textures, i.e. same resolution, same mipmap count, same texture format.
❗ If you use -k you need both .dds/.buffer and .xbm/.mesh filesjudy_body_wet.xbm
ANDjudy_body_wet.dds
If you use the optional -o, then the redengine files need to be located in that folder, while the raw files have to be in the folder specified with -p.
export --uext png -p "PATH TO FILE"
💡 You can specify a folder to export, or multiple filespack -p "FILE 1" "FILE 2"
💡 There are a number of files that support exporting: .mesh, .csv, .xbm, .mlmask and many more.
💡 The in-game textures have .dds fileformat, but wolvenkit.cli supports conversions to the most common image formats (png, jpg, tga). E.g. to convert the game textures to png use:export -p "PATH TO FILE" --uext png
pack -p "MODDED FOLDER PATH"
💡 You can specify multiple folders to pack:pack -p "FOLDER 1" "FOLDER 2"
❗ Do not replace existing vanilla archives
cr2w -s "<PATH TO FILE>"
cr2w -d "<PATH TO JSON>"
tweak -p "<input directory>" -o "<output directory>"
-p
or -o
are not specified.flats
or groups
declared:type
(Vehicle
in the example above) should exist in CP2077 for it to be useful. The compiler will not warn you if the type doesn't exist, but TweakDBext will let you know upon loading it (watch for messages in red4ext\logs\tweakdb.log
). Generally a TweakDB type is the RTTI type without gamedata
or _Record
(a full list can be see here, where the gamedata
is already omitted from the filenames) - as an example, the a Vehicle
's RTTI type is gamedataVehicle_Record
.type
:array:
to create an array, like array:String
in the example. Arrays can be formatted with hyphens & newlines as in the example, or specified with square brackets and commas. The same array could look like this:raRef:CResource
, you'll need to double-up the \
, like this:raRef:CResource
also accepts integers (ones that you might pull from a tweakdb output) in place of the path, like this:Vector3
are declared like this, using a capital XYZ
: