There are some global values you need to consider. Some values can be set with more than one name but only the primary one will be taken if both are present.
Optional parameters have a default value.
WARNING: All values EXCEPT the GMLS tag will be ommitted if you do not use the GMLParsers.
See below for the Power of the GMLS Tag.
| Primary | Secondary | Default | Description |
| GMLS | --- | [empty array] | Array with the paths and names of additional GML files to load. You can use this tag in the additional files, too, to load even more additional files. It will include the directory of the file so you don't need to use the FOLDER tag everywhere. Also, backloading will be prevented. See below. |
| STARTROOM | STARTLOCATION | --- | The intern name of the startup location which is displayed when the page is loaded. |
| SCALE | SCALEFACTOR | 1.0 | The global scale factor which will be applied to all rooms and items. Actually, the scale factor of the last loaded file will be taken, if there are more than one. |
| ROOMS | LOCATIONS | [empty array] | Array containing all rooms with their values. See [ROOMS](GML_ROOMS). |
| ITEMS | --- | [empty array] | Array containing all items with their values. See [ITEMS](GML_ITEMS). |
| SOUNDS | --- | [empty array] | Array containing all sound-files. See [SOUNDS](GML_SOUNDS). |
| PANELS | --- | [empty array] | Array containing all panels. A panel is a text box with several buttons to choose from. See [PANELS](GML_PANELS). |
Next: The SOUNDS structure
As of version 0.7.0, each GML structure has its own parser.
The parser for the globals is GMLParser_GLOBAL.
Add the parser to your project with:
GMLParser.addParser("GLOBAL",new GMLParser_GLOBAL());
Get the parser for getting values:
var globals = GMLParser.getParser("GLOBAL");
These are the values and how to get them in the parser:
| GML Name | Parser value/function (globals.X) |
| INTERN | getIntern() |
| STARTROOM / STARTLOCATION | startRoomIntern |
| *** | actualRoomIntern |
| SCALEFACTOR / SCALE | scaleFactor |
*** actualRoomIntern is the intern name of the actual displayed room and will be equal to startRoomIntern at startup if there is no other room given in the url.
I put the GMLS tag algorithm outside of the GIML-parsers (the ones with the tags in it), into the root structure, so that you have it even if you use nothing but the parser-structure and your own parsers and tags. That is because the GMLS-Tag is very powerful: You can build complete databases with dependencies (but no search/SELECT right now) like in SQL or such, without using one line of additional code in your web project.
E.g. You have a Users-table and a Notes-table. Each note was created by an user, so the Notes-table depends on (or uses) the Users-table. All you have to do now is to add "GMLS": ["usertable.gml"] into your Notes-table-file. You could also put all your tables into the same file but I do not recommend that. What I personally did in another project, is to put the dependencies of each table into another file called combo_mytable.gml. The project reads the combo-files and from there all the tables, including the "given" one. (combo_notes.gml would contain notestable.gml and usertable.gml) In that way you have full control of what tables are loaded in which view. If you put the GMLS directly into the tables, there could be overhead loading or backcalling. Backcalling will be prevented from the GML-Parser. I wrote it here just to mention it.
Next: The SOUNDS structure