ESLisation

De La Confrérie des Traducteurs

Dans Skyrim Special Edition et Fallout 4, l'ordre de chargement (load order) n'autorise que 256 entrées pour les plugins de type ESP et ESM, ce qui peut très vite être atteint suivant vos ambitions de modding !

L'ordre de chargement des ESL/ESPFE, lui, permet d'atteindre les 4096 plugins. La plupart des moddeurs fournissent leurs mods directement en ESL/ESPFE, mais il peut arriver que ce ne soit pas le cas et que vous deviez le faire vous-même : ce tutoriel vous apprend comment vous y prendre.

Ne convertissez pas vos plugins en cours de partie. Ne faites vos Bashed Patch, EasyNPC, Pandora qu'une fois ce travail terminé.
Sur le site de la Confrérie, le tag ESLisable est apposé sur les mods dont le plugin principal a été testé après conversion, mais qui n'est pas officiellement ESLisé pour diverses raisons (mises à jour, patches dispersés...).
Blason de la Confrérie des Traducteurs Pour échanger sur ce guide, rendez-vous sur son topic d'origine.


Qu'est-ce qu'un ESL ?

Les ESL sont des plugins utilisant l'index (deux premiers caractères) FE de l'ordre de chargement et disposant d'un flag ESL dans leur header (d'où leur nom parfois de plugins flaggés ESL).

  • Les ESL ont pour extension ESL (logique) et sont chargés après les ESM. Ils ne peuvent pas être placés après un ESP.
  • Les ESPFE ont pour extension ESP et se placent exactement comme les ESP normaux.
  • Les ESM peuvent également être flaggés ESL et gardent leur place en tête.

L'objectif sera donc de convertir des ESP en ESPFE, sans changer leur extension, ce qui ne changera rien à leur placement. Un petit exemple avec le plugin ayant apporté le mode Survie à la mise à jour de Skyrim :

On voit clairement le mod index FE:00E qui confirme que les records sont en FE, la plume indique que le flag ESL est bien actif dans le header, l'extension de fichier est en ESL, et pour finir l'étoile indique que c'est un ESL flaggé ESM, d'où son placement très haut.

Qu'est-ce que l'ESLisation ?

Que peut-on ESLiser ? Qu'arrive-t-il concrètement aux plugins lorsqu'ils sont ESLisés ? Il existe plusieurs cas de figure.

Cas n° 0 : Impossible d'ESLiser

Le cas le plus simple : si le plugin dépasse les 4096 FormIDs (records) (gros mods de quêtes ou de donjons par exemple), vous ne pouvez pas l'ESLiser.

Cas n° 1 : ESLisation sans compactage

Ces mods peuvent être ESLisés en priorité : ils ne nécessitent pas de compactage des FormIDs et il n'y a rien d'autre à faire qu'ajouter le flag ESL. Il peut s'agir des plugins vides (signalant au jeu de charger les archives BSA ou les scripts associés) indiqués par une icône d'œil barré dans LOOT et dans MO2 où les plugins eux-mêmes sont barrés, ou de plugins ne contenant que des FormIDs vanilla (essentiellement des ajustements et des patches). L'ESLisation est 100 % sûre avec ces plugins !

Cas n° 2 : ESLisation avec compactage

Il faut garder en tête qu'un objet ajouté par un mod a un identifiant unique, la FormID, qui permet au jeu de l'identifier. Si d'autres mods, comme des patches ou des addons, doivent se référer à cet objet, ils le font via sa FormID. Or, le compactage change la FormID. Il ne faut donc pas compacter un plugin utilisé sur une sauvegarde en cours, ni compacter un plugin sans penser aux éventuels autres plugins qui s'y réfèrent.

Cas n° 2 bis : avec fichiers dépendant des FormIDs

