Event script files control the game's world state. This is accomplished through events, which are defined by the .emevd files. Events have two broad types of instructions: conditions and results. Event scripts use a custom coding language, which sets up condition groups that wait for certain in-game conditions to be met and then uses result instructions to modify the world state. A simple event might wait until the player is within a certain region and then activate an enemy's AI. More complicated events use event flags to record their progress and interact with other events.

Event scripts should be distinguished from AI scripts, which control how other entities move, attack and respond to the player.

In DS2, event scripts are written in ESD, and emevd is instead used for SpEffects.

NOTE: There is a file named common.evd which appears to be an event script file like the .emevd files, but is not used in-game. It may be vestigial or could have some unknown purpose. The former seems more likely.


Event script files and their associated documentation files are all stored in event/. For each map, there is a corresponding event script that runs while that map is in the load queue. In addition, each map class (m10, m11, etc.) has a (usually empty) event script file that runs while any of its maps are in the load queue. Finally, there is common.emevd, which runs all the time and usually handles basic game interactions.


DarkScript3 :
User-friendly EMEVD editor for Dark Souls, Bloodborne, Dark Souls II, Dark Souls III, and Sekiro. Learning How To Use EMEVD is a tutorial for event scripts based on DarkScript3.

DSEventScriptTools :
Command line editing tools and documentation files for Dark Souls, Bloodborne, and Dark Souls III.

Soulstruct :
Python tools for inspecting and modifying FromSoft games (mainly Dark Souls I).