# Eternal - Miscellaneous

# Backups

Information about how to backup various aspects of DOOM Eternal.

# Backup Save Files

<p class="callout success">This technique essentially gives the player infinite save slots for each campaign.</p>

### Finding Save Files

Find your remote folder for DOOM Eternal, ex: **`C:\Program Files (x86)\Steam\userdata\#########\782330\remote`** The **\#########** will be your Steam ID.

You should now see all of your saves and profile data as folders.

### Save Folders

<span style="text-decoration: underline;">The following are valid save folders:</span>  
**GAME-AUTOSAVE0**  
**GAME-AUTOSAVE1**  
**GAME-AUTOSAVE2**  
**DLC1-AUTOSAVE3**  
**DLC1-AUTOSAVE4**  
**DLC1-AUTOSAVE5**  
**DLC2-AUTOSAVE6**  
**DLC2-AUTOSAVE7**  
**DLC2-AUTOSAVE8  
HORDE-AUTOSAVE9 PROFILE**

GAME = Base Campaign  
DLC1 = The Ancient Gods Part 1  
DLC2 = The Ancient Gods Part 2  
HORDE = Horde Mode  
PROFILE = DOOM Level Data

<p class="callout info">You may not have all of these folders. That means you do not have a saved game for every slot.   
However, you should always have a PROFILE folder.</p>

### Backing Up Save Files

- Copy any one of these in a safe location.
- After you have saved a copy, you may delete the original save file and start a new one in game.
- If you want to restore a save, simply copy your backed save slot back into your remote folder.

# Backup DOOM Levels

<p class="callout success">This technique also allows the player to modify their DOOM level freely, as it is stored client-side.</p>

<p class="callout warning">Your **DOOM Level** and **Event XP** are not the same thing. A DOOM Level measures how much you have played the game and essentially serves no value other than prestige.</p>

### Finding Your DOOM Level File