Certains mods comprennent des fichiers extérieurs au plugin qui s'appuient sur les FormIDs : si vous compactez le plugin, ces fichiers ne seront plus reconnus ! Il s'agit essentiellement de ces fichiers :

  • Les facegen (meshes et textures) des PNJs ajoutés par le mod et ne reposant pas sur un template, ce qui causera des dark faces, car leur nom est la FormID du PNJ.
  • Les fichiers audio (FUZ/WAV/XWM et LIP associés) reliés à un topic, car leur nom est formé de l'EDID et de la FormID du dialogue.
  • Les fichiers SEQ, servant à déclencher les dialogues et contenant des références à leurs FormIDs.
  • Certains scripts qui utilisent la fonction GetFormFromFile, qui fait appel à une FormID (ex. AddItemMenu).

Ces fichiers peuvent être renommés et/ou regénérés (voir plus bas).

Cas n° 3 : ESLisation déconseillée

Cela concerne les plugins ajoutant de nouvelles cellules intérieures (CELL). Le problème se situe au niveau des CELL qui sont compactées, puis modifiées par un autre plugin compacté : le jeu est alors incapable de charger les références temporaires et crashe. Bethesda a préféré contourner le problème plutôt que de le résoudre en plaçant certaines nouvelles CELL de certains mods du Creation Club (comme Pêche) dans Update.esm plutôt que dans les ESL... Pour le mod du Creation Club Myrwatch, la communauté a réglé le souci avec ce mod : Myrwatch - Editable Home Cells (Cell Bug Workaround).

Il est donc extrêmement peu recommandé de compacter un plugin ajoutant une CELL susceptible d'être modifiée par un autre mod. Si vous êtes parfaitement sûr·e qu'aucun autre mod/patch n'y touchera, vous pouvez.

Avec quoi convertir ?

Pour les utilisateurs de Vortex, via le panneau des plugins et son filtre Could be light, vous pouvez appliquer rapidement le flag ESL dans le header de vos plugins, mais seulement ceux qui n'ont pas besoin de compactage (voir plus bas).

ESLifier

ESLifier est la solution la plus moderne et la plus flexible, gérant le renommage de tous les fichiers contenant des FormID (facegens, audios, fichiers INI de SPID, etc.) avec une interface dédiée et intuitive.

  • ⭐Intégration à Vortex et Mod Organizer, application suivie, mise à jour et régulièrement améliorée.
  • ✅ Interface intuitive.
  • ✅ Gestion native des records de quest (SEQ), landscape, cell, headparts (facegens) et dialogs (audios).
  • ✅ Gestion native des scripts, PEX et PSC.
  • ✅ Gestion native de nombreux frameworks.
  • ✅ Gestion des archives Bethesda.
  • ✅ Dossier de sortie personnalisable permettant un contrôle clair.
  • ✅ Possibilité de liste noire (pour les mods utilisant une DLL contenant des FormIDs).
  • ✅ Versionnalisation, facilitant les mises à jour de vos mods.
  • ✅ Possibilité de reconstruire ses ESL après une mise à jour de mod.
  • ⚠️ Pas encore d'ESLisation des WRLD (worldspace).
  • ⚠️ Pas de gestion des mods avec DLL.
  • 🚫 Indisponible pour Fallout 4

xEdit

xEdit est un outil de modding très versatile, et il est nécessaire aux joueurs de Fallout 4 puisqu'ESLifier n'y est pas encore disponible. xEdit ne permet pas de renommer les fichiers externes sans l'installation d'un script supplémentaire, et ce ne sera pas aussi complet qu'avec ESLifier (voir plus bas le cas n° 2 bis).

  • ✅ Intégration facile à Vortex et Mod Organizer.
  • ✅ ESLisation simple et rapide.
  • ✅ Fonctionne parfaitement pour Skyrim et Fallout 4.
  • ⚠️ Requiert un script supplémentaire pour les audios et facegens de Skyrim.
  • ⚠️ Pas de gestion des SEQ, INI et des scripts.
  • ⚠️ Pas de gestion des archives Bethesda.
  • ⚠️ Pas de gestion des mods avec DLL.
  • ⚠️ Pas de versionnalisation.

