Site Tools


tutorial:intro-to-elden-ring-emevd

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
tutorial:intro-to-elden-ring-emevd [2025/02/27 00:31] admintutorial:intro-to-elden-ring-emevd [2025/02/27 00:33] (current) – [Model names] admin
Line 26: Line 26:
   * Use DSMapStudio ([[https://github.com/soulsmods/DSMapStudio | Github link]]) to view MSB files, which come from ''map\mapstudio'' in the game hierarchy, and also to view/edit game params. This tool is super important.   * Use DSMapStudio ([[https://github.com/soulsmods/DSMapStudio | Github link]]) to view MSB files, which come from ''map\mapstudio'' in the game hierarchy, and also to view/edit game params. This tool is super important.
   * Use WitchyBND ([[https://github.com/ividyon/WitchyBND | Github link]]) or the older Yabber ([[https://github.com/JKAnderson/Yabber | Github link]]) for unpacking specific formats like archives (ending in bnd.dcx) and game messages (ending in fmg).   * Use WitchyBND ([[https://github.com/ividyon/WitchyBND | Github link]]) or the older Yabber ([[https://github.com/JKAnderson/Yabber | Github link]]) for unpacking specific formats like archives (ending in bnd.dcx) and game messages (ending in fmg).
-  * Use various [[er-reference:main | Elden Ring reference pages]], also listed below under "entry points"+  * Use various [[er-refmat:main| Elden Ring reference pages]], also listed below under "entry points"
  
 Of course, also use an event script editor. These are available for Elden Ring: Of course, also use an event script editor. These are available for Elden Ring:
Line 90: Line 90:
 Let's start with some shorter events in the game, before getting into longer ones which pull together a ton of game systems. An event script defines many events which run while the script is loaded. You can think of these like functions in a programming language, each identified by a unique number. An event must be initialized to have any effect in the game at all. All events run in parallel, executing one instruction after the next from top to bottom, sometimes skipping optional instructions or stopping altogether until some condition is met. Let's start with some shorter events in the game, before getting into longer ones which pull together a ton of game systems. An event script defines many events which run while the script is loaded. You can think of these like functions in a programming language, each identified by a unique number. An event must be initialized to have any effect in the game at all. All events run in parallel, executing one instruction after the next from top to bottom, sometimes skipping optional instructions or stopping altogether until some condition is met.
  
-For how loading works, that's a bit complicated. See the [[[er-refmat:elden-ring-map-list|map list]]] for an introduction to maps in Elden Ring. When a map is loaded, its event script is also loaded. When you die, or save and quit, or warp to a grace, all the loaded event scripts are loaded in again from scratch. Everything gets completely reinitialized, and if it's not stored in the save file somewhere, it's like it never happened.+For how loading works, that's a bit complicated. See the [[er-refmat:map-name-list|map list]] for an introduction to maps in Elden Ring. When a map is loaded, its event script is also loaded. When you die, or save and quit, or warp to a grace, all the loaded event scripts are loaded in again from scratch. Everything gets completely reinitialized, and if it's not stored in the save file somewhere, it's like it never happened.
  
 How this works in the event script itself is that there are special events called constructors which get automatically initialized when an event script is loaded. These are events with low ids like 0 and 50. As you can see, these constructor events are responsible for initializing every other event in the file, and a few others too.  How this works in the event script itself is that there are special events called constructors which get automatically initialized when an event script is loaded. These are events with low ids like 0 and 50. As you can see, these constructor events are responsible for initializing every other event in the file, and a few others too. 
Line 1324: Line 1324:
 ==== Map ids ==== ==== Map ids ====
   * Where it's located: Maps are how most of the game world is split up, so finding a map id is critical to being able to search for something in a particular MSB (in ''map/mapstudio'') or event script (in ''event'').   * Where it's located: Maps are how most of the game world is split up, so finding a map id is critical to being able to search for something in a particular MSB (in ''map/mapstudio'') or event script (in ''event'').
-  * How to browse it: Use [[er-refmat:elden-ring-map-list | Elden Ring Map List]] to find commonly used maps, or use the lists provided in various editors. Other dumps like Item Analysis also contain map references to everything.+  * How to browse it: Use [[er-refmat:map-name-list | Elden Ring Map List]] to find commonly used maps, or use the lists provided in various editors. Other dumps like Item Analysis also contain map references to everything.
   * How to use it: Open the files in a map/event editor!   * How to use it: Open the files in a map/event editor!
   * Example: You want to view/edit something in Roundtable Hold. Find that it's m11_10_00_00 in the map list, and open those files in DarkScript3/DSMapStudio.   * Example: You want to view/edit something in Roundtable Hold. Find that it's m11_10_00_00 in the map list, and open those files in DarkScript3/DSMapStudio.
Line 1332: Line 1332:
   * How to browse it: Use [[https://docs.google.com/spreadsheets/d/1eZ9FWlu1MDLnR2J0z0ld6T9FFZssOCjM1tS-Vvx0Yr0/edit#gid=0 | Elden Ring CHR ID]] reference to identify the model you're looking for.   * How to browse it: Use [[https://docs.google.com/spreadsheets/d/1eZ9FWlu1MDLnR2J0z0ld6T9FFZssOCjM1tS-Vvx0Yr0/edit#gid=0 | Elden Ring CHR ID]] reference to identify the model you're looking for.
   * How to use it: In addition to or instead of the above reference, you can also use the [[https://soulsmods.github.io/data/er/enemies.html | Enemy Locations Dump]] to find specific maps to open, then open the relevant maps in DSMapStudio. To find out how the enemy is scripted, use its EntityID.   * How to use it: In addition to or instead of the above reference, you can also use the [[https://soulsmods.github.io/data/er/enemies.html | Enemy Locations Dump]] to find specific maps to open, then open the relevant maps in DSMapStudio. To find out how the enemy is scripted, use its EntityID.
-  * Example: You want to find Radahn. Use above references to see that he's c4730, and that his full name is m60_52_38_00-c4730_9002, but he's located in map m60_13_09_02. The different ids are because his physical location is in the 52_38 small tile, but he can travel far away from that, so his data is in the 13_09 big tile instead. See the [[er-refmat:elden-ring-map-list | map reference]] for details.+  * Example: You want to find Radahn. Use above references to see that he's c4730, and that his full name is m60_52_38_00-c4730_9002, but he's located in map m60_13_09_02. The different ids are because his physical location is in the 52_38 small tile, but he can travel far away from that, so his data is in the 13_09 big tile instead. See the [[er-refmat:map-name-list | map reference]] for details.
  
 ==== Entity ids ==== ==== Entity ids ====
tutorial/intro-to-elden-ring-emevd.1740616309.txt.gz · Last modified: by admin