(View this maximized...it may still look funny depending on your resolution though) Every .nod file has this format - it may change slightly, but for the most part it should remain like this. First is the header, which is pretty short, and is variable length (numbers above the fields are the number of bytes the field uses) 11 4 varies 2 [modname 00] [version] [mapname 00] [number of nodes] modname is the name of the mod, followed by a 00 - currently the name is Ubersoldat version is the version number of the .nod file, in reverse order like in .wps files. Currently 01 00 00 00 mapname is the name of the map (eg, mp_beach) followed by a 00 number of nodes is the number of nodes in the map (der...) Immediately after the header, the node information begins. Each node is formatted like this. 2 4 4 4 2 2 2 2 4 2 [number] [X pos] [Y pos] [Z pos] [flags] [ent 1] [ent 2] [ent 3] [obj flags] [number of links] number is the node number of the current node the 3 pos values are floating-point numbers which just contain the position of the node in world coordinates flags holds the type of node this is and any attributes it has - these are the NODE_* values defined in BotMain.h the 3 ent* values are the entity numbers (sort of like in-game id numbers) of any objects linked to the node, if the 'unreachable' flag is set. The unreachable flag will be cleared once any of the objects associated with these numbers is destroyed. For example, on beach, all the nodes inside the axis base are 'unreachable' for the allies until either the door or the wall is destroyed. So these values would hold the entity numbers of the door and the wall (which happen to be 108 and 100). obj flags holds data about the type of objective, which team it is an objective for, etc - this is exactly like in .wps files, encoded the same way - I didn't change it at all, because it is encoded well, so I just copy the value straight from .wps files. Read the .wps description to understand what info is contained in this number number of links is just the number of links this node contains (ie, the number of nodes it is connected to) Following the node information is all the link information for the node, which is organized like this. 2 4 2 [linked node #] [distance] [flags] linked node # is the number of the node connected to this node by the link (eg, if this node is 0, and connects to node 12, this # would be 12) distance is a floating point value which gives the distance between this node and the linked node flags holds the path flags for the path between this node and the linked node, which tell the bots how to move between these nodes. These are the PATH_* values defined in BotMain.h All the links from a node are listed, and immediately after them, the next node begins. This continues until the end of the file. Note that I do not use any kind of separators anywhere, so it can be 'fun' trying to actually hex-edit the file. So, in short, the format of a .nod file is like this [header][node][link][link](however many links)[node][link](links again...)[node]...etc. And that's pretty much it :P