View Full Version : fileIn, run,drop folder/ not working

11 November 2011, 08:36 PM
I have 2 mzp related problems:

1. I'm trying to make an mzp file which will always execute a maxscript file when it is unpacked. This should be regardless of whether it is through a drag&drop action, the main menu, or through maxscript. So I thought the fileIn function should do the trick. However, this does not seem to work.

2. If I try to use the run or drop command on a file that is not in the root folder, 3dsmax crashes upon dropping the mzp file into 3dsmax.

Any ideas?

11 November 2011, 07:19 PM
Ok I found the solution to the second issue. It's a matter of supplying exactly the right format it seems:
run directory/ --does not do anything
run "directory/" --crashes
run directory\ --works

I haven't yet found a solution to the first issue though!

11 November 2011, 12:03 AM
Have you tried using execute instead of fileIn?

execute (openFile (getDir #scripts + ""))

I'm not entirely sure I understand point 1. Are you trying to run a script that you have just copied into a max directory from a mzp?

For example:
--Drag mzp into viewport
--Files are copied to 3ds max dir, (eg scripts)
--Files copied into 3ds max dir are then evaluated

Is that right?

11 November 2011, 12:50 AM
PJansen I also fought alot to find out how to do a correct MZP install... and I'm still missing somethings but here's what I'm using for iDevCam:
name "iDevCam"
version 1

treeCopy "iDevCam" to "$scripts"
copy "Icons\\*.*" to "$ui\\Icons"

drop ""

clear temp on MAX exit
clear temp on reset
filein "$scripts\\iDevCam\\iDevCam.mcr"
messageBox "Thank you for buying iDevCam 1" title:"iDevCam"

I hope this helps! Cheers.

11 November 2011, 10:13 AM
What I want to in the is always execute a ms file which contains an installer struct. I will then have a run and drop command that will start a UI if the mzp was dropped into max or run directly. This should start the installer UI.
However, I also want the installer struct to be loaded when using the msZip.unloadPackage command. This will ignore the run and drop commands in the mzp. I want to use that to be able to call the installer without creating the UI.

@TimHawker: using execute in the does not work. It's not in the documentation either actually.
@Kameleon: I need to execute the file from the, not from another maxscript file for the reason mentioned above.

11 November 2011, 01:05 AM
Thank you very much Kameleon!

I've been searching the whole night on a posting explaining how I might get that freaking mzp to work. The posting was super helpful.


11 November 2011, 01:16 AM
No problem, I've also spent hours trying to figure this out and could only gather bits of info from different places till I got it right... kind of, now I want to avoid having to copy it to a system folder because of permissions..... will try that later on :D

11 November 2011, 02:54 PM
I was just messing with this stuff yesterday. They explain it somewhat well in the MXS Help. Just took a little fiddling to get it right. Glad u got it sorted.

11 November 2011, 03:21 PM
Glad u got it sorted.Actually the first issue is not sorted out yet.

11 November 2011, 03:46 PM
In that case, this worked for me. It executed the .ms file on running the

treeCopy turboTools to $scripts
drop $scripts\turboTools\

11 November 2011, 03:51 PM
Sorry, that's not what I'm after. What I want is to execute a script in these three cases:
-The mzp is dropped into max (i.e. the drop command)
-The mzp is run through fileIn/run script (i.e. the run command)
-The mzp is unpacked using msZip.unloadPackage.

The last one is what I need a solution for. The maxscript documentation lists fileIn under the mzp documentation, but I found that this does not work at all in
The reason I want to do this is because I want to split the code for installing the tool and the installer dialog. The installer struct should always be loaded, the dialog only in the first two cases.

I can do this, but I don't really like it so much:
if msZip.unloadPackage mzp &extractDir &dropFile then
fileIn (extractDir + "/installer/")

11 November 2011, 08:59 AM
Surely you want to use msZip.fileInPackage rather than msZip.unloadPackage.

In the documentation, it states that:

This method will unload the package while ignoring any drop or run commands and return the extract_dir and any primary drop file.

This method will unload and run a zip package

11 November 2011, 09:11 AM
Maybe my previous 'requirement' was not entirely complete. When I drop or manually run the mzp, in addition to the "install struct", I also want to run the "install UI" code. That's something I do not want when using msZip.unloadPackage.

CGTalk Moderation
11 November 2011, 09:11 AM
This thread has been automatically closed as it remained inactive for 12 months. If you wish to continue the discussion, please create a new thread in the appropriate forum.