ESLisation
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.
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.
Que convertir ?
Tout d'abord, notez que tous les plugins ne sont pas ELSisables : il y a une limitation de 4096 FormIDs (records) par mod depuis la version 1.6.1130 du jeu (le double d'avant). Les plus gros mods (quêtes, mondes) ne pourront donc pas être ESLisés.
Pour détecter les plugins qui peuvent être ESLisés, vous pouvez (ce n'est pas du tout une obligation) utiliser un script fourni dans xEdit : lancez-le 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 possible sous le nom des plugins correspondant à trois cas de figure.
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
. Cela signifie que le plugin dépasse les 4096 records dont nous avons parlé.
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.
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 (voir partie suivante). 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
- 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?
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.
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.
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 avec quelques connaissances de modding (non recommandé aux débutants).
Il existe des solutions assez simples :
- Utiliser un script xEdit qui 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 :)
- 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). 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.
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.
Comment convertir ?
- 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).
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...).
Un (très rare) bug peut se produire lorsqu'un plugin ESLisé écrase les records de CELL qui ont été ajoutés par un autre plugin ESLisé.
Dans ce cas, les références temporaires dans cette CELL n'apparaîtront pas dans le jeu. Avec un script xEdit, vous pouvez scanner votre ordre de chargement pour vérifier si vous avez ce bug et, si c'est le cas, supprimer le plugin affecté.
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.
Ce guide a été créé par Showda et Oaristys pour la Confrérie des Traducteurs et enrichi par la communauté. |