Fantasy Grounds processes data from the active campaign and all active modules in distinct databases that do not share a common root tree node. Each module has its own tree, which allows for the convenience of not worrying about conflicting data base node IDs. For example, the campaign may contain an npc at a node npc.id-00001, while an active adventure module contains another npc with the same (internal) identifier. The end user sees the NPCs as distinct sheets.

A problem arose from the fact that window lists did not respect this distinction. In top level lists, such as the one displayed when the NPC book on the desktop was clicked, it is convenient to access data from all modules simultaneously. This is not the fact when you have e.g. customized NPC sheets that contain nested window lists.

To continue the earlier example, let us say each NPC has a list of abilities, each with a name field. The NPC in the campaign has the node npc.id-00001.abilities.id-00001.name (of type string) with the value "Strong". The NPC from the module has the node npc.id-00001.abilities.id-00001.name in its own tree, but the module NPC has the ability "Smart". What would happen is that the nested windowlist would aggregate data from all trees, and so both NPCs would end up being "Smart" and "Strong". This issue went unnoticed in the d20 ruleset due to the GM resource books not containing any nested lists.

2.2.0 contains a fix to this, but we couldn't make it straight downward compatible, because different lists with similar definitions need different things. We didn't want to break all story books, NPC lists etc. in custom rulesets people use.

The default functionality from 2.2 onward will be to display only the data in the current tree. To display everything from all modules at the node location, you need to add the <useallmodules /> element to the list definition. This requires the XML file containing the windowclass with the window list to start with the root tag definition containing a "version" attribute with the value "2.2":

Code:
<root version="2.2">
If the attribute is not present, or has the value "2.0", the old functionality will take place (breaking the NPC ability lists as described above).