ESL Plugins

About Elder Scrolls Light plugins (ESL).

About ESL Plugins

This article summarises some basic knowledge about ESL Plugins.

The ESL plugin format was added in the Creation Engine’s 64bit upgrade for Fallout 4 and Skyrim Special Edition. It does not work in the 32bit version of the engine that Skyrim LE is running on.

The format was added to allow for dozens, potentially hundreds of new plugins for the official Creation Club, but has proved a godsent for the modding community as well. It circumvents the 256 plugin limit by reducing the size of the plugins.

ESL Form IDs

The Form IDs in ESP and ESM plugins consist of the changeable two-character Index and six permanent characters unique to the record. This creates the 256 plugin limit.

Meanwhile, ESL plugins have a five-character Index: FExxx. The hexadecimal FE is the decimal 254 which means that all ESL plugins load in a single ESP/ESM plugin slot (254).

A total of 4096 ESLs can be loaded at the same time.

Plugin Capacity

The downside of ESLs is that they can store fewer unique Form IDs because they only have three permanent characters as opposed to six in ESPs/ESMs. Every ESL can only store 4096 unique Form IDs of which the first 2048 are reserved by the engine.

Creating an ESL

Even a moderately-sized load order will quickly reach the 256 ESP/ESM limit, especially through small patches and minor tweaks. Using ESLs is unavoidable (and thankfully many mods now come with ESL plugins right out of the gate).

A plugin can be turned into an ESL by adding the ESL flag to it. Specific instructions can be found here.

Plugins without new records

If a plugin (ESP or ESM) does not add any new records (Form IDs), it can always be ESL-flagged. This is typically the case for patches of all kinds and minor tweaks for vanilla or other mods.

Plugins with new records

If a plugin (ESP or ESM) does add new records (Form IDs), they may need to be compacted before ESL-flagging.

Think about the differences in the Form ID format: While an ESP/ESM Form ID can have six character (+Index), an ESL can only have three (+Index). If there are Form IDs in the mod you wish to ESL-ify that extend beyond the final three characters, they have to be renumbered first to make room for the ESL Index.

Remember that a plugin can only be ESL-ified if it has less than 2048 new records.

Notably, not all plugins with new records need compacting. For example, in SkyUI_SE.esp, the new Form IDs only use the final three characters which means the first five characters are already freed up for the ESL Index and no change is required before adding the ESL flag:

SkyUI Forms

Compacting Form IDs

When ESL-ifying a plugin that contains new record, you must compact its Form IDs first. This carries a risk:

You can avoid this by doing the following:

  1. Avoid compacting Form IDs in plugins that are likely a master to many other plugins (i.e., that have many patches).
  2. Compact Form IDs in plugins only when all of their dependent plugins are also present in SSEEdit at the time.

In the latter case, those dependent plugins would be updated automatically.

ESL or ESP-FE

When should you create a full ESL and when is an ESP-FE sufficient?

The difference lies in the fact that a full ESL loads in ESM space. It handles references differently and will always be forced to the top of the load order.

If a given plugin does not contain CELL records with (temporary) references and does not need to load early because of dependencies or to be overwritten by other mods, creating an ESP-FE is sufficient.

Otherwise, create a full ESL.

Last modified October 11, 2024