Files
OpenAssetTools/docs/SupportedAssetTypes.md
T
moandJan Laupetin 51770e7ae5 feat: IW3 menu dumping and loading (#909)
* feat: IW3 menu dumping

* fix: IW3 menu dumper preserve menu ownerdraw flag masks

* fix: IW3 menu dumper preserve numeric script arguments

Emit numeric tokens without quotes so the linker keeps colour arguments separate.

Before: `"0.1" "0.1" "0.12" "0.5"` becomes `"0.10.10.120.5"`
After: `0.1 0.1 0.12 0.5`

This fixes `mouseExit` colour commands failing to clear menu hover borders.

* fix: IW3 menu dumper preserve empty item text

Keep explicit empty text distinct from null text when dumping menu items.

This fixes CD-key values overflowing their input boxes.

* test: cover IW3 menu dumper material case

* test: cover IW3 menu list path precedence

* chore: clang format

* fix: reverse order of union to avoid edge case bug in zcg

* feat: IW3 menu loading

* fix: validate menu expression name table

* chore: explain numeric token quoting in comment

* refactor: simplify menu dump fallback path

* chore: add more dynamic window flags

* refactor: reuse IW3 menu window flag constants

* refactor: use explicit menu item feature lookup

* refactor: represent menu item text as optional

* refactor: clarify shared IW3 and IW4 menu constants

IW4 only extends the type enum so they can be shared

* refactor: clarify IW3 menu zone state naming

* fix: log IW3 menu conversion failures

* refactor: align IW3 menu list loader with IW4

* refactor: align IW3 menu dumpers with IW4

* refactor: align IW3 menu converter with IW4

* chore: use default enum numeration for operationEnum

* chore: small optimization on edit field capability initialization

* fix: iw3 menu optimizations for rect not considering relative position to parent

* chore: align iw3 menu converting closer to iw4

* chore: align iw3 menu dumping closer to iw4

* fix: not dumping menu flags properties correctly

* chore: adjust iw3 expression dumping to work similar to iw4

* chore: adjust iw3 expression converting to work similar to iw4

* chore: use unordered_map for MenuExpressionMatchers

---------

Co-authored-by: Jan Laupetin <[email protected]>
2026-08-31 00:04:01 +02:00

42 KiB

Supported Asset Types

All asset types are supported to be loaded from other fastfiles in memory. The following section specify which assets are supported to be dumped to disk (using Unlinker) and loaded from disk ( using Linker):

  • = Currently unsupported
  • = Supported
  • ⁉️ = Partial support

IW3 (Call of Duty 4: Modern Warfare)

Asset Type Dumping Support Loading Support Notes
PhysPreset
XAnimParts
XModel Model data can be exported to XMODEL_EXPORT/XMODEL_BIN, OBJ, GLB/GLTF.
Material
MaterialTechniqueSet For shaders: only dumps/loads shader bytecode.
GfxImage
snd_alias_list_t
SndCurve
LoadedSound
clipMap_t
ComWorld
GameWorldSp
GameWorldMp
MapEnts
GfxWorld
GfxLightDef
Font_s
MenuList The output is decompiled. The result will not be the same as the input.
menuDef_t See menulist.
LocalizeEntry
WeaponDef
FxEffectDef
FxImpactTable
RawFile
StringTable

IW4 (Call of Duty: Modern Warfare 2)

Asset Type Dumping Support Loading Support Notes
PhysPreset
PhysCollmap
XAnimParts
XModel Model data can be exported to XMODEL_EXPORT/XMODEL_BIN, OBJ, GLB/GLTF.
Material
MaterialPixelShader Only dumps/loads shader bytecode.
MaterialVertexShader Only dumps/loads shader bytecode.
MaterialVertexDeclaration
MaterialTechniqueSet
GfxImage A few special image encodings are not yet supported.
snd_alias_list_t
SndCurve
LoadedSound
clipMap_t
ComWorld
GameWorldSp
GameWorldMp
MapEnts ⁉️ Entity string can be exported. Binary data currently not.
FxWorld
GfxWorld
GfxLightDef
Font_s
MenuList The output is decompiled. The result will not be the same as the input.
menuDef_t See menulist.
LocalizeEntry
WeaponCompleteDef
FxEffectDef
FxImpactTable
RawFile
StringTable
LeaderboardDef
StructuredDataDefSet The format is custom due to lacking information about original format.
TracerDef
VehicleDef
AddonMapEnts ⁉️ MapEnts String can be exported. Binary data currently not.

IW5 (Call of Duty: Modern Warfare 3)

Asset Type Dumping Support Loading Support Notes
PhysPreset
PhysCollmap
XAnimParts
XModelSurfs
XModel Model data can be exported to XMODEL_EXPORT/XMODEL_BIN, OBJ, GLB/GLTF.
Material
MaterialPixelShader
MaterialVertexShader
MaterialVertexDeclaration
MaterialTechniqueSet
GfxImage A few special image encodings are not yet supported.
snd_alias_list_t
SndCurve
LoadedSound
clipMap_t
ComWorld
GlassWorld
PathData
VehicleTrack
MapEnts ⁉️ Entity string can be exported. Binary data currently not.
FxWorld
GfxWorld
GfxLightDef
Font_s
MenuList The output is decompiled. The result will not be the same as the input.
menuDef_t See menulist.
LocalizeEntry
WeaponAttachment
WeaponCompleteDef
FxEffectDef
FxImpactTable
SurfaceFxTable
RawFile
ScriptFile ⁉️ ⁉️ Can only be dumped/loaded as binary. Editing is possible with GSC-Tool.
StringTable
LeaderboardDef
StructuredDataDefSet
TracerDef
VehicleDef
AddonMapEnts ⁉️ MapEnts String can be exported. Binary data currently not.

QOS (007: Quantum of Solace)

Asset Type Dumping Support Loading Support Notes
PhysPreset
PhysConstraints
DestructibleDef
XAnimParts
XModel Model data can be exported to XMODEL_EXPORT/XMODEL_BIN, OBJ, GLB/GLTF.
Material
MaterialTechniqueSet
GfxImage
snd_alias_list_t
SndCurve
clipMap_t
ComWorld
GameWorldSp
GameWorldMp
MapEnts
GfxWorld
GfxLightDef
Font_s
MenuList
menuDef_t
LocalizeEntry
WeaponDef
SndDriverGlobals
FxEffectDef
FxImpactTable
RawFile
StringTable
XmlTree
SceneAnimation
Cutscene
CustomCamera

T4 (Call of Duty: World at War)

Asset Type Dumping Support Loading Support Notes
PhysPreset
PhysConstraints
DestructibleDef
XAnimParts
XModel Model data can be exported to XMODEL_EXPORT/XMODEL_BIN, OBJ, GLB/GLTF.
Material
MaterialTechniqueSet
GfxImage A few special image encodings are not yet supported.
snd_alias_list_t
SndDriverGlobals
LoadedSound
clipMap_t
ComWorld
GameWorldSp
GameWorldMp
MapEnts
GfxWorld
GfxLightDef
Font_s
MenuList
menuDef_t
LocalizeEntry
WeaponDef
FxEffectDef
FxImpactTable
RawFile
StringTable
PackIndex

T5 (Call of Duty: Black Ops)

Asset Type Dumping Support Loading Support Notes
PhysPreset
PhysConstraints
DestructibleDef
XAnimParts
XModel Model data can be exported to XMODEL_EXPORT/XMODEL_BIN, OBJ, GLB/GLTF.
Material
MaterialTechniqueSet For shaders: only dumps/loads shader bytecode.
GfxImage A few special image encodings are not yet supported.
SndBank
SndPatch
clipMap_t
ComWorld
GameWorldSp
GameWorldMp
MapEnts
GfxWorld
GfxLightDef
Font_s
MenuList
menuDef_t
LocalizeEntry
WeaponVariantDef
SndDriverGlobals
FxEffectDef
FxImpactTable
RawFile
StringTable
PackIndex
XGlobals
ddlRoot_t
Glasses
EmblemSet

T6 (Call of Duty: Black Ops II)

Asset Type Dumping Support Loading Support Notes
PhysPreset
PhysConstraints
DestructibleDef
XAnimParts
XModel Model data can be exported to XMODEL_EXPORT/XMODEL_BIN, OBJ, GLB/GLTF.
Material Dumping/Loading is currently possible for materials in their compiled form. There is currently no material pipeline.
MaterialTechniqueSet For shaders: only dumps/loads shader bytecode.
GfxImage A few special image encodings are not yet supported.
SndBank The current implementation is subject to change.
SndPatch
clipMap_t
ComWorld
GameWorldSp
GameWorldMp
MapEnts ⁉️ Entity string can be exported. Binary data currently not.
GfxWorld
GfxLightDef
Font_s
FontIcon
MenuList
menuDef_t
LocalizeEntry
WeaponVariantDef
WeaponAttachment
WeaponAttachmentUnique
WeaponCamo
SndDriverGlobals
FxEffectDef
FxImpactTable
RawFile
StringTable
LeaderboardDef
XGlobals
ddlRoot_t
Glasses
EmblemSet
ScriptParseTree ⁉️ ⁉️ Can only be dumped/loaded as binary. Editing is possible with GSC-Tool. Plutonium supports loading source files however.
KeyValuePairs Is dumped/loaded as part of the .zone file.
VehicleDef
MemoryBlock
AddonMapEnts ⁉️ MapEnts String can be exported. Binary data currently not.
TracerDef
SkinnedVertsDef
Qdb ⁉️ ⁉️ Dumping/Loading is implemented as rawfiles. Their use is currently unknown.
Slug ⁉️ ⁉️ Dumping/Loading is implemented as rawfiles. Their use is currently unknown.
FootstepTableDef
FootstepFXTableDef
ZBarrierDef