A 3ds Max / gmax plugin for importing and exporting models in BioWare's Odyssey MDL/MDX format — the model format used by Star Wars: Knights of the Old Republic and KOTOR II: The Sith Lords.
Originally created by bead-v, extended from NWmax by Joco (the equivalent plugin for Neverwinter Nights).
- Import and export MDL/MDX model files for KOTOR 1 and 2
- Full support for all Odyssey node types:
- Trimesh, skin (skeletal), danglymesh (cloth/hair physics), AABB walkmesh
- Particle emitters (Fountain, Single, Explosion, Lightning)
- Point lights, dummy/pivot nodes, reference (model-in-model) nodes
- Animation import and export, including per-property keyframe data
- Pre-export sanity checker to catch common errors before they crash the game
- Texture utilities: TGA copy and TGA→DDS batch conversion
- Additional tools: animation editor, key reduction, normal adjustment, minimap maker, scale wizard, room linker, and more
- Works with both gmax (free) and 3ds Max
- gmax (free, any version) or 3ds Max
KOTORMax writes ASCII MDL files to disk. mdlops (or similar) is a separate tool you run to compile them to binary. The two are not bundled together.
- Copy the
KOTORMaxfolder into your 3ds Maxscriptsfolder. - Create a
startupfolder insidescriptsif it does not exist, then copyautokotormax.msinto it. - If NWmax is installed, remove
autonwmax.msfrom thestartupfolder (you cannot run both simultaneously).
KOTORMax and NWmax use the same globals and will break each other if loaded at the same time. You can swap
autokotormax.ms/autonwmax.msin thestartupfolder to switch between them between sessions.
- Follow steps 1–2 above (the script folder structure is the same).
- Copy
kotormax.exeinto your gmax root directory. Usekotormax.exeto launch gmax from now on — it is required for file export to work.
kotormax.exeis a helper process (based on NWmax Snoop v0.7) that bridges a gmax limitation: gmax's MaxScript cannot write files to disk directly, so the helper reads the output from the MaxScript Listener and writes it. It is not needed when using 3ds Max.
- Detonate controller crash — KOTORMax previously exported the
detonateproperty and its animation controller for every emitter, regardless of type. The KOTOR engine only allocates memory for this controller onExplosion-type emitters. On non-Explosion emitters (especially the commonFountaintype) this produced invalid binary MDL files that caused access violations. This was silent on Windows due to heap layout luck but consistently crashed on Linux (Wine/Proton). Fixed:detonateis now only exported forExplosionemitters.
- bead-v — Original KOTORMax author
- Joco — NWmax (the NWN predecessor this is based on)
- DarthParametric — fix for PWK import error (spurious third argument)
- JCarter426 — fix for model/walkmesh import in 3ds Max 2017+