M3 Import plugin

Starcraft 2 Model (.M3) import plugin for 3ds Max

A Starcraft 2 Model (.M3) import plugin designed for 3ds Max 2010.
Currently Imports:
- Geometry
- Bones
- Materials
- Animation

If you use any of the code, please provide credit where it's due.

Install instructions

1. Must have 3ds max installed

2. Extract the script (.ms) into your 3ds max '...\Scripts' directory, optionally you can place the script in your '...\Scripts\Startup\' directory to have it automatically load when you launch 3ds Max.

3. Click on the hammer icon on the default right hand side pane, and click on the MAXScript button. If you didn't have 3ds max automatically load it upon launch, click 'Run Script' from the rollout dialog and locate the script.

4. Select 'M3 - Import' from the Utilities drop down menu. From there, use the UI to locate the M3 you wish to import and so on.

Note: When importing models, .dds maps can be automatically applied to the model but you must first setup a map path in 3ds max. To do this, use the menu 'Customize->Configure User Paths...', click on the 'External Files' tab and add the path. The script will check each path until it finds the correct map.

5. Control the Animation Sequences through 'M3 - Sequences' found in the utilities drop down menu.


Known bugs

  • Model mesh still does not bind to the bones properly for some models (eg. Immortal.m3).
  • 3ds Max can be slow importing some of the larger models if you choose to import animation sequences. This is due to the inherently sluggish nature of maxscript, import animations at your own peril.
  • Some animations are still not animating correctly.
  • Vertex normals at the moment are SLOW to import due to 3ds max being crappy about how to manually set them. For large models it will slow down the import considerably.

Special Thanks

Volcore (http://volcore.limbicsoft.com/): For help with vertice flags and initial architecture of the M3 format

Teal (starcraft.incgamers.com): For UV's and his PHP converter source, helped with geometry importing

Witchsong (http://code.google.com/p/libm3/): Providing a great open source library for documenting the M3 file format and designing the M3->Obj converter. Head to http://code.google.com/p/libm3/ for more M3 file spec details. Helped immensely figuring out the details of the M3 file format.

Sixen (http://www.sc2mapster.com/): An awesome website for hosting SC2 development tools and vast XML documentation.

der_ton (http://www.doom3world.org/): Has done some incredible work with the MD5 format. Alot of his work has been adapted for the M3 file format with great success. Big thanks goes out to him!

ufoZ: One of the original crew to reverse engineer the M2 format and provide a good maxscript importer from which my importer/exporters are based. Huge thanks to his efforts.

You must login to post a comment. Don't have an account? Register to get one!

  • Avatar of Gooberryos Gooberryos Mar 10, 2014 at 03:38 UTC - 0 likes

    what map path do i set up? I guess i am confused on the "Add map path" part. I know how to navigate to it, just not sure what to input when I click "Add" in the "External" tab. Also, when I open a file from Assets/..., say for instance, a siege tank, all settings are selected under "Settings" and FPS is set to 30, yet when I click "Import" I get the usual "textures won't come with", I write down the texture files, click "Yes", then I get error message: "Import failed Unknown property: "position" in undefined. any thoughts? I use 3ds Max 2011 and I am able to import meshes when only "Import Mesh" is selected in "Settings". thanks in advance.


  • Avatar of wxlguitar wxlguitar Oct 08, 2013 at 13:00 UTC - 0 likes

    Try to import m3 file, and there are errors: can't convert bool to float at sc2_objects.ms 804

    on U_Tile set val do delegate.coords.U_Tile = val

  • Avatar of RanchBurner RanchBurner Apr 24, 2012 at 22:52 UTC - 0 likes

    Too bad it doesn't seem to work with Gmax.

  • Avatar of cgw1991 cgw1991 Feb 21, 2012 at 13:18 UTC - 0 likes

    like i ran script selected the m3 import and then no dialog box comes up or nothing

  • Avatar of cgw1991 cgw1991 Feb 21, 2012 at 13:09 UTC - 0 likes

    Cant get this script to work i get this when i try to open stuff:

    43DM F nul nul nul nul nul nul nul nul nul nul nul nul

  • Avatar of alkololl alkololl Jan 14, 2012 at 19:16 UTC - 0 likes

    Can anyone help me with 3dsmax 2010? i want to scale the imported model but it is scaled only for the first/active frame. how can i do it for the whole animation?

  • Avatar of playlessNamer playlessNamer Dec 19, 2010 at 19:05 UTC - 0 likes

    y the download here is not aktuell! got it from an other post/thread here. page 25 of a thread.

    €: here it is: http://www.sc2mapster.com/assets/m3-export-plugin-3ds-max/files/24-m3-plugins-v1-7b/

    Last edited Dec 19, 2010 by playlessNamer
  • Avatar of Losod Losod Sep 22, 2010 at 23:13 UTC - 0 likes

    I love this! But I was wondering if you knew what would be the problem if 3d Max couldn't read the script? I get to the point of importing the M3 file and it says the model is not a valid Starcraft2 model. I realize this is the point where the error occurs, but their is no 'yes' or 'no' option, only 'ok'. Did I load the wrong script or something?

  • Avatar of cartmanbeck cartmanbeck Aug 03, 2010 at 13:15 UTC - 0 likes

    Ok, so I am totally new to all of this, but if someone could help me that would be incredible. All I'd like to do is recolor the Archon model with some reds and purples to make a Dark Archon. I've made the functionality of the Dark Archon in the editor already, but 3ds max just seems to be far above my current expertise. I edited the texture for the cloud around the Archon and recolored it, but now I can't figure out how to import that .dds file back into 3ds max and then apply it to the model. Any help?

  • Avatar of NiNtoxicated01 NiNtoxicated01 May 15, 2010 at 18:53 UTC - 0 likes

    @MrMoonKr Ah thanks, I unknowingly used that function even though it's not backwards compatible. I've been striving for backward compatibility, so I'll include your 'myToUpper' function in the next update with your permission. I can explain it to you, but you're pretty much there already if you can build the bind pose properly.

    In 3ds max to do animations, I sorted the bones by depth and animated the bones of least depth first, going down the chain doing the root bones last. For translation data, you're just moving the bone in the parents coordinate system to where the key specifies.

    Rotations are trickier. I had to use a different approach to get them to work properly. I can't fit a full description here but if you want the details PM me and I'll try to explain. I'm not sure how to do it all in directx, just how to make it work in 3ds max :)


Date created
Mar 31, 2010
Last update
May 06, 2010
Development stage
All Rights Reserved
Recent files