(This is currently a draft and is subject to being changed.)

The syntax is: <tt>heromesh</tt> <i>&#91;switches]</i> <i>basename</i> <i>&#91;resources...]</i>

Switches are listed below. You can have more than one switch after a minus sign, if in the same argument.

The basename is the puzzle set name, including path if not in the current directory, but without the extension (there are four files, each with a different extension but the same basename).

Resources are relative to the puzzle set base (not the root node of the resource manager). See [.heromeshrc] for a list of the possible resources. These override resources in the .heromeshrc file.

<h2>Switches</h2>
  *  <tt>-c</tt> - Only load the .class file and check for errors. In this case, it will not complain if the .xclass and .level and .solution files do not exist.
  *  <tt>-C</tt> - Dump all compiled class codes to stdout. This is used mainly for testing.
  *  <tt>-e</tt> - Start the level editor, rather than play game.
  *  <tt>-H</tt> - Dump the hash table to stdout. This is used mainly for testing.
  *  <tt>-L</tt> - Meant for use with -c; lists all tokens it reads from the .class file (including macro expansions), rather than trying to parse it afterward. It does not check for any errors other than those in the lexer and macro preprocessor.
  *  <tt>-T</tt> - Undocumented testing mode. This is meant for testing Free Hero Mesh itself
  *  <tt>-x</tt> - Execute SQL statements from stdin. For example, you can use this to make a report of the levels or to convert levels from another file format.