Convertir avec ESLifier

Le bouton dans MO2

ESLifier ne se lance pas comme une application via Mod Organizer 2. Vous pouvez soit le lancer et le configurer indépendamment, auquel cas il scannera votre dossier mods, soit installer son plugin qui ajoute un nouveau bouton dans l'interface de MO2.

Le répertoire où installer le plugin pour les utilisateurs de MO2

Installation

Téléchargez manuellement l'application et le plugin MO2. L'application doit être installée hors de Program Files, par exemple dans votre dossier dédié aux outils de modding. Le plugin s'installe dans son dossier plugins : ..\MO2\plugins\ESLifier MO2 Integration.

Windows peut bloquer l'application à chaque premier lancement après une mise à jour. Lancez ESLifier.exe une fois hors de votre gestionnaire ou ajoutez-le aux exclusions du pare-feu de Windows.

Options

Lancez l'application via son bouton MO2, puis allez directement dans l'onglet Settings. La plupart des options ci-dessous demandent des répertoires qui se trouvent dans votre dossier Mod Organizer 2.

  • Enabled MO2 Mods : laissez activé.
  • MO2 Mod's Folder Path : votre dossier mods.
  • Output Folder Path : votre dossier mods (pour que le dossier créé soit cochable comme un mod).
  • Output Folder Name : le nom du dossier de sortie, par exemple ESLifier Output.
  • Overwrite Path : votre dossier overwrite.
  • Plugins.txt Path et Modlist.txt Path : les fichiers du même nom situés dans votre profil actuel (cliquez sur l'icône de dossier > Ouvrir le dossier du profil).
  • Allow Form IDs below 0x000800 et Update plugin headers to 1.71 : laissez activés.
  • Show ESM Plugins : laissez activé, l'eslisation des ESM n'est plus sensé poser le problème.
  • Les options de CELL : laissez tel quel.
  • Hide plugins with new WRLD (worldspace) records : les WRLD n'étant pas actuellement pleinement supportés, je vous recommande de laisser l'option activée pour les cacher.
  • Show plugins that are in SKSE DLLs : ESLiser un mod avec un DLL SKSE peut ne pas poser de problèmes s'il est bien fait, ou faire crasher le jeu sans recompilation (exemple : AddItemMenu). Vous pouvez les laisser et lancer votre jeu à chaque plugin ayant cet avertissement après ESLisation.

Utilisation

Utilisez sur le bouton ESLifier à côté de vos avertissement MO2, puis Start ESLifier. Dans la nouvelle fenêtre, cliquez sur Scan Mod Files et attendez la fin du scan.

Dans le panneau de gauche se trouvent les plugins sans compactage requis, où il manque seulement le flag ESL : terminer l'ESLisation de ces plugins ne causera jamais de problème.

Dans le panneau de droite se trouvent les plugins demandant une ESLisation avec compactage. Priorisez les mods sans avertissement et ne le faites surtout pas en cours de partie car les FormIDs des plugins vont changer, différant de ceux enregistrés dans vos sauvegardes.

L'option Scan and Rebuild ESLifier's Output vous permettra de reconstruire votre dossier de sortie, permettant de ré-ESLiser les mods mis à jour sans rien casser.

Convertir avec xEdit

Analyse

Lancez xEdit comme programme via MO2, chargez tous vos plugins, faites un clic droit dans la colonne de gauche et choisissez Apply Script. Dans le menu déroulant, choisissez Find plugins which can be converted to ESL puis cliquez sur OK. Le programme va alors scanner tous les plugins chargés et sortir dans l'onglet Messages une liste des plugins pouvant être convertis.

Vous aurez alors plusieurs types de message possibles sous le nom des plugins, correspondant aux cas de figure expliqués plus haut.

Cas n° 0 : Impossible de compacter

Si vous faites Clic droit > Compact FormdIDs for ESL et que vous avez le message suivant, le compactage n'est pas possible : The file contains too many new records for this operation.

Cas n° 1 : ESLisation sans compactage

  • Avec le script : Can be turned into ESL by adding ESL flag in TES4 header.
  • Clic droit > Compact FormdIDs for ESL : Nothing to do.

Cas n° 2 : ESLisation avec compactage

  • Avec le script : Can be turned into ESL by compacting FormIDs first, then adding ESL flag in TES4 header.
  • Clic droit > Compact FormdIDs for ESL : This operation will modify the FormID of x record(s). Record(s) with the following signature(s) are affected: (...) WARNING: This will break existing save games that contain these FormID(s) and any module which uses "X" as master and references them. Are you sure you wish to continue?

Si vous souhaitez compacter un plugin, chargez en même temps tous les autres plugins qui en dépendent (qui l'ont comme master) : le changement des FormIDs se propagera alors à tous les plugins concernés.

Au cas où vous installeriez plus tard un autre plugin qui dépend de ce plugin, il faudra le compacter en rechargeant la version non compactée du master !

Cas n° 2 bis : avec fichiers dépendant des FormIDs

Il existe des solutions assez simples :

  1. Utiliser un script xEdit, ESPFE Follower - Eslify facegen and voices, pour compacter, qui se chargera de renommer les fichiers Facegen et les fichiers audio ! Malgré son nom, ce n'est pas réservé aux compagnons :)
  2. Regénérer le fichier SEQ en faisant un clic droit sur le plugin > Other > Create SEQ File.

Pour les scripts, c'est plus compliqué car il faut les recompiler (si la source n'est pas fournie, c'est compromis).

Cas n° 3 : ESLisation déconseillée

Warning: Plugin has new CELL(s) which won't work when turned into ESL and overridden by other mods due to the game bug.

Cet avertissement concerne les plugins ajoutant de nouvelles cellules intérieures (CELL). Si vous avez un doute sur vos plugins actuels, vous pouvez scanner votre ordre de chargement pour vérifier. Téléchargez ce script et placez le dossier contenu dans l'archive dans le dossier Edit Scripts de xEdit.

  • Lancez xEdit et chargez TOUS vos plugins.
  • Faites CTRL+A pour sélectionner tous vos plugins dans la fenêtre de gauche, cliquez n'importe où dans la fenêtre et choisissez Apply Script.
  • Sélectionnez Check for ESL CELL Bug et laissez-le bosser.
  • Si vous n'avez aucun avertissement en fin de procédure, c'est que vous n'avez pas le bug. Sinon, remplacez le(s) plugin(s) qui sont touchés par le bug par leur version non ESLisée.

Utilisation

  • Ouvrez xEdit.
  • Chargez le plugin que vous souhaitez convertir.
  • Une fois que le chargement est terminé, faites un clic droit sur le plugin et sélectionnez Compact FormIDs for ESL.
    • Si vous avez le message Nothing to do, c'est le cas n° 1.
    • Si vous avez un message indiquant le nombre de records à compacter, c'est le cas n° 2 et si vous choisissez de le faire, appuyez sur Yes.
  • Sélectionnez le plugin, puis clic droit dans la partie Record Flags > Edit > ESL.
  • Cliquez sur OK, enregistrez et quittez.

On le répète, si vous avez l'avertissement avec le nombre de records à compacter, il faut de la prudence. Il faut s'assurer que le mod n'a pas de fichiers nommés d'après les FormIDs, charger tous les patches dépendant en même temps lors de la conversion et idéalement, tester chaque mod après conversion (xEdit fait une sauvegarde par défaut).

Creative Commons Attribution Ce guide a été créé par Showda, Oaristys, Lart-Iste pour la Confrérie des Traducteurs et enrichi par la communauté.