Groups represent sets of plugins, and are a way to concisely and extensibly load sets of plugins after other sets of plugins.

This structure can be used to hold group definitions. It is a key-value map.



Required. A case-sensitive name that identifies the group.



A CommonMark description of the group, e.g. what sort of plugins it contains. If undefined, the description is an empty string.


string set

The names of groups that this group loads after. Group names are case-sensitive. If undefined, the set is empty. The named groups must be defined when LOOT sorts plugins, but they don’t need to be defined in the same metadata file.

Sorting errors will occur if:

  • A group loads after another group that does not exist.

  • Group loading is cyclic (e.g. A loads after B and B loads after A).

Merging Groups

When a group definition for an already-defined group is encountered, the description field is replaced if the new value is not an empty string, and the after sets of the two definitions are merged.

The default Group

There is one predefined group named default that all plugins belong to by default. It is defined with an empty after set, as no other predefined groups exist for it to load after.

Like any other group, the default group can be redefined to add group names to its after set.


Two group data structures are equal if the values of their name keys are identical.


# Create a group for map marker plugins that loads after the predefined
# 'default' group.
name: 'Map Markers'
description: 'A group for map marker plugins that need to load late.'
  - 'default'
# Extend the predefined 'default' group to load after an 'Unofficial Patches'
# group that is defined elsewhere.
name: 'default'
  - 'Unofficial Patches'