<p class="callout info">This step is not required, but it provides an alternative way to copy your save files and profile data.  
This is also relevant to [Backup Save Files](https://wiki.eternalmods.com/books/miscellaneous/page/backup-save-files).</p>

Find your remote folder for DOOM Eternal, ex: **`C:\Program Files (x86)\Steam\userdata\#########\782330\remote`** The **\#########** will be your Steam ID.

You should now see all of your saves and profile data as folders. **PROFILE** is the only folder you should worry about. It contains **profile.bin** which stores your DOOM Level.

### Profile Tools

**idProfile by emoose - [Download](https://cdn.discordapp.com/attachments/693113846688383029/696837862028476476/idProfile-0.34.zip)**  
De-serializes the profile.bin file into a readable JSON format.

**DOOMSaveManager by GoobyCorp - [Download](https://github.com/GoobyCorp/DOOMSaveManager/releases)**  
Makes exporting and importing saves easier.

### Instructions

1. Unzip both files in the same folder
2. Launch **DOOM Save Manager.exe** -&gt; Continue if prompted with a warning -&gt; Action: **Export Backup** -&gt; OK -&gt; Save the **backup.zip** file somewhere safe
3. Extract **PROFILE\\profile.bin** -&gt; Drag &amp; Drop it onto **idProfile.exe** -&gt; **profile.bin.json** will now be created -&gt; Open the file with a text editor
4. CTRL + F -&gt; Type: **experienceGained** -&gt; Find Next and look in the line directly below **experienceGained** -&gt; If it is present, change: **"Int8"** to **"Int32"** -&gt; Change the current value after **"Int32"** to whatever you want -&gt; Save
5. Drag &amp; Drop **profile.bin.json** into **idProfile.exe** -&gt; **profile.bin.json.bin** will now be created -&gt; Rename the file to **profile.bin** -&gt; Delete the old file if need-be
6. Open: **backup.zip** -&gt; Replace the old **profile.bin** with the new one
7. Launch **DOOM Save Manager.exe** -&gt; Continue if prompted with a warning -&gt; Action: **Import Backup** -&gt; Select: **backup.zip** -&gt; OK

### DOOM Level Key - [Reference Image](https://images.ctfassets.net/rporu91m20dc/2UlAL9H2LlSMHOVlCG0W9o/0f1bde6c6d0e0df2da1863edf75d5478/DE.Echelon.960x540.v2.png)

**1 Level = 10,000 XP**  
**250 Levels = 2,500,000 XP | 1 Echelon (Stone Star)  
2250 Levels = 22,500,000 XP | 9 Echelon (Bronze Star)  
4250 Levels = 42,500,000 XP | 17 Echelon (Silver Star)  
6250 Levels = 62,500,000 XP | 25 Echelon (Gold Star)  
8250 Levels = 82,500,000 XP | 33 Echelon (Platinum Star)  
10250 Levels = 102,500,000 XP | 41 Echelon (Slayer Star)  
12000 Levels = 122,500,000 XP | 48 Echelon (Max Level)**

<p class="callout info">Each star is **250 Levels**, with **8 stars** being **2000 Levels** **(20,000,000 XP)** for each **Echelon**.  
You can only have a **maximum** of **8 stars** before you unlock the next tier.  
</p>

<p class="callout warning">You cannot level up past **48 Echelon**.</p>

# EntityDefs

This chapter contains all the entitydef decls that can be spawned by the SnapHak/BubbleBear sh_spawn command, or the Meath00k chrispy command.

# EntityDef/AI

<p class="callout info">Each AI may only be spawned in their respected campaign AND anything released after.   
For example, Spirits can be spawned in any TAG1 or TAG2 level, but not in the Base Campaign.</p>

### Base Campaign

```
ai/ambient/buffpod
ai/ambient/tentacle
ai/ambient/zombie_cueball
ai/fodder/carcass
ai/fodder/gargoyle
ai/fodder/imp
ai/fodder/lostsoul
ai/fodder/prowler
ai/fodder/soldier_blaster
ai/fodder/soldier_shield
ai/fodder/zombie_maykr
ai/fodder/zombie_t1_hell
ai/fodder/zombie_t1_scientist
ai/fodder/zombie_tier_1
ai/fodder/zombie_tier_3
ai/heavy/arachnotron
ai/heavy/cacodemon
ai/heavy/dreadknight
ai/heavy/hellknight
ai/heavy/mancubus_fire
ai/heavy/mancubus_goo
ai/heavy/painelemental
ai/heavy/pinky
ai/heavy/pinky_spectre
ai/heavy/revenant
ai/heavy/whiplash
ai/heavy/whiplash_spectre
ai/superheavy/archvile
ai/superheavy/baron
ai/superheavy/doom_hunter
ai/superheavy/marauder
ai/superheavy/marauder_wolf
ai/superheavy/tyrant
```

### The Ancient Gods - Part 1

```
ai/ambient/spirit
ai/ambient/super_tentacle
ai/ambient/turret
ai/heavy/bloodangel
ai/superheavy/baron_armored
```

### The Ancient Gods - Part 2

```
ai/ambient/demonic_trooper
ai/fodder/imp_stone
ai/fodder/prowler_cursed
ai/fodder/soldier_chaingun
ai/fodder/zombie_t1_screecher
```

### Bosses

<p class="callout warning">Most bosses may only be spawned in the level they appear in.</p>

##### DOOM Hunter Base

```
ai/superheavy/doomhunter_gold_stage1
ai/superheavy/doomhunter_gold_stage2
ai/superheavy/doomhunter_stage1
ai/superheavy/doomhunter_stage2
```

##### Sentinel Prime

```align-left
ai/boss/gladiator_gold
ai/boss/gladiator
```

##### Urdak

```
ai/fodder/maykr_minion
ai/boss/khan_maykr
```

##### Final Sin

```
ai/boss/icon_of_sin_base
ai/boss/icon_of_sin_stage2
```

##### The Blood Swamps

```
ai/friendly/wolf
```

##### The Holt

```
ai/ambient/spirit_samuel
ai/boss/samuel
```

##### The Dark Lord

```
ai/boss/darklord
ai/boss/darklord/summoned/arachnotron
ai/boss/darklord/summoned/baron
ai/boss/darklord/summoned/hellknight
ai/boss/darklord/summoned/mancubus_fire
ai/boss/darklord/summoned/marauder
ai/boss/darklord/summoned/marauder_wolf
ai/boss/darklord/summoned/painelemental
ai/boss/darklord/summoned/revenant
ai/boss/darklord/summoned/tyrant
ai/boss/darklord/summoned/whiplash
```

# EntityDef/Pickup

<p class="callout warning">Not all pickups can be spawned in every level. They can only be spawned in the levels they normally appear in.   
For example, a Mega Health cannot be spawned in Hell on Earth.</p>

### Base Campaign

```
pickup/armor/large
pickup/armor/medium
pickup/armor/small
pickup/health/large
pickup/health/medium
pickup/health/small
pickup/powerup/berserk
pickup/powerup/onslaught
pickup/powerup/overdrive
```

### The Ancient Gods - Part 1

```
pickup/extra_life/extra_life_2up
```

### The Ancient Gods - Part 2

```
pickup/ammo/hammer
```

### Classic Mode

```
pickup/weapon/bfg
pickup/weapon/chaingun
pickup/weapon/crucible
pickup/weapon/double_barrel
pickup/weapon/gauss_rifle
pickup/weapon/hammer
pickup/weapon/heavy_cannon
pickup/weapon/plasma_rifle
pickup/weapon/rocket_launcher
pickup/weapon/shotgun
```

### Mission-Specific

```
pickup/ammo/bfg
pickup/ammo/bullets
pickup/ammo/cells
pickup/ammo/crucible
pickup/ammo/gas
pickup/ammo/rockets_single
pickup/ammo/shells
pickup/extra_life/extra_life_1
pickup/keycard/slayer_key
pickup/keycard/uac_blue
pickup/keycard/uac_red
pickup/keycard/uac_yellow
pickup/blood_punch_refill
pickup/dash_refill
pickup/mega_armor
pickup/mega_health
pickup/rad_suit
pickup/rad_suit_refill
progress/mastery_token_weapon
```

##### Cultist Base

```
pickup/keycard/cultist
```

##### Super Gore Nest

```
pickup/keycard/hell_flesh_blue
pickup/keycard/hell_flesh_red
pickup/keycard/hell_flesh_yellow
```

##### UAC Atlantica Facility

```
pickup/dive_suit
pickup/dive_suit_refill
```

<p class="callout danger">Some items cannot be picked-up when spawned by the Meath00k [chrispy](https://wiki.eternalmods.com/books/eternal-command-console/page/meath00k-commands) command.</p>

# SWF Modding.

#### HUD and menu modding

The ability to mod DOOM Eternal's HUD and menus is limited, but is possible, thanks to idStudio. The layout of DOOM Eternal's HUD is rendered by a custom flash interpreter, so in some cases this can be changed by editing the source SWF file. The various shapes of HUDs and menus actually come from textures files. Some menus may be populated by a decl file. Depending on what you want to change, you want to edit other files in combination with modified SWFs, or SWF files may not need to be edited at all.

### Extracting SWF files

Open idStudio, go to Mods, Package browser. In that window, go to File, Open. Navigate to your DOOM Eternal installation, then idStudio/base and open **common\_s000.wad7**. Then open the SWF folder and extract the SWF file you think you want to modify. If you're not sure, you can simply extract all of them, not much space will be used in doing so.

<p class="callout info">Ignore the generated/cswf folder, this contains SWFs compiled for use in-game and cannot be edited by external tools.</p>

Alternatively, you can use Eternal Resource Extractor to pull all SWF files from **common\_s000.wad7**.

### Editing SWF files with an external program

While there is no offical tool for editing SWF files for the purposes of DOOM Eternal modding, you can download software that can open normal shockwave flash files, such as [Free Flash Decompiler.](https://github.com/jindrapetrik/jpexs-decompiler/wiki/Installation)

While the functionality of the game's HUD is, for the most part, hardcoded and not particularly flexible, you can at least change the layout by deleting, moving, or resizing sprites. Adding elements may not work as expected. Usually, the bottom sprite will contain the entire HUD element. When inspecing elements within sprites (or elements inside of frames inside of sprites), read the child element ID to find what sprites are contained in that item, until you find the object you want to edit or remove.

Additionally, a small set of actionScript functions exist in Eternal's flash intepreter, including a function of set console variables.

Recreate the directory structure in an the base folder of an idStudio mod, and save or copy your modified SWF file to the correct folder. idStudio will generate a cooked SWF file on startup, or upon loading a map. You can force compile SWFs with the cookSWFs console command if you add a SWF while idStudio is running, but if you want to test it within idStudio, you might need to restart the map. When you want to package your mod for uploading to the mod portal, you will want to check generated/cswf

### Packing SWF files for the mod injector

If you want to use the modded SWF file in a mod injector ZIP archive, do not package the generated bswf file, it will not work. Use Eternal Resource Extractor to obtain the Eternal SWF file from the bwsf container. Also, note that targetting the mod injector instead of the mod portal does not remove the need to use idStduio; is it is still necessary to generated the SWF files in Eternal format. This format is not readable by SWF editing software, hence why you must extract SWF files from idStudio and not from the retail game package.