MAXScript Introduction > General MAXScript Topics >

# Including Scripts Within Scripts

MAXScript provides a compile-time source-file include mechanism, allowing you to break up large scripts into smaller files that can be included at nearly any point in a script. You can use the include <file> construct at any point in your code to effectively insert the contents of a file at that point in your code.

The form is:

    include "filename_string"

This is a compile-time construct, therefore the file name specification must be a string literal, and not a variable or an expression.

EXAMPLE
    utility foo "Baz"
    (
    local a, b, c
    include "foo-ui.ms"
    rollout bar "Bar"
    (
    include "bar-rollout.ms"
    )
    include "foo-handlers.ms"
    )

The include <file> construct is effectively replaced in the source code at that point with the contents of the named file.

You can nest included files as deeply as needed; included files can include other files, and so on.

Because include is a compile-time construct, the current MAXScript scope is maintained within the included file. This is opposed to the fileIn() method described in Running Scripts, whose script file content is compiled in a global scope context. For more information, see Scope_of_Variables.

The include <file> can appear at any point a new token is expected, such as a name, literal, or punctuation. This means that you could complete a partial expression with an included file.

FOR EXAMPLE
    include "op1.ms"+ include "op2.ms"
    if include "test2.ms" then print a else print b

You cannot place an include <file> within a token. For example, the following is not valid:

NOT VALID:
    timeval = 2:include "framenum.ms".0