Tutoriel rapide - DarkScript3
DarkScript3 sert à modifier la logique “scriptée” du jeu (events, triggers, flags, etc.). Ici je te montre la méthode propre : préparer tes fichiers dans ton projet, ouvrir le bon .dcx, comprendre les bases et éviter les crashs.
Astuce : clique sur les images pour les zoomer.
Trouver le dossier event du jeu
Dans un premier temps, rends-toi dans le dossier de ton jeu. Comme tu l’as décompressé avec UXM, tu devrais avoir les mêmes fichiers. Va dans le dossier event.
Ne prends que ce dont tu as besoin
Pour l’exemple, je prends : common.emevd.dcx, common_func.emevd.dcx et m10_01_00_00.emevd.dcx. Ici, m10_01_00_00 correspond à la Chapel of Anticipation (comme vu dans le guide Smithbox).
Si tu veux modifier une seule map, tu n’as pas forcément besoin de reprendre common et common_func. (Mais dans la pratique, les garder sous la main aide souvent à comprendre comment tout s’imbrique.)
Créer le dossier event dans ton projet
Va ensuite dans le dossier de ton projet. Crée un nouveau dossier et appelle-le event.
ATTENTION : il faut l’appeler event en minuscules. Si tu mets Event (E majuscule), ça ne fonctionnera pas.
Puis colle dedans les fichiers dont tu as besoin, par exemple : D:\Steam\steamapps\common\ELDEN RING\Game\event → D:\Modding\TUTO\event Copier tes fichiers .emevd.dcx dans ton projet (dossier event).
Open… mais ouvre le bon fichier
Ouvre DarkScript3 et clique sur Open.
ATTENTION : ouvre bien le .dcx depuis ton projet (ex : D:\Modding\TUTO\event). Si tu ouvres depuis le dossier Steam, tu risques de casser ton jeu et provoquer des crashs.
Une fois le fichier choisi, clique sur Elden Ring.
Les $InitializeEvent(0, xxxxxxxx)
Je sais que ça peut faire peur au début, mais c’est plutôt bien rangé chez FromSoftware. Tout en haut, tu verras souvent des lignes du type : $InitializeEvent(0, 10012682);
Pense “simple” : InitializeEvent = “au lancement / quand la map charge, le jeu enregistre quels scripts doivent tourner”. Le nombre (ex : 10012682) est l’ID d’un event (un script) défini plus bas dans le fichier sous la forme $Event(10012682, ...).
En gros :
- $InitializeEvent(..., ID) = “lance / active l’event ID”
- $Event(ID, ...) = “le contenu de l’event ID (le script)”
- Donc si tu cherches ce que fait un InitializeEvent : cherche l’$Event avec le même ID.
Si tu te trompes, pas de panique
Si tu fais une erreur, DarkScript3 te prévient avec un message. Ça arrive tout le temps quand on débute. Corrige, sauvegarde, et reteste.
Méthode safe : fais une seule modif → sauvegarde → teste → seulement ensuite passe à la suivante.
common_func.emevd.dcx : les “fonctions” partagées
Ici je te montre common_func.emevd.dcx. C’est lui qui gère beaucoup d’évènements “fonction” réutilisés partout dans le jeu. Exemple : certains comportements génériques (dont des logiques de téléportation) passent par là.
Idée simple : common_func = une “boîte à outils” globale. Plein de maps appellent ces events “communs” au lieu de réécrire la logique à chaque fois. Si tu vois un ID comme 90005605, ce n’est pas “magique” : c’est juste un event commun réutilisé.
common.emevd.dcx : checks / logique globale
Pour finir, un exemple de ce que fait common.emevd.dcx : il sert souvent de “check” global (conditions, états, progression, etc.). Ici, par exemple, il peut vérifier le nombre de runes majeures que possède le joueur.
Rappel : travaille toujours dans ton projet (pas dans Steam), fais des sauvegardes, et évite les gros changements d’un coup.