KOTORMax is a MAXScript toolset for Autodesk 3ds Max and gmax. It imports and exports ASCII Odyssey MDL source files for Star Wars: Knights of the Old Republic and The Sith Lords.
Originally created by bead-v and extended from NWmax by Joco.
- Import and export KOTOR 1 and KOTOR 2 ASCII MDL source files
- Support for common Odyssey node types, including trimesh, skin, danglymesh, AABB, lightsaber, emitter, light, dummy, reference, and camera nodes
- Animation import and export, including fractional timing and linear or Bezier controller data where supported
- PWK, DWK, WOK, LYT, and VIS workflows
- Pre-export sanity checks for common model errors, with reports written under
KOTORMax/sanity - Texture-copy utilities, including sibling TXI sidecars
- Animation, key, normal, minimap, scaling, room-linking, and mesh utilities
- Support for both gmax and 3ds Max
- gmax or Autodesk 3ds Max
- A separate Odyssey compiler/decompiler, such as MDLOps or MDLEdit, for conversion between ASCII MDL and binary MDL/MDX
KOTORMax does not directly import or export binary MDL/MDX or compiled BWM files.
- Copy the
KOTORMaxfolder into the 3ds Maxscriptsfolder. - Create a
startupfolder insidescriptsif it does not exist, then copyautokotormax.msinto it. - Remove
autonwmax.msfrom thestartupfolder when KOTORMax is enabled. KOTORMax and NWmax share global names and should not be loaded in the same session.
- Follow the same script installation steps.
- Copy
kotormax.exeinto the gmax root directory. - Launch gmax through
kotormax.exewhen file export is required.
The helper process is based on NWmax Snoop v0.7 and transfers Listener output to files because gmax MAXScript cannot write files directly. It is not required by 3ds Max.
- Corrected emitter
detonatehandling so it is exported only forExplosionemitters - Enforced four normalized skin influences per vertex and the 16-bone skin limit
- Preserved fractional animation lengths, events, controller keys, and float-valued fields
- Improved round-trip handling for optional controllers, model and node bounds, vertex colors, scale, lights, and lightsabers
- Expanded KOTOR 1 and KOTOR 2 parser-field coverage with explicit handling or safe rejection for unsupported data
- Improved PWK, DWK, WOK, LYT, VIS, TXI-sidecar, and export-failure handling
- Prevented valid dangly constraint value
255from being changed during export - Restored export progress, rejected compiled binary MDLs before parsing, and made sanity-report creation reliable
- Sampled AnimMesh payloads are not editable and are rejected when safe preservation is unavailable.
- Rotation Bezier controllers are rejected rather than approximated.
- Some precompiled-only skin, vertex-color seam, and compiler-generated data requires regeneration by the external compiler.
- The gmax Listener-transfer helper retains the limitations of its original protocol.
- bead-v — original KOTORMax author
- Joco — NWmax
- DarthParametric — PWK import correction
- JCarter426 — model and walkmesh import correction for newer 3ds Max releases