# Tools

Information about the tools necessary for Level Modding.

# Getting Started

### Entities Files

**Levels are edited through ".entities" files and are saved in:** `<resource>/maps/game/<campaign>/<level_name>/<level_name>.entities`

**<span style="text-decoration: underline;"><span style="font-family: Whitney, 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 16px; font-variant-ligatures: normal; font-variant-caps: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: break-spaces; word-spacing: 0px; -webkit-text-stroke-width: 0px; display: inline !important; float: none;">Example</span></span>**<span style="text-decoration: underline;"><span style="font-family: Whitney, 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 16px; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: break-spaces; word-spacing: 0px; -webkit-text-stroke-width: 0px; display: inline !important; float: none;">**:**  
</span></span><span style="font-family: Whitney, 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 16px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: break-spaces; word-spacing: 0px; -webkit-text-stroke-width: 0px; display: inline !important; float: none;">`e1m1_intro_patch1/maps/game/sp/e1m1_intro/e1m1_intro.entities`</span><span style="font-family: Whitney, 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 16px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: break-spaces; word-spacing: 0px; -webkit-text-stroke-width: 0px; display: inline !important; float: none;">  
</span>&gt; This is the level file path for Hell on Earth.

<p class="callout warning">[<span style="text-decoration: underline;">Remember to check for the highest resource load priority for the level</span>](https://docs.google.com/spreadsheets/d/10R5fWKGyqPuCPdueqKeCYycHETSHg0QeFOCbWIQZUCY/edit#gid=1687603304)</p>

### M347h00k:

**M347h00k (aka Meathook or MH) *originally by Chrispy* - [Download](https://github.com/brongo/m3337ho0o0ok/releases/latest)**  
&gt; M347h00k unlocks developer commands and allows you to edit your level in-game.  
&gt; Although not mandatory, this would make level modding significantly easier.  
*To install: Download `XINPUT1_3.dll` and place it into the DOOM Eternal installation directory (like how you installed the Mod Injector).*

### Tools for Editing Levels:

**Text Editor - [Notepad++ Recommended](https://notepad-plus-plus.org/)**

**EntitySlayer by FlavorfulGecko5 - [Download](https://github.com/FlavorfulGecko5/EntitySlayer/releases)** &gt; EntitySlayer is an easy yet powerful entity editing tool that lists entities as nodes, while providing advanced features such as filtering, searching, multi-node selection.  
*&gt; To install: Download the Entity Slayer zip and extract its contents to whatever folder you want. Make sure to copy `oocore_8_win64.dll` from DOOM Eternal's installation directory to the folder.*

# Text Editor

<p class="callout info">[Notepad++ is the Recommended Text Editor to Use](https://notepad-plus-plus.org/)</p>

---

.entities files are compressed and must be decompressed in order to edit Entities.

### Decompressing Tools:

**Entity*Slayer by FlavorfulGecko5* - [Download](https://github.com/FlavorfulGecko5/EntitySlayer/releases)**  
File -&gt; Export to text (make sure the file extension is still .entities)

**SAMUEL Asset Extraction Tool *by SamPT* - [Download](https://github.com/brongo/SAMUEL/releases)** Currently exports textures, .decls, and .entities files.

**idFileDeCompressor *by PowerBall253* - [Download](https://github.com/brunoanc/idFileDeCompressorGo/releases/latest)**

<p class="callout warning">Even though the .entities file is decompressed, make sure it still retains the .entities file extension.</p>

When editing a decompressed .entities file while you are in game, you will need to create a folder called "overrides" in the DOOM Eternal installation directory. Structure it like this:  
`overrides/maps/game/<campaign>/<level_name>/<level_name>.entities`  
**<span style="text-decoration: underline;">Example:</span>**  
`overrides/maps/game/sp/e1m1_intro/e1m1_intro.entities`  
&gt; This is the level file path for Hell on Earth.

<p class="callout info">You can place as many level files you like in the overrides folder</p>

With M347h00k installed, you can enter your level and edit the decompressed entities file while you are in-game.  
Typing in the console command, `mh_force_reload` will reload the level with the recent changes you made in the text file.

# EntitySlayer

<p class="callout info">**EntitySlayer *by FlavorfulGecko5* - [Download](https://github.com/FlavorfulGecko5/EntitySlayer/releases)**</p>

> EntitySlayer is an easy yet powerful entity editing tool that lists entities as nodes, while providing advanced features such as filtering, searching, multi-node selection.  
> *To install: Extract the files to whatever folder you want. Make sure to copy `oocore_8_win64.dll` from DOOM Eternal's installation directory to the folder.*

---

<p class="callout info">EntitySlayer does not require you to decompress .entities files.</p>

You can open the compressed files within the application, but you should be in your chosen level and use  
**File -&gt; Open from MH** to open the Meathook instance. Be sure so save your instance somewhere.  
With EntitySlayer, you can press the button, "Reload level" and it will perform the command "mh\_force\_reload" for you.

If you wish, you can copy an entity into a dedicated text editor like Notepad++, make changes there, then copy the result back to EntitySlayer.

### Copying from EntitySlayer to Text Editor:

**1. Copy the eventCall selected** [![image-1631056663562.png](https://wiki.eternalmods.com/uploads/images/gallery/2021-09/scaled-1680-/image-1631056663562.png)](https://wiki.eternalmods.com/uploads/images/gallery/2021-09/image-1631056663562.png)  
**2. Paste into text editor**<span style="text-decoration: underline;">  
</span>[![image-1631056944137.png](https://wiki.eternalmods.com/uploads/images/gallery/2021-09/scaled-1680-/image-1631056944137.png)](https://wiki.eternalmods.com/uploads/images/gallery/2021-09/image-1631056944137.png)  
**3. Make your changes and only copy the following**  
[![image-1631056883313.png](https://wiki.eternalmods.com/uploads/images/gallery/2021-09/scaled-1680-/image-1631056883313.png)](https://wiki.eternalmods.com/uploads/images/gallery/2021-09/image-1631056883313.png)  
**4. Reinsert the eventCall into EntitySlayer**[![image-1631057148235.png](https://wiki.eternalmods.com/uploads/images/gallery/2021-09/scaled-1680-/image-1631057148235.png)](https://wiki.eternalmods.com/uploads/images/gallery/2021-09/image-1631057148235.png)  
**5. If you are replacing an eventCall, delete the original one, but you can always add more eventCalls this way